记录一下怎么把MMD模型(后缀是.pmx的模型文件)导入到虚幻并使用
首先需要准备一个插件:
VRM4U,放置到项目Plugin文件夹下,进入引擎找到Plugin:
在里面搜索VRM4U启用
在项目设置中找到Plugin->VRM4U设置导入权限(否则可能还是会使用其他的导入模型方式导入)
讲importPriority设置高于100
开始导入:
讲单独一个角色的pmx文件拉入引擎
设置ModelScale=0.08,MaterialType为MToonUnlit(最像二次元画风的渲染模式)
如果要描边材质要勾选GenerateOutLineMaterial
注意模型材质是否是包含双面,如果是双面需要在设置取消勾选ForceTwoSided
还有勾选[Optimize]优化
导入完成应该是这样的(记得保存全部):
用这个插件导入的pmx模型会有一些问题,比如脚部无法抬起
进入骨骼网格体,显示所有RetargetingOptions
右键根设置全部为动画
同时创建一个角色自己的动画蓝图:
先暂时在图表中使用默认的pose序列来用(后面重定向完动画再使用角色动画)
创建一个序列:
选择序列:
和2个LegIK节点:
将他们连在一起:
接下来开始重定向骨骼:
创建一个IKRig
选择当前角色的骨骼
进入Rig选择根节点,右键设置:
重命名为root:
选择NoGoal(只有四肢要绑定Goal):
讲胯下的骨骼设置为重定向根节点:
选中整个脊椎,再设置一条,设置为Spine:
设置头部:
设置四肢:
添加目标,设置为FullBodyIk,再Assign:
出现黄色框框就正常
刚刚添加Solver还没绑定根骨骼:
选中FullBodyIK,右键重定向的根骨骼(胯下)设置:SetRootBoneOnSelectedSolver
下面的Miss提示消失就正常.
最后这样即可(注意命名按照图中ChainName命名,直接对应引擎第三人称模板的骨骼):
检查一下移动正不正常:
接下来创建一个IKRetargeter
弹出框选择从哪个角色重定向(这里选择第三人称):
进入Retargeter,如果重定向的目标是女性角色,这里可以把第三人称的骨骼换成女性:
选择目标Ik:
如果不想角色重叠,可以设置右边的Target offset:
查看下发的ChainMapping是否都有映射到,如果没有就要手动选择一下,或者根目标的命名方式一致然后再点击重新映射:
现在可以在AssetBrowser里面双击动画来查看了:
如果动画很奇怪就需要检查Ik有没有设置好,多尝试几次
满意了就开始重定向动画,右键要重定向的动画,跳转到资源位置:
右键要重定向的动画,选择导出重定向动画:
弹出窗口选择刚才创建的Retargeter:
点下面的change可以改变导出位置(我这里导入到刚才角色资源所在的文件夹,新建了一个Anim的文件夹)
然后点击Retarget导出:
角色动画成功导出:
现在可以使用动画来创建角色状态机
新建一个混合空间,选择当前角色骨骼:
进入混合空间,在右边设置根据什么变量改变移动动画并且设置混合(这里设置变量名为Speed,最小值0,最大值550,分层11,混合设置3):
将右边的动画拉进中间的窗口,放好Idle,walk,run的位置:
进入前面创建的动画蓝图,在动画图表中创建一个状态机:
双击进入,将右边的混合空间拉进来与entry连接:
再双击进入
创建一个float变量连接到状态机的Speed上(就是前面决定角色播放什么动画的变量)
在回到上2层,把状态机替换掉前面临时使用的序列:
这边打算使用第三人称模板,所以直接在动画蓝图这里获取角色移动速度:
在EventGraph中获取角色Velocity的长度设置为变量:
我们在角色蓝图中设置骨骼网格体为我们要的,并且指定动画蓝图:
成功