行业资讯

【干货】Demo外包了若干角色动画,也遇到了一些坑

2022-08-25 09:30:57

前言

我最近为自己的Demo外包了一些角色动画,也遇到了一些陷阱。所以在这里把相关经验分享给大家,免得大家再挖坑,尤其是那些缺乏经验和精力的独立游戏制作者。当然,我对3DMax完全不熟悉,大部分信息都是我和外包大哥交流过程中的个人认知。如有错误请指正,谢谢。

PS。由于布料碰撞问题,我重新导入了 6 次角色ue模型外包,包括绘制布料、设置碰撞和编写动画蓝图。太痛苦了!

如果角色需要使用Ue4的布料,需要确认是否使用了3DMax。场景单元问题:人物大小正常吗?骨骼问题:根骨骼的缩放是否为 1、 旋转是否为0(与布料碰撞有关),盆骨也需要检查,以防止由于fbx的轴向问题导致盆骨旋转出口。也就是说,当你得到绑定的角色后,需要立即使用Ue4进行角色布料碰撞测试。

当然,必须检查蒙皮和动画。一般靠谱的外包是不会犯这些错误的,这里就不多说了(主要是我不太了解)。以下是我个人认为需要注意的主要问题:

第一点和第二点可以结合起来说:因为3DMax的默认单位是英寸,所以在绑定时导入模型时可能会出现因单位不正确导致人物收缩的问题。至少我遇到了这个问题,郁闷了整整一个月。个人认为,关键是要搞清楚max或者fbx文件的单位,max的系统单位和输出单位。调整单位的三种方式:

单元问题

设置最大场景单位

Max导出文件单位不正确的主要原因是文件本身的单位不正确。 Ue4 的默认单位是厘米,而 Max 默认为英寸。所以我们可以通过调整单位来解决这个问题。一般步骤如下: 1.Cutomize-,进度单位设置命令。 2. 选择。 3. 将单位设置为厘米。 4. 此时打开以英寸为单位的max文件时,会提示Units Mismatch,选择Rescale The File Objects To System Unit Scale。 5.导出Fbx后ue模型外包,请将导出单位改为厘米。

场景缩放

对于皮肤文件,此操作可能会导致问题。操作步骤如下: 1. 在Utilities栏中找到并打开。 2. 设置比例因子后,点击确定。

导入设置

Ue4导入选项中有一个单位缩放,可以直接在这里设置导入缩放。此方法只有在没有Max源文件,只有fbx文件时才可以选择。

注意:如果你的角色使用布料系统,以上所有方法都会禁用布料碰撞。经过实验,如果根骨骼的缩放不为1,旋转不为0,就会出现碰撞失败。因为这些方法本质上是缩放根骨。

一个简单的解决方案是直接设置角色骨架模型的比例。但是,由于强迫症,我不推荐这种方法。具体解决方法请参考 Maya Skinning Transfer 部分。这里先说一下这两个软件的骨架系统,然后再细说解决方案。

骨骼类型

据我所知,3DMax 有 CS(两足动物)和 CAT 骨骼系统。虽然也有普通的骨骼,但基本不用,因为角色动画库基本都是基于这些骨骼系统的。

我找到的外包大哥用的是CS(biped)。 CS有点不高兴会有双足节点。

至于CAT,结构类似于Ue4的HumanIK结构,但是外包商说这个不稳定,所以没用。

对应Maya,是HumanIK工具。该结构类似于 Ue4 的 HumanIK 结构(带有额外的脚趾骨)。当然,我还没有和专门外包Maya动画的公司沟通。我不确定他们是否使用 HumanIK 来做角色动画库。如果公司打算专门为 Ue4 制作动画,请考虑使用 Ue4 的动画插件。

这些骨骼系统对动画没有任何影响,但如果你像我这种愚蠢的个人开发者,用自己的薪水制作演示,由于资金有限,你不能将所有的动画外包出去,或者你需要使用商城资源来制作它们。原型,或者想应用stemV的动画系统。那我推荐你使用 Ue4 的标准骨骼进行绑定,并使用重定向系统将动画从其他骨骼系统重定向到标准骨骼。

理论上,动画师还是会使用动画库对应的骨架系统来绑定角色,因为动画需要根据角色模型进行调整。当然,绑定精度没那么高。

