Фсем привет посоны Гайд от х-тендовцев классный. Да вот только на англ...
X3 Terran Conflict / X3 Земной конфликт
 
X3 Terran conflict  
 

На сайте онлайн (человек): 177



 



Фсем привет посоны Гайд от х-тендовцев классный. Да вот только на англ...

Terran Conflict (X3TC) / Форум / Скрипты и моды для X3 Terran Conflict / Создание модели, экспорт в игру и полезные советы.

Создание модели, экспорт в игру и полезные советы.
(http://x3tc.net/x3_forum/?tid=407)
Автор: UncleAlex
(21.02.2011 10:50:21)

Фсем привет посоны
Гайд от х-тендовцев классный. Да вот только на английском, что может доставить некоторые проблемы людям. Посмотрев на все это чудо, я решил написать аналогичный на русском, на тот случай, если какой-нибудь моделлер решит запихнуть свой шип в игру.
Итак, друзья:

ГАЙД ПО УСТАНОВКЕ СВОЕГО КОРАБЛЯ В ИГРУ


Дано:
готовая модель корабля в формате *.bod или *.bob
сцена корабля с пушками, движками и кокпитами в формате *.bod

Инструменты:
Х3Editor (ссыль на 1 странице, я предпочитаю первый)
Wordpad/Notepad (по предпочтению)

Требования:
Хотя бы немного знать что такое Dummies (дамми), Т-Файлы
Капельку логического мышления и находчивости

Цель:
полетать на только что сделанном корабле

Поехали!

Часть 1. Сцена

Как правило после создания сцены ДБокс напичкивает ее абсолютно нефункциональными и ненужными строчками, а также немного подкосячивает существующие. На модель в игре это ни капельки не влияет,  непонятные игре строчки в сцене просто не будут приняты во внимание, но работать с файлом сцены будет гораздо удобнее, если там не будет ненужных нам вещей. Итак, я открываю файл сцены нового шипа Demon'а - альдринский М2 "Предвестник".
 Код:
  1. P 0; B ships/demon/terran/lc_m2; N ships/demon/terran/lc_m2;  // idx 0
  2. { 0x2002;  0; 0; 0;  0.000000; 0.000000; 0.000000; 0.000000;  -1; 1; } // 0
  3. P 1; B lc_m2; N lc_m2;  // idx 1
  4. { 0x2002;  0; 0; 0;  0.000000; 0.000000; 0.000000; 0.000000;  -1; 1; } // 0
  5. P 2; B effects\engines\fx_engine_xtc_orange_big3; C 28673; N Beffects\engines\fx_engine_xtc_orange_big3_verhniy-praviy; b  // idx 2
  6. { 0x2002;  -101349; 38290; -402500;  0.250000; 0.000000; 0.000000; -1.000000;  -1; 1; } // 0
  7. P 3; B effects\engines\fx_engine_xtc_orange_big3; C 28673; N Beffects\engines\fx_engine_xtc_orange_big3_28673b01; b  // idx 3
  8. { 0x2002;  -68878; 38290; -402500;  0.250000; 0.000000; 0.000000; -1.000000;  -1; 1; } // 0
  9. P 4; B effects\engines\fx_engine_xtc_orange_big3; C 28673; N Beffects\engines\fx_engine_xtc_orange_big3_28673b02; b  // idx 4
  10. { 0x2002;  -85287; 29826; -402416;  0.250000; 0.000000; 0.000000; -1.000000;  -1; 1; } // 0
  11. ........
 


Видим - все элементарно. Информация разделена на блоки с порядковыми номерами, т.н. Path Index (цифра после буквы Р). Все номера обязательно должны быть по порядку, начиная с нуля, без пропусков. Перемещать эти куски можно спокойно и без опаски, главное - не забудьте потом поменять номера. Оке, едем дальше. Видим Строчку номер 0 - обычно в нулевой строчке в сцене прописана ссылка на модель корабля. Объекты, ссылки которых указаны в сцене, игра автоматически смотрит в кат/датах в директории Objects, поэтому к примеру 2 строчку он будет искать не так, как написано, а в objects\effects\engines\fx_engine_xtc_orange_big3 - это эффект двигателя из х-тендед. Я один раз запоролся с этим на день - не понимал, почему в итоге ничего из сцены не загружается. Итак, правило номер 1: забудьте об Objects! Всегда будьте аккуратны при написании адреса к объекту!

Далее. Следуя логике, модель корабля (которая прописана тем более два раза, косяк ДБокса) игра будет искать в Objects/lc_m2.bod. Помещать шипы в корневую директорию - не самое лучшее решение, поэтому переписываем первую строчку таким образом:



Заметьте, я также поменял строку справа от буквы N. Это - простое текстовое обозначение элемента, присвоенное в Максе. После буквы N может стоять что угодно, эта информация игре не критична, но по старой эгософтовской традиции я меняю это имя на путь к объекту. Впрочем, для удобства никто не запрещает после нового имени через нижний пробел написать что-нибудь, идентифицирующее этот объект, что будет великим подспорьем при вставке шипа в Х3Эдитор. Например, так:



Очевидно, это - верхний правый двигатель. Особенно это наименование полезно с турелями и кокпитами.
Итак, правило 2: делайте обозначения объектам, чтобы потом различать их!
Есть еще некоторые уловки, но о них позже, да и не критичны они.

Итоги первой части: элементарные понятия о файле сцены, сделанной ДБоксом, получены

Часть 2. Возвращаемся в Макс.

Переключаемся на альдринский М7. Править вручную Сцену - мрак мрачный. Одна только смена номеров чего стоит. ДБокс накосячил - пусть ДБокс и исправляет. А еще лучше - сделать все, что я сейчас опишу, тогда и гемора меньше будет. Итак, мы делали свой шип на основе какой-либо другой сцены (а это само собой проще и понятнее). Представим, что мы Макс и не закрывали и сцену не сохраняли. Кнопкой "H" (английской) вызываем меню выбора по наименованию.



Мотаем до низа. Чтооаа? Что за Cockpit? Что за Laser? Что за Terran_M7? Мдээ, ну ДБокс и накидал нам гадости. Выделяем все строки Cockpit-Laser и Terran_M7 и удаляем эти элементы нафиг.



Затем начинаем заделывать сцену на будущее. В сцене видим три bigturret (2 передних и одну заднюю), но какая из них какая - фиг бы знал. Поэтому исправляем данную ситуацию.



Теперь видим: fr(ont)-ri(ght) - носовая правая, fr(ont)-le(ft) - носовая левая, rear - кормовая, top - верхняя.
Абсолютно аналогично делаем с cameradummy - только обозначения брать такие же: _bridge, _right/left, _top/bottom. Тут все просто.
Ну и наконец - наша модель. Дело в том, что то, что мы вобъем в Name объекта - автоматически пробьется в путь к объекту. Это мы исправим последующим редактированием сцены вручную, но до этого еще надо дойти. Поэтому Name модели изменяем с одинокого lc_m7 на путь к месту, где эта модель будет лежать в игре. У меня в моде, к примеру, это путь objects/ships/demon/terran. Так и пишем (помним что objects мы опускаем?):



Обратите внимание на букву B перед каждым путем и на то, что все слэши направлены в обратную сторону (а не так, как я написал чуть выше). Это должно соблюдаться. На этом манипуляции с Максом заканчиваются. Экспортируем новую сцену, предварительно забэкапив старую (на всякий). Итак, правило 3: Называйте части сцены так, чтобы потом можно было разобраться что есть что не загружая модель по 100500 раз! А также бэкслэши и буква B!

Часть 3. Окончательная правка сцены.


Узрите строчки, подчеркнутые красным. То, о чем я говорил - ДБокс прописывает путь к объекту по его Name. Именно эти окончания, только что подписанные нами, и нужно стереть. Главное - что эти окончания останутся в тексте после буквы N. Чем и занимаемся.

Вот как должны выглядеть строчки объектов после правки. Окей, сцена окончательно готова и имеет красивый, ухоженный и профессиональный вид. Переходим к последней части - вставке этого чуда через Х3Эдитор в игру.

Часть 4. Х3Эдитор

В Эдиторе корабль проще вставить не через добавление новой строки, а правку существующей. Мы работаем с М7, поэтому логично взять строчку какого-нибудь М7 (Цербера, к примеру). В списке кораблей выделяем Цербер -> правый клик -> "Copy" -> "Нет". Корабль скопировался в самый низ списка (это важно - чтобы не сбить все скрипты в игре, они основаны не на строчках кораблей а на их порядковых номерах). Содержимое вкладок переводить нет смысла, на эту тему есть подробный пост. Мы же займемся нужными нам вкладками Cockpits(turrets) и Guns.
Кокпиты - это те камеры, из которых мы смотрим при ручном управлении кораблем и турелями. Если мы говорим о турелся, то один из параметров кокпита еще и определяет те орудия, которые можно в эти турели установить. Итак, что мы делаем со скопированной строчкой Цербера:
1) После редактирования ТТХ в предыдущих вкладках подошли к вкладке Кокпитс. Выделив турели начиная с последней планомерно удаляем их по одной кнопкой Remove Turrets



