|
| |||
|
| |||
| |
Здравствуйте. Вы находитесь на сайте Unreal Level. Данный ресурс посвящен редакторам карт игр серии Unreal, UT и Gears of War. Основная цель сайта , помочь всем желающим освоить любой из редакторов вышеперечисленных серий. Наибольшим приоритетом на этом сайте, обладает редактор UnrealED for Unreal Engine 3 и редактор движка Unreal Engine 3.5, входящий в комплект разработки UDK, поскольку это наиболее актуальная на сегодняшний день технология. |
|
Using AnimTree
автор: PROOF | 17 Апреля 2010 | Просмотров: 10474
Основы Animation Tree (AnimTree)
Автор: NaFaNyA(PROOF) Использованный материал: Официальная документация... Тема на форуме EpicGames
Здравствуйте...С каждым новым туториалом, представленным на сайте нас все больше учат использовать свой материал и потихоньку отдаляться от копи-паста..Этот туториал не станет исключением...В нем будут рассмотрены основные принципы работы с AnimTree, и надеюсь мы все наконец забудем о файле под названием 'AT_CH_Human', который когда-то давно(еще в 2007) году нам предоставила EpicGames. Итак, перед тем как мы начнем мне хотелось бы немного рассказать о том, что же это такое... Редактор AnimTree очень схож по своим функциям с Kismet и Редактором Материалов. Он так же имеет свои блоки и использует древовидную (иерархическую) систему. В ней есть родительские и дочерние блоки. Родительский блок отвечат за то, какой из дочерних будет выполняться при опредленном действии. ![]() Он предназначен для того, чтобы создавать сложные схемы анимаций для SkeletalMesh'ей. Внешний вид окна редактора 1 - ToolBar Содержание тулбара: 2 - Приостановить пригрывание всех анимаций в AnimTree. 3 - Ипользовать выделенный блок. 4 - Показать интервал использования каждого блока. 5 - Показать скелет. 6 - Показать имена костей. 7 - Показать сетку модели. 8 - 9 - Используемый SkeletalMesh. 10 - Используемый массив AnimSet'ов. 11 - Используемый массив сокетов. 12 - Используемый AnimSet. 13 - Используемая анимация. 14 - Главный блок всего AnimTree. 15 - Блоки, которые будут постепенно добавляться. 16 - Раздел настроек выделенного блока. 17 - SkeletalMesh, для предварительного просмотра работоспособности AnimTree. Начнем... Подразумевается что вы уже знаете как создать свой AnimSet...Кликаем по нему дважды ЛКМ...В открывшемся окне во вкладке Mesh из выпадающего списка SkeletalMesh выбираем свою модель...(левый верхний угол)... Затем переходим вниз, и во вкладке AnimSet убираем галочку с параметра Anim Rotation Only...Напротив Use Translation Bone Names щелкаем два раза по зеленому крестику... У нас появилось два слота...В первом необходимо указать название главной кости, чтоящей в иерархии скелета, во втором - тазовую/бедренную кость...Выглядеть это быдет примерно так: ![]() Это действие необязательно, но при добавлении новых видов анимаций могут возникнуть проблемы... Наконец мы переходим непосредственно к созданию AnimTree. В Content Browser щелкните ПКМ в любом свободном месте, и из появившегося списка выберите New AnimTree...Дважды щелкните по нему ЛКМ... Сразу выделяем блок AnimTree...В разделе настроек щелкаем по одному разу по зеленым крестикам напротив Preview Mesh List, Preview Soket List, Preview Anim Set List. В Preview Mesh List добавляем своего персонажа... В Preview Anim Set List соответственно добавляем свой AnimSet. Так же, как вы наверняка заметили, у меня в окне простмотра находиться два объекта (персонаж и оружие)...Для этого и используется Preview Soket List... В слоте Soket Name указываем имя сокета(конечно если вы его создали в AnimSet Editor'е), в слоте Preview SkelMesh указываем объект, который будет аттачиться к данному сокету...С этим разобрались... Теперь нам необходимо создать блок UDKAnimBkendByPhisics. Для этого щелкните ПКМ и из списка выберите NewAnimNode>BlendBy>UDKAnimBlendByPhisics...Он отвечает за абсолютно всю физику, котрую использует персонаж( бег, прыжек, плавание и т.д.)...
P.S. Совет - в каждом вновь созданном блоке, в разделе настроек, советую ставить галочку напротив Skip Tick When Zero Weight... Создадим еще два блока - UDKAnimBlendByIdle и UDKAnimBlendByFall...
Первый отвечает за ожидание(стояние на месте), цепляем его к PHIS_Walking...Второй за прыжек, его цепляем соответственно к PHIS_Falling...
Далее создаем AnimNodeBlendDirectional, он отвечает за бег вперед, назад, стрейф вправо, влево... Его цепляем к опции Moving.
Создадим новый AnimNodeSequence(это блок отвечающий за воспроизведение всего одной анимации). В настройках ставим галочки напротив Playing и Looping и дублируем его столько раз, сколько нам необходимо анимаций...Цпляем по одному на каждую опцию...
Выделяем AnimSequence прицепленный к Idle, затем в правом верхнем углу(в выпадающем списке с имеющимися анимациями) выбираем анимацию ожидание...То же самое проделываем с остальными блоками...
Должно получиться как на скрине : Теперь ваш персонаж способен бегать и прыгать...Но...Он всегда смотрит в одну точку...Сейчас мы будем это исправлять... Создаем блок AnimNodeAimOffset...и цепляем его между PHIS_Walking и AnimNodeBlendDirectional... Щелкаем дважды по нему ЛКМ, откроется окно настроек... В разделе Profile жмем New...И вводим любое название... В разделе Bones выбираем кости, которые будут использоваться(у меня это все четыре кости спины)... В разделе Aim Direction жмем CenterUp и настраиваем положение, т.е. персонаж должен смотреть вверх по ценру... Точно также настраиваем остальные положения... Закрываем окно настроек...Не снимаем выделения с AimOffset опускаемся вниз, и в слоте Node Name пишем AimNode . Нам нужно сказать UDK, чтобы он использовал созданные вами AnimTree, AnimSet, SkeletalMesh.. Примечание: т.к. это всего лишь руководство, в целях обучения, то мы будем изменять родные (UT) классы... В папке [Ваша папка с UDK]/Development/Src/UTGame/classes найдите UTPawn, и в разделе defaultproperties замените строку AnimTreeTemplate=AnimTree'CH_AnimHuman_Tree.AT_CH_ Human' на AnimTreeTemplate=AnimTree'YourPackage.YourGroup.Yo urAnimTree' Теперь откройте файл UTFamilyInfo_Liandri_Male.uc Перейдите к defaultproperties и найдите строку CharacterMesh=SkeletalMesh'CH_LIAM_Cathode.Mesh.SK _CH_LIAM_Cathode' замените на CharacterMesh=SkeletalMesh'YourPackage.YourGroup.Y ourCharacter' В этом же файле найдите строку AnimSets(0)=AnimSet'CH_AnimHuman.Anims.K_AnimHuman _BaseMale' и замените на AnimSets(0)=AnimSet'YourPackage.YourGroup.YourAnim Set' проделайте тоже самое с UTFamilyInfo_Liandri.uc Откройте UnrealFrontend и нажмите Full Recompile...Теперь вы можете протестировать вашего персонажа...Но это еще не все... Немного ниже я постараюсь вкратце расказать о существующих блоках, как подключить свой, как комбинировать несколько анимаций в одном действии... Итак...Начну... P.S. Здесь будет рассказано не о всех существующих блоках.. P.S.S Между UDKAnimBlend и UTAnimBlend нет абсолютно никакой разницы... AnimNodeBlendByPhysics - блок отвечает за абсолютно всю физику, котрую использует персонаж( бег, прыжек, плавание и т.д.)... UDKAnimBlendByPhysics - урезанная версия AnimNodeBlendByPhysics... AnimNodeAimOffset - позволяет заставить персонажа следить за прицелом, поворачивать головой и т.д.9зависит от того, что вам нужно) AnimNodeBlend - пустой блок AnimNodeBlendPerBone - тоже пустой блок, его действие необходимо описывать в скрипте...Его приимущество - возможность комбинировать несколько анимаций... AnimNodeBlendByPosture и UDKAnimBlendByPosture - идтиидти пригнувшись(красться) AnimNodeBlendDirectional - бег вперед, назад, стреф вправо, влево... UDKAnimBlendByDriving - проверка на использование персонажем транспортного средства... UDKAnimBlendByFall - прыжок UDKAnimBlendByFlying - полет(имеется ввиду полет не на транспортном средстве, а самого персонажа) UDKAnimBlendByDriving - проверка используется ТСне используется... UDKAnimBlendByIdle - ожиданиебег UDKAnimBlendBySpeed - бегходьба(может быть спринт) - изменяется в зависиости от скорости перемещения персонажа... UDKAnimBlendByTurnInPlace - разворот на месте... UDKAnimBlendByVehicle - использование HoverBoard(летающей доски) другого ТС... UDKAnimBlendByWeapon - проверка, ведется огонь или нет... UDKAnimBlendByWeapType - воспроизведение различных анимаций. взависимости от типа оружия... UDKAnimNodeSequence - анимация... Ниже будет рассказано как подключать свой блок + комбинирование анимаций(для продвинутых пользователей) Я плохо знаком с программированием, поэтому могу где нибудь чушь спороть) Создаем блок AnimNodeBlendPerBone, в Brunch Start Bone Name указываем название кости, которая будет разделять меш, выше(ниже) которой будет проигрываться определенная анимация... Даем этому блоку название(имена опций значения не имеют) К первой опции цепляем основные действия, ко второй UDKAnimNodeSequence с новой анимацией... Далее скрипт...Все делается в Pawn классе... var AnimNodeBlendPerBone произвольное_название; simulated function ваша_функцияStart() // начало выполнения AnimBlend { произвольное_название = AnimNodeBlendPerBone(mesh.FindAnimNode('Название, которое вы дали в AnimTree Editor'е')); произвольное_название.SetBlendTarget(1.0,0.5); // 1.0 - высота значения ползунка, 0.5 - время } simulated function ваша_функцияEnd() // окончание выполнения AnimBlend { произвольное_название = AnimNodeBlendPerBone(mesh.FindAnimNode('Название, которое вы дали в AnimTree Editor'е')); произвольное_название.SetBlendTarget(0.0,0.5); // 0.0 - высота значения ползунка, 0.5 - время } Так же можно сделать это все в одной функции церез булеву переменную, но у меня в таком случае работало только в одну сторону...В общем экспериментируйте.. Потом эти функции можете использовать как душе угодно... Немного позже выложу исходники данного тутора... Здесь можно посмотреть как примерно это выглядит, и что будет в исходниках...
Как всегда прошу в комментах оставлять замечания и пожелания по поводу дальнейшего исправления и дополнения тутора... #1 написал: Netkiller 17 Апреля 2010 11:45 | ICQ: Не Указано |
#2 написал: PROOF 17 Апреля 2010 11:52 | ICQ: 6668742 |
#3 написал: alexut 17 Апреля 2010 18:02 | ICQ: Не Указано |
#4 написал: ROMAshka 17 Апреля 2010 18:22 | ICQ: Не Указано |
#5 написал: smitt 19 Апреля 2010 02:31 | ICQ: 358667420 |
#6 написал: Joker_47 19 Апреля 2010 11:55 | ICQ: Не Указано |
#7 написал: PROOF 19 Апреля 2010 14:10 | ICQ: 6668742 |
#8 написал: Joker_47 19 Апреля 2010 14:38 | ICQ: Не Указано |
#9 написал: Artmancarver 21 Апреля 2010 05:15 | ICQ: Не Указано |
#10 написал: smitt 30 Апреля 2010 15:09 | ICQ: 358667420 |
#11 написал: kanonikvova 7 Декабря 2010 15:35 | ICQ: Не Указано |
#12 написал: ex4 11 Февраля 2011 20:23 | ICQ: Не Указано |
#13 написал: FACH 11 Февраля 2011 20:34 | ICQ: 562039160 |
#14 написал: ex4 12 Февраля 2011 11:03 | ICQ: Не Указано |
#15 написал: ahtam 20 Февраля 2011 18:13 | ICQ: Не Указано |
#16 написал: FACH 20 Февраля 2011 18:33 | ICQ: 562039160 |
#17 написал: ahtam 20 Февраля 2011 18:38 | ICQ: Не Указано |
#18 написал: FACH 20 Февраля 2011 19:22 | ICQ: 562039160 |
#19 написал: ahtam 20 Февраля 2011 19:38 | ICQ: Не Указано |
#20 написал: FACH 20 Февраля 2011 19:55 | ICQ: 562039160 |
#21 написал: ahtam 20 Февраля 2011 20:09 | ICQ: Не Указано |
#22 написал: FACH 20 Февраля 2011 20:36 | ICQ: 562039160 |
#23 написал: ahtam 20 Февраля 2011 21:00 | ICQ: Не Указано |
#24 написал: FACH 20 Февраля 2011 21:18 | ICQ: 562039160 |
#25 написал: Ate1st 20 Февраля 2011 21:36 | ICQ: Не Указано |
#26 написал: ahtam 20 Февраля 2011 21:44 | ICQ: Не Указано |
#27 написал: FACH 20 Февраля 2011 22:00 | ICQ: 562039160 |
#28 написал: ahtam 20 Февраля 2011 22:04 | ICQ: Не Указано |
#29 написал: FACH 20 Февраля 2011 22:08 | ICQ: 562039160 |
#30 написал: Ate1st 20 Февраля 2011 22:30 | ICQ: Не Указано |
Информация
Посетители, находящиеся в группе Гости, не могут оставлять Комментарии в данной новости...
|
|
|
При копировании материалов, активная ссылка на UNREAL-LEVEL.RU обязательна! © 2008—2012, UNREAL-LEVEL.RU. Все права защищены. |