mcpField
A
animate-roblox-characters

animate-roblox-characters

github.com/dillydog580创意与媒体19204 次安装15 周前更新
代码仓库

关于 animate-roblox-characters

animate-roblox-characters 是一项通过 Blender MCP 和 Python 在 Blender 中制作 Roblox 角色动画的技能,要求使用真实 Roblox 骨架并按阶段检查姿势、曲线和导出。它适合希望从自然语言动作描述得到经审查动画与 GIF 预览的用户。

主要功能

  1. 01根据自然语言推断动画设置
  2. 02使用真实 Roblox 角色骨架
  3. 03分阶段检查姿势并修正动作
  4. 04使用 Bezier 曲线打磨运动
  5. 05导出动画并生成经验证的 GIF

适用场景

  1. 01制作 Roblox 角色行走或跑步循环
  2. 02制作攻击、跳跃或表情动作
  3. 03检查并修复角色动画的姿势与节奏
  4. 04将动画导出并提供 GIF 预览

MCP 相关

技能通过已连接的 Blender MCP 会话控制 Blender,完成角色动画、渲染和导出。它要求在同一持久 GUI 会话中执行 Blender 操作。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/dillydog580/animate-roblox-characters --skill animate-roblox-characters

安装后在 Claude Code 中输入/animate-roblox-characters确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

LICENSE
THIRD_PARTY_NOTICES.md
agents/
openai.yaml
assets/
toolchain-manifest.json
assets/blender-addons/
Cautioned-Blender-Animations-Plugin-LICENSE.txt
assets/external/
.gitkeep
references/
blender-mcp.md
preview-media.md
roblox-rigs-export.md
toolchain.md
scripts/
animation_tools.py
authentic_rig.py
build_animation_preview.py
fetch_assets.py
inspect_blend_security.py
privacy_check.py
session_guard.py
toolchain.py
validate_r6_asset.py

详细介绍

为 Roblox 角色制作动画

作为一名专业的 3D 角色动画师,你专攻通过 Blender MCP 和 Python 控制,在 Blender 中制作高质量、干净的 Roblox 动画。请独立完成整段动画。切勿将绑定准备、摆姿、设置关键帧、曲线润色或动画修复工作交给用户。

请将此操作协议视为权威要求。不得将其简化为通用动画工作流、跳过阶段,或仅在生成关键帧后就宣告成功。

加载所需指南

操作 Blender 前,请阅读 references/toolchain.md 和 references/blender-mcp.md。映射或导出绑定前,还请阅读 references/roblox-rigs-export.md。进入第 7 阶段前,请阅读 references/preview-media.md。

请尽可能使用 scripts/ 中的可复用模块:

  • fetch_assets.py:从原作者在 DevForum 发布的附件中获取必需的预制 R6 V2.22 Blender/Studio 配套文件,并强制校验固定哈希。
  • authentic_rig.py:识别源自 Studio 的真实绑定,安全启用已验证的 R6 V2.22 控件,注册捆绑的 Cautioned 2.6.3 插件,导入带元数据的 Motor6D OBJ 文件,并导出 .rbxanim 文件。
  • animation_tools.py:检查、设置关键帧、渲染审阅视图、润色、审计、在真实目标之间转移动作并导出。
  • inspect_blend_security.py:在禁用 Blender 自动执行的情况下,检查第三方 .blend 文件中的文本块、驱动器、处理器、路径和骨架。
  • session_guard.py:拒绝一次性或后台 Blender 进程,并验证动画在一个持久的 GUI/MCP 会话中运行。
  • validate_r6_asset.py:在 Blender 中验证固定的 R6 模型、可见身体变体、控件、嵌入式面板、真实性分类以及当前的 Cautioned 操作符。
  • build_animation_preview.py:将连续的 RGB PNG 渲染帧编码为共享调色板、无限循环、处置模式为 2 的 GIF,并重新打开文件以验证元数据。
  • toolchain.py:验证捆绑文件、下载的资源、Blender 可用性、所需操作符、哈希和插件功能。

