Сообщество Империал: Добавление нового юнита в Rome Total War - Моддинг юнитов в Rome: Total War - Моддинг Rome: Total War - Библиотека - Сообщество Империал

  • Поиск
  • Законы
  • Сообщество
  • Репутация
  • Экономика
  • Больше

Информация об авторе

  • Автор: VIR

Информация по статье

  • Добавлено: 07 Июн 2013, 01:37
  • Просмотры: 7138

Дополнительно

Репутация: 0
Добавление нового юнита в Rome Total War

Описание: Добавление нового юнита в Rome Total War

Добавление нового юнита в Rome Total War


Добавление новых юнитов, инструкция для начинающих.

Шаг Первый - добавление нового входа в export_descr_unit

Итак мы добавим нового юнита для Греков который называется Athenian Marine Archer (Афинский морской лучник)
Модель Athenian Marine Archer вы можете скачать проследовав по этой ссылке:
http://imtw.ru/topic...t__60#entry5118

Athenian Marine Archer 
Поскольку мы создаем Athenian Marine Archer самостоятельно, мы не будем переделовать других юнитов, таким образом мы должны сделать наше собственное. Я не хочу, чтобы Athenian Marine Archer очень отличались от других лучников и таким образом я собираюсь моделировать их на Римских лучниках Roman Archers.

Вот - существующий вход для римских лучников.


type roman archer
dictionary roman_archer ; Roman Archers
category infantry
class missile
voice_type Light_1
soldier roman_archer, 40, 0, 0.8
attributes sea_faring, hide_forest, can_sap
formation 1.6, 2, 3.2, 4, 3, square
stat_health 1, 0
stat_pri 7, 1, arrow, 120, 30, missile, archery, piercing, none, 25 ,1
stat_pri_attr no
stat_sec 3, 1, no, 0, 0, melee, simple, piercing, knife, 25 ,1
stat_sec_attr no
stat_pri_armour 0, 2, 0, flesh
stat_sec_armour 0, 0, flesh
stat_heat 1
stat_ground 2, 0, 3, 0
stat_mental 4, normal, untrained
stat_charge_dist 30
stat_fire_delay 0
stat_food 60, 300
stat_cost 1, 190, 170, 20, 30, 190
ownership romans_julii,romans_brutii,romans_scipii,romans_senate


Находим в export_descr_unit данную надпись и копируем ее в самый низ файла (для простаты) Затем мы должны изменить несколько линий.
Сначала: линия типа (первая линия)

type roman archer

Это название используется игрой в целях вербовки и другими способами. Никакие две единицы в файле не могут иметь то же самое название типа, таким образом я изменяю это соответственно.

type greek athenian marine archer

Во второй: линия названия

dictionary roman_archer ; Roman Archers

Линия названия используется, чтобы сослаться на описание единицы, а также название единицы (о чем позже). Я хочу получить различное описание и название единицы, таким образом я изменю эту линию на следующее:

dictionary greek_athenian_marine_archer ; Athenian Marine Archer 

в линии название используется, чтобы прокомментировать секцию, как только игра достигает точки с запятой, она прекратит читать ту линию и пропустит к следующему. Название " Roman Archers " там не используется игрой, это только для разработчиков, чтобы держать след, какой вход принадлежит для какой единицы. Таким образом мы оставляем это в покое.

В третей: линия юнита

soldier roman_archer, 40, 0, 0.8

Эта линия говорит игре какой вход искать в другом файле, названном descr_model_battle, также находящейся в папке Data. Тот файл диктует, какую модель, единица будет использовать и какая структура будет это носить. Поскольку у нас нет новой модели для нашей единицы, мы используем существующий и таким образом изменяем только название еденици, а цифры оставляем неизменными.

soldier greek_athenian_marine_archer, 40, 0, 0.8

Четвертая линия: линия собственности

ownership romans_julii,romans_brutii,romans_scipii,romans_senate

Эта линия говорит игре, какими фракциями единица может использоваться в сражениях, могут ли это быть наняты фракцией в кампании, это также диктует, применяются (подкупаються) ли единица другой стороной и какой, когда их подкупают или расформировывают. Поскольку эта единица должна принадлежать Грекам, мы изменяем это на следующее:

ownership greek_cities

Я хочу сделать моих лучников немного отличными от римских лучников, для этого я изменяю еще ряд параметров. Полную рассшифравку всех параметров смотрите в конце данной инструкции! Наконец мы получаем следующий продукт:

type greek athenian marine archer
dictionary greek_athenian_marine_archer ; Athenian Marine Archer 
category infantry
class missile
voice_type Heavy_1
soldier greek_athenian_marine_archer, 40, 0, 0.8
attributes sea_faring, hide_forest, can_sap, hardy
formation 1.6, 2, 3.2, 4, 3, square
stat_health 1, 0
stat_pri 7, 1, arrow, 120, 30, missile, archery, piercing, none, 25 ,1
stat_pri_attr no
stat_sec 7, 3, no, 0, 0, melee, simple, piercing, sword, 25 ,1
stat_sec_attr no
stat_pri_armour 9, 7, 0, metal
stat_sec_armour 0, 0, flesh
stat_heat 4
stat_ground 2, 0, 0, 0
stat_mental 8, normal, highly_trained
stat_charge_dist 30
stat_fire_delay 0
stat_food 60, 300
stat_cost 1, 640, 210, 70, 100, 640
ownership greek_cities


Шаг Второй - добавление нового описания единицы

Наша новая единица нуждаются в новом описании, потому что она имеет новую линию названия. Для этого нам потребуется два файла: export_descr_unit_enums и export_units последний вы можете найти в папке text в пределах папки Data.

Итак, открываем фаил export_descr_unit_enums и добавляем в основании следующию запись: 

greek_athenian_marine_archer  
greek_athenian_marine_archer_descr
greek_athenian_marine_archer_descr_short


Теперь мы должны добавить текст, который будет отабражен в игре. Для этого мв открываем text\export_units и добовляем следующею запись в основании:

?----------------
 
{ greek_athenian_marine_archer} Афинский морской лучник
 
{ greek_athenian_marine_archer_descr}.Лучники бла-бла-бла\n\Эти бла-бла-бла.\n\nЭти бла-бла-бла.
 
{ greek_athenian_marine_archer_descr_short} бла-бла-бла.
Вместо моих "бла-бла-бла" вы можете писть все что вам заблогарасудиться!

Единственное различие между _descr и _descr_short описаниями - то, что они используются в различных пунктах в игре.

Шаг Три - добавление новой модели и структуры (шкурка) в descr_model_battle

Я упоминал descr_model_battle выше, на это ссылалась линия юнита в export_descr_unit входе.

Athenian Marine Archer используют полностью новую модель. В descr_model_battle входе мы снова припишем файлы новой модели у основания.

type greek_athenian_marine_archer
skeleton fs_archer, fs_dagger
indiv_range 40
texture greek_cities, data/models_unit/textures/UNIT_GREEK_ATHENIAN_MARINE_ARCHER.TGA
model_flexi data/models_unit/unit_greek_athenian_marine_archer_high.CAS, 15
model_flexi data/models_unit/unit_greek_athenian_marine_archer_medium.CAS, 30
model_flexi data/models_unit/unit_greek_athenian_marine_archer_low.CAS, 40
model_flexi data/models_unit/unit_greek_athenian_marine_archer_lowest.CAS, max
model_sprite greek_cities, 60.0, data/sprites/greek_cities_greek_athenian_marine_archer_sprite.spr
model_tri 400, 0.5f, 0.5f, 0.5f

К сожалению, этим все не заканчивается, поскольку этот вход ссылается на несколько файлов, которые не существуют еще в игре. Файлы, в которых мы нуждаемся - можно взять по указанной мной сылке в самом начале инструкции.

Если вы смотрите на названия файла, вы можете видеть, чему они соответствуют. Корни, куда файлы должны быть помещены, перечислены в descr_model_battle входе, но мы пройдем их по одному:
 
Сначала добавление модели:

Модель - 3-ья основа юнита, отчасти как статуя. Структура - 2-ое изображение, которое обернуто вокруг солдата и обеспечивает цвета и детали. Если модель - шасси, то структура - работа краски.

Вы можете это видеть выше следующих линий

model_flexi data/models_unit/unit_greek_athenian_marine_archer_high.CAS, 15
model_flexi data/models_unit/unit_greek_athenian_marine_archer_medium.CAS, 30
model_flexi data/models_unit/unit_greek_athenian_marine_archer_low.CAS, 40
model_flexi data/models_unit/unit_greek_athenian_marine_archer_lowest.CAS, max

Каждый .cas файл - модель солдата, используемого для нашей единицы, различные версии - та же самая модель в различных степенях детализации. 

Маленькое отступление: в некоторых моделях используется только один .cas файл для отражения степеней детализации. Обычно их используется 4-е .cas файла, для отображения степеней детализации. При добавлении других моделей учтите данную особенность!

Мы следуем за за надписью созданой в descr_model_battle входе, и мы добавляем .cas из нашего архива в папку data\models_unit\

Вы найдете там уже довольно много других .cas файлов, фактически все .cas файлы модели используемые игрой.

На дальних расстояниях это обменивается от 3Д модели до 2Д спрайта. Модель спрайта прописывается в последней строчке:

data/sprites/greek_cities_greek_athenian_marine_archer_sprite. spr
model_tri 400, 0.5f, 0.5f, 0.5f

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

Во вторых: добавление структуры (шкурки)

Это - линия структуры(шкурки)

