案例实现效果:
人物跑步留下脚印(其他运动留下脚印也是同理)。
重点:
贴花的创建、射线、动画通知。射线碰撞决定贴花生成位置,动画通知决定贴花生成时间。
一、贴花
1、贴花纹理图
在网络上找素材(也可自己制作),在PS中处理一个左脚脚印,一个右脚脚印,最好都要带透明通道,图像宽高最好1:1。
透明效果也可以再UE4中处理得到,如图2,使用颜色键去抠除背景。
2、创建贴花材质
选择贴图,右键创建材质。其中一个材质编辑器做如下设置,另一个同样。
注意贴花是无法预览的
3、贴花类
把贴花放进Actor类中,Actor类可以变换,贴花需要变换。
注意:Rotation:Y值一定是-90的。 X这里调试是90.
Scale:因为我们贴图图像宽高是1:1,这里我们就默认1:1:1比例就行,如果贴图图像不是1:1,这里需要相应调整成对应形状比例。
淡化开始延迟:生成持续多久再淡化。
淡化时长:淡化动画时长。
淡化后要销毁拥有者勾选。
这里可以先做一个类,调好各参数后,直接复制类,后只要改贴花贴图即可。
二、射线
制作一条脚底朝正下方的射线。射线碰撞决定贴花生成的位置。射线起始点是插槽位置,终点的XY去插槽的,但是插槽的Z轴应该不是朝正下方(未验证)。这里我就取人物网格体的世界场景位置的Z方向(必定朝正上)的反向(*负数),负数是反向,数值决定射线长度。 把这3个数组合成向量赋予终点。
由类生成Actor,变化属性拆分开,位置即是碰撞位置,旋转取人物的的旋转(ActorRotation) ,大小根据实际情况调节。
右脚的生成脚印函数创建同理。
三、动画图表
动画通知决定了贴花生成的时间。
1、动画通知
在动画资源中取到脚踩地板的瞬间,标记动画通知,这里就标记左脚,右脚同理。
第三人称模板人物默认是跑步,这里就挑选Run资源设置,其他资源也可以添加通知。
二、动画蓝图中的事件图表
存储当前人物对象,方便后期调用
调用事件通知LF,触发足迹函数LFPrint。右脚同理
完毕。