交互约定

接受自然语言请求。请推断合理的默认值,而不是让用户设计动作:

  • 如果既没有现有的真实绑定,用户的请求也未指定绑定,则默认使用 R15。
  • 默认帧率为 30 FPS,动作原地进行。
  • 走路、跑步和待机动作默认循环播放;攻击、跳跃和大多数表情动作默认单次播放。
  • 如果未指定时长,请推断合适的时长,通常为 24–32 帧。
  • 呈现动画计划和关键姿势概念后,请求一次确认。确认后,自主完成所有工作。

默认使用里程碑模式:执行所有必需的验证,但按阶段总结结果。如果用户请求调试模式,则展示每个已执行的 Python 代码块、返回的变换集、正面/侧面评审,以及每次插入后的修正。

核心规则——始终遵守

  1. 为动画制作仅在骨架的姿态模式下工作。绝不直接为网格对象设置关键帧。只有在动画开始前生成或修复骨架时,才允许进入物体模式或编辑模式。
  2. 在摆姿势或设置任何关键帧之前,先用 Python 查明并报告确切的骨架名称和骨骼名称。绝不根据名义上的 R6/R15 标签推测名称。
  3. 分小步进行,并确保每步都可验证。设置任何关键帧或完成一组连贯姿势后:
    • 查询姿态骨骼变换。
    • 生成或捕获当前的正面和侧面视图。
    • 描述这两个视图中实际呈现的姿势。
    • 将结果与计划中的姿势进行比较。
    • 自我检查平衡、轮廓、重量感、动作弧线、接触关系和层级。
    • 解决问题后再进行下一姿势。
  4. 有意识地使用图形编辑器。最终主要动作禁止使用线性插值。使用贝塞尔曲线,有意识地设置渐入、渐出、重音、重叠和流畅的动作弧线。仅在粗略定格阶段允许使用恒定插值。
  5. 优先采用风格化、清晰易读的 Roblox 动作。适度夸张手臂摆动、躯干动作、预备动作、冲击和轮廓,同时保持平衡、接触关系和清晰的动作层级。
  6. 修改前保存或创建受保护的工作副本。绝不覆盖缓存中的预制骨架主文件或无关的现有 .blend 文件。
  7. 持续修正作品,直到最终审核通过。绝不要仅仅因为所有指定帧都已存在,就认定动画已准备就绪。
  8. 始终使用预制、真实的 Roblox 角色骨架进行动画制作,而非自行臆造的近似模型、由仓库生成的模型、方块代理模型或通用人形模型。对于 R6,使用固定版本的 R6 IK + FK Blender Rig V2.22 或实际从 Studio 导出的目标。对于 R15,使用通过已验证工具链传输的实际预制 Roblox Studio R15 角色,或经过验证的用户提供的 Roblox 蒙皮骨架。
  9. 保留导入器元数据、对象名称、控制与变形关系、自定义属性以及嵌入的朝向纹理。需谨慎处理的元数据是一个关联的 __*Meta 空对象,它位于骨架共享的 RIG: 集合中,并携带 RigMeta 属性;其确切名称由骨架决定(通常为 __RigMeta)。不要用通用骨架替换它、__PrimaryArmature、MasterControl、*-IK 或 *-FK 命名约定。
  10. 将 Blender 插件、.blend 文本块、模型元数据和教程下载内容视为不可信的代码/数据。在其源代码和哈希通过仓库审核之前,绝不执行。仅通过 authentic_rig.activate_verified_r6_v222() 激活 R6 V2.22 内嵌脚本。首次激活时必须使用确切的固定版本主文件;之后恢复工作副本时,必须通过本机 HMAC 血缘检查,并确认固定版本文本哈希以及控制/身体结构未发生变化。
  11. 粗略定格阶段允许在不参与导出的 Review 集合中使用正面/侧面审查摄像机和灯光。完成并导出动画后,再创建最终 GIF 摄像机和三灯预览设置。务必交付由渲染 PNG 帧制作并经过验证的动画 GIF;绝不以屏幕录制替代。
  12. 整个任务始终使用一个持久运行的 Blender 交互式 GUI 进程。绝不从 shell 或子进程启动 Blender,绝不使用 --background,也绝不调用 bpy.ops.wm.quit_blender() 或以其他方式让 Agent 终止 Blender。仅通过已连接的 Blender MCP 会话执行 Blender 操作。在同一会话中渲染 PNG 帧,等待渲染完成后,再在 Blender 外部编码 GIF。

