Совмещение анимаций или анимация для определённых костей.

Общие вопросы о Unity3D

Совмещение анимаций или анимация для определённых костей.

Сообщение lichnost3d 29 окт 2013, 23:39

Всем кто заглянул в тему, здравствуйте.
На данный момент пытаюсь определиться со способом реализации совмещения анимаций для персонажа игры.
Передо мной стоит задача, сделать для него ряд анимаций, изначально я планировал воспользоваться biped-ом, и записать анимаци для всех возможных действий героя(бег,ходьба,выстрел,прыжок,приземление и пр.) при этом в игре герой может стрелять во время бега и во время падения, отсюда появляется необходимость записывать ещё дополнительные анимации, а с учётом того, что стрелять можно в 5и направлениях, то количество анимаций возрастает в разы.
Собственно сам вопрос, как мне уменьшить количество необходимых анимаций???
Я себе представляю пока один способ, это создание двух раздельных скелетов из bones для верхней и нижней частей тела. И воспроизведение анимаций раздельно для каждой из частей, так я смогу совмещать анимации. Но по моему это не правильный способ.
Или же воспользоваться процедурной анимацией, и менять направление рук при выстреле в зависимости от нажатых клавиш.Но этот способ мне не подходит,так как конечный результат меня не устраивает.
Должен же быть способ воспроизводить анимации строго указанным костям, чтобы например запустить анимацию стрельбы только костям рук, а анимацию бега только костям ног?
Поиск в сети дал наводки на "animation layer", "mask transform" "body transform", почитав инфу по ним понял что это не совсем то, но боюсь что я мог правльно понять.
Подскажите пожалуйста в каком направлении мне двигаться в этом вопросе?
lichnost3d
UNец
 
Сообщения: 5
Зарегистрирован: 17 окт 2013, 00:49


Re: Совмещение анимаций или анимация для определённых костей.

Сообщение seaman 30 окт 2013, 07:00

В Legacy - AnimationState.AddMixingTransform
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Совмещение анимаций или анимация для определённых костей.

Сообщение lichnost3d 30 окт 2013, 22:44

artk писал(а):http://unity3d.ru/distribution/viewtopic.php?f=11&t=18708&start=0&st=0&sk=t&sd=a&hilit=Mecanim

Это я тоже уже всё посмотрел, но хотелось бы без использования Mecanim это сделать. Задача то в принципе тривиальная, как то её ведь решали в других играх. Я видел в демках "3rd Person Shooter" и "AngryBots" у персонажей воспроизводится анимация для верхних конечностей независимо от нижних, но найти в коде как это делается, не смог.
lichnost3d
UNец
 
Сообщения: 5
Зарегистрирован: 17 окт 2013, 00:49

Re: Совмещение анимаций или анимация для определённых костей.

Сообщение seaman 30 окт 2013, 22:52

Вы сообщения читаете? Перечитайте внимательно тему.
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Совмещение анимаций или анимация для определённых костей.

Сообщение lichnost3d 30 окт 2013, 23:00

seaman писал(а):В Legacy - AnimationState.AddMixingTransform

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

Синтаксис:
Используется javascript
/// Adds a mixing transform using a path instead
var shoulder : Transform;
animation["wave_hand"].AddMixingTransform(shoulder);

function Start ()
{
/// Adds a mixing transform using a path instead
var mixTransform = transform.Find("root/upper_body/left_shoulder");
animation["wave_hand"].AddMixingTransform(mixTransform);
}
 

"wave_hand"-это понятно, аниамция
Для чего переменная shoulder? и какую роль она играет?
Что в себе хранит "mixTransform"? и что это"root/upper_body/left_shoulder"-предполагаю что кости?
lichnost3d
UNец
 
Сообщения: 5
Зарегистрирован: 17 окт 2013, 00:49


Вернуться в Общие вопросы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8