前言

当可以把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讲的很细而且没有多余的话,部分东西我也是从他这里面学的,非常推荐大家观看。

码了这么多字,咱也就不求各位“点赞收藏加推荐”了,只求各位转载的时候注明出处即可,也希望咱的文章可以帮助到更多的小伙伴们,どうもありがとうございました!(都摸,阿里嘎多靠萨依玛希大!)

如何将MagicaVoxel模型导入UE4中(2)的更多相关文章

  1. 如何将MagicaVoxel模型导入UE4中(1)

    前言 当初在选择自己项目的美术风格时,由于自己的美术基础实在是太差,所以选择了体素风格来构建(其实还是MagicaVoxel的建模操作很容易上手),但是将自己千辛万苦做好的模型导入至项目中时,出现了这 ...

  2. 不可能的工作:在FBX模型导入脚本中生成模型的预置体

    #if UNITY_EDITOR using System.Collections; using System.Collections.Generic; using System.IO; using ...

  3. 3dsMax模型转UE4

    转自:http://blog.csdn.net/qq_24835213/article/details/68063344 一.模型设置: 1.将Vary材质转成标准材质 2.将模型减面 3.加一套UV ...

  4. Unity3d中模型导入轴向不对的解决方法

    在unity3d中导入模型,经常会遇到模型的轴向与unity中默认的轴向不符合的情况. 网上有很多解决办法都是说在3dmax中导出模型时修改模型的轴向,那么我接下来讲的就是如何在unity里面修改模型 ...

  5. 3D max模型导入unity 3D中注意事项

    一.单位,比例统一   在建模型前先设置好单位,在同一场景中会用到的模型的单位设置必须一样,模型与模型之间的比例要正确,和程序的导入单位一致,即便到程序需要缩放也可以统一调整缩放比例.统一单位为米. ...

  6. DL4J中文文档/Keras模型导入/函数模型

    导入Keras函数模型 假设使用Keras的函数API开始定义一个简单的MLP: from keras.models import Model from keras.layers import Den ...

  7. 【自制插件】将MMD4Mecanim转换的MMD模型导入maya

    这个已经废弃了_(:зゝ∠)_,另外做了升级版: http://www.cnblogs.com/marisa/p/5174150.html ============================== ...

  8. UE4 中Struct Emum 类型的定义方式 笔记

    UE4 基础,但是不经常用总是忘记,做个笔记加深记忆: 图方便就随便贴一个项目中的STRUCT和 Enum 的.h 文件 Note:虽然USTRUCT可以定义函数,但是不能加UFUNCTION 标签喔 ...

  9. UE4中使用数据表(Data Table)

    本文依据官方文档数据驱动游戏性元素整理而来. 做过游戏的应该都清楚,如果游戏稍微有点规模,那么使用数据驱动来做游戏一般是必不可少的一步,一般也就是策划通过本表的方式来解决.下面我们来简单说一下UE4中 ...

随机推荐

  1. redis环境搭建及一主二从三哨兵模式配置

    一.单机redis环境搭建 1.安装: OS:linux redhat6.5 下载redis 官网下载链接:https://redis.io/download 把安装包上传到服务器,进行解压 [roo ...

  2. Cisco asa组建IPSEC for ikev1

    IPSec的实现主要由两个阶段来完成:--第一阶段,双方协商安全连接,建立一个已通过身份鉴别和安全保护的通道.--第二阶段,安全协议用于保护数据的和信息的交换. IPSec有两个安全协议:AH和ESP ...

  3. IRM3800 红外遥控器解码 linux驱动

    这一次还是接在 Cemera 上.用 中断引脚 EINT20 也就是 GPG12. 之前焊的 51 板子上有一个红外接收器. 请注意了,是 标准的 NEC 码规范:首次发送的是9ms的高电平脉冲,其后 ...

  4. R语言实战(二) 创建数据集

    2.1 数据集的概念 不同的行业对于数据集的行和列叫法不同.统计学家称它们为观测(observation)和变量(variable),数据库分析师则称其为记录(record)和字段(field),数据 ...

  5. 【转】sublime text 2 快捷键大全

    Ctrl+L 选择整行(按住-继续选择下行) Ctrl+KK 从光标处删除至行尾 Ctrl+Shift+K 删除整行 Ctrl+Shift+D 复制光标所在整行,插入在该行之前 Ctrl+J 合并行( ...

  6. 转载:Nginx 相关介绍

    转载自:https://www.cnblogs.com/wcwnina/p/8728391.html Nginx 相关介绍(Nginx是什么?能干嘛?)   Nginx的产生 没有听过Nginx?那么 ...

  7. [C++]请麻烦压一下定理的棺材板啦

    从去年还在竞赛的时候2/12的原博客里搬运来的 不得不说之前取名真的很艺术qwq 今天开始上的数论课,让头发以肉眼可见的速度掉落emmm 没关系我头发多我不怕啦啦啦QwQ 其中最令人头疼的就是那些人名 ...

  8. 从原子类和Unsafe来理解Java内存模型,AtomicInteger的incrementAndGet方法源码介绍,valueOffset偏移量的理解

    众所周知,i++分为三步: 1. 读取i的值 2. 计算i+1 3. 将计算出i+1赋给i 可以使用锁来保持操作的原子性和变量可见性,用volatile保持值的可见性和操作顺序性: 从一个小例子引发的 ...

  9. MySQL windows中的存储备份

    数据备份对于经常在运维部署方面的工作者来说,是一件相对简单的事情,都可以通过某一个SQL工具进行备份,但是如果在项目运行当中,我们需要对数据进行实时,或者是每隔一星期,一个月,等等进行数据的备份,这样 ...

  10. Python进制的转换

    Python整数能够以十六进制,八进制和二进制来编写,作为一般以10位基数的十进制计数法的补充. 一: 上面三种进制的常用表示  >>> 0o1, 0o20, 0o377 # 八进制 ...