动态头是支持面部动画和自定义表情的装配化身角色头部。当用户在市场上购买动态头时,他们可以触发结合面部和身体动画的表情。
动态头的结构由四个主要层次组成,这些层次决定了头部在平台上的外观和功能:
- 网格和纹理构成头部的视觉外观。
- 面部动画数据决定角色的面部如何移动并表达角色的个性和情感。
- 笼网格决定角色的头部如何装备面部配件,这些配件会随着面部表情的变化而变形,例如,当角色改变面部表情时,面部毛发会相应移动。
- 附件决定角色的头部如何附加如头发和帽子等配件。
虽然您可以在第三方建模工具如Blender或Maya中手动创建这些层次,但某些层次有严格的配置要求,以满足Roblox的技术动态头规范,确保您的动态头在游戏中始终如一地动画。在您创建第一个自定义动态头之前,建议您:
一旦您拥有了自定义动态头,您可以将其与角色身体一起导入Studio,并使用Avatar Setup工具将您的创作处理成一个准备在市场上出售的化身资产。
动态头组件
所有动态头由相同的基本组件组成,这些组件允许用户装备面部配件,这些配件可以在目标角色的头部上拉伸、适配和层叠,并保持一致的行为。
网格部分


所有动态头都需要一个单一的网格对象来表示头部的几何形状。在Studio中,这个网格对象表示为一个嵌套在单个Model下的MeshPart对象。
纹理


纹理是定义角色头部表面外观的图像文件。您可以使用纹理绘制程序或3D建模软件创建纹理。在Studio中,您必须将纹理作为图像文件导入,并通过子SurfaceAppearance对象或网格的TextureID属性将其设置为MeshPart对象。
面部动画数据



来自角色面部关节的面部动画数据使化身能够用眼睛、嘴巴和牙齿表达情感。每个角色都包括面部关节、蒙皮数据、动画时间轴数据和映射的姿势数据,以允许这些表情。在Studio中,这些面部动画元素由FaceControls实例表示。
笼网格


笼网格设置了面部配件拉伸和适配角色头部的不可见外部边界,允许面部配件在头部动画和表情时变形。在Studio中,外部笼网格对象由WrapTarget实例表示。
如果您正在为自己的非模板角色模型设置笼网格,使用Roblox的身体笼项目文件非常重要,以确保您使用的是Roblox标准笼网格。从这个标准网格中删除或添加顶点可能会导致面部配件变形和导入时出现问题。
附件


附件点设置了刚性配件和游戏中可装备对象附加到角色头部的特定点。这些在平台上不会被渲染,但在您使用Roblox的R15 Rig and Attachments项目文件时,它们在3D建模软件中以球体的形式可视化表示。
当您导入带有这些可视化表示的装配时,这些球体作为Attachment对象创建,使用标准化名称。
创建过程
在Blender或Maya中设计动态头时,您必须将所有化身组件导出为单个.fbx或.gltf以导入Studio。由于3D创作不是线性过程,并且总是需要反复迭代和测试,因此创建动态头的过程可能因个人和各种创作工作流程而异。有些人选择修改装配的角色模型以满足Roblox的动态头规范,而其他人则更喜欢从头开始创建。
一般来说,创建过程遵循以下工作流程:

资源
有多种资源可供各类创作者开始动态头创建。请查看以下表格以获取特定主题和资源: