ВНИМАНИЕ! Наша конференция посвящена космической тематике и компьютерным играм. Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!
|
» Х2-Моддинг | страница 1 |
|
|
|
Канал X2: The Threat: «Х2-Моддинг» |
|
|
Breeze
222 EGP
  Рейтинг канала: 3(30) Репутация: 90 Сообщения: 703 Откуда: Donetsk, Ukraine Зарегистрирован: 05.12.2003
 |
|
Если мы будем делать FAQ по моддингу, то эта инфа может быть полезна тем кто собирается заниматся конкретно моддингом кораблей, и не хочет идти по бескрайней пустыне чисел используя лишь УМНТ, высасывая по пути жалкие капли данных из скудных официальных источников информации :D . Поэтому я накидал тут парочку описаний - в первой части поверхостно описал формат модели корабля, а во второй формат файла TShips.
Для комфортной работы нужны(желательны):
1) Что-нибудь типа Windows Commander, Volkov commander или короче любую удобную вам оболочку.
2) 3DSMAX 5/6 + экспортный плюгин от Egosoft (в комлекте с ModderKit)
3) Сам ModderKit (в нём помимо плюгина для макса, утилит для распаковки/упаковки dat/pck/pbd есть ещё документация, реально полезная для создания своих собственных моделей в МАX'е)
4) Желательно иметь X2 Object Modder (замечательная программа, спасибо Dimaxx'у за неё)
5) Неофициальные утилиты распаковки/упаковки (есть версии опять же made by Dimaxx, и другие не менее полезные утилиты от Пилотов)
6) Просто необходимо иметь X2 BOD viewer - made by UrQuan & Dimaxx - программу, позволяющую со всеми удобствами просматривать модели кораблей!
7) Cкрипт конвертации bod->max для 3DSMAX - made by altor
(ссылки см. в самом конце текста)
ЧАСТЬ 1 - формат игровой модели корабля.
Всё связанное с моделями в игре лежит в двух папках - V и CUT.
Папка V - это как бы "склад запчастей" - руки, ноги, головы, хвосты и т.д..
Папка CUT - в ней лежит набор "схем-чертежей" по которым собираются запчасти, которые можно взять из папки V.
Модели поделены на три типа - body,scene,combined.
Body - это тот тип файлов, что лежат в папке V. Проектируя body-модель мы проектируем запчасть, имеющую геометрические размеры, на неё можно накладывать текстуры, короче говоря все свойства модели-мэша экспортируемые из МАХ'а в игру можно узнать почитав X2_GFX_Modding.pdf идущий в комплекте с ModderKit'ом.
scene - это те файлы, что находятся в папке CUT. Создавая scene-модель мы создаём полноценный игровой объект, именно scene-файлами и представлены все корабли, станции, короче всё что мы видим в игре. В scene-модели выставляются координаты для body-запчастей и их направленность, и ещё анимация(просто изменение направленности). Ниже на примерах объясню подробнее.
combined - комбинированный тип scene+bodies. Этот тип моделей используется в основном для скриптовых сцен-мультиков, разработчики не советуют использовать его ни для чего больше. (хотя ничто не мешает :))
Процесс экспорта. В английском варианте он отлично описан в X2_GFX_Modding.pdf в части 3 - Exporter usage. Здесь же я кратко опишу процесс экспорта. При экспортировании модели появляется окошко, в котором мы можем видеть три кнопки Body, Scene, Combined и три опции Verbose, Binary, Debug Log.
Нажимая на Body, Scene или Combined мы создаём модель соответствующего типа. Опции Verbose, Debug Log использовались разработчиками для отладки, так что для нас они пользы не представляют. Опция Binary позволяет сохранить модель в сжатом виде так что она занимает меньше места и самое главное быстрее грузится, однако наглядность информации внутри файла естественно снижается. При экспортировании модели с помеченной опцией "Binary" вместо .bod (body) файла создаётся .bob(binary body) файл. Единственно что ещё важно знать - при создании наших моделей крайне желательно именовать их начиная с номеров выше 10500, иначе могут возникнуть проблемы использования их в качестве мода.
Рассмотрим идеологию названия моделей.
Body-модели внутри их самих можно называть как угодно, желательно добавлять в начале каждого имени "B_". Например: разместим три шарика и обзовём каждый из них B_sharik1,B_sharik2,B_sharik3, присвоим им цвет, текстуры и т.п. (все экспортируемые свойства описаны в X2_GFX_Modding.pdf - там необходимая инфа для 3D-моделлеров). Для того, чтобы такая модель стала игровой body-моделью, необходимо экспортировать её, и назвать числом (не используя никаких букв), типа 10525,11100, главное чтобы число было больше 10500. Эти числа будут позже использованы в scene-модели. Не забудьте отцентрировать модель как об этом пишут в X2_GFX_Modding.pdf.
Body-модели можно просматривать, и конвертировать в max-формат с помощью программ и скрипта, описанных выше.
Scene-модели устроены как чертёж. Внутри них по сути расположены метки, в позиции которых в игре вставляются body-модели. В принципе как метку мы можем использовать всё что угодно, лишь бы были определены координаты и направление (и ещё возможно вращение), - например кубик :). Хотя удобнее конечно поставить туда ту запчасть, которая там будет реально использоватся (тогда будут видны её направленность и геом. размеры) - но в случае если мы собираем scene-модель в основном из стандартных запчастей из игры, то их МАХ'овских моделей у нас нет, и поэтому приходится вместо них использовать кубики :). Каждая метка имеет своё имя - по нему определяется запчасть, и в некоторых случаях определяются её функциональные параметры. Приведу здесь желательный формат (рекомендуемый разработчиками) для именования меток.
0) для центра модели - имя метки [940(/буквы)] - например 940Mainbody - каждая модель корабля должна иметь такую метку! (виртуальный центр) иначе она не будет экспортирована.
1) для декораций - крыльев/навигационных огней/кабин/двигателей/антенн/... - имя метки должно быть в виде [число(/буквы)] - вместо числа подставляется body-модель. Например 930wing, 930wing02, 931booster, 10318 и т.д
2) для хвостов от двигателей - [число/(_номер)(/буквы)] например 905_1, 770_1bb, 770_1abcd1 и т.д.
3) для выхлопов маневровых движков - [число(/буквы)/_номер] - (это небольшие струйки пара появляющиеся при разворотах корабля) - как получить значение _номера описано на странице 5 X2_GFX_Modding.pdf
4) для кокпитов(кабин изнутри) - [число/_номер(/буквы)] например 928_1cp, 939_2 и т.д. Внимание! Эти _1, _2, _4 и т.д. играют важную роль как идентификаторы кокпитов, дальше объясню почему.
5) для лазеров/турелей - [число/_номер(/буквы)] например 106_1, 106_1b01, 939_4b и т.д. Параметр _номер логически привязывает этот лазер/турель к номеру кокпита. Например у нас есть кокпит турели 939_2, тогда лазеры этой турели будут выгдядеть например как 944_2b1, 944_2b01, 944_2b02 и т.п. Смысл: при стрельбе из этого кокпита(основной кабины, или кабины турели) будут стрелять именно эти лазеры расположенные около этой кабины.
Итак, мы разместили все необходимые запчасти в нужных координатах, повернули каждую из них в нужное направление, и теперь осталось лишь экспортировать scene-модель и внести коррективы в файл TShips. Но перед экспортом scene-модели в bod или bob формат экспортируйте её сначала просто в bod формат (без включенной галочки "Binary"), и посмотрите внутри неё (Windows commander тут как раз пригодится) на строчки типа:
P 0; B 940; N 940Mainbody;
P 1; B 885; C 1; N 885_1Cockpit;
P 2; B 106; C 1; N 106_1laser1;
P 3; B 106; C 1; N 106_1laser2;
и т.д.
Видите параметр "P"(Part) в начале каждой строчки? Он будет необходим нам для прописывания некоторых частей в TShips файле так что запишите где-нибудь на листике какой номер к какой части принадлежит. например "106_1laser1 - 2, 106_1laser2 - 3" и т.д.
Если будете использовать в своей модели стандартные запчасти, некоторые из них описаны всё в том же
X2_GFX_Modding.pdf, но там описано далеко не всё. Поэтому советую просмотреть bob файлы из папки cut - там можно, хоть и с трудом, прочитать из каких частей составлялись модели кораблей, и эти данные определённо могут быть полезны :).
Ещё не забудьте глянуть в GFX_Modding насчёт упрощенных моделей, используемых при рендеринге на разных дистанциях (но это в общем-то не обязательно :))
Короче, дальше дело только за 3D художниками :)
ЧАСТЬ 2 - файл TShips и формат кораблей в нём.
Файл TShips.pck (реально TShips.txt в распакованном варианте) лежит в папке types.
В самом начале файла есть строка из двух цифр - это версия файла (изменится если изменится формат описания кораблей) и количество строк в файле. Каждый корабль в этом файле описан одной строкой (довольно длинной :)), в конце каждой строки находится строковый идентификатор корабля (который похоже ни на что не влияет.
Добавление кораблей
Внимание! благодаря Пилоту CheckerTwo получена сл. информация:
"Маленькое уточнение.
В редакторе скриптов можно криэйтить следующие шипы,
прописанные в tships по номерам (начиная с 0 - SS_SH_A_TL):
0-8, 10-43, 49-50, 52, 61-95, 99-100, 103-107.
Всего 86 кораблей. Все остальные как бы недоступны.
Т.е. в редакторе скриптов они отсутствуют для выбора.
В список "недоступных" попадают:
SS_SH_X_M0;
SS_SH_X_TS_P,SS_SH_S_TS_P,SS_SH_P_TS_P,SS_SH_B_TS_P,SS_SH_T_TS_P;
SS_SH_ROBOT;
SS_SH_LOGBOOK;
SS_SH_E_TS,SS_SH_E_M1,SS_SH_E_DRONE,SS_SH_E_SPACESHUTTLE,SS_SH_E_CARRIER;
SS_SH_GATE,SS_SH_M0_GUN,SS_SH_PULLER,SS_SH_R1,SS_SH_R2;
SS_SH_APGUNNER;
SS_SH_COMET;
SS_SH_TAXI,SS_SH_MOD_TL,SS_SH_DUMMY;
SS_SH_K_M0;
SS_SH_K_M0GEN;
SS_SH_REPAIRDRONE;
Убил бы разработчиков
Из этих 86 игра не использует 11, в их описании значение 3dbody = -1,
но их можно создавать и вообще это то что нужно для моддинга!:
SS_SH_A_M3;
SS_SH_A_TSA;
SS_SH_B_M3;
SS_SH_B_M4;
SS_SH_S_TS;
SS_SH_S_M5;
SS_SH_T_M4;
SS_SH_T_M5;
SS_SH_P_M3_2;
SS_SH_P_M4;
SS_SH_P_M5A;
Нужно заметить, что номер строки корабля в tships однозначно
соответствует подтипу корабля (параметр s) в xml описания
объектов галактики. (Спасибо Dimaxx за редактор карт и хелп к нему.)
Например, пиратский шип
<o id="0" t="7" x="0" y="0" z="0" s="43" r="0">
соответствует описанию 43 корабля в tships (SS_SH_A_TS_P).
В редакторе скриптов при присвоении значения типа корабля
переменной генерится такой код,
<sval type="array" size="7">
<sval type="int" val="104"/>
<sval type="int" val="0"/>
<sval type="int" val="1"/>
<sval type="int" val="9"/>
<sval type="int" val="458795"/>
<sval type="int" val="1"/>
<sval type="int" val="-1"/>
</sval>
где 458795 = $0007002B и младшее слово опять же
соответствует номеру корабля.
Что из этого всего следует? Скорее всего все прошито в exe
намертво. В конфигах можно менять только кое-какие свойства.
Да, это не фрилансер.
PS: С АП-Ганером что-то непонятно. А мне казалось что я его того,
создавал-летал. Может эгософты в 1.3 поменяли чего? Проверьте, pls.
Че не так."
CheckerTwo©
Т.к. файл TShips наполовину заполнен "мусором", то простой способ как найти нужный корабль - просмотрите bob файлы из папки cut - там в начале есть текстовая строка в которой содержится намёк на корабль, например "SRC: F:\SRC\3DSMAX-Work\X2_The-Threat\Scenen-Ships\revised\4098_Par_M1-Carrier_new.max" - Паранидский М1. Так ищем до тех пор пока не найдём то что нам нужно, и когда находим записываем номер .bob файла и ищем по этому номеру строку в TShips.
Правда есть способ гораздо проще - запустить X2 Object Modder - и там просто пролистать в списке кораблей, найти нужный нам и посмотреть какой у него идентификатор :).
Формат строки описания корабля
На английском частично описан в X2_GFX_Modding.pdf. Для примера разберём здесь корабль Teladi Osprey - идентификатор SS_SH_T_M6.
940;0;0.04500;0.04500;0.09999;11;4511;19000;3450;101;1;4;217;1000;
112;247;4167;4508;2020;6;3;3;4;9;10;10;500;1500;61;5;61;6;60;2;0;0;
0;0;0;0;-1;4;5;45000;40;41;3;4;1;0;928;3;2;1;939;9;3;2;939;10;4;3;
939;14;4;1;2;1;2;1;1;887;1;-1;-1;2;1;887;2;-1;-1;3;1;2;1;3;1;944;
11;-1;-1;4;1;3;1;4;1;944;12;-1;-1;5;2;4;2;5;1;944;15;-1;-1;6;1;944;16;-1;
-1;1;100000;25;1;0;SS_SH_T_M6;
из .bob файла под номером 04167 выписал названия:
887_1b - это пушка
887_1bb - ещё одна пушка
928_1co - кокпит
906b - закорючка радара
930wing - крылья
931boost - движок
931boost01 - второй движок
940mainbody - виртуальный центр модели корабля
939_2b - кокпит
939_3b - кокпит
944_2b - пушка турели
944_3b - пушка турели
53docking - место стыковки
939_4b - кокпит
944_4b - пушка турели
944_4b01 - пушка турели
905_b - выхлоп от двигателя
905_b01 - выхлоп от второго двигателя
(дальше идут навигационные огоньки 10ххх и десяток выхлопов маневровых движков)
Для удобства описания разобью строку на части:
940; - номер центрального тела (body) для объекта (если там что-то отличное от 940 значит это не корабль (в обычном смысле этого слова))
0; - body, используемое для показа объекта в различных меню (там всегда 0, т.е. то же самое что и в космосе)
0.04500;0.04500;0.09999; - скорости поворота по осям - определяют маневренность
11; - тип корабля - 0-TL 1-TS 2-M0 3-M1 4-M2 5-M3 6-M4 7-M5 8-TL_P 9-TS_P 10-G0 11-M6 12-TP.
4511; - номер в xml-файле со всем текстом игры, по которому прописано инфо о корабле. номер+1 = длинное описание к кораблю.
19000; - скорость в юнитах в сек.
3450; - ускорение в юнитах в сек.
101; - как звучит двигатель в движении
1; - средняя задержка реактора(реакции) (?) (всегда равно 1)
4; - как выглядит выхлоп от двигателей
217; - как светится огонёк двигателя (скорее всего, не уверен полностью)
1000; - количество энергии (мощность реактора МегаВатт), регенерируемое в секунду
112; - минимальная громкость звуков издаваемых кораблём
247; - максимальная громкость звуков издаваемых кораблём на максимальной скорости
4167; - номер .bod или .bob файла, представляющего из себя scene-модель корабля
4508; - номер .bod или .bob файла, представляющего из себя внутренний вид главной кабины корабля
2020; - бит-маска, определяющая какие пушки можно поставить на корабль (расшифровку см. ниже)
6; - макс. количество лазеров устанавливаемых на корабль (в нашем случае 2 пушки +1+1+2 турели = 6)
3; - максимально возможный тип щита (0 один мегаватт, 1 пять мегаватт, 2 двадцать пять мегаватт, 3 сто двадцать пять мегаватт)
3; - максимально возможное количество щитов
4; - максимально возможный тип ракет (-1 нет, 0 mosquito, 1 wasp, 2 dragonfly, 3 silkworm, 4 hornet. p.s. не забывайте что ракеты класса М например не влезут ни в один М5 :))
9; - это число показывает, скока ракет будет в трюме в стандартной поставке при заказе корабля для НПЦ. Для игрока не имеет смысла - thanks to Dimaxx
10; - количество возможных апгрэйдов скорости (1 штука = 10% прибавки)
10; - количество возможных апгрэйдов маневренности (1 штука = 10% прибавки)
500; - стартовая вместимость трюма
1500; - максимальная вместимость трюма (1500-500=1000=кол-во возможных апгрейдов трюма)
61; - тип для дополнительного кокпита 1 (номер строки в файле TCockpits, описывающий макс. возможное оружие. Помните, что строки нумеруются с 0 (не считая первой 13;103;, она как бы под номером -1), так что если тут написано 61, то строка эта будет 62 (если начинать считать строки с 1))
5; - текст. ID для доп. кокпита 1 (0 главный кокпит, 1 передний, 2 задний, 3 левый, 4 правый, 5 верхний, 6 нижний)
61; - тип для доп. кокпита 2
6; - текст. ID для доп. кокпита 2
60; - тип для доп. кокпита 3
2; - текст. ID для доп. кокпита 3
0; - тип для доп. кокпита 4
0; - текст. ID для доп. кокпита 4
0; - тип для доп. кокпита 5
0; - текст. ID для доп. кокпита 5
0; - тип для доп. кокпита 6
0; - текст. ID для доп. кокпита 6
-1; - количество кораблей которые могут стыковатся к этому (минус перед числом означает что стыковка внешняя, т.е. снаружи корабля)
4; - макс. тип груза который вмещает корабль
5; - раса, обычно использующая этот корабль
45000; - количество(крепость) единиц хулла(корпуса)
40; - эффект взрыва корабля (разваливание на части)
41; - эффект взрыва деталек корабля (после разваливания на части)
3; - тип хвоста выхлопа от двигателя
...
после этого параметра идут характеристики вооружения корабля, опишу их подробно.
4; - количество кокпитов (основной кокпит + кокпиты турелей)
1;0;928;3; (для каждого кокпита)
2;1;939;9; (для каждого кокпита)
3;2;939;10; (для каждого кокпита)
4;3;939;14; (для каждого кокпита)
4; - количество турелей (пушки основного кокпита, верхнего, нижнего, заднего кокпитов)
1;2;1;2; (для каждой турели)
* * 1;1;887;1;-1;-1; (для каждого лазера)
* * 2;1;887;2;-1;-1; (для каждого лазера)
3;1;2;1; (для каждой турели)
* * 3;1;944;11;-1;-1; (для каждого лазера)
4;1;3;1; (для каждой турели)
* * 4;1;944;12;-1;-1; (для каждого лазера)
5;2;4;2; (для каждой турели)
* * 5;1;944;15;-1;-1; (для каждого лазера)
* * 6;1;944;16;-1;-1; (для каждого лазера)
Теперь распишу какой параметр за что отвечает
Для каждого кокпита:
1) номер кокпита, прописанный в scene-модели (928_1co, 939_2b, 939_3b, 939_4b)
2) расположение турели (просто перечисление от 0 до ...)
3) модель кокпита (928_1co, 939_2b, 939_3b, 939_4b)
4) номер "P"(Part) прописанный в scene-файле (вы не забыли их записать? :) что-нибудь типа P 10; B xxx; C x; N xxxxxx (если смотреть файл в binary формате, то можно лишь только догадыватся какой номер имеет запчасть... но нам всегда нужна эта информация только из наших собственных .bod файлов, так что это не страшно))
Для каждой турели:
1) порядковый номер первого лазера в турели (минимум 1 максимум 18, важен порядок т.к. это будет отображатся в меню оружия корабля, см. ниже параметр №1 для каждого лазера)
2) количество лазеров в пушке (6 пушек, каждая из них одинарная, поэтому количество лазеров совпадает с кол-вом турелей в параметре №4)
3) какой кокпит контроллирует эти пушки (944_4b, 944_4b01, 887_1b, 887_1bb, 944_3b, 944_2b)
4) количество пушек в турели (у нас 4 турели, в них 2 пушки спереди, 1 вверху, 1 внизу, 2 сзади)
Для каждого лазера:
1) порядковый номер пушки (от 1 до 18)
2) лазеры в пушке (всегда 1. Т.е. даже например лазеры в двойной пушке 107 будут описыватся к примеру так: 1;1;107;1;(111;1;) ** 2;1;107;1;(375;2;))
3) номер модели лазера (944_4b, 944_4b01, 887_1b, 887_1bb, 944_3b, 944_2b)
4) номер "P"(Part) прописанный в scene-файле к (что-нибудь типа P 11; B 944 N 944_2b, или P 16; B 887; C 2; N 887_6xyz и т.п.)
5) модель ствола пушки - если пушка "дёргается" при выстреле, то для одинарной (к примеру модель 106) тут 111, для двойной (к примеру модель 107) 375, иначе -1
6) путь к модели ствола пушки - если пушка "дёргается" при выстреле, то одинарной тут 1, для двойной (модель 107) 2, иначе -1
... после описания пушек идут ещё несколько параметров (были бы важны если бы корабль был как товар на станции)
1; - вес единицы товара(корабля)
100000; - коэффициент (коэффициент * некую константу стоимости = цена корабля)
25; - вариация цены, если товар - первичный ресурс
1; - вариация цены, если товар - вторичный ресурс
0; - класс груза (как товара)
SS_SH_T_M6; - текстовый идентификатор корабля (менять его бесполезно).
возможные типы устанавливаемых пушек для кокпитов
(инфа по числам зашифровки частично взята неделю назад с www.the-commander.com - спасибо иностранным пилотам :))
Простой спобоб зашифровки -
1,2,4, - 1) GIRE A, 2)GIRE B, 3)GIRE G
8,16,32, - 4)PAC A, 5)PAC B, 6)PAC G
64,128,256, - 7)HEPT A, 8)HEPT B, 9)HEPT G
512,1024,2048, - 10)PSG A, 11)PSG B, 12)PSG G
4096,8192,16384, - 13)Mining, 14)Kyon A, 15)Kyon B
32768,65536,131072, - 16)Kyon G, 17)MassDriver, 18)Ion Disruptor
262144,524288,1048576, - 19)PPC A, 20)PPC B, 21)PPC G
2097152,4194304,8388608 - 22)OrbitalLaser, 23)Khaak_Endfight, 24)Repair
То, какие пушки держит кокпит, определяется суммой вот этих вот чисел. (1, 2, 2*2, 2*2*2...)
Например AGIRE, BGIRE, APAC, BPAC, AHEPT, BHEPT, GHEPT, ID = 1+2+8+16+64+128+256+131072.
Простой способ расшифровки -
например так: берём бит-маску (в нашем случае "2020")
1) запускаем калькулятор (пуск->программы->стандартные->калькулятор :)), щёлкаем на опции вид->инженерный, далее пишем цифры 2020 и жмём на опцию bin(binary) (это или в меню "вид", или там где опции hex-шестнадцатиричная, dec-десятичная, oct-восьмиричная системы счисления)
2) полученное число (из "2020" получаем "11111100100") разделяем на группы после каждого третьего знака, начиная с конца, к примеру точками .11.111.100.100
3) пишем части полученной строки в обратном порядке - 100.100.111.11
4) если в последней части не хватает второго или третьего знаков, добавляем недостающие нули в начало .11-.011
5) инвертируем числа в полученных группах 100.100.111.011 - 001.001.111.110
6) теперь видно (посмотрите на таблицу выше), что можно поставить в этот кокпит -
3:GIRE G, 6:PAC G, 7:HEPT A, 8:HEPT B, 9:HEPT G, 10:PSG A, 11:PSG B.
Вот ещё пример: возьмём например телади-М5, бит-маска = "15".
1) 15-1111
2) 1.111
3) 111.1
4) 111.001
5) 111.100 - 1:GIRE A, 2:GIRE B, 3:GIRE G, 4:PAC A.
или из девятого параметра строки 62(61 по программистски :)) файла TCockpits: 438->110110110->110.110.110->011.011.011 - это в точности пушки верхней и нижней турелей Оспрея.
(короче принцип думаю понятен, способ расшифровки можете свой придумать, такой какой вам будет удобнее использовать :))
(кстати, под кораблями может подразумеваться всё - и то что летает, и то что не летает, всё - станции, корабли, космомухи :), всякие там ворота, навигационные буи... фактически кораблями являются даже заряды плазмы выпущенные из пушек :) (хотя они описываются в другом файле и немного не так) но это уже другая история ;))
Полезные ссылки:
"Уголок Dimaxx'а" - тут
X2 BOD viewer - тут
скрипт конвертации bod->max - тут
Modder-kit - тут
|
|
|
Breeze
222 EGP
  Рейтинг канала: 3(30) Репутация: 90 Сообщения: 703 Откуда: Donetsk, Ukraine Зарегистрирован: 05.12.2003
 |
