500
  • Страница 1 из 1
  • 1
Модератор форума: tupi857  
Форум » Видоизменение » Технологии » Предоставление возможности произвольным юнитам собирать и тр
Предоставление возможности произвольным юнитам собирать и тр
# 110:48 04/06/2019
9
tupi857 (jango)
Cмотритель

 Вне сети
Есть сокровище без стражей, но поблизости нет исследователя или поселенца, который бы это востребовал?
Когда-нибудь задумывались, что делать со разведчиками после того, как карта исследована, даже шпионы Капитолия включены? Они торчат, но теперь могут быть полезны.

В этом руководстве показано, как дать любому отряду возможность собирать самородки и собирать их с ферм.

0) Теория В
: Могу ли я дать любому юниту произвольную способность?
A: В принципе: да (радио Eriwan * g *).

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

Никакие действия не выполняются, если они явно не определены в файле анимации устройства. «Секрет» - это <anim> триггер
<tag type = " what "> when </ tag>,
который является инструкцией для игрового движка, какое действие следует обработать, когда находится момент времени в анимации (цикле).

Этот аним «настраивается» в файле тактики, в основном с инструкциями для (хаоса) физики, движка урона или других методов, таких как сбор, лечение, сборка, ...

В большинстве случаев этого было достаточно - прототип устройства просто корректирует некоторые значения или добавляет соответствующие теги / флаги для правильной работы действия.

1) Прототип.
Мы начнем с самой простой модификации: прототип модуля в Data \ proto.xml.

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

Сбор требует некоторых дополнительных операторов, мы должны определить «CarryCapacity» для каждого ресурса. Значение не важно, нам нужно только убедиться, что единица может нести определенный ресурс вообще. В зависимости от требуемого ресурса мы добавляем:
<CarryCapacity resourcetype = 'Food'> 1.00 </ CarryCapacity>
<CarryCapacity resourcetype = 'Wood'> 1.00 <
<CarryCapacity resourcetype = 'Gold'> 1.00 </ CarryCapacity>

Для скорости сбора данных принимаются значения тактики, но мы можем добавить, например, например.
<ProtoAction>
<Name> Gather </ Name>
<Rate type = 'Mill'> 1.25 </ Rate>
<Rate type = 'Plantation'> 1.25 </ Rate>
</ ProtoAction>


2) Файл тактики
Каждое действие прото необходимо определение / ссылка в файле тактики подразделения.
Мы находим связанный с юнитом файл тактики (имя) в прототипе <Tactics> {unit} .tactics </ Tactics>. Местоположение файла тактики - это каталог Data \ tactics \ . Но если он еще не отредактирован, он, вероятно, все еще находится в архиве .bar. Обычно это должно быть извлечено изData \ Data.bar- но проверьте также DataP.bar для возможно исправленной версии.
Обратите внимание, что некоторые юниты имеют общий файл тактики, который одновременно используется другими юнитами. В этом случае может быть полезно создать файл тактики, уникальный для юнита: после редактирования сохраните файл тактики под другой{name} .tactics и соответствующим образом измените прототип <Tactics> .

Для действия «самородок / сокровище» мы добавляем
<action>
<name> Discover </ name>
<type> Discover </ type>
<anim> Pickup </ anim>
<maxrange> 0.2 </ maxrange>
<rate type = "AbstractNugget" > 1,0 </ рейтинг>
<


<имя> - это ссылка от / к прото, <anim> должна быть действительной записью в файле anim.
<active> 0 означает: действие не разрешено по умолчанию, должно быть включено в techtree.

Для сбора ферм мы добавляем
<action>
<name stringid = "42178"> Gather </ name>
<type> Gather </ type>
<anim> GatherFarm </ anim>
<maxrange> 0.5 </ maxrange>
<rate type = "Плантация"> 1.0 </ rate>
<rate type = "Mill"> 1.0 </ rate>
</ action>

Для реализации большего количества методов, чем только сбор фермы, см. Справочные данные Data \ tactics \ отладчика.

<action> Gather </ action>
<action> Discover </ action>


3) Файл Anim
Обоснование добавления новых анимаций заключается в том, что модель (скелет) может использовать «одолженные» внешние подпрограммы анимации, а также может иметь дополнительные вложений.
Прото-тег <AnimFile> ссылается на соответствующий файл анимации в папке AoE3 Art \ . Файлы anim обычно находятся вArt \ Art1.bar , но также проверьтеDataP.bar на наличие возможных обновлений.
Основной внешний вид определяется в разделе <component> ModelComp ...<assetreference type = "GrannyModel"> ., Сама чистая анимация определяется в <assetreference type = "GrannyAnim"> . Для этого GrannyAnim мы можем использовать произвольные файлы бабушек из других модулей или библиотеки анимации - конечно, они должны подходить для нашей модели.
Каждый <anim> может иметь различные вложения, такие как оружие, инструменты, сумки, шляпы, ... Сложность состоит в том, чтобы определить вложение модели крючков / костей <->, чтобы получить удовлетворительный внешний вид. Мы можем искать в других файлах anim или использовать GrannyViewer, чтобы найти подходящие точки подключения.

