rootMotion, Unreal如何处理位移动画

本文详细介绍了在Unreal Engine 4中利用RootMotion实现动画位移的完整流程,包括创建带有RootMotion的AnimClip、将其转化为Montage、在CharacterBlueprint中调用Montage,以及解决动画资源根节点位置不处于原点导致的问题。同时指出UE4对RootMotion处理的局限性,如不支持Montage中的BlendSpace,以及StateMachine中仅支持AnimSequence而非Montage。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Unreal官方给了一个介绍:https://docs.unrealengine.com/latest/INT/Engine/Animation/RootMotion/index.html

其实要点就是:

1. 将带有RootMotion的Anim Clip,制作为Montage,注意Montage的RootMotion下的Enable Root Motion TranslationEnable Root Motion Rotation需要勾选上。


2. 在CharacterBP中用PlayAnimMontage Node调用步骤1里制作的Montage;

仅仅在CharacterBlueprint里调用


或者Montage的调用也可以在AnimationBlueprint里做。


当然,必须要在CharacterBP里调用AnimationBP里自定义的Event:


无论如何,调用Montage,必须要反映到AnimationBlueprint里AnimGraph里的FinalAnimationPose。


Fullbody是Slot节点,Fullbody是所用的Montage的Slot名称:


只要注意保证Slot Node的Slot Name和Montage一致,并传递给Final Animation Pos,那么就可以在CharacterBP、AnimationBP里随意调用该Slot对应的Montage了。


3. 正确使用UE的RootMotion,对动画资源有一定的要求,要求root在原点,在地上。而我接触的很多动画资源,root为Bip01,接近于腰处,不在原点,导致使用UE的RootMontion达不到想要的效果,动画会变形,且整个场景进入Play模式后动画没有位移。 



缺陷

UE4里目前对RootMotion的处理,都需要将AnimSequence弄为AnimMontage,一个很大的弊病是,AnimMontage不支持BlendSpace... 另外,在StateMachine中只能用AnimSequence,用不了AnimMontage。  这些都严重限制了带有RootMotion的动画的使用。


据说Unreal后续会改进RootMotion,期待之。






评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值