|
Рад что инфа оказалась полезна . Немного обновил текст, добавил и дополнил чуть-чуть (о добавлении своих кораблей в игру и об максимально устанавливаемом оружии).
(Думаю не мешало бы ещё написать о структуре bod файла (ну там координаты, материалы, эффекты и т.п.), и о 44001 из папки t (кажется так), и о других файлах из types связанных с TShips и с кораблями вообще - но это уже надо будет куда-нибудь в другое место вынести)
оказывается, (блин, сам бы никогда не нашёл, спасибо SPeN23 подсказал!), существует сайт http:// urquan.nightmail.ru - а там просто необходимые для моддинга BOD viewer и конвертер BOD->MAX - эх, ну почему такая инфа о таких сайтах так глубоко спрятана в недрах форума?
_________________ 'Слова искажают правду' © |
|
|
Breeze
222 EGP
  Рейтинг канала: 3(30) Репутация: 90 Сообщения: 703 Откуда: Donetsk, Ukraine Зарегистрирован: 05.12.2003
 |
|
хочу сделать справочник по запчастям, ну, более полный чем есть в доках к МоддерКиту (ну там описать модели движков, крыльев, пушек и т.п.) - ни у кого случайно такой БД нет? (чувствую нужно будет писать программку чтобы из bob-ов в cut-е это поизвлекала...)
_________________ 'Слова искажают правду' © |
|
|
Dimaxx
1016 EGP
      Рейтинг канала: 1(5) Репутация: 204 Сообщения: 5811 Откуда: Северодвинск Зарегистрирован: 26.06.2002
 |
|
Насчет макимально кол-ва ракет: это число показывает, скока ракет будет в трюме в стандартной поставке при заказе корабля для НПЦ. Для игрока не имеет смысла.
_________________ "Если мы не покончим с войной, война покончит с нами." Г. Г. Уэллс |
|
|
FlyMan
|
|
Блин! Тему в разряд "Информативных", все вопли о памятниках при жизни и прочем подчистить, и добавить больше информации о 3Д-моделлинге (эту сраную инструкцию, да ещё и на англицком ну не то что влом, а вообще, прочесть не представляется возможным). Кто ЗА?!
|
|
|
Breeze
222 EGP
  Рейтинг канала: 3(30) Репутация: 90 Сообщения: 703 Откуда: Donetsk, Ukraine Зарегистрирован: 05.12.2003
 |
|
FlyMan -
Цитата: |
и добавить больше информации о 3Д-моделлинге
|
- хорошо, а какого рода информацию? В смысле перевести то что там в английской инструкции? Или чего?
_________________ 'Слова искажают правду' © |
|
|
FlyMan
|
|
В смысле на сколько кусков бить модель, куда привязывать начала координат этих кусков, и как потом усё это собирать...
Вот допустим есть модель корпуса одним мешем, пара мешей на двигатели, ну и пяток на всякие надстройки. Ну и? Экспортнул допустим все куски как "body", а чё со "scene" делать? Т.е. я собираю все эти запчасти (меши), фиксирую их в пространстве, обзываю меши так, как описано выше (в соответсвии с названиями моделек, экспортированных в "боди") и экспортирую в "сцен", так? В общем, меши в "сцен" являются этими самыми метками, ага?
|
|
|
Breeze
222 EGP
  Рейтинг канала: 3(30) Репутация: 90 Сообщения: 703 Откуда: Donetsk, Ukraine Зарегистрирован: 05.12.2003
 |