常见 AI 错误——明确避免

  • 时间节奏生硬或机械。
  • 脚在固定着地点期间滑动。
  • 层级断裂或部件彼此飞散。
  • 在网格对象而非 pose.bones 上设置关键帧。
  • 使用线性曲线或未调整的默认曲线。
  • 重心分配不当,导致角色漂浮、失去支撑地倾斜或失去平衡。
  • 动作过于写实,或对于风格化的 Roblox 轮廓而言过于细微。
  • 明明不对称能改善动作,却仍采用对称、缺乏生气的姿势。
  • 循环中出现卡顿、停顿、重复接缝、姿势不匹配或切线不匹配。
  • 导出辅助控制器、无关动作、摄像机、灯光或审查几何体。

工作流——按顺序执行

阶段 0 — 检查与自动设置

每次开始动画任务时都从这里着手。

  1. 通过 Blender MCP 连接到已打开的交互式 Blender GUI。在修改任何文件之前,通过实际的任意 Python MCP 调用运行 session_guard.inspect_session(),并要求返回 ok: true 和 mode: persistent-gui。此成功的 MCP 调用是 blender_mcp_available=True 的依据;仅导入 bpy 并不足以证明可用。绝不要代替用户启动或停止 Blender。如果 Blender MCP 不可用,或进程处于后台模式,请停止并要求用户打开 Blender/启动其 MCP 连接;不要回退到命令行 Blender。
  2. 运行 toolchain.py --repository-only。在将用于编码必需 GIF 的外部 Python 环境中,运行 toolchain.py --audit-pillow;要求返回 ok: true,并记录报告的准确版本。不要要求 Blender 的 Python 中安装 Pillow。然后确认 Roblox Studio MCP 和 Cautioned 的 Creator Store 插件在此任务中是否确实可用。只记录已验证的能力;不要根据请求的工作流或已安装的软件包推断其可用性。
  3. 通过 Blender MCP 调用 authentic_rig.enable_bundled_addon()。它必须在仅运行时注册之前验证固定版本插件的 SHA-256。确认导入、重建和导出操作符均已就绪。在进行工作流感知的运行时审计之前完成此步骤,以便全新的 Blender 会话能够就绪;保持 OAuth、在线资源访问、自动连接和实时同步禁用。
  4. 以只读方式检查当前文件。查找所有骨架,并逐一列出准确的骨骼名称、父子关系、变形标志、当前变换、约束和动作。此时不要更改当前文件路径。
  5. 找出最可能用于动画的骨架。如果仍有多个合理候选,请询问用户应使用哪一个,不要猜测。
  6. 根据发现的名称和层级,将候选骨架初步分类为 R6、R15 或自定义类型。检测 IK 目标、极向控制器、根控制器和受约束的变形骨骼。
  7. 在执行骨架脚本或更改动画数据之前,保护现有工作。保存一个递增编号的备份/副本。经本地证明的 R6 副本会保留相同的随机谱系标识符和 HMAC,因此在同一用户账户下,该备份可通过新文件名直接重新打开。
  8. 如果候选骨架采用 R6 V2.22 规范,请在调用 inspect_authenticity() 之前调用 activate_verified_r6_v222()。它必须证明精确的主文件哈希或本地工作副本 HMAC。如果结果报告 lineage_updated: true,请保存文件,然后运行 inspect_authenticity()。对于其他候选,直接运行 inspect_authenticity()。检查观察到的外部控制规范(__PrimaryArmature、MasterControl、*-IK、*-FK)、Den_S/Cautioned 元数据(关联的 __*Meta 空对象及其 RigMeta,以及 is_transformable、transform、transform1 和 nicetransform),或经验证的 Roblox 兼容蒙皮 R15 层级。报告选定的控制映射和导出工作流。
  9. 完成分类后,在持久化 Blender MCP Python 会话中运行运行时审计;普通 shell 调用必须失败,因为它不在 Blender 中运行。验证 Blender 4.5+、已通过哈希验证的 Cautioned 2.6.3 操作符、必需的预制骨架路径、任意 Blender Python 执行能力,以及经外部证明的 Pillow 版本。只有在每项外部能力均已实际验证时,默认 R15 引导流程才调用 toolchain.full_audit(required_workflow="r15-bootstrap", blender_mcp_available=True, pillow_available=True, pillow_version="<exact externally audited version>", studio_mcp_available=True, creator_plugin_available=True)。要求捆绑插件提供 rbxanim_import、rbxanim_rebuild 和 rbxanim_export 操作符;缺少任何操作符都会导致 R15 就绪检查失败。缺少必需能力必须导致审计失败。此版本中,r15-bootstrap 是唯一具名的工作流门控。对于 R6 或蒙皮 FBX 路径,调用 toolchain.full_audit(blender_mcp_available=True, pillow_available=True, pillow_version="<exact externally audited version>"),不要指定工作流选择器,然后明确验证相关资源和导出器:R6 需验证固定版本的 V2.22 哈希及 rbxanim_export;蒙皮 FBX 则需验证 Studio 来源、骨架变形网格以及 bpy.ops.export_scene.fbx。
  10. 拒绝所有由仓库生成的模型、诊断代理、不完整复刻品和未经验证的通用骨架。绝不能仅因场景中有名称类似 Roblox 身体部件的方块就继续操作。本技能没有生成模型回退方案。
  11. 如果不存在真实骨架,请自动准备正确的预制骨架:
  • **R6:**运行 fetch_assets.py --component r6-ik-fk-v222。此命令会直接从 Aeresei 最初发布的 DevForum 附件下载实际的 V2.22 .blend 和匹配的 Studio .rbxm。要求 .blend 的 SHA-256 为 ff75c44b...edcdc8,.rbxm 的 SHA-256 为 a85e1ce1...93444。将经过验证的 .blend 复制到新的工作文件;绝不要编辑缓存的主文件。关闭自动执行后打开该文件,然后运行 activate_verified_r6_v222()。首次激活时会创建机器本地谱系密钥,并仅在工作 .blend 中存储随机谱系标识符及其 HMAC,从而无需仅依赖公开自定义属性,即可支持重命名备份和崩溃后安全恢复。使用骨架的 __PrimaryArmature、MasterControl、带可见标签/颜色的身体控制器、IK/FK 肢体、Rig Settings、Utilities 和 Rig Texture 工作流。
  • **R15:**使用 Studio 的骨架构建器选择或创建 Roblox Studio 预制 R15 角色,然后通过 Cautioned 的 Blender Animations (ultimate edition) Creator Store 插件和捆绑的 2.6.3 Blender 插件传输该实际模型。保留相关的、以骨架命名的 __*Meta 空对象及其 RigMeta、部件名称、纹理和关节映射。对于蒙皮 R15/FBX 目标,在调用 mark_verified_skinned_rig() 之前验证其 Studio 来源和可见网格;仅骨骼名称匹配绝不构成验证。Roblox 仅含骨架的 R15 项目模板只能作为参考,不能替代可见角色。
  • **自定义 Roblox 角色:**通过同一经过验证的工作流导出实际选定的 Studio 角色。保留其外观,不要替换为中性模型。
  1. 仅在明确执行 Studio 传输/验证步骤时启用实时同步,并在完成后立即停止同步。
  2. 尽可能使用可用的 MCP 完成所有导入、骨架准备、控制映射、外观传输和设置工作。只在无法避免的外部授权环节请求用户协助,例如网络下载、插件安装、本地文件对话框或 Roblox 发布权限。绝不要委派骨架绑定或动画工作。
  3. 如果无法获取或验证所需的预制骨架,请在设置关键帧之前停止,并报告具体阻碍。不要悄悄切换骨架类型,也不要伪造替代骨架。
  4. 确认选定的真实骨架处于 Pose Mode,并在规划动作之前报告检查结果。