2) Удаляем все кроме первой. Это - мостик, кокпит из которого мы управляем кораблем вручную. Открываем файл сцены. Помните, что мы переименовывали элементы а затем правили еще раз? Именно для этого.




Пунктом номер 5 в сцене идет cameradummy_bridge. Это - мостик, который нам и нужен. Возвращаемся в эдитор и вместо 8 ставим 5. Это - путь к кокпиту, который Х3Эдитор найдет по номеру информационного блока. В кокпите кроме body_id и номера блока больше ничего прописывать не надо. Дальше пойдет интереснее: турели. Здесь все просто, даже объяснять не надо, я просто покажу картинку. Итак, нажимаем "Add turret", появится такое окошко:

Что же с цифрами 1 и 2. Поле 1 определяет, какие орудия можно установить в турель. Наименования идут таким образом:
SS_COCKPIT_[раса]_[позиция]_[класс]
К примеру если вы выберете SS_COCKPIT_B_RILE_M2, то это будет означать, что в кокпит можно установить такие же орудия, что и в боковые [RIght-LEft] орудия боронского [Boron] эсминца [M2]. Второе поле определяет фактическую позицию этого кокпита по отношению к кораблю: будет ли это носовая батарея, боковые орудия или же верхние-нижние зенитки. Но на самом деле это лишь обозначение, ни на что не влияющее, но позволяющее моддеру лучше ориентироваться что это за турель.