|
FlyMan угу, всё верно (кстати в ходе экспериментов пришёл к выводу что "куски" лучше делать размером не больше 2000-3000 полигонов, иначе оччччь долго грузить будет, хотя на скорость рендеринга конечной модели как таковой это разбиение не влияет - разбивай не разбивай а многополигональная модель по любому тормозить игру будет...)
_________________ 'Слова искажают правду' © |
|
|
xtech
145 EGP
  Репутация: 18 Сообщения: 488
Зарегистрирован: 08.01.2004
 |
|
Вопрос...
А можно ли каким-нибудь образом свой, новый корабль добавить...
Я сколько не смотрел TShips.txt никак не смог добавить еще один без замены одного на другой...
Скажите это возможно???
|
|
|
Champion
146 EGP
  Репутация: 19 Сообщения: 337 Откуда: Саратов Зарегистрирован: 16.04.2004
 |
|
Breeze : |
4) Желательно иметь X2 Object Modder (замечательная программа, спасибо Dimaxx'у за неё)
|
А где ее взять?
_________________ Не всё так просто, как на самом деле... |
|
|
Breeze
222 EGP
  Рейтинг канала: 3(30) Репутация: 90 Сообщения: 703 Откуда: Donetsk, Ukraine Зарегистрирован: 05.12.2003
 |
|
DMC только образом описанным выше, либо дизассемблировать екэешник и найти то место где стоит ограничение в 99
Champion посмотри в Уголке Dimaxx'a - это "редактор параметров кораблей"
Сегодня понял одну простую вещь - терия без примеров - это х**ня , поэтому здесь примеры.
пример 1: как максимально быстро поместить модель в игру (короче "отладка" моделей почти в реалтайм )
(Считаю что всё распаковано, макс работает, короче все дела ) итак
шаг 1: имеем какую-либо модель, в худшем случае это отдельный кусок, в лучшем случае это готовая scene-модель (лучше всего - это когда модель вообще собранная целиком из своих запчастей)
К примеру я скачал мэш из сети , или сделал корабль, но он ещё без всяких мелочей - пушек, выхлопов от двигателей и т.п. - и хочу посмотреть как он просто будет выглядеть в игре - тогда я убираю из этой модели всё лишнее (камеры там, освещение и прочую лабуду), убираю масштабирование (reset x-form), центрирую в 0 по всем осям и экспортирую обработанный на скорую руку мэш в combined режиме например под номером 11001.
шаг 2: В файле Tships у меня заранее заготовлена такая строка для отладки моделей - (строка шестая от начала файла, идентификатор SS_SH_A_M3 - один из многих неиспользуемых в игре)
940;0;0.29999;0.20000;0.50000;10;4751;12000;800;106;1
;4;89;100;168;202;11001;4565;0;0;2;3;0;5;30;20;180;43
0;0;0;0;0;0;0;0;0;0;0;0;0;0;3;9;30000;35;36;1;1;1;0;9
28;11;1;1;0;1;1;1;0;0;0;-1;-1;26;2500;25;1;0;SS_SH_A_M3;
- это "корабль" без пушек, без ничего, (просто втупую содрал с Goner Ship), единственное что имеет важность это параметр со значением 11001 (можете если не в лом выставить номера "P" для кокпита и пушек, и всё остальное , но ИМХО долго - нафиг )
шаг 3: ну и чтобы это дело быстро можно было видеть, надо сделать простейший скрипт добавляющий корабль прямо возле вас, в космос, что-нибудь типа того что я писал на пред. странице -
CurrSect = [PLAYERSHIP] -> get sector
currShip -> get player ship
Cx = [PLAYERSHIP] -> get x position
Cy = [PLAYERSHIP] -> get y position
Cz = [PLAYERSHIP] -> get z position
while currShip -> install 1 units of Transporter device
NewShipType1 = 4 (6 строка)
NewShip = createShip: type NewShipType1 owner = Player addto $CurrSect x=$Cx y=$Cy z=$Cz
end
(можно естественно добавлять хоть на верфь, хоть куда, главное нужный параметр в type подставить,но лучше всего на дистанции не более 5 км чтобы транспортэр девайсом можно было бы себя туда по-быстрому телепортировать)
шаг 4: Копируем экспортированный файл 11001.bod в папку CUT. Для тестовых нужд можно создать карту в редакторе, из одного сектора без ничего, добавить туда солнце например, ещё чего-нибудь и обозвать как нибудь. В игре делаем/запускаем скрипт - вуаля, моделька в игре
Итак, тестовый сектор есть, скрипт есть, всё есть. В дальнейшем единственное что придётся проделывать заново - это экспортировать нужный мэш в 11001. Таким образом я сейчас держу открытым МАХ в одном окне, в другом окне windows commander. Делаю изменения в максе, экспортирую, через десять секунд смотрю изменения в игре
Пример 2: вы хотите опробовать MegaCannon-артиллерию? тогда этот пример для вас
шаг 1: Если хотите просто попробовать как будет выглядеть одновременный залп из сорока орудий то для полной совместимости со строкой которую я приведу ниже, рисуйте в максе в такой последовательности:
0)ставим сначала mainbody 940,
1)потом ставим cockpit 928 (это кусок аргонского М6 без двигателей/без нифига, он так вообще прикольно смотрится )
2,3,4,5...41)ставим одинарные мелкие пушки 106, в количестве сорока штук (больше просто в лом было лепить ), желательно на расстоянии не меньше 5 единиц друг от друга.
шаг 2: Потом экспортируем это дело в scene-bod, называя модель 11001, и в шестой по счёту строке в TShips всовываем такую строку:
940;0;0.29999;0.20000;0.50000;3;4751;12000;800;106;1;
4;89;100;168;202;11001;4513;2020;40;2;3;0;5;30;20;250
0;5000;0;0;0;0;0;0;0;0;0;0;0;0;0;3;9;30000;35;36;1;1;
1;0;928;1;1;1;40;1;40;1;1;106;2;111;1;2;1;106;3;111;1
;3;1;106;4;111;1;4;1;106;5;111;1;5;1;106;6;111;1;6;1;
106;7;111;1;7;1;106;8;111;1;8;1;106;9;111;1;9;1;106;1
0;111;1;10;1;106;11;111;1;11;1;106;12;111;1;12;1;106;
13;111;1;13;1;106;14;111;1;14;1;106;15;111;1;15;1;106
;16;111;1;16;1;106;17;111;1;17;1;106;18;111;1;18;1;10
6;19;111;1;19;1;106;20;111;1;20;1;106;21;111;1;21;1;1
06;22;111;1;22;1;106;23;111;1;23;1;106;24;111;1;24;1;
106;25;111;1;25;1;106;26;111;1;26;1;106;27;111;1;27;1
;106;28;111;1;28;1;106;29;111;1;29;1;106;30;111;1;30;
1;106;31;111;1;31;1;106;32;111;1;32;1;106;33;111;1;33
;1;106;34;111;1;34;1;106;35;111;1;35;1;106;36;111;1;3
6;1;106;37;111;1;37;1;106;38;111;1;38;1;106;39;111;1;
39;1;106;40;111;1;40;1;106;41;111;1;25;2500;30;1;0;SS
_SH_A_M3;
(кстати, довольно трудно было набить эту строку с первого раза без ошибок, даже для сорока пушек, даже используя шаблон Х;1;106;Х+1;111;1; , пришлось мучительно выискивать ошибки и исправлять два раза, так что, если у вас будет например 100 пушек, да ещё в разных кокпитах, то я вам не завидую )
шаг 3 и шаг 4 идентичны тем, что в предидущем примере
Пример 3: корабль с двумя пушками спереди, черырьмя турелями спереди, сзади, справа, слева, в каждой турели по одной пушке.
шаг 1: перво-наперво установите себе X2 model viewer от Dimaxx'a & UrQuan'a - Вещь первой необходимости при моделировании из стандартных запчастей(ссылка на программу на первой странице в конце первого сообщения). В ней определите папку с моделями и папку с текстурами, снимите флажок "исп. цвет материала" и поставьте флажок "текстурирование". Теперь можно в списке справа быстро выбирать и просматривать нужную модель - быстро и удобно.
шаг 2: сделайте модельку в МАХ-е. Делайте что и как хотите, но в итоговой модельке должны присутствовать метки пушек и турельных пушек. В качестве тэстовой сценки я сделал такую:
940mb - mainbody
106_0mw1 (лазер 0-ого(главного) кокпита)
106_0mw2 (лазер 0-ого(главного) кокпита)
939_0 (внешний вид кокпита 0-главный)
939_1 (внешний вид кокпита 1-передний)
939_2 (внешний вид кокпита 2-задний)
939_3 (внешний вид кокпита 3-левый)
939_4 (внешний вид кокпита 4-правый)
944_1 (пукалка турели 1-ого кокпита)
944_2 (пукалка турели 2-ого кокпита)
944_3 (пукалка турели 3-ого кокпита)
944_4 (пукалка турели 4-ого кокпита)
внимание! турель например третьего кокпита (левый кокпит) будет стрелять в радиусе полукруга в направлении левой части корабля, турель второго кокпита будет стрелять только назад корабля, нижняя турель будет стрелять вниз, и т.д. - так что внимательно выставляйте направление пукалок турелей и вообще следите что-бы пушки каждого кокпита были ориентированы именно в том направлении, в котором должны быть пушки этого кокпита, иначе нифига стрелять не будет, или будет стрелять но в очень ограниченном радиусе... короче следите за этим
маркеры 944_х - это орудия турелей, в данном примере в каждый кокпит-турель поставлено по одной пушке. Разработчики рекомендут не более 3-х пушек на кокпит
маркеры 106 - это два лазера для главной кабины
маркеры 939 определяют внешний вид для каждого кокпита
ну и 940 - центр модели
Экспортируйте полученный результат в scene формате, обзывайте как надо (в данном примере название - 11001).
Из экспортированного файла (для его удобного просмотра воспользуйтесь какой-нибудь оболочкой, типа Windows Commander) выпишите описание каждой запчасти (в виде P х; B у; С z; N abcd;), в моей тестовой модели запчасти в таком порядке -
P 0; B 940; N 940mb;
...
P 1; B 944; C 4; N 944_4c;
...
P 2; B 944; C 3; N 944_3c;
P 3; B 944; C 1; N 944_1c;
P 4; B 944; C 2; N 944_2c;
и т.д. Т.е. пушке 944 кокпита 1 будет соответствовать part(запчасть) 3, пушке 944 кокпита 3 будет соответстовавать запчасть 2 и т.д. Кстати, вовсе не обязательно было добавлять вот эти _1, _3 - можно было бы просто сделать три метки с именами 944 подряд - однако при таком подходе легко будет запутатся, поэтому будьте осторожны Главное, что имеет смысл - это параметр P - именно он является определяющим для движка игры. Т.е. например в строке 2;1;106;6;111;1; после 106 идёт номер P - запчасть номер 6 в scene-файле модели, если ошибится в этом номере, будут неприятные глюки
Теперь можно приступать к описанию корабля в TShips.
Шестая строка из TShips(корабль, подтип 4) -
940;0;0.04500;0.04500;0.09999;11;4511;19000;3450;101;
1;4;217;1000;112;247;11001;4513;2020;6;3;3;4;9;10;10;
500;1500;61;1;61;2;61;3;61;4;0;0;0;0;0;4;5;45000;40;4
1;3;5;0;0;939;7;1;1;939;8;2;2;939;9;3;3;939;10;4;4;93
9;11;5;1;2;0;2;1;1;106;5;111;1;2;1;106;6;111;1;3;1;1;
1;3;1;944;3;-1;-1;4;1;2;1;4;1;944;4;-1;-
1;5;1;3;1;5;1;944;1;-1;-1;6;1;4;1;6;1;944;2;-1;-
1;1;100000;25;1;0;SS_SH_A_M3;
выделю описание пушек:
5;
0;0;939;7;
1;1;939;8;
2;2;939;9;
3;3;939;10;
4;4;939;11;
5;
1;2;0;2;
1;1;106;5;111;1;
2;1;106;6;111;1;
3;1;1;1;
3;1;944;3;-1;-1;
4;1;2;1;
4;1;944;4;-1;-1;
5;1;3;1;
5;1;944;1;-1;-1;
6;1;4;1;
6;1;944;2;-1;-1;
для расшифровки можете сопоставить эти данные с форматом строки, описанным на первой странице данной темы.
шаг 3 и 4 идентичны тем что и в первом примере.
(тут можно закачать файлы соотв. этому примеру )
Have fun!
_________________ 'Слова искажают правду' © |
|
|
Champion
146 EGP
  Репутация: 19 Сообщения: 337 Откуда: Саратов Зарегистрирован: 16.04.2004
 |