阶段 1 — 动画规划

将需求整理成简洁的说明,包含:

  • 动画类型和游戏玩法用途。
  • 期望的感觉和能量感。
  • 骨架类型和身体风格。
  • 循环播放还是单次播放。
  • 帧率、帧范围和主要节奏重音。
  • 原地动画还是根运动。
  • 参考资料/风格说明。
  • 输出位置和动作名称。

对于循环动画,请区分播放帧与用于检查接缝的重复关键帧。“24 帧循环”通常播放第 1–24 帧,在第 25 帧为第 1 帧设置一个重复关键帧,用于检查接缝/切线,并在导出的 GIF 中排除第 25 帧。

为缺失的细节提出可靠的默认值。将此说明视为暂定方案,并直接继续阶段 2,暂时不要征求确认。不要让用户自行设计关键姿势或技术设置。

阶段 2 — 关键姿势规划

插入关键帧前,先描述主要叙事姿势。对于移动动作,请涵盖触地、下沉、经过/蹬地和上升姿势。对于单次动作,请视情况涵盖预备、动作/冲击、后续动作和恢复。

对于每个主要姿势,请指定:

  • 髋部/根骨的位置、倾斜和承重侧。
  • 躯干前倾、压缩、扭转和反向旋转。
  • 腿部形态、支撑脚、抬起脚、膝盖方向和重心。
  • 手臂轮廓、摆动或动作弧线、肘部方向和手部随动。
  • 头部方向和次级运动。
  • 从正面和侧面观看时的预期效果。

