用途
该技能面向将 3D 资产带入 Roblox Studio 或准备头像物品(UGC)的场景。它覆盖从 Blender、GLB、FBX、OBJ 文件以及 AI 生成或图像转 3D 网格的导入流程,目标是在资产进入 Studio 时已经满足尺寸(以 studs 为单位)、朝向(-Z)、三角面预算、封闭性、贴图尺寸与拆分等要求,并附带可验证的数据。
主要能力
- 离线 GLB 检查:使用 ra.glb_info(path) 获取三角面数、尺寸、贴图大小、doubleSided、蒙皮和扩展信息。
- Blender 无头预处理:通过 ra.blender_prep 设置尺寸、朝向、枢轴、预算、封闭网格和 Roblox 贴图,支持道具和配件预设,可生成报告和四个 Workbench 视图。
- 实时规则读取:在 Studio 中运行 AssetAudit.rules() 获取当前 AccessoryMaxTriangles、MaxTextureSize 以及配件类型的 attachment Size 和 Offset。
- Studio 内预览与审计:使用 EditableMesh 和 EditableImage 在场景中重建网格和 PBR 贴图,进行审计、穿戴测试和截图;内容仅限当前会话,在 playtest 副本中为空。
- 配件构建:通过 MeshBuild.accessory 创建 Accessory、Handle 和按类型命名的 attachment,并用 AssetAudit.accessory 审计。
- 穿戴测试:使用 UGCCheck.rig 和 UGCCheck.wear 在 Edit 模式下检查关节、attachment 误差和帽子开口。
- 本地验证:在 Playtest 中运行 UGCCheck.validate,调用 ValidateUGCAccessoryAsync,检查是否仅剩需要上传资产才能解决的字符串;速率限制为每 60 秒最多 10 次调用。
- 交接导入:由人工或计算机使用代理按照 gui-paths.md 中的设置导入 <name>_roblox.glb,并由 Accessory Fitting Tool 生成最终配件。
使用方式
技能依赖 scenario-roblox-expert 工具包。若缺少文中提到的同级技能,需让用户安装(npx skills add scenario-labs/skills --skill <name>);无人值守时从工具 schema 继续并标记缺口。
典型流程:
- 分诊:用 ra.glb_info 离线记录每个资产的三角面、尺寸、贴图大小、doubleSided、蒙皮和扩展。
- 在 Blender 中修复:调用 ra.blender_prep,传入输入、输出目录、yaw: 180、scale 等参数;帽子使用 {"opening": 1.35, "band": [0.08, 0.2], "cap": [3, 4, 3]}。等待机器守卫,运行 blender -b,生成报告和四个 Workbench 视图。
- 读取实时规则:在 Studio 中运行 ra.run(studio, "return AssetAudit.rules()", kit=["AssetAudit"])。
- 在 Studio 中预览和审计:ra.stage 打包网格和贴图,然后 MeshBuild.build 和 AssetAudit.prop。
- 构建配件:MeshBuild.accessory,然后 AssetAudit.accessory(acc, rules)。
- 穿戴测试:UGCCheck.rig 和 UGCCheck.wear,截图正面和侧面。
- 本地验证:在 Playtest 中 ra.stage(..., dm="Server") 和 UGCCheck.validate(acc, Enum.AccessoryType.Hat);运行单故障副本作为负对照。
- 交接导入:导入 <name>_roblox.glb,由 Accessory Fitting Tool 生成最终配件。
适用场景
- 制作游戏内道具(prop)或 Marketplace 头像物品(UGC)。
- 从 AI 生成或图像转 3D 的网格开始,需要修复尺寸、朝向、枢轴、封闭性和贴图。
- 需要在不实际上传的情况下在 Studio 中预览、审计和验证配件。
- 需要将资产交接给场景、动画或性能相关技能。
限制
- 仅第二个目标(Marketplace 头像物品)必须通过验证并保持水密。
- EditableMesh 和 EditableImage 不能通过 Instance.new 创建,需使用 AssetService:CreateEditableMesh()、CreateEditableImage() 和 Content.fromObject;已发布体验需要 Mesh 和 Image APIs 设置。
- CreateSurfaceAppearanceAsync 仅接受 EditableImage 内容,之后无法替换贴图。
- EditableMesh 预览仅限会话,重新打开后部件为空;在 playtest 中复制的部件保留 Size 但没有网格。
- ValidateUGCAccessoryAsync 有速率限制(每 60 秒 10 次调用),且所有权和审核相关字符串需要上传资产才能解决。
- 具体数值限制(如三角面、贴图尺寸、边界框)以实时规则和验证器为准,文中给出的数值来自特定版本和日期。
- 部分步骤标记为“尚未运行”,实际效果可能因环境而异。