您可以使用 Blender 或 Maya 等第三方建模软件创建或修改现有模型来支持第三方动画头,例如 头部 或 头部 。当创建头部时,您的角色模型必须满足以下要求:
- 该模型遵循标准 建模要求 ,包括头部几何图形,例如眼睛、嘴巴和牙齿。
为了满足这些要求,您可以在设计和塑造自己的头时遵循本指南中的步骤。 该指南涵盖 Blender 上的 5 个基本面部骨骼、塑造和映射 5 个基本面部骨骼在 Blender 上的简易引用角色(Cubie),然后导出模型。
参考文件
以下是头引用文件,包括此指南的所有示例文件:
参考文件 | 描述 |
---|---|
Cubie-Model-Only.blend | 一个含有面部数据无的 R15 立方体模型的 Blender 项目文件。 |
Cubie-Eye-Bones-Skinned.blend) | 一个包含示例 Cubie 角色模型、无需正面或映射数据的眼睛骨头的示例文件。 |
Cubie-Eye-Poses-Mapped.blend | 一个名为“Cubie”的 Blender 项目文件,其中保存了 5 个示例位置和地图。 |
Cubie-Complete.fbx | 一个拥有全部位置保存和可追踪的 50 多个位置保存和映射的方形角色模型。 您可以将此文件导入到 Studio 中,或者在您的首选 3D 建模软件中打开此文件。 |
Cubie-Texture_ALB.png | 一个Cubie 纹理图像文件。 在您导入Cubie 模型到Studio后,您可以将此文件作为头部部分的 TextureID 。 |
Cubie-Complete.ma | 一个 Cubie Maya 项目作为额外的参考提供。 |
模型要求
许多角色模型已包含带有独特面部特性的头,但它们可能需要进行少量的修改,以确保头的兼容性。当模型角色头时,请确保头网格与 Studio 导入的头角色规格一致,还需要满足以下要求:
- 面部部分 - 确保您包含不同的面部功能,例如眼睛、上牙、下牙和舌头。
- 嘴唇端口 - 如果您想要您的角色使用其口,请分离嘴唇端口,以便口可以打开。
- 内部组件 - 如果您的角色有内部口部件,例如舌头和牙齿,在头部网格中模型一个口袋,以包含这些功能。 如果您的角色使用眼球袜子,请模型一个类似的眼球袜子来包含这些功能。
- 无额外数据 - 确保所有子孩子不面向头_地理的零件不含历史或冰冻变形。
- 外层笼子 - 确保角色模型有外层笼子来支持面部配件和多层服装。 For more information, see 笼子网格要求 .
您可以使用 使用饼干角色作为模型 来跟随此头部创建过程的剩余部分,该角色具备这些建模要求。此版本不包含任何面部雕刻或姿势数据,因此您可以使用它作为此指南的参考。
机械设备
您的角色必须有内部骨骼结构才能驱动面部几何学的垂直,并使用面部姿势。 与 rigging a humanoid model 不同,Studio 不需要特定骨骼层级才能为头部工作。 但是,为了使面部rig能正常工作,面部rig必须包含一个 RootFaceJoint 骨和额外的面骨。
根面共同
RootFaceJoint 是一个骨头,它是标准 R15 头骨下的父级骨头。此根骨头不会控制任何边缘,但它必须父级所有其他面骨。在 Blender 网格,您可以通过 extruding 一个子骨从头骨添加骨头,然
要添加一个 RootFaceJoint 骨头:
在 Blender 中,打开 Cubie-Model-Only.blend 项目。
点击任意骨头来选择装甲,然后切换到 编辑模式 。
在 Outliner 中,单击头骨。
在 视窗中 ,按下 E 并将鼠标拖动到额外的儿童骨头从 头骨 骨头中 extrude 一个。
在 轮廓线 中,重命名这个骨头 动态头 。你将在地图部分中稍后参考这个骨头。
面部骨头
面骨驱动着面几何形状的弯曲和变形。 您头部的每个可变脸部功能通常需要至少一个骨头。 复杂的面部特性,例如眼睛和嘴巴,可能需要几个骨头才能使某些姿势可能。
装备和皮肤过程会随着角色模型和工具和模型器之间的差异而变得更复杂。 重要的是,要规划出角色需要的所有面部姿势,以避免以后对头骨的额外调整。
下面的说明描述了添加面部骨和皮肤或应用影响的基本过程,或应用影响,到参考模型的 眼 和1>眉毛1>。 您可以继续使用此技术在面部功能需要 articulation 的其他面部功能
添加面部骨头
您的角色需要的特定头骨取决于您打算使用它的姿势。以下例子涵盖添加 1 个骨头为每个眼睛和 4 个骨头为眼睛周围允许眨眼、眨眼和眨眼方向的姿势。
创建面部骨架时,尽可能使用少于 50 个面骨,并确保骨头组织和特定为其所对应的面部特性。 一般来说,高数量的边节和关节可能会影响您的体验性能。
眼睛
每个眼睛都需要一个骨头,尽管您可能会选择创建一个控制两个眼睛的控制器骨头稍后。为了确保您的骨头正确地位置,您可以在 X-轴镜rors 在视窗的右上角启用。这将骨头与不同的尾巴端以 X 轴的顺序移动。
要将骨头添加到角色眼睛:
在 对象模式 中,选择 护甲 并切换到 编辑模式 。
单击 添加 ,然后 单个骨头 。 做这个两次。
重命名一个骨头 LeftEye ,并重命名另一个 RightEye 。
启用 X 轴镜rors 。
将左或右骨头放置在模型的眼睛中间。
调整骨头在水平面上和前面。快速方法设置骨头在水平面上:
- 在 视窗 的右上角,将 工具面板 扩展到 变形 部分。
- 选择了骨头后,复制 头 位置到 尾 位置。
- 将 尾巴 Z 设置为 0.2 厘米。这将 Tail Z 坐标设置为 0.2 厘米的头 Z 坐标的偏移。
按住 Shift 并单击 both Eye 骨头。
仍然按住 Shift ,单击面部骨头。
在视图中单击鼠标右键。一个上下文菜单显示。
选择 父级 , 制作 ,然后 带偏移 。
眼睛周围
添加骨头时,您可以快速创建骨头,它们在面部骨头下面的父骨下选择现有面部骨头并复制它们。 这会自动创建骨头,父骨在面骨下。
要将骨头添加到角色眼睛:
在 编辑模式 中,按住Shift并单击 眼骨 来选择它们。
按下 Shift D 并单击以在同一位置复制骨头。 执行四次以创建 8 个新骨头。
使用 X 轴镜像已启用 ,在眼睛的角落位置每个骨头。
在 Outliner 中,重命名所有骨头反映其特定位置。使用以下名称:
- 左上角外眼睛
- 右上角外眼睛
- 左下角外眼
- 右下外眼睛
- 左上内眼睛
- 右上内眼睛
- 左下内侧眼睛
- 右下内眼睛
皮肤面骨
您可以使用多种方法应用皮肤到角色网格。以下示例使用Blender的 重量油漆 模式来涂色哪些骨头可以控制。 皮肤是一种时间消耗的步骤,通常对复杂角色和背景在皮肤和面部姿势中是有背景的。
对于复杂模型,建议启用 自动普通化 以防止骨头之间的影响冲突。
眼睛
在示例项目中,两个眼睛都需要在眼睛几何学中完全影响眼睛。根据眼睛的设计,您可能需要调整影响来创建现实的眼睛姿势。
要将影响添加到 LeftEye:
在 对象模式 中,单击头部网格,然后按住 Shift 并单击任何骨头选择装甲。
切换到 重量油漆模式 。
切换到 X 射线投射模式 或 材质预览模式 来更好地视зуали化垂直。
按住 Shift 并单击 左眼 骨头来选择它。当前选择的骨头的名称显示在视窗的左上角。
在眼睛内的垂直上涂色影响。在此示例中,确保瞳孔是红色的,或受到选定的骨头的完全影响。
切换到 对象模式 ,然后单击任意骨头选择装甲。
切换到 姿势模式 使用选定的护甲。
测试眼骨的影响,通过抓取骨头并将其移动。下面的网格应该跟关注。
重复这些步骤为右侧眼。
眼睛周围
眼睛骨头需要它们自己的独立影响。 虽然示例只能操作上眼睛,但能够控制眼睛下角的角落是对其他姿势,例如 LeftCheekRaiser 和 RightCheekRaiser 很重要。
要将影响添加到左侧眼睛:
在 对象模式 中,单击头部网格,然后按住 Shift 并单击任何骨头。
切换到 重量油漆模式 。
切换到 X 射线视图模式 或 材质预览模式 来更好地视зуали化垂直。
油漆会影响骨头最接近的垂直。
完成时,按住 Shift 并单击另一个骨头开始应用影响到最近的垂直。为每个眼睛骨头执行此步骤。
切换到 对象模式 ,选择角色网格,然后切换到 姿势模式 进行测试。
您可以下载 此项目的一种版本 用骨头皮肤到此点作为参考。
添加控件
由于创建头部需要连续保存几个姿势,而不是需要,因此控制可以帮助您快速有效地姿势您的骨头。 您可以通过添加外部控制骨头来影响内部骨头,使其更容易访问和姿势,并且重置为中立变形。
您可以使用许多不同的方法来创建控件。以下示例使用 骨头约束 和引用 Blender 项目中的简单几何形状来快速设置面向角色面部骨头的简单控制骨头。有关网格和约束的更多信息,请参阅 Blender 的文档 角色网格和约束 和 对象约束。
要开始创建面部骨控控制:
- 在 对象模式 中,选择共同杆杆,按下 ShiftD 来复制共同杆杆对象。
- 将新装甲命名为 控制器 。
- 在 编辑模式 中,选择所有非面骨,右击并选择 删除选定骨头 。
- 重命名骨头包含 _Con ,以表示它们为控制器骨头。你可以使用以下过程来批量重命名它们:
- 在 概述线描述器 中,按住 Shift 并单击所有控制器骨头。
- 导航到 编辑 > > 批量重命名 。显示重命名模态。
- 设置为 已选择 并使用下拉菜单设置为 骨头 。
- 将 类型 设置为 设置名称 .
- 将 方法 设置为 附加 。
- 在 名称 中,添加 _Con 。
- 点击 好的 按钮。
- 切换到 对象模式 ,选择原始共同梯子对象。
- 切换到 姿势模式 。
- 单击原始共同骨头,例如 LeftEye ,然后导航到 骨头约束属性面板 。
- 添加 复制位置 和 复制旋转 ,然后将每个原始骨头的约束设置为目标,例如 LeftEye_Con 。
- 在 复制旋转 约束中,设置以下属性:
- 在 轴 中,禁用 X , Y 和 1> Z1> 。
- 在 反向轴 中,启用 X , Y 和 1> Z1> 。
- 将 混合器 设置为 抵消 (传承)。
- 执行步骤 7-9 对于所有需要控制器的面部骨。
要创建自定义骨形,以便更容易控制骨形:
切换到 对象模式 并选择 控制器 的钢架对象。
切换到 姿势模式 。
选择一个控制器骨头,例如 LeftEye_Con .
切换到<a href=\"#骨头属性\">骨头属性</a>面板,并扩展<a href=\"#视窗显示</a>部分。
选择项目中包含的自定义形状之一。在参考项目中,形状对象的名称与面骨共有相似之处。
将 X 旋转设为 -90 。如果需要,请设置任何额外的缩放。
执行步骤 3-6 对于所有的控制器骨头。你可以在此时隐藏原始面部骨头。
(可选) 设置 骨头群组 来为您的控制器骨头分配颜色:
导航到 对象数据属性 面板。
创建一个新骨头群组。
将 颜色设置 更改为您选择的颜色主题。
单击 分配 将当前选定的控制器的颜色分配到。您可以在批量中执行此操作。
在 姿势模式 中测试你的控制器。
正在摆姿
姿势 是将头部网格的骨头操纵到特定位置 per 动画框架的过程。 模型的头部已经rig了后,您可以开始保存姿势到时间线。 此数据使Studio能够访问每个面部移动并 动画或混合面部姿势来创建动态表达。
当将角色的头部网格骨头移到新位置时,请遵循面部行动编码系统 (FACS)作为面部表达的参考。FACS是一个包含所有视觉可见面部运动的面部动作描述系统,它允许所有面部动画在角色之间共享。
您的建模软件的动画时间线中的每个框架都可以包含一个独特的 FACS 姿势,因此当您想要创建多个 FACS 姿势时,您必须将每个 FACS 姿势保存到不同的框架。您还必须包含一个框架,其中您的角色有一个中立面,面部控制器
下图是 Blender 动画时间线的示例,其中有 5 个框架。 第 0 框是角色的中立表达,第 1-4 框是 FACS 姿势数据。
您可以使用 Roblox 中的 50 个基础位置 来为您的角色表演一系列面部情绪。当您决定要使用哪种位置时,请记住 FACS 位置名称总是基于角色的左侧视角,不是镜头。例如, LeftEyeClosed 会关闭左侧角色的左眼,这是相机查看角的右侧。
您可能不需要所有 50 个基础姿势为您的角色。 例如,一个简单的机器人,它只需要 JawDrop , LeftEyeClosed 和 RightEyeClosed
下面的步骤描述了面部骨头在我们的引用中创建的五个姿势,但您可以将这些步骤应用于任何额外的姿势以获得更具表达性的头部。在 Blender 中应用我们的面部骨头:
确保动画时间线路头设置在正确的框架上。
- 如果您正在设置角色的 中立姿势 ,将其设置为 框架 0 。
- 如果你正在摆 EyesLookLeft,将其设置为 框架 1 。
- 如果你正在摆 EyesLookRight,将其设置为 框架 2 。
- 如果你正在捏造 LeftEyeClosed ,将其设置为 框架 3 。
- 如果你正在捉 RightEyeClosed ,将其设置为 框架 4 。
在 姿势模式 中,将姿势设置为您想要的最大位置:
- 如果您正在设置角色的 Neutral 姿势,将面部控制器和骨骼设置为默认值,
- 如果你正在摆oseye左侧,选择眼控制器骨头,然后将鼠标拖动到角色的左侧。
- 如果你正在摆oseyeLookRight ),选择 both eye controller bones and drag the eyes to the character's right。
- 如果你正在摆姿势 LeftEyeClosed ,请选择左侧眼控骨头和拖动左侧眼睛向下以满足底部眼睛。
- 如果你正在摆oseye闭闭,请选择 both眼控制器骨和拖动右眼睛下方的眼睛。
在 视窗 中,按下 A 以选择所有骨头。
右击并选择 插入键框 > 位置和旋转 。这确保每个框架都包含所有骨头的位置和旋转信息。
当所有姿势都保存在您的时间线中时,设置开始和结束动画时间线代表存储的姿势数量。总是设置开始为0,并且在此特定示例中,您可以将结束设置为2>42>,如果您仅为4个非中立示例姿势映射。
组合式姿势
您可以在一个动画框中结合 2-3 个基础 FACS 姿势来显示复杂的面部表达。 但是,当您结合控制同一面部区域的 FACS 姿势时,面部功能可能会碰撞或变形角色。
例如, both LeftEyeClosed 和 LeftCheekRaiser 控制角色左眼的移动:LeftEyeClosed 关闭眼睛,并 1> LeftCheekRaiser1> 向上移动����
一个 组合式ポーズ 或 修正式ポーズ 是由 2-3 个 FACS 位置控制相同面部特性的单个动画框中的 2-3 个组合式ポーズ的组合。 通过定义并映射一个组合式ポーズ到您的头,您可以正
导入时,Studio 计算并存储头部的 FaceControls 实例中的修正差异,并且 FaceControls 实例正确地修复了基础位置在动画编辑器中组合时的位置值。
正在投射
在你完成每个 FACS 姿势,你的角色需要的,你必须关联 每个动画框 链接到它的相应 FACS 基地或组合式姿势名。 映射存储骨头位置和翻译在头部内的头部 Class.MeshPart ,并且当你开始
除了将每个姿势映射到其正确的姿势名外,您还需要将 根面联合 映射到 Studio 可以正确找到该联合并隐藏所有子女联合和骨头在 FaceControls 实例上导入。
要将您保存的姿势和 RootFaceJoint 联合在一起:
切换到 对象模式 。
选择 头部_地理网格 。
在属性编辑器的对象属性选项卡中,导航到自定义属性部分,然后单击2> 新增2>按钮。一个新的自定义属性将在5> 新5>按钮下显示。
在新自定义属性的右侧,单击 齿轮图标 。显示 编辑属性 弹出窗口。
单击 类型 弹出菜单,然后选择 字符串 。
在 属性名称 字段:
- 如果您正在映射姿势,输入您正在映射的 框架号 您正在映射, 框架0 例如。
- 如果您正在映射根脸,输入 根脸 。
离开 默认值值 和 描述值值 字段为空。
点击 好的 按钮。新的自定义属性与您的新属性名更新。
在自定义属性名称的右侧:
- 如果您正在映射一个基本姿势,输入相应的 FACS 基本姿势 或组合姿势名称正确地。
- 如果您正在映射组合式姿势,请输入您组合的每个基本姿势,例如 Funneler_JawDrop_Pucker 。
- 如果您正在映射根面,输入面根骨的名称,通常 DynamicHead 。
按下 输入 。
随着您重复此过程,您创建的每个额外的自定义属性都会显示在“属性”编辑器中的“自定义属性”部分。
您可以下载一个 版本此项目 使用保存的姿势和地图到此为参考。如果导入头部 .fbx 使用保存的动画数据在 Blender 中,请确保在 .FBX 导入窗口中设置 动画 Offset 为 1> 01> 包括在时间线框架 0 的时间线框架。
正在导出
在完成为角色头部创建和映射完成后,您可以将角色模型导出为 .fbx 来导入 Studio,使用 Studio 中的 FaceControls 实例访问 4 个眼位,并使用 Studio 中的 4 个基础位置。您还可以参考 4 个基础位置的完全配置的 Cubie 头,以访问所有 50+ 个基
动态头的导出设置与 standard third-party 建模导出设置 的基本头模型导出设置有些不同。要将基本头模型导出为 .fbx :
- 在顶部栏中,单击 文件 。 弹出菜单显示。
- 选择 导出 ,然后 FBX (.fbx) 。显示 Blender 文件视图器 窗口。
- 扩展 包括 并启用 限制到 有效收藏。注意,如果您在 Blender 项目中没有额外收藏,此步骤是可选的。
- 在 包含 部分中,启用 自定义属性 。
- 扩展 护甲 部分,并且取消 添加叶子骨 。
- 启用 烘焙动画 。
- 扩展 烘焙动画 ,并且取消 NLA条纹 , 所有动作 和1>强制开始/结束键框1>。
- 点击 导出 FBX 按钮。将 FBX 保存到您选择的目录。
在此时,您现在可以将 .fbx 导入 Studio 作为具有支持动画的头部的角色。 对于导入和使用说明,请参阅 使用头在 Studio 。