|
Странно ХР при запуске ObjModderа объявляет об ошибке и просит отправить отчет к такой-то там матери, а прога убивается.
Чего не так то?
_________________ Не всё так просто, как на самом деле... |
|
|
Breeze
222 EGP
  Рейтинг канала: 3(30) Репутация: 90 Сообщения: 703 Откуда: Donetsk, Ukraine Зарегистрирован: 05.12.2003
 |
|
Champion вероятно ты не распаковал игру полностью(т.е. надо распаковывать не только cat/dat но и pck файлы), и не скопировал программу в папку с распакованной игрой.
_________________ 'Слова искажают правду' © |
|
|
FlyMan
|
|
Гут, Breeze.
Кстати, своего добавить можно по прежнему 15-20, так я понимаю? Ну и, забегая далеко вперёд - каким макаром его можно будет увидеть/поюзать в игре? Он будет продаваться на верфи, быть частью чьего-то флота или суждено ему просто болтаться в пространстве, извините, как гав№у в проруби?
По техтурам вопросик. Есть возможность вносить свои техтуры? Или юзать только имеющийся склад (он замечательный конечно, но мля, перерывать восемь сотен, в поиске чего-то подходящего как-то не прельщает)?
На счёт оружия. Новый тип вооружения будет относиться к одному из имеющихся классов или вообще, будет заменять какую-то, из уже имеющихся пушек? Ещё. Может ли сектор обстрела турели быть откорректирован?
З.Ы. Надеюсь, что 18 турелей это всё-таки не предел, а то бортов можно тащить штук 200, а обороняться всего 18-ю пушками... в итоге авианосец, блин какой-то получается, а хотелось бы чего-то более грозного, мдя.
|
|
|
Champion
146 EGP
  Репутация: 19 Сообщения: 337 Откуда: Саратов Зарегистрирован: 16.04.2004
 |