Итак, с кокпитами закончили: у нашего альдринского фрегата две курсовые турели (которые имеют разные кокпиты, т.е. могут стрелять по разным целям), одна задняя турель и одна верхняя зенитка. Кокпиты обозначены. Переходим ко вкладке Guns, то есть к самим орудиям.
Видим, что услужливый эдитор уже создал для нас строчки орудий, соответствующие кокпитам. Нам остается их лишь заполнить. Начинаем с мостика.

Так как мы взяли Цербер, у которого есть носовые орудия, то и сюда они перенеслись. Нам же лучше - у нашего М7 тоже есть носовые пушки, и их тоже 8. Да вот только в сцене они под другими номерами... Ничего, правим вручную! Двойной щелчок на орудии, затем меняем Path Index на новые.

Вы можете спросить, а что это там за Secondary Body? Сейчас этим и займемся. С Invisible_weapon все просто - это невидимая точка пространства, откуда вылетает снаряд. Но ведь есть и орудия с откатом (Тяж.Кентавр), и двуствольные турели (бигшипы) и даже орудие гаттлинга! Что делать с этим? Именно для таких случаем и придумана строчка Secondary body. Как она работает и что с ней делать я не разбирался, я просто копировал нужное из кораблей, где вся эта конструкция уже используется.

Во всех остальных кокпитах у нас двуствольные турели. Сейчас мы заставим их работать нормально. Начнем с передних bigturret.
Выделяем следующую строчку, которая front. Нажимаем "Add gun". Из файла сцены нам понадобится лишь path index этой bigturret. Все остальные знания, как заполнить турель, мы берем из... Колосса к примеру.

Нас интересует эта конструкция. Видите, для каждого ствола этой турели прописан отдельный путь. Что ж, делаем также и не парим мозг. просто переносим всю инфу за исключением path index - он в обоих строчках должен быть 15

Вуаля, у нашего шипа полностью рабочая турель. Повторяем то же самое со второй передней и кормовой. С верхней будет по-другому, она у нас не bigturret а m7turret_dummy. Этого ствола нет в ванильной игре, это турель из х-тендед. Но суть та же - смотрим корабль с такой турелью, копируем всю инфу, но path index вставляем свой. После нескольких манипуляций имеем полностью рабочие пушки.
Итак, у нас есть полностью рабочие кокпиты и полностью рабочие пушки. Радуемся!

Вкладка Front lasers нужна только тогда, когда у нас есть пушки в мостике, как у истребителей и даже у некоторых м6/7, например Кентавра или Цербера. Оружия, которые слева, могут быть использованы при стрельбе с кокпита. Аналогично и следующая вкладка Missiles.
Вот, вроде, и все. Жду вопросов/замечаний
PS искренне прошу прощения, что порвал страницу. Три дня делалэтот гайд и картинки и нет никакого желания все перефотывать=(

дерево темы → Создание модели, экспорт в игру и полезные советы. Создание модели, экспорт в игру и полезные советы. »
Список игр