惯例先说两句
实在惭愧,和朋友一起做UE4从10月份就说好了,结果依旧拖到了寒假,然而毕设又来了。
第一关的锅我背了三个月还没做完,直到疫情被困在家必须好好干一把了(加油)
以下是在最近做一个简单的道具拾取控制学习过程和踩过的坑,先来感谢一下非常非常有用的教程:
/v_show/id_XMTMzMDYyMzQxNg==.html 国外视频教程,易懂,就是不太清晰
/u012801153/article/details/78477425 这是整个蒙太奇使用很详细的教程,看懂基本够用
/zh-CN/Engine/Animation/AnimHowTo/AdditiveAnimations/index.html 官方分层动画教程
/u012999985/article/details/51050848 也比较有诚意,就是字体颜色不太友好
/blog/aigo-2277545 卡了很久很久的蒙太奇插槽设置必看!
动画蒙太奇Montage
什么是蒙太奇?
就理解为片段剪辑组合就成,UE4里面就是把不同的小片段(动作动画或者蒙太奇)组合成起来用,比如上述引用例子中常见的:攻击过程PunchProcess = 攻击准备PunchBegin + 左拳PunchLeft * n + 右拳PunchRight * n + PunchEnd攻击结束,这些动作的组合都可以用一个蒙太奇片段组合实现。
具体如何组合蒙太奇制作教程说得非常详细,不必再复述。
为什么要用?
人物所有动作不可能都在状态机中开状态,比如实现一个攻击,这在状态机中不好定义(左拳->右拳->循环??显然UE4不是这个意思)。我这次需要实现的是弯腰拾取,然后从双手下垂的run_walk转换成hold_run_walk状态,其中拾取pick这个过程就没有必要做状态了,使用蒙太奇非常合适,并且还有骨骼混合的功能。
总结下,蒙太奇有以下功能(目前使用):
不需要使用状态机来定义的短暂动作行为:比如,弯腰伸手拾取复杂的动作组合:比如,组合动作攻击只需要骨骼部分呈现的动作:比如,有一个伸手拾取的动画和walk_run状态,使用蒙太奇的分层骨骼混合可以实现边走路/跑步,边伸手拾取的动作
其他后面想到再补充
相关函数
Play Montage:播放蒙太奇,目标是Character,人物蓝图和动画蓝图均可调用,开始时间可以设置。is Montage Playing:避免重复播放,或者冲突。Layered Bone Blend:混合骨骼,实现动作和当前状态的融合,十分强大!视频讲得很透彻,实现逻辑大概是:在原来简单状态机输出动作的基础上,先把每次(暂且理解为每帧)动作暂存在一个cache,然后用这个cache和需要混合骨骼的蒙太奇混合,最终生成输出的动作。具体比如:目前是walk状态,那么cache存某帧的walk,然后把这个walk作为分层混合的Base Pose,;再把该walk输入经过slot,得到pick的某帧状态作为Base Pose0,两者混合输出最终的姿势。下面上图,都是根据视频和蒙太奇制作教程做的。踩过的坑
为什么我放插槽的时候只能选择DefaultGroup.DefaultSlot?
哦亲爱的当然不是你的错,把DefaultGroup.DefaultSlot插槽节点放进来之后,再在详情里面更改,直接是找不到的,谢谢这篇.
蒙太奇里面如何添加新的Slot?
中下方的部分只能预览,右下的动画插槽管理才是添加新的插槽和组的地方,第一次不建议使用DefaultSlot,更明白一点。具体插槽的编辑,片段的概念,这个和这个介绍和演示得很好。
使用分层混合,为什么播放了蒙太奇之后,原有状态不见了,或者动画直接僵住?
建议进行以下分析:
是分层混合没有设置好,具体上半身/下半身,或者哪个骨骼进行混合,多大比例的混合?请移步官方教程播放的蒙太奇是否包含混合的插槽?强烈建议分步完成调试!
待续…