|
В сопроводиловке указано - распакуйте файлы из папки types, что я и сделал, более я все что нашел - распаковал. cat/dat уже давно нет. А оно все не хочет...
_________________ Не всё так просто, как на самом деле... |
|
|
Breeze
222 EGP
  Рейтинг канала: 3(30) Репутация: 90 Сообщения: 703 Откуда: Donetsk, Ukraine Зарегистрирован: 05.12.2003
 |
|
Champion странно, у меня работало в ХР... ... Да чё вообще парится, со всеми вопросами к разработчику можно воззвать прямо тут, и прямо в онлайн!
FlyMan - "своего добавить можно по прежнему 15-20, так я понимаю?" - если обнаружу какой-либо другой доступный способ, сразу сообщу, обещаю (единственный способ сделать это не вламывая код игры, это получить доступ к "компилятору" миссий, а это привилегия разработчиков кажется хотя-бы 5 уровня... а вообще, гы, было бы супер получить доступ к исходникам ... )
"Есть возможность вносить свои техтуры?" - да, можно, рисуешь свою, номером называешь и в соотв. папочку пихаешь (лежат в tex/true)
"На счёт оружия" - да, можно делать полностью и целиком своё.
"Может ли сектор обстрела турели быть откорректирован" - х.з., пока что не интересовался (скорее всего нельзя)
(З.Ы. сорри за несодержательные ответы, я щас бросил с этим разбиратся, хочу для начала хотя-бы поверхностно изучить МАХ, думаю годика через... через полгодика можно будет расширить темку ... хотя кто знает, может кто-нибудь за это время захочет сделать грамотное описалово моделей со стороны 3Д моделирования в МАХ'е? По крайней мере в мои планы входит разобратся с изготовлением полноценных собственных моделей, пусть не сложных, но со "всеми делами" - текстурами, мэшами, "эффектами частиц" или как оно там называется, ну и т.п. Тогда смогу по нормальному описать структуру bod-файлов (я знаю есть люди которые в этом формате разобрались, да только забрасывать их вопросами как-то неудобно )
_________________ 'Слова искажают правду' © |
|
|
Пассажир
|
|
Champion : |
В сопроводиловке указано - распакуйте файлы из папки types, что я и сделал, более я все что нашел - распаковал. cat/dat уже давно нет. А оно все не хочет...
|
У меня тоже самое,что в 98'ых,что в 2k и распаковано тоже всё.
|
|
|
Descendant of shadows
170 EGP
  Репутация: 27 Сообщения: 516 Откуда: Не от мира сего Зарегистрирован: 23.04.2004
 |
|
Breeze !!! Я вот не пойму а зачем ты книжки то купил ??? Ты вроде и так образованный !!!
Или ты углубить знания хотишь ???
Тока жаль что ссылки не работают указанные в начале...
_________________ Не знаешь откуда пришел в жизнь и не знаешь что тебя ждет после ее окончания |
|
|
xtech
145 EGP
  Репутация: 18 Сообщения: 488
Зарегистрирован: 08.01.2004
 |
|
Цитата: |
дизассемблировать екэешник
|
Подскажиите как...
|
|
|
Vitalii
955 EGP
     Рейтинг канала: 1(3) Репутация: 249 Сообщения: 7214 Откуда: Тула Зарегистрирован: 13.08.2002
 |
|
Champion : |
Breeze : |
4) Желательно иметь X2 Object Modder (замечательная программа, спасибо Dimaxx'у за неё)
|
А где ее взять?
|
http://www.elite-games.ru/x2/mapeditor.shtml
_________________ Связь - это как воздух, незаметна, пока не испортишь. |
|
|
|
|
|
Канал X2: The Threat: «Х2-Моддинг» |
|
К списку каналов | Наверх страницы |
Цитата не в тему: Сейчас стал редко играть - Х2 стала скучной, когда перестала тормозить... (Дрег Ден)
|
» Х2-Моддинг | страница 1 |
|