fktifzobr@mail.ruЛол, да, в героях такое бывает, вот у рыцаря всадник, конь, копье и щит будут двигаться как независимые объекты
Если у вас есть возможность сделать отдельную модель смерти то я бы сделал так
Для смерти использовал бы обычную модель
Для боя сделал бы меч и щит привязанными к рукам
Да, мы тоже про такое думали иногда, потому что на некоторых анимациях есть дефекты когда оружие немного выпадает из рук юнита. Изначально мы не понимали зачем разрабы сделали оружие отдельно от остального скелета, казалось логичнее чтобы кость оружия была связана с костью кисти, но потом поняли что дело скорее всего в death анимациях, где в большинстве случаев модель роняет свое оружие.
В целом move анимации для таких юнитов как мечники можно все еще фиксать скриптом, который плавно убирает смещение по Y у двигающихся костей. Наш скрипт находит кости которые двигаются вперед по Y, далее вычисляет на какое расстояние каждая кость двигается в течение всей анимации, а далее делит это расстояние на кол-во кадров в анимации, и для двигающихся костей начинает для каждого фрейма пропорционально отнимать позицию по Y.
Условно если анимация длится 15 кадров и смещение у кости было скажем 15 метров, то от позиции Y на первом кадре отнимается 1 метр, для второго кадра 2 метра, для третьего 3 и тд. Если фиксить это таким образом, то щит и меч не выпадают из рук мечника, но все равно присутствуют кадры, на которых видно что щит немного ездит по руке. Но это возможно уже проблемы того как GR2 плагин для 3ds max 2008 считывает GR2 анимации. GrannyExporter делает это лучше, но к сожалению он на последних кадрах Move анимации пытается вернуть модель на изначальную позицию, а на такую анимацию мы уже не можем прогнать наш скрипт.
Еще у некоторых моделей, например у фурий, очень не постоянная скорость во время move анимации, то есть фурия бежит как бы рывками. И если прогнать такой скрипт, который пытается сгладить все фреймы анимации пропорцинально, то итоговая move анимация хоть и будет воспроизводиться "на месте", но будет видно как фурию метает то немного вперед, то немного назад. То есть анимация бега фурии на месте будет выглядеть дергано. Но после того как я сделал импорт этой анимации в Unreal Engine, и начал воспроизводить эту анимацию не просто на месте, а задав персонажу фурии движение вперед с нужной скоростью (для этого надо посмотреть значение внутри <MovementSpeed> тега в xdb файле с move анимацией), то дергание перестает быть видно, и фурия начинает бежать рывками схоже с оригиналом.