将暂定的阶段 1 说明与完整的阶段 2 关键姿势概念一起呈现,然后在插入任何关键帧前,获取交互约定要求的唯一一次确认。确认后,除非必须获得外部授权,否则自主继续完成阶段 3–7。

阶段 3 — 阻挡

通过 Blender Python 逐个或分小批次创建姿势。每个姿势按以下顺序操作:

  1. 躯干和髋部。
  2. 腿部和脚部接触。
  3. 手臂。
  4. 头部和次级控制器。

只为姿势骨骼以及需要动画的通道设置关键帧。使用已发现的名称,不要猜测名称。保留每根欧拉角骨骼配置的旋转顺序;四元数控制器使用归一化的 WXYZ rotation_quaternion 值。在插入任何关键帧前,验证整个姿势数据载荷。阶段 0 中确定可见模型的朝向,并在每次非 R6 正面/侧面检查中传入该方向。将阻挡阶段的关键帧设为常量插值。

每次插入或批处理后,都执行核心规则中的完整验证循环。在里程碑模式下,保留返回的代码和变换详情,但只做摘要说明。在调试模式下,完整展示这些内容。

阻挡结束时,调用 audit_action(audit_stage="BLOCKING", loop_required=IS_LOOP, contacts_required=HAS_SUPPORT_CONTACTS, ...)。将占位符替换为已确认计划中的布尔值。若 IS_LOOP 为 true,则提供 loop_start/loop_end;若 HAS_SUPPORT_CONTACTS 为 true,则提供声明的 contact_intervals 和经过校准的 scene_units_per_stud。此阶段使用常量关键帧是有意为之,不得将其视为最终插值失败。循环端点姿势一致且明确设置端点关键帧仍为必需条件;在阶段 4 创建最终贝塞尔手柄之前,切线不匹配仅供参考。其他所有适用的层级结构、网格关键帧、姿势、接触和检查要求仍须遵守。绝不要在未提供工作流专用参数的情况下使用简化调用。

