Иерархическая анимация в DirectX и обработка отдельных анимаций в одной сетке? - PullRequest
0 голосов
/ 05 февраля 2010

У меня есть иерархическая анимированная модель в DirectX, которая загружает и анимирует на основе следующего образца DirectX: http://msdn.microsoft.com/en-us/library/ee418677%28VS.85%29.aspx

Каким бы хорошим ни был пример, он не затрагивает некоторые детали анимации, которые мне бы хотелось. Например, если у меня есть сетка с бегущей анимацией и анимацией броска, поскольку отдельная анимация задает, как можно настроить анимацию броска для костей выше бедра и анимацию ходьбы для костей под бедром?

Также, если бы я хотел, например, чтобы человек наклонился влево или вправо, мне просто нужно было бы найти кость для бедра и мультиплеерную матрицу вращения по ее матрице? В этом случае я думаю, что матрица m_amxBoneOffsets?

Ответы [ 2 ]

1 голос
/ 05 февраля 2010

Составление нескольких анимаций для одной обычно является работой системы анимации, что выходит за рамки примера D3D.

Давайте рассмотрим 2 примера:

бег и бросание

Ну, в этом случае вы могли бы применить анимацию для нижней части тела из анимации бега и анимацию для верхней части тела из анимации броска,И вы получите очень дерьмовый результат.

Вопрос состоит только в том, чтобы знать, какие кости находятся в палитре костей (что зависит от того, как они хранятся и в каком порядке, но ничего сложного нет. Определенной ссылкой должна быть документацияинструмент, генерирующий данные анимации)

На практике вам лучше смешать 2 анимации.В общем, это сложно, и существуют пакеты программ, которые делают это для вас. Gamebryo , например

Или анимация бегущего парня, который бросает, достаточно отличается от стоящего парня, который бросает, что вам может быть лучше иметь 2 анимации.

Наклон

Если вы примените матрицу вращения к корневой кости, вы просто поверните весь свой персонаж.Теперь, если вы вращаете следующую кость в иерархии (от позвоночника), вы также получите все кости, которые зависят от нее, для вращения.Он, вероятно, будет делать то, что вы хотите, но есть верный способ выяснить это.Попробуйте!

1 голос
/ 05 февраля 2010

Ну, дело в том, что бегущая анимация ДОЛЖНА слегка повлиять на анимацию броска. Вам нужно изучить смешивание анимаций .

Я уверен, что Valve написали хорошую статью о том, как они реализовали это в Counter-strike много лет назад. Его нет на сайте клапана, хотя я не уверен, откуда у меня эта память ...

...