zoukankan      html  css  js  c++  java
  • 如何将MagicaVoxel模型导入UE4中(2)

    前言

    当可以把MagicaVoxel的静态模型导入到UE4后,我又开始不满足了。默认第三人称蓝图的“汽车碰撞人偶(雾)”与场景中的体素画风格格不入,于是,我便想着用自己建造的体素画风人物创建一个第三人称蓝图,于是我又再次进行了尝试(谁叫UE4的MarketPlace里面没有像Unity那样友好的插件呢)。

    在开始之前,先说明一下我使用的工具:MagicaVoxel,Maya2018(其实我也不想用,但是某些骨骼处理上还是Maya具有很强的优势。Blender应该也可以,不过我并没有找到相关解决方法,如果各位园友愿意提供相关方法的话,欢迎在评论区留言),Mixamo,UnrealEditor 4.20.3(其中的某些设置选项,以及蓝图节点的接口可能与高版本的UnrealEditor略有不同,具体变动以官方更新文档为准)

    正文

    Mixamo是“一个逗比”(Adobe)旗下的免费在线骨骼绑定与骨骼动画制作平台,是我们这次建立模型骨骼动画的主要工具,网址为www.mixamo.com,在使用Mixamo之前,请先注册一个Adobe账号,登录Mixamo之后便可以使用。

    1.模型建立

    建立人物模型时,请将人物模型保持双臂展开的T型,如下图所示:(无意冒犯,只是随手一做,看着像是加了精神感应骨架和报丧女妖天线的初期型吉姆(狗头))

    (很丑,请无视)
    Mixamo的骨骼绑定只适合初始姿态为T型的人物模型,所以,请务必这样建模。
    在建模完成后,请将模型导出为obj格式的模型,以便我们接下来的修改与上传。在导出完成后我们可以在相应路径下看到这样三个文件:

    接下来请打开Maya,此时在“窗口”(Window)选项卡点选“设置/首选项”(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讲的很细而且没有多余的话,部分东西我也是从他这里面学的,非常推荐大家观看。
    码了这么多字,咱也就不求各位“点赞收藏加推荐”了,只求各位转载的时候注明出处即可,也希望咱的文章可以帮助到更多的小伙伴们,どうもありがとうございました!(都摸,阿里嘎多靠萨依玛希大!)

  • 相关阅读:
    基于摸板匹配的目標跟蹤算法
    spoj 2713 Can you answer these queries IV
    zoj 3633 Alice's present
    hdu 3642 Get The Treasury
    poj 1195 Mobile phones
    poj 2760 End of Windless Days
    zoj 3540 Adding New Machine
    spoj 1716 Can you answer these queries III
    spoj 1043 Can you answer these queries I
    spoj 2916 Can you answer these queries V
  • 原文地址:https://www.cnblogs.com/Pixel-Xi-an/p/12675001.html
Copyright © 2011-2022 走看看