![]() |
Смешивание анимаций
Итак, встал передо мной такой вопрос - надо смешать ТРИ анимации, хоть и не все сразу. Собственно, вот код (пуряк + SDK)
Код:
Procedure InterpolateHumanBones(mesh1,mesh2,mesh3,delta.f) Насилую модельки из Day of Defeat с GoldSrc |
Ответ: Смешивание анимаций
Вложений: 1
Вот то, что на выходе (стрелка вверх и вниз - сменить уклон ИИ)
|
Ответ: Смешивание анимаций
Цитата:
По коду выше во-первых забудь про углы эйлера, для смешивания нужно оперировать кватернионами и юзать slerp. во-вторых непонятно вообще что происходит там, mesh1, mesh2 и mesh3 это одна и та-же кость, имя-то одно для чайлдов. да и еще, нафига константное условие "If delta>=0.5" внутри цикла? ЗЫ По коду Main.pb в аттаче Код:
InitSprite() : InitSound() Код:
Console = OpenWindow(1,... Ну и по самой демке, диагональное движение не нормализовано, по лестнице тяжело поднимается ( может ее лучше невидимой плоскостью покрыть? ), моделька руки при анимации сильно дергается ( тоже кривое-смешивание? ) пока все :) ЗЫ может стоит обойтись как например в квейке - разделить модель на части и анимировать отдельно? |
Ответ: Смешивание анимаций
Вложений: 1
Вот, полный код двига. Нужное находится в файле Actors.pb. Код не комментирован, но неплохо структурирован.
Планируется тот же IWYB, только с сетью и с приличным городом |
Ответ: Смешивание анимаций
Решение
Бился очень долго, но сделал Код:
Function InterpolateAngle#(angle1#,angle2#,delta#) |
Ответ: Смешивание анимаций
Если я все правильно понял, то вот так намного проще будет:
Код:
Function InterpolateAngle#(angle1#,angle2#,delta#) |
Часовой пояс GMT +4, время: 01:54. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot