在 DirectX 中混合动画 - 这在技术上可行吗?
我有一个 .x 格式的动画网格,我已使用 D3DXLoadMeshHierarchyFromX 加载并为其提供了一个动画控制器。网格有两种动画,一种用于行走,一种用于在行走动画中投掷。
是否有可能以这样的方式混合这两个动画,使得两个动画可以一起运行,并且髋部以下的帧优先考虑步行,而髋部以下的帧优先考虑投掷动画?如果是的话,效果看起来会令人信服并值得追求吗?游戏开发者通常是否以这种方式混合动画以获得他们想要的所有不同动画,或者他们只是创建同一动画的多个版本,即投掷时行走、投掷时站立、不投掷时行走?
I have an animated mesh in the .x format I've loaded with D3DXLoadMeshHierarchyFromX and have an animation controller for it. The mesh has two animations, one for walking and one for throwing where the walk animation.
Is it at all possible to blend the two animations in such a way that both animations can run together with the walk taking priority for frames below the hip while throwing animation takes priority for frames above it? If it is will the effect look convincing therefore worth pursuing? Do game developers typically blend animations in such a way to get all the different animations they wish or do they simply create multiple versions of the same animation, i.e. walking while throwing, standing while throwing, walking without throwing?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以使用 ID3DXAnimationController::SetTrackPriority 设置高优先级和低优先级动画轨道。然后,您可以使用 ID3DXAnimationController::SetPriorityBlend 在它们之间进行混合。
You can set High and low priority animation tracks with ID3DXAnimationController::SetTrackPriority. You can then blend between them using ID3DXAnimationController::SetPriorityBlend.