3 страница
direct_spawn_ext — ветка, позволяющая юниту
мгновенно создавать сквад на поле боя.
button_texture — ссылка
на иконку создаваемого сквада.
health_cost_fraction_of_base
— определяет часть отнимаемого у создателя здоровья. Указывается в виде
десятичной дроби меньше единицы. Если указано 0.3, значит отнимется примерно
треть жизни.
min_health_fraction_required
— необходимое количество жизни для сознания сквада. Указывается так же. Если
стоит 0.3, то при 30 процентах жизни спавнить сквад нельзя, нужно подлечиться.
rally_point — определяет,
будет ли точка сбора у создаваемых сквадов.
recharge_period — время
перезарядки способности в секундах.
spawned_entity — базовый
юнит создаваемого сквада.
spawned_squad — сквад,
который будет создаваться.
entity_blueprint_ext — ветка визуализации юнита.
Параметр animator
отвечает за модельку юнита.
scale_x,
scale_y,
scale_z —
определяют размеры юнита в пространстве. Для здания определяют полупрозрачный
параллелепипед, необходимый для строительства.
harvest_ext — очень интересная, но полностью
бесполезная нам ветка, отвечающая за сбор тел Tomb Spyder'ом некронов.
Там несложные параметры, все
интуитивно понятно: сколько, на каком расстоянии собирать и кого при этом
производить за какое количество тел.
health_ext — ветка параметров здоровья юнита.
Параметр armour
определяет броню юнита и используется при расчете повреждений.
can_be_repaired
— может ли юнит быть отремонтирован. Как правило, технику ремонтируют, а пехоту
— нет.
hitpoints
— количество HP у юнита. Чем больше, тем жирнее юнит.
invulnerable
— фактическое бессмертие юнита или здания. Внимание, такой юнит нельзя
уничтожить даже кнопкой Delete!
max_repairers —
максимальное количество ремонтников, которые могу чинить юнит.
morale_death —
минимальное значение морали юнита, при котором он теряет боевой дух и начинает
по-маленькому в штаны ходить, иначе говоря, ссаться, по-научному — энурез :)
regeneration_rate — скорость регенерации.
Пехота обычно регенерирует, техника — нет.
Отрицательное значение
заставляет юнит терять здоровье.
regeneration_decrease_in_combat — понижение регенерации во время боя.
Отрицательное значение повышает регенерацию во время боя.
Остальные параметры определяют
воскрешение юнитов, нам не очень интересны.
modifier_apply_ext — таблица модификаторов,
вступающих в действие при постройке юнита или здания.
moving_ext — ветка параметров движения юнита.
rotation_rate — отвечает
за скорость вращения юнита. У большинства пехотных юнитов вращение мгновенное,
толстый кнарлок у Тау топчется полчаса.
speed_max — скорость
передвижения, тут все ясно.
turning_behavior_template
— тип шасси, если так можно выразиться. Влияет на тип перемешения.
Бывает infantry
(пехота), squiggoth (монстры), hovercraft (воздушная подушка),
default (стандартный, у огромного количества юнитов), walker
(шагающие боевые машины), tank (танки и бэтры).
Влияет на скорость преодоления
дифтеррейна (труднопроходимых участков типа воронок), возможность использования
укрытий.
repair_ext — дает возможность ремонтировать все
доступные для ремонта объекты.
requirement_ext — условия для возможности
производства юнита или здания.
sight_ext — зрительные способности юнита.
sight_radius
— дальность обзора обычных объектов.
keen_sight_radius
— дальность обнаружения невидимых объектов. В этом случае говорят, что юнит
является детектором.
special_attack_physics_ext — ветка массы юнита,
определяющая подверженность разбрасывающим видам воздействия.
mass — масса юнита. Чем
тяжелее, тем лучше. Не влияет на скорость.
get_up_time — время, за
которое юнит поднимается после падения в секундах.
type_ext — ветка бронирования юнита.
type_armour
— первичный тип брони юнита.
type_armour_2
— тип брони, используемый при апгрейде всей брони (у Тау, например).
Всего есть следующие типы
брони:
tp_infantry_med, tp_infantry_high, tp_infantry_heavy_med, tp_infantry_heavy_high
— пехота;
tp_vehicle_low, tp_vehicle_med, tp_vehicle_high — техника;
tp_monster_med, tp_monster_high — демоны;
tp_commander
— командирская;
tp_building_low, tp_building_med, tp_building_high — здания.
Броня — исключительно важный
параметр. Боевая система устроена так, что у каждого типа оружия своя пробивная
способность против каждого типа брони.
Можно ставить тысячи хитпоинтов
для tp_infantry_med,
но они все равно будут дохнуть как мухи.
Именно так реализована
различная эффективность оружия против разных юнитов.
ui_ext — ветка отображения юнита на интерфейсе игры.
speech_directory —
определяет озвучку юнита. Если мы добавляем сквад-лидера в отряд, то его озвучка
имеет приоритет надо озвучкой базового юнита.
ui_hotkey_name —
определяет позиционирование иконки юнита. Если место занято, игра ищет
следующее свободное место. Нумерация идет слева сверху, тремя строками по четыре
иконки (первая строка 1—4; вторая 5—8; третья 9—12).
Специфическиепараметры зданий
deep_strike_ext — определяет возможность диспстрайка
(десантирования) отрядов.
area_effect — когда такая
дура сверху падает, всякое может произойти. Вот здесь мы и описываем, что будет
происходить. Полностью аналогично параметру оружия.
deep_strike_object_name
— вариант десантной капсулы.
delay
— задержка перед десантом в секундах.
research_ext — определяет доступные в здании
исследования.
research_limit —
предельное количество исследований, которое можно сделать.
research_table — таблица
доступных исследований.
Список всех возможных
исследований прописан в attrib\research.
spawner_ext
— дает возможность производить сквады. Можно прикрутить такую возможность и
юниту, но обычно речь идет о здании.
can_rally_point —
определяет наличие точки сбора.
spawner_space_offset_for_new_unit_position
— смещение пространственных координат произведенного юнита относительно
здания.
squad_table — таблица
доступных для производства сквадов.
squad_hold_ext — дает возможность сажать отряды в
здания (взгляни на большинство зданий имперской гвардии).
acceptable_type_x — тип
сквада, доступного для посадки. Совпадает с типом отряда, доступного для
транспортировки в технике, и описанного в squad_transportable_ext у
сквада.
Полный список возможных типов
доступен в attrib\ type_transportable.
holds_produced_squads —
определяет, будет ли произведенный в здании сквад автоматически в него посажен,
или сквад будет выплюнут на поверхность.
modifiers_no_squads,
modifiers_squad_x
— определяют модификаторы, изменяющиеся при нахождении в здании сквадов.
Гвардейским зданиям щедро выдается оружие при нахождении в нем защитников.
Рекомендую обратить на данные ветки самое пристально внимание.
nr_available_spots —
количество доступных слотов.
underground_tunnel — есть
ли подземные переходы, позволяющие юнитам перемещаться внутри по зданиям.
unload_delay — задержка
при перемещении по тоннелям.
structure_buildable_ext
— описывает некоторые мелочи.
build_menu_priority
— позиционирование иконки здания при строительстве.
power_gift, requisition_gift
— бонус энергии/влияния после строительства здания.
return_power_percent,
return_requisition_percent
— какую часть средств на строительство игра вернет при уничтожении кнопкой
delete после строительства.
return_power_unbuilt_percent,
return_requisition_unbuilt_percent
— какую часть средств на строительство игра вернет при уничтожении кнопкой
delete, если здание было недостроенным.
structure_ext — описывает влияние на возможность
застройки.
control_structure_is —
является ли зданием, вокруг которого возможна застройка.
control_structure_radius
— радиус возможной застройки.
control_structure_use
— требуется ли для постройки данного здания контролируемая территория.
Модификаторы
— Видишь модификатор?
— Нет.
— И я не вижу. А он есть…
Пожалуй, модификаторы — наиболее интересный и сложный
раздел непосредственного редактирования ветки attrib. Модификаторы — это
те невидимые нити, благодаря которым мы можем менять свойства объектов прямо во
время игрового процесса.
Чтобы сразу включиться в процесс, найдем у Тау в юнитах
pathfinder'a. Как ты помнишь, у него оружие имеет свойство замедлять
противника. Сейчас мы разберемся как в полевых условиях разгадать секрет работы
винтовки Следопыта. В файле tau_pathfinder.rgd
в ветке combat_ext\hardpoints\hardpoint_01\weapon_table\weapon_01
находим оружие юнита под названием tau_pulse_rifle_pathfinder.
Теперь в attrib\weapons
находим tau_pulse_rifle_pathfinder.rgd.
Залезаем в него и в ветке area_effect\weapon_damage
находим подветку modifiers. Вот они, родимые — модификаторы.
Щелкаем в первом же модификаторе modifier_01, где
видим некий modifiers\speed_maximum_modifier.
Как нетрудно догадаться, модификатор влияет на максимальную
скорость юнита.
В ветке modifier_01 сразу обрати внимание на
параметр max_lifetime — он определяет время действия модификатора в
секундах. В нашем случае действие будет длиться 2.5 секунды.
На подветку modifier
обратим самое пристальное внимание:
Сразу смотрим на Reference, где указан исходный
модификатор. Все модификаторы игры хранятся в attrib\modifiers,
если понадобится сделать что-то специфическое можно попробовать поискать именно
там.
Следующая строка application_type определяет объект,
к которому будет применен модификатор. Бывают следующие полезные варианты:
tp_mod_apply_to_squad
— к скваду. Эффект распространяется на весь
отряд.
tp_mod_apply_to_entity
— к сущности. То есть к одиночному объекту (здание, юнит).
tp_mod_apply_to_player
— к игроку. Например, модификаторы, изменяющие приток ресурсов.
Полный список находится в ветке игры
attrib\type_modifierapplicationtype.
Исключительно важный параметр usage_type определяет
способ работы модификатора:
tp_mod_usage_enable — модификатор включает или
выключает что-то.
tp_mod_usage_multiplication — изменяет определенное
численное значение (у нас — скорость).
Полный список находится в ветке игры
attrib\type_modifierusagetype.
И, наконец, параметр value определяет численное
значение изменяемого параметра. В нашем случае винтовка пасфайндера снижает
скорость передвижения на 8 процентов от исходной (умножает 1 на 0.92).
Абилки
Как уже сообщалось ранее, абилки — особые способности
юнитов.
Подразделяются на активные и пассивные, отличаются по
способу применения (не себя, на врага, на поверхность).
Все абилки находятся в ветке attrib\abilities, в
файле юнита прописываются в ability_ext\abilities.
Сразу попробуем сделать что-нибудь простенькое,
одновременно пояснив некоторые моменты.
Редактировать будем осколочные гранаты тактикалов.
Находим юнита тактикалов — space_marine_tactical_bolter.rgd,
у него в абилках находим abilities\marines_frag_grenades.
Соответственно пулей летим в abilities, где лежит
marines_frag_grenades.rgd.
Параметры абилки
activation — тип активации абилки. Бывают всякие
разные:
tp_ability_activation_always_on — работает постоянно, подходит для пассивных
абилок.
tp_ability_activation_targeted
— работает по указанной мишени (наш случай).
tp_ability_activation_toggled
— переключается в режимы вкл/выкл.
area_effect
— определяет воздействие на цель. Все полностью аналогично оружию.
В нашем случае рекомендую обратить внимание на то, что
граната имеет радиус действия, небольшой разбрасывающий эффект, типы поражаемой
брони ограничиваются пехотой (остальные просто отсутствуют, то есть получают
min_damage_value
повреждений), фильтр настроен на врагов.
caster_damage
— определяет какой вред будет нанесен кастующему абилку юниту.
child_ability_name
— дочерняя абилка. Ты наверняка обращал внимание на Орбитальную
бомбардировку ФК и на возможность выпустить весь боезапас у Скайрея Тау. Так
вот, многочисленные, повторяющиеся с незначительным изменением параметров абилки
реализованы именно с помощью серии дочерних абилок.
Механизм несложный. Самая первая (родительская) абилка
определяет для следующих, например, точку на поверхности. Дочерние абилки
ориентируются по этой точке и с некоторым случайным разбросом. При этом каждая
последующая абилка имеет свою дочернюю абилку, организуя тем самым череду
событий.
child_activation_percent — вероятность активации
дочерней абилки (1 = 100%).
duration_time — определяет длительность воздействия
абилки.
fire_cost — стоимость применения абилки.
initial_delay_time — время подготовки к применению
абилки.
range — дальность действия
способности.
recharge_time — время перезарядки способности.
recharge_timer_global — глобальность перезарядки.
Например, ФК (форс коммандер) имеет способность орбитальной бомбардировки, но
время перезарядки у нее больше, чем время строительства ФК. Если ФК применит
абилку, а потом умрет, новый ФК не сможет применить абилку, пока она не
перезарядится. Если есть возможность строить несколько юнитов, имеющих подобную
абилку, то применить ее сможет только один — остальные будут ждать, пока она
перезарядится.
requirements — условия
доступности абилки.
target_ground
— работает по поверхности.
target_leader_in_squad — действует на командира
отряда (не обязательно сквад-лидера, может быть прикрепленный). Если командира
нет — целью становится любой юнит.
target_self — применяется на себя.
Теперь что касается внешнего вида всего нашего хозяйства на
панели инструментов. Как и везде, ветки и параметры, включающие UI, так или
иначе определяют визуализацию. Все вроде бы наглядно.
Начнем с абилок.
Параметр ui_ext\ui_info\icon_name
определяет иконку способности на панели.
Если в параметре activation
стоит tp_ability_activation_always_on,
то иконка не отображается, ибо способность пассивная. Капеллан имеет лечащую
ауру, но кроме как в текстовом описании это нигде не указано.
Если в параметре activation
стоит tp_ability_activation_targeted,
то иконка должна находится в папке Data\art\ui\ingame\tau_icons —
активная иконка, в Data\art\ui\ingame_disabled\tau_icons — неактивная
иконка.
Значению tau_icons/tau_skyray_missile_barrage_icon
в поле icon_name
соответствует файл tau_skyray_missile_barrage_icon.tga
в папках активных и неактивных иконок.
Если в параметре activation
стоит tp_ability_activation_toggled,
то а папках иконок должно находиться по два файла с постфиксами _on и
_off в имени.
Рассмотрим на примере способности «Рабский труд» у раба
Хаоса.
Активные иконки: forcedlabor_icon_on.tga,
forcedlabor_icon_off.tga
Неактивные иконки: forcedlabor_icon_on.tga,
forcedlabor_icon_off.tga
ui_index_hint — определяет место иконки на панели,
как и у юнитов.
Теперь о юнитах, сквадах и зданиях.
Иконки юнитов, сквадов и зданий хранятся в тех же папках,
что и все остальные иконки. Они точно также бывают активными и неактивными.
Но есть одна тонкость — апгрейды на оружие. Ты наверняка
замечал, что при возможности вооружить сквад различным оружием рамочка вокруг
иконки сквада меняла цвет.
Вот на примере отряда тактикалов мы и научимся грамотно
управляться с иконками. Никому ведь не хочется любоваться на заглушку противного
розового цвета? :)
Названия файлов не будут отличаться для активной (ingame)
и неактивной (ingame_disabled)
папок. Поэтому я приведу пример для папки ingame.
Иконка сквада прописывается в ui_ext\ui_info\icon_name.
Стандартному оружию (болтеру) соответствует файл
tacticalmarine_icon.tga.
Как только мы апгрейдом выдаем новое оружие, очень важно
название оружия, которое выдается по weapon_table. Дело в том, что
название этого оружия необходимо прописать через
двойное нижнее подчеркивание в названии файла иконки!
Заглянем в weapon_table\weapon_02,
где прописан огнемет space_marine_flamer_tactical.
В папке
data\art\ui\ingame\space_marine_icons ему
соответствует
tacticalmarine_icon__space_marine_flamer_tactical.tga.
Хэвиболтеру соответствует
tacticalmarine_icon__space_marine_heavy_bolter_tactical.tga.
Ракетнице —
tacticalmarine_icon__space_marine_missile_launcher_tactical.tga.
Плазмагану —
tacticalmarine_icon__space_marine_plasma_gun.tga.
Если сквад вооружен различными видами оружие, ему
автоматически соответствует иконка tacticalmarine_icon__multi.tga.
ui_index_hint — определяет место иконки на панели,
как и у абилок.
Как видно на картинке, неактивные иконки выглядят
одинаково, поэтому можно просто сделать несколько копий одной иконки под разными
именами.
Каждой активной иконке в идеале обязательно должна
соответствовать неактивная. В некоторых случаях можно обойтись без неактивной.
Скажем, абилка переключающегося типа и дается юниту без requirements. Но
лучше перестраховаться, чем потом позориться из-за собственной лени :)
Боевые построения
Построение указывается у сквада в ветке
squad_formation_ext
параметром idle_formation,
в котором содержится референс (ссылка) на папку формаций.
Сами формации находятся в Data\attrib\formations
в виде обычного rgd-файла.
В нем параметр scale
отвечает за плотность строя. То есть насколько близко будут друг к другу
соседние ячейки построения.
Все это хозяйство должно синхронизироваться неким образом с
entity_blueprint_ext\scale_x
в параметрах юнита.
Если сделать слишком маленький scale
построения, получится каша из юнитов.
Ветка spots с подветками
spot_x как раз
содержит относительные координаты юнитов в построении.
Тут следует принят во внимание ветку
spawner_ext\spawner_space_offset_for_new_unit_position
с параметрами x, y,
z у юнита или здания, которое производит наш
сквад.
Именно эти координаты будут нулевыми у формации.
Сама ветка spot_x
содержит следующие параметры:
pos_x,
pos_y — координаты
юнита относительно центра построения. Для первого юнита в построении там стоят
нули.
priority — приоритет
появления нового юнита в скваде при реинфорсе в процентах. То есть если стоит
100, то сначала будут заполняться ячейки с этим приоритетом, потом 90, 70, 50 и
так далее.
Кстати, всего предусмотрено не более 17 ячеек для юнитов в
скваде. Но, добавляя ветки spot_x
инкрементом (увеличением) x, можно теоретически
сделать сколько угодно.
Локализация
мода
При создании новых юнитов, сквадов, оружия и абилок их
непременно захочется переименовать на свой лад. Такая возможность реализована в
игре исключительно удобно.
Найдем в юнитах tau_crisis_suit.rgd
— экзоскелет «Кризис» у Тау.
В ветке ui_ext\ui_info обрати внимание на параметр
screen_name_id, в котором стоит непонятная кракозябла $706200.
Что это такое? Это референс (ссылка) на файл
локализации, где содержится описание в виде именованных строк.
Действительно, представь, во что бы превратилась
локализация игры, если бы каждая строка описания юнита правилась непосредственно
в редакторе. Поэтому разработчики изначально создают средства для быстрого
доступа ко всей текстовой информации игры.
Файлы локализации для английской версии игры хранятся в
папке мода Example_Mod\Locale\English, а для русской —
Example_Mod\Locale\Russian.
Файлы локализации имеют расширение .UCS.
Сейчас в нашем моде в этих папках ничего нет. Откуда же
тогда игра подставляет значение строкового параметра для Кризиса? Отвечаю: из
архивов игры.
Сейчас мы создадим собственный файл локализации и там
пропишем свои строки, на которые потом можно будет ссылаться.
Перейди на параметр screen_name_id и щелкни один аз
мышкой на текстовом поле — там появится кнопка с тремя точками. И это совершенно
не значит, что нас хотят послать на три буквы! :)
Вот на нее нужно нажать. Появится диалоговое окно.
Поскольку у нас еще нет файлов локализации, оно пустое.
Поэтому жмем кнопку New.
Нас попросят ввести название мода. Оставим по умолчанию
Example_Mod.ucs.
И жмем ОК.
Потом, когда захочется воспользоваться своим файлом, жмем
Load и выбираем.
В этом окне и будет происходить редактирование строковых
переменных.
Плюсиком добавляем строку (номер добавляется автоматически,
счетчиком).
Дискеткой или кнопкой Save сейвим файл.
Кнопка Send selected entry to RGD позволяет
подставить выделенный строковый параметр в поле игры, а Back to RGD
просто возвращается в редактор, ничего не изменив.
Таким образом, изменение строковых параметров сводится к
работе с файлом локализации, что очень удобно.
Если в начале загрузки мода мы выбрали English, то
файл локализации сохраниться в английской папке Example_Mod\Locale\English.
Если файл уже создан в английской папке, а игра русская, то нужно просто
перенести Example_Mod.ucs в русскую папку.
Так можно поменять любые строковые параметры в редакторе,
где бы они не были. Юниты, сквады, абилки, исследования — редактируются здесь.
Автор: Kabanus
Источник: http://forums.warforge.ru
1 - 2 - 3 страница |