用一个第三人称的射击案例来简单介绍一下动画蒙太奇的使用,动画蒙太奇的具体介绍这里就不多说了,不知道的小伙伴可以去搜一下了解。
这里介绍角色射击,射击的时候播放一个射击动画。
选中需要创建出动画蒙太奇的动画,点击创建,创建动画蒙太奇。
也可以通过动画-》动画蒙太奇创建,将需要播放的蒙太奇动画片段添加进去的方式去创建动画蒙太奇。
界面如图:
1.动画蒙太奇有一个默认的插槽DefaultSlot,但是在处理自己的动画蒙太奇的时候,一般自己创建一个,比如这个射击的时候,需要的是上半身的处理,所以我添加了一个UpperBody的插槽去处理;
2.创建完成之后,在将插槽名称改为自己的插槽;
3.在动画蓝图中处理动作混合;
将基础动作缓存起来,并添加一个插槽和基础动作的动作缓存,注意一开始创建的是DefaultSlot,需要改为自己创建的插槽名称;
添加通过骨骼层去混合基础动作和带有动画蒙太奇的动作,注意添加过滤条件,骨骼名称和骨骼深度,在我自己处理的时候,一边行走一边开枪,会出现角色上半身有一定的旋转,看着比较突兀,所以勾选了模型旋转以及混合深度。可根据自己的情况调整。
4.调用;
播放动画蒙太奇,注意此处只是有一段动画,所以直接可以播放,如果一个动画蒙太奇中有多个动画蒙太奇片段,要注意使用
Instance->Montage_JumpToSection(FName("Fire"),FireMontage);
跳转到自己命名的蒙太奇片段并注意在资源中对应不同的片段,防止片段全部播放。
UCharacterAnimInstance* Instance = Cast<UCharacterAnimInstance>(GetMesh()->GetAnimInstance());
if (FireMontage && Instance)
{
Instance->Montage_Play(FireMontage);
}
如果以上处理完之后,没有播放,注意查看一下动画蒙太奇的混入时间,默认是0.25,改为更小值可以看到播放。