第一节:换装系统的基本原理
1,原理
角色时装更换原理是把角色骨骼模型拆分成多个部分,每个部分都使用同一套骨骼,拆解的部分根据所在骨骼空间位置找到相应的主骨骼空间位置,然后合成输出比如说一个角色有多个mesh组成,比如头,身体,腿,脚等都是单独的mesh,共用一个骨骼,共用一个动画蓝图。
2,流程
我们打开ue4创建一个空项目
然后导入epic的素材包,这个是免费的
创建一个人物蓝图,mesh设为基础模型,然后添加弹簧臂和摄像机,人物位置z轴方向设为-87.5,z轴旋转值为270
在mesh下面添加骨架网格体,添加四个分别是面具,上衣,裤子和鞋
然后创建一个函数InitSkeletalMesh(初始化骨架网格体),这个函数用来初始化骨骼,让每个骨骼共用一个动画蓝图,因为如果一个骨骼就有一个动画蓝图的话会非常麻烦。拖出人物mesh,调用Set Master Pose Component(设置主姿态组件)节点来让这四个子骨骼都共用一个动画蓝图,目标就是要共用的四个骨骼,主骨骼是人物模型
然后在构造函数那里调用调用这个函数
我们再为这四个骨架网格体添加模型
记得把模型的位置和旋转都调为0
现在我们还看不出来我们使用Set Master Pose Component(设置主姿态组件)节点有什么用,这是因为我们还没有使用动画蓝图
我们先去项目设置里面的输入那里添加一个轴输入,命名为MoveForward,键值分别为w和s,注意s的scale设为-1
然后再人物蓝图中设置一下向前向后移动的蓝图
然后我们创建一个动画蓝图,创建一个混合空间1D,在混合空间1D里面把水平坐标命名为Speed,添加idle动画,walk动画,run动画
在动画蓝图中添加一个状态机
在状态机里调用上面创建的混合空间1D,进去把speed提升为变量,然后到图表那里的设置一下speed
然后我们在我们创建的人物蓝图中使用这个动画蓝图,发现衣服正常,跟随人物变化,我们复制一下这个人物蓝图,我们在这个新的人物蓝图的构造函数断掉InitSkeletalMesh函数的调用
然后回到视口发现衣服没有跟随人物做相应的变化
然后我们这两个人物蓝图分别到地图场景中试一下,效果更明显
综上,我们可以发现set Master Pose Component节点的作用就是让四个子骨骼共用一个动画蓝图,然后这就是换装的基本原理。
刚学习ue4的萌新,错误地方还请大家指正。