动画重定向

因为我使用的是 Maya,所以我将在这里重点介绍 Maya。首先unity3d外包,你需要做一个标准的TPose来进行重定向,也就是把字符放到一个十字架上。您可以参考 HumanIK 工具的标准骨骼。这样做的原因是因为TPose易于统一,易于对齐。重定向姿势将直接影响重定向的质量。所以我推荐在Maya中做虚拟仿真 ,另一个原因是Ue4的重定位工具不能处理基于现有骨骼动画的IK骨骼动画。下面我简单介绍一下Ue4和Maya中的重定向过程:

UE4:在Maya中制作TPose后,给骨骼K一帧动画并导出。在Ue4中导入后,右键点击得到的Create-Create PoseAsset,然后点击左下角的se界面,指定创建的TPose。

根据重定向源和目标的不同,还可以分为(这里非UE4骨骼动画以CS骨骼动画为准):

CS=”Mannequin and Mannequin=”CS:根据对应的骨骼结构,在SetUpRig中选择HumanIK模板,设置对应的骨骼。如果两个被绑定的角色高度相同,根骨可以留空。如果不同,则需要在 CS 骨骼中添加另一个根骨骼。在重定向过程中,可能会出现手臂和腿不正确的问题。这可能是扭骨位移的问题,有些扭骨需要留空。

CS=>CS:这种情况可能涉及到其他非标准骨骼,所以这里需要在重定向的源骨骼Asset上右键Create-Create Rig,然后根据对应的骨骼结构进行填写。

Maya:选择 Rigging 模式,点击 Skeleton-HumanIK 运行。然后点击onition(创建角色定义)指定对应的骨骼。

你可以手动指定,也可以套用官方模板(前提是你的骨骼没有重命名)。模板包括 CS、CAT 和 HIK。一般步骤如下:

如果您的骨骼已更改名称,则需要手动分配它们。如果你的角色骨骼不处于TPose状态,那么HumanIK界面中的手臂和手部会显示为黄色,所以此时需要将当前骨骼调整为TPose状态。

设置重定向源和目标角色后:

点击添加控制,然后角色将被锁定。如果要再次修改ue模型外包,需要点击侧面的锁定按钮。导入重定向源的动画。在 HumanIK 的 ChARacter 中选择目标角色,并选择 Source 作为重定向源角色。此时,重定向源的动画数据已经重定向到目标角色。如果你的目标角色是UE4标准骨骼,则需要将IK骨骼P(设置父子关系)附加到对应的控制器上。应该是在IK骨骼和对应骨骼之间建立一个父子约束(先选父亲,再选儿子)。此步骤应在设置 TPose 之前完成。选择骨骼、模型和控制器,然后导出动画。 (记得点击烘焙动画选项)Maya 蒙皮转移

一般操作如下:

将原始皮肤文件复制为新皮肤文件。在删除历史、断开连接、调整骨骼和模型的大小以及冻结缩放和旋转属性之后。批量重命名原始蒙皮文件的骨骼。将原始皮肤文件导入新的皮肤文件。因为后期需要合并模型ue模型外包,所以需要确保UV通道正确(如果像我一样扣了UE4角色的眼睛)。分别合并原始模型和调整大小的模型,然后切换到 Rigging 模型并运行 skin -nWeights。在大纲视图中选择对应的项目,按住鼠标中键拖动到对应的列,完成赋值。指定选项后,单击应用。就等王者顺风的时候,剥了皮的就传下去了。 Maya 批处理命名脚本

如果您的重定向源骨骼与目标骨骼同名,则需要批量重命名它们。这是在 Internet 上找到的脚本。对于骨骼,需要按住 Shift 并单击 + 展开所有骨骼节点,然后选择批次添加后缀。

from maya.cmds import *
sel = ls(sl=True)
numSel = len(sel)
for i in range(0,numSel,1):
 origName = sel[i]
 #print origName
 rename(origName,origName+'_old')

结论

这篇文章写的很匆忙。有不明白的地方欢迎交流。

Maya中的重定向工作可以通过Python编写插件来实现批量重定向动画。演示完成后我会尝试编写这个插件。

标签: ue模型外包