fbx模型导入到UE4并制作可操作角色
获取fbx模型
- 一个好模型网站模之屋
- 如果只有pmx模型,详见将pmx转化为fbx
使用Mixamo创建骨骼与动画
- 将模型上传到mixamo
- 按照要求选择骨骼
- 取消默认动作,下载带骨骼的T-Pose
- 选择合适的动作并下载,在上一步已经下载了带骨骼的模型,所以Skin选择Without Skin
将模型与动作导入到UE4
- 先将T-Pose导入,导入选项设置中可以选择不导入动画,T-Pose仅为静态,材质一栏可以直接创建也可以之后自己创建
- 将准备的动作导入
角色控制配置
- 创建角色蓝图
- 添加弹簧臂组件和摄像机组件,摄像机组件附加到弹簧臂组件,可以将SpringArm一起附属到网格体上,这样当角色跳跃或下蹲等操作时可以让摄像机跟随视角
- 调整弹簧臂-摄像机-目标臂长度,调整位置,并勾选摄像机设置-使用Pawn控制旋转,以使视角根据鼠标移动而移动
- 选择网格体组件(Mesh)-网格体-骨骼网格体添加模型,并调整位置和大小
- 效果如图所示
- 给角色添加控制权。添加第三人称游戏功能包,将ThirdPerson小白人事件图表的一些功能复制过来,如Mouse input、Movement input、Jump input等
给角色绑定动画
- 创建动画-混合空间1D
- 添加一个轴值Speed,之后我们把这个当做角色速度范围,并根据状态添加不同的动画,在角色蓝图-CharMoveComp-角色移动:行走-最大行走速度也要调成最大轴值,将不同动画插入到不同节点,将采样插值-目标权重每秒插值速度调整为3.0使过度动画更加平滑
- 创建动画蓝图,父类选择AnimInstance,目标骨骼选择你想要的绑定动画的骨骼
- 将第一步创建的混合空间1D拖到动画蓝图的动画图表AnimGraph中,Speed即为混合空间1D中添加的轴值,将Speed提升为变量,之后将在动画蓝图里实时获取速度并传递到此处,并根据速度播放不同的动画
- 在动画蓝图的事件图表中实时获取速度并给Speed赋值,在获取拥有者后需要先判断是否有效(Is Valid),获取的速度是一个向量,而设置的轴值是一个浮点,所以需要使用向量长度节点进行类型转换
- 在角色蓝图中使用上述中创建好的动画蓝图,选中模型(Mesh),在右侧的细节面板-动画-动画类选择创建的动画蓝图
- 修改角色蓝图-类默认值-Pawn中取消勾选使用控制器旋转Yaw,这一步为了角色不跟随鼠标旋转,修改CharMoveComp-细节-角色旋转(旋转设置)中勾选将旋转朝向运动,这一步使角色跟随键盘WASD方向朝向,这两个选项一般是互斥选项
完成
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.