texture greek_cities, data/models_unit/textures/UNIT_GREEK_ATHENIAN_MARINE_ARCHER.TGA
Это выглядит подобно образцовой линии, главное различие - то, что на фракцию (greek_cities) имеется ссылка. Чтобы сыкономить место, использование CA различные структуры на той же самой модели, чтобы получить различной единицы.

Хороший пример для этого - римские войска у различных семей, velites различных семьях использована та же самая модель, потому что все они имеют одинаковую форму. Они действительно носят различные цвета и таким образом вы найдете, что они ссылаются на различную структуру(шкурки) для различных фракций. 

Итак, мы добавляем добавляем файл с расширением .tga.dds, из нашего архива в папку data\models_unit\textures.

Файлы, в которых мы нуждаемся в этом случае, - .tga.dds файлы. .dds расширение только показывает, что файл был сжат в определенной манере, это - действительно .tga файл.

Вы заметите, что папка структур пуста. Потому-что, в отличие от .cas файлов файлы структуры(шкурки), что используются игрой, все скрыты в пределах .pak файлов в пределах папки Data. Поскольку мы добавляем новую структуру(шкурки), мы не должны волноваться о них, мы только что добавили новые структуры(шкурки), в data\models_unit\textures.

После этого шага вы можете видеть и использовать ваших юнитов (пока в виде серого крестьянина) в пользовательской битве!

Шаг Пятый - создание дерева юнитов для компании (после этого они становяться доступными для вербовки в основной кампании)

Чтобы сделать это, мы должны редактировать файл, названный export_descr_buildings.txt

Athenian Marine Archer 
В том файле, вы найдете все здания, которые могут быть построены, в данном случае для нашей цели нужны военные здания, а точнее здания для создания лучников. Я хочу, чтобы Athenian Marine Archer были доступны для найма точно так же как нормальные обычные юниты, таким образом мы должны найти их линию и дублировать это:

recruit "greek peltast" 0 requires factions { greek, }

и переделать это в селдуещего вида строку:

recruit " greek athenian marine archer " 0 requires factions { greek, }

Единственное изменение, которое мы должены сделать, - это название, которое мы добавляем в список наима в файле export_descr_buildings.txt.

Итак добавляем нашу строчку в списак нанимаемых юнитов в строении называемом building missiles. В итого мы получим список следующего вида:

building missiles
{
  levels practice_field archery_range catapult_range siege_engineer 
  {
  practice_field requires factions { barbarian, carthaginian, eastern, parthia, egyptian, greek, roman, } 
  {
  capability
  {
  recruit "carthaginian peltast" 0 requires factions { spain, } 
  recruit "barb peltast gaul" 0 requires factions { gauls, } 
  recruit "barb peltast german" 0 requires factions { germans, } 
  recruit "barb slinger briton" 0 requires factions { britons, } 
  recruit "barb archer dacian" 0 requires factions { dacia, } 
  recruit "barb archer scythian" 0 requires factions { scythia, } 
  recruit "carthaginian peltast" 0 requires factions { carthage, } 
  recruit "carthaginian archer" 0 requires factions { numidia, } 
  recruit "east peltast" 0 requires factions { armenia, pontus, } 
  recruit "east slinger" 0 requires factions { parthia, } 
  recruit "egyptian peltast" 0 requires factions { egyptian, } 
  recruit "egyptian slingers" 0 requires factions { egyptian, } 
  recruit "greek peltast" 0 requires factions { greek, } 
  recruit " greek athenian marine archer " 0 requires factions { greek, }
  recruit "roman velite" 0 requires factions { roman, } and not marian_reforms 
  recruit "roman light infantry auxillia" 0 requires factions { roman, } and marian_reforms 
  }
  construction 3 
  cost 1200 
  settlement_min large_town
  upgrades
  {
  archery_range
  }
  }

Чтобы наш юнит был доступен для найма во всех последующих, более высогого уровня зданиях, мы просто должны добавить эту строчку во все последующие уровни этого здания!

Итак, Поздравляю!!! Мы получили новую модель воина для игры! Теперь мы можем нанимать ее в основной кампании как и все другие юниты!

Еще одна маленькое неудобства которое остаеться - это то, что при выборе нашего нового юнита мы видим серого крестьянина. Это не страшно. Главное мы получили нашу модель в игре. 

О создании карты юнита (о замене серого крестьянина на нормальную картинку) поговорим в другом туторе, надеюсь в начале матра его выложить! 



Все вопросы по данному материалу, задавайте здесь - Моддинг и Тюнинг для RTW


Эта статья впервые опубликована на Сайте Империал 02.07.2009.

Copyright © «Империал». Копирование информации с этой страницы возможно только при указании прямых ссылок на эту страницу.




      Стиль:
        08 Дек 2016, 17:09
    © 2016 «Империал». Условия предоставления. Ответственность сторон. Рекрутинг на Империале. Лицензия зарегистрирована на: «Империал». Счётчики