Анимация самородка «одолжена» из анимации исследователя. Мы вставляем
<anim>
Pickup
<assetreference type = "GrannyAnim">
<file>
<tag type = "SpecificSoundSet" checkvisible = "1" set = "GatherFruit"> 0,35 </ tag>
</ assetreference>
<component> ModelComp </ component>
</ anim> Сборка анима


намного сложнее. Просто кажущиеся самые тривиальные вещи часто имеют самую сложную структуру. Все анимации сбора имеют несколько вложенных анимаций, которые необходимо реализовать. Для нашего разведчика мы хотим использовать только фермерский сбор. Здесь нам уже нужна целая куча субанимов. Мы вставляем
<anim>
GatherFarm
<assetreference type = "GrannyAnim">
<file> animation_library \ villager \ villager_male_gatherfarmhoe </ file>
<
<tag type = "SpecificSoundSet" checkvisible = "1" set = "GatherFarm"> 0,30 </ tag>
<tag type = "SpecificSoundSet" checkvisible = "1" set = "GatherFarm"> 0,40 </ tag>
<tag type = "SpecificSoundSet" checkvisible = "1" set = "GatherFarm"> 0.65 </ tag>
<tag type = "SpecificSoundSet" checkvisible = "1" set = "GatherFarm"> 0.76 </ tag>
<tag type = "SpecificSoundSet" checkvisible = "1" set = "GatherFarm"> 0,89 </ tag>
</ assetreference>
<assetreference type = "GrannyAnim">
<файл>animation_library \
villager \ villager_male_gatherfarmsow </ file> </ assetreference>
<assetreference type = "GrannyAnim">
<file> animation_library \
villager \ villager_male_gatherfarmweed </ file> </ assetreference>
<component> ModelComp </ component>
</ anim>
<anim>
GatherFarmWalk
<assetreference type = "GrannyAnim">
<файл> animation_library \ villager \ villager_male_gatherfarmwalk < file>
<tag type = "FootstepLeft" footprinttype = "HumanLeft"> 0,20 </ tag>
<tag type = "FootstepRight" footprinttype = "HumanRight"> 0,50 </ tag>
</ assetreference>
<component> ModelComp </ component>
</ аним>
<anim>
GatherFarmHoe
<assetreference type = "GrannyAnim">
<file> animation_library \
villager \ villager_male_gatherfarmhoe </ file> <tag type = "SpecificSoundSet" checkvisible = "1" set = "GatherFarm"> 0.18 </ tag>
<tag type = "SpecificSoundSet" checkvisible = "1" set = " GatherFarm "> 0,30 </ tag>
<tag type =" SpecificSoundSet "checkvisible =" 1 "set =" GatherFarm "> 0,40 </ tag>
<tag type =" SpecificSoundSet "checkvisible =" 1 "set =" GatherFarm "> 0,65 </ tag>
<tag type = "SpecificSoundSet" checkvisible = "1" set = "GatherFarm"> 0,76 </ tag>
<tag type = "SpecificSoundSet"checkvisible = "1" set = "GatherFarm"> 0.89 </ tag>
</ assetreference>
<component> ModelComp </ component>
</ anim>
<anim>
GatherFarmSow
<assetreference type = "GrannyAnim">
<file> animation_library \
villager \ villager_male_gatherfarmsow </ file> </ assetreference>
<component> ModelComp </ component>
</ anim>
<anim>
GatherFarmWeed
<assetreference type = "GrannyAnim">
< file> animation_library \
villager \ villager_male_gatherfarmweed </ file> </ assetreference>
<component> ModelComp </ component>
</ anim>

Если вы хотите добавить другие методы сбора, например, например. лесозаготовка, добыча, охота, ...

В этом примере я отказался от вложений, например, например. мотыга. Это действительно не подходило - иногда мотыга парила над головой и другие уродливые появления. В сомнении чистый аним без привязанности выглядит лучше, чем грязная импровизация.
LOVEAOE
Форум » Видоизменение » Технологии » Предоставление возможности произвольным юнитам собирать и тр
  • Страница 1 из 1
  • 1
Поиск:
Пятёрка форумщиков