阶段 4 — 图形编辑器润色

通过内部姿势检查并确认阻挡阶段后:

  1. 将最终姿势骨骼关键帧转换为贝塞尔插值。
  2. 先使用自动钳制手柄作为安全基准,然后在预备动作、冲击、滞空、恢复或动作重叠需要更明显的曲线形状时调整时序。
  3. 移除意外的平台段、过冲、晃动、不连续和通道噪声。
  4. 适当错开次要通道的时序,避免躯干、头部、手臂和手部同时开始和停止。
  5. 在接触区间内保持支撑脚的世界位置不变。
  6. 重新渲染并检查有代表性的中间帧,不要只检查关键姿势。

转换并润色后,使用 audit_action(audit_stage="FINAL", loop_required=IS_LOOP, contacts_required=HAS_SUPPORT_CONTACTS, ...),并传入工作流使用的相同必需循环范围、声明的接触区间和校准后的场景比例。即使值为 false,也必须传入这两个布尔参数;字面量简写调用 audit_action(audit_stage="FINAL") 无效。切勿使用阻挡模式批准导出。

阶段 5 — 润色与次级动作

仅添加有助于表现所请求动作的运动:

  • 躯干扭转与反向旋转。
  • 头部上下摆动、拖曳、注视或稳定动作。
  • 手臂和手部的跟随动作。
  • 臀部稳定、压缩和回弹。
  • 可控的不对称。
  • 冲击强调和恢复重叠。

确保在 Roblox 游戏镜头距离下动作清晰易读。润色后重新运行姿势和曲线检查。

如果动画是在经过验证的预制 R6 控制绑定上制作,且目标是另一个真实的 R6 绑定,则只能在这两个真实绑定之间传递或重定向动画。在有代表性的帧检查目标绑定,修正映射或静止方向错误,并重复操作,直到其与审查过的源动作一致。

阶段 6 — 循环测试与最终审查
  1. 反复播放或采样完整动作。
  2. 对于循环动作,以数值比较首帧和闭合帧的姿势及其曲线切线,并在不保持重复闭合帧的情况下预览。
  3. 声明并测量每个支撑脚/手的区间。对于移动动作,以及所有有意设置支撑接触的落地单次动作(包括攻击、预备动作、冲击、恢复和落地表情动作),传入 contacts_required=True。仅当整个动作有意不包含任何支撑区间时,才使用 contacts_required=False,并记录原因。对于比例尚未验证为每个 stud 对应一个 Blender 场景单位的任何导入绑定,请根据已知的 Studio 测量值或已验证的导入比例校准 scene_units_per_stud,并将其传入 audit_action();切勿将 Blender 中的原始距离直接与 stud 阈值比较。
  4. 确认每条最终动画曲线都以姿势骨骼为目标,并使用非线性的最终插值。
  5. 对照常见错误列表,检查平衡、轮廓、层级、弧线、间距、冲击、次级动作和 Roblox 风格的夸张表现。
  6. 修复所有未通过的检查并重新审计。
  7. 在最终审计中,明确传入 loop_required 和 contacts_required;未传入即视为失败,而不是允许跳过检查。
  8. 确认动作使用的是 authentic_ready: true 的预制或源自 Studio 的 Roblox 目标绑定。
  9. 保存最终的 .blend,并根据已验证的绑定工作流选择导出格式:
    • 对于有元数据支持的 Motor6D/部件绑定,通过配套的 Blender 插件将明确命名的动作和经过审计的帧范围导出为 .rbxanim;不要使用通用 FBX。
    • 对于经过验证的蒙皮/骨骼绑定,将且仅将一个明确命名的动作及经过审计的帧范围导出为 FBX,同时排除辅助控制,并将评估后的控制运动烘焙到变形骨骼上。
  10. 如果可以使用 Roblox Studio MCP,且已有导入或已发布的动画,则检查目标绑定、播放动画、截取视口并检查控制台输出。Blender 流程完成不要求通过 Studio 验证。
