Тема: Player Movement
Показать сообщение отдельно
Старый 26.10.2015, 11:15   #11
jfkkk
Знающий
 
Регистрация: 24.07.2006
Сообщений: 261
Написано 476 полезных сообщений
(для 1,238 пользователей)
Ответ: Player Movement

Сообщение от Arton Посмотреть сообщение
С оружием совмещение написанного выше:
У персонажа есть готовая анимация сражения кулаками, с ножом, мечом, палкой и т. д.Но в самой анимации на месте где должно быть оружие, отдельная кость (или точка (или точка с костью, зависит от того что нужно)), которой собственно персонаж и машет, а дальше на эту «болванку» можно закреплять разные модели оружие. получаестя анимация на определённый тип оружия.
Тут есть один нюанс: если применить анимацию полностью к модели, которая воспринимается движком как сцена с дочерними объектами, то морфинг анимаций между различными секвенциями для костей и мешей, прикреплённых к костям при помощи модификатора Skin, будет происходит с разными скоростями. Вследствие чего оружие, приаттаченное к кости будет двигаться быстрее, чем меш персонажа. Поэтому придётся либо прикреплять оружие при помощи Skin, либо искать в движке функцией xFindChild меш персонажа и анимировать его одновременно с анимацией целой модели.

Также серьёзной проблемой станет имитация инверсной кинематики в движке. Так как модель привязана к пивоту или капсуле, то при проигрывании анимации атак и прочего(которые в большинстве случаев изготавливаются при помощи инверсной кинематики) модель будет отбегать от пивота или капсулы на изрядное расстояние. Если для прямолинейного движения (типа бега) это не является существенной проблемой, так как можно в анимации убрать все передвижения модели по осям X и Z и передвигать родителя модели, то в случаях анимаций, в которых на разных фазах модель передвигается с разной скоростью по разным осям это решение не подойдёт, потому как моделька персонажа будет просто неестественно сучит ногами по земле, в то время как в действительности ступни персонажа должны являться источником этой инверсной кинематики и плотно стоять на земле не проскальзывая.
В этом прожекте я передвигал пивот по осям X и Z, к которому привязана модель на те значения, которые брал из 3ds Maxa, в зависимости от проигрываемого кадра, а в движок импортировал анимации без перемещения модели по осям X и Z. Тогда это решение показалось оптимальным.
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо jfkkk за это полезное сообщение:
Arton (26.10.2015), Colossus (26.10.2015), St_AnGer (26.10.2015)