前言
当可以把 MagicaVoxel 的静态模型导入到 UE4 后, 我又开始不满足了. 默认第三人称蓝图的 "汽车碰撞人偶(雾)" 与场景中的体素画风格格不入, 于是, 我便想着用自己建造的体素画风人物创建一个第三人称蓝图, 于是我又再次进行了尝试(谁叫 UE4 的 MarketPlace 里面没有像 Unity 那样友好的插件呢).
在开始之前, 先说明一下我使用的工具: MagicaVoxel,Maya2018(其实我也不想用, 但是某些骨骼处理上还是 Maya 具有很强的优势. Blender 应该也可以, 不过我并没有找到相关解决方法, 如果各位园友愿意提供相关方法的话, 欢迎在评论区留言),Mixamo,UnrealEditor 4.20.3(其中的某些设置选项, 以及蓝图节点的接口可能与高版本的 UnrealEditor 略有不同, 具体变动以官方更新文档为准)
正文
Mixamo 是 "一个逗比"(Adobe)旗下的免费在线骨骼绑定与骨骼动画制作平台, 是我们这次建立模型骨骼动画的主要工具, 网址为 https://www.mixamo.com/ , 在使用 Mixamo 之前, 请先注册一个 Adobe 账号, 登录 Mixamo 之后便可以使用.
1. 模型建立
建立人物模型时, 请将人物模型保持双臂展开的 T 型, 如下图所示:(无意冒犯, 只是随手一做, 看着像是加了精神感应骨架和报丧女妖天线的初期型吉姆(狗头))
(很丑, 请无视)
Mixamo 的骨骼绑定只适合初始姿态为 T 型的人物模型, 所以, 请务必这样建模.
在建模完成后, 请将模型导出为 obj 格式的模型, 以便我们接下来的修改与上传. 在导出完成后我们可以在相应路径下看到这样三个文件:
接下来请打开 Maya, 此时在 "窗口"(Windows)选项卡点选 "设置 / 首选项"(settings/preference), 再次选择 "首选项"(preference), 点击 "设置"(settings), 如下请将上方向轴点选为 z:
由于 UE4 的上方向轴为 z 轴, 而 Maya 默认为 y, 请将两者同步.
然后新建一个场景, 将 MagicaVoxel 导出的 obj 文件拖入场景内, 在 MagicaVoxel 中, 建模原点并没有位于模型内部, 并且导入到 Maya 后会出现这种情况:
此时请选择 "修改"(modify)选项卡中的 "居中枢轴"(前提条件: 请先选中模型), 这样有利于接下来的操作, 然后进行旋转, 平移, 放大操作, 放大操作极为重要, 因为 MagicaVoxel 生成的模型放在任何 3d 环境中都是极其小的(即使 UE4 中也一样), 如果不进行放大, 绑定骨骼后的所有骨骼节点几乎会重合在一起, 不利于之后的操作, 请务必进行放大(给一个放大倍数参考值: 23~25 之间即可), 处理好后, 将其导出为 obj 格式, 注意不要和原先的 obj 文件搞混, 建议分开存放.
这时请将由 Maya 导出的三个文件打包成 zip 格式的压缩包, 以方便我们上传到 Mixamo.
2.Mixamo 骨骼绑定与人物动画制作
首先, 请打开给出的 Mixamo 链接, 接下来的上传步骤我不再详述, 只要稍微会点英文就不愁看不懂如何操作(笑), 在上传中可能会发现上传的模型一片黑色, 不用担心这个问题, 我们只要按照正常步骤进行即可, 在绑定步骤完毕后, 请先不要着急点选旁边窗口的动画效果, 请先下载绑定好骨骼的 T 型模型:
这姿势真糟糕, 但是我们可以看到骨骼绑定很成功:
下载的 format 请选择 fbx 格式, 姿势就选择 T-Pose, 下载即可, 接下来再选择你喜欢的 idle,running 动画各一个进行下载 (请在动画权重页勾选 InPlace 选项), 注意下载时 skin 选择 without skin(即不包含模型) 选项, 并且记住每一个动画的总帧数, 建议将帧数写在文件名里, 后面的操作要用.
3. 骨骼动画处理
好了, 接下来将所有的工作交由 Maya 完成, 请新建一个场景, 先将下载来的人物 T 型 fbx 文件拖入场景内, 选择模型后按 H 键隐藏模型, 我们只对骨骼进行操作, 然后点击装备 (官汉版这糟糕的翻译, 英文版对应 Rigging) 中的新建骨骼节点图标, 在场景平面上随意点击一处后生成一个骨骼节点(此时请将鼠标选项改为选择), 请将其名称设置为 Root(三个 fbx 模型的此节点名必须一致), 并将其平移属性设置为 0,0,0(接下来的两个动画也是这样的操作), 半径可以调大一点, 以保证操作便捷.
然后请点击骨骼的 Hips 节点, 同时长按 shift 键再选中我们创建的 Root 节点, 此时, 按下 p 键实现绑定, 如下图示:
绑定成功后, 请导出成 fbx 格式, 同命覆盖掉原先的 fbx 文件. 接下来请对已下载的其他两个动画 fbx 文件进行同样的骨骼绑定操作, 同样导出为 fbx 格式, 不过导出前请将动画结束时间设置为动画的帧数(第二步结尾让各位记住的每个动画的帧数). 如下:
两个空都填成动画的总帧数. 在以上所有处理工作都做完后, 接下来便是将这三个资源全部导入到 UE4 中
4. 资源导入
请先将 T 型模型导入 UE4 中, 按如下图的设置进行导入:
接下来再导入其余两个动画文件即可(导入时请将骨骼选择为 T 型模型的骨骼), 导入完成后会是如下所示:
其中那个 T-Pose.PNG 文件并不是默认导入后生成的文件, 那是我后加的, 因为在导入模型时, UE4 没有正确导入材质的贴图文件, 模型是 "毫无生机" 的白色, 于是我将原先 obj 里面的贴图导入材质球后便正常了. 打开导入成功后的模型, 会发现模型的样子惨不忍睹, 像是橡皮糖一样的感觉(当然如果你喜欢这种 Q 弹的感觉请无视掉即可(笑)), 这时请将材质球里的光泽度以及粗糙度分辨设置为 0 和 1 即可.
接下来就是创建动画蓝图以及第三人称蓝图了.
5. 蓝图创立
请在 UE4 的内容浏览器里新建动画蓝图, 父类选择 AnimInstance(动画实例), 骨架选择导入模型自动生成的骨架示例. 接下来请新建一个 "混合空间 1D", 选择同样的骨架即可, 接下来按如下图在混合空间编辑器中进行操作:
接下来请按如图的连接方式链接动画蓝图里事件图表的节点:
动画蓝图里的动画图表按如下设置:
接下来就是创建相关的第三人称蓝图, 这部分不做叙述. 创建成功的效果如下所示:
结束语
目前来说, MagicaVoxel 的模型导入进 UE4 中难度较大的一个部分: 将其创建为一个可操纵人物已经被攻克, 后来我又具体观察了一下模型细节, 被 Mixamo 绑骨魔改后的模型在有些地方已经没有体素模型的感觉了, 比如肩部与胯部最为明显, 在相关的讨论区询问了一些这方面的游戏开发大佬, 他们一般都是将人物模型分成几个部分, 再拼接起来放到 Maya 或 Blender 里进行绑骨, 看来如果想要达到完美的成果, 还是有很长的路要走啊(程序猿在 TA 的道路上越走越远(笑)).
如果各位对于以上步骤中 (尤其是绑骨的那一部分) 还有疑问, 可以去翻看一下一个 B 站的这个视频:( https://www.bilibili.com/video/BV1Zp411d7E4 ),up 讲的很细而且没有多余的话, 部分东西我也是从他这里面学的, 非常推荐大家观看.
来源: https://www.cnblogs.com/Pixel-Xi-an/p/12675001.html