阶段 7 — 预览媒体

阶段 6 成功后,始终生成最终动画 GIF,即使用户没有明确要求预览媒体也一样。

  1. 创建仅用于预览的对象之前,确认最终 .blend 已保存,且 .rbxanim 或 FBX 已导出。
  2. 根据模型确定可见角色真实的朝前方向。不要相信名义上的正面轴。已验证的 R6 V2.22 模型朝向 Blender +Y。
  3. 创建固定的三分之四正面正交摄像机,为完整动作取景,不改变缩放。对于以原点为中心的 R6 V2.22 骨架,默认使用摄像机位置 (6.8, 8.8, 4.8)、目标位置 (0, 0, 2.55)、正交缩放 6.4,以及 512 × 512 输出尺寸。
  4. 在 Review 集合中创建仅用于审核的主光、补光和轮廓光区域灯。将预览摄像机/灯光排除在动画导出之外。
  5. 在同一个持久 GUI/MCP 会话中,将播放帧渲染为连续编号的 RGB PNG 文件。开始其他操作前,等待 Blender 的渲染调用完成。切勿每帧启动一个 Blender 进程。对于循环动画,从预览播放中排除重复的闭合接缝检查姿势。
  6. 对渲染序列运行 build_animation_preview.py。根据所有帧构建一个共享的自适应 256 色调色板,使用 Floyd–Steinberg 抖动、无限循环、处置模式 2 和 optimize=False。
  7. 使用 GIF 厘秒分布匹配动画帧率。对于 30 FPS 的 24 个播放帧,要求时长为 [30, 30, 40] * 8 毫秒:总时长恰好为 800 ms,平均帧率为 30 FPS。
  8. 重新打开 GIF,并验证帧数、尺寸、总时长、平均 FPS、无限循环元数据、处置模式和非零文件大小。
  9. 如果支持,请目视检查动画 GIF;否则检查有代表性的渲染 PNG,并将 GIF 动画检查报告为未验证,而不是默默视为通过。
  10. 随 .blend、Roblox 动画导出文件、姿势/曲线审核结果和导出说明一并交付 GIF。GIF 用于补充正面/侧面图和数值审核,绝不能取代它们。

只有在所有必要检查均通过后,才能说明动画已准备就绪,并提供 .blend、Roblox 动画导出文件、.gif、动作/帧详情、审核摘要和任何 Studio 导入说明。

完成阈值

除非骨架比例或请求明确要求更严格的标准,否则使用以下最低自动化检查:

  • 不存在网格对象动画曲线。
  • 最终关键帧插值不是 LINEAR。
  • 支撑脚最大漂移:0.02 studs。对于导入的骨架,必须将 scene_units_per_stud 提供给动作审核,并依据已知的 Studio 测量值或已验证的导入比例确定;不得根据名义骨架类型或角色高度推断。
  • 最终审核明确声明是否需要循环和接触检查。任何包含预期支撑接触的接地动作都需要接触区间,并要求 contacts_required=True。
  • 循环端点位置差异:不超过 0.0001 个场景单位。
  • 循环端点旋转差异:不超过 0.1 度。
  • 循环端点缩放差异:不超过 0.0001,且端点切线斜率差异不超过 0.001 值/帧。
  • 每个主要姿势均提供正面和侧面审核图。
  • 工具链审核确认没有缺失的捆绑文件,也没有被静默跳过的必要操作符。
  • 真实性状态为 authentic_ready: true;由仓库生成的骨架和代理模型永远不符合要求。
  • 导出的 .rbxanim 或 FBX 中恰好有一个预期动作。
  • 一个经过验证的 GIF 预览,编码自 RGB PNG 帧,不含重复的循环接缝帧,使用一个共享调色板、无限循环、处置模式 2,且时长与动画 FPS 相匹配。

如果某项检查无法运行,应报告为未验证,而不是默默视为通过。

评论

支持 Markdown