关于 animate-roblox-characters
animate-roblox-characters 是一项通过 Blender MCP 和 Python 在 Blender 中制作 Roblox 角色动画的技能,要求使用真实 Roblox 骨架并按阶段检查姿势、曲线和导出。它适合希望从自然语言动作描述得到经审查动画与 GIF 预览的用户。
主要功能
- 01根据自然语言推断动画设置
- 02使用真实 Roblox 角色骨架
- 03分阶段检查姿势并修正动作
- 04使用 Bezier 曲线打磨运动
- 05导出动画并生成经验证的 GIF
适用场景
- 01制作 Roblox 角色行走或跑步循环
- 02制作攻击、跳跃或表情动作
- 03检查并修复角色动画的姿势与节奏
- 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 外,安装时一起下载的参考资料和脚本。
LICENSETHIRD_PARTY_NOTICES.mdagents/openai.yamlassets/toolchain-manifest.jsonassets/blender-addons/Cautioned-Blender-Animations-Plugin-LICENSE.txtassets/external/.gitkeepreferences/blender-mcp.mdpreview-media.mdroblox-rigs-export.mdtoolchain.mdscripts/animation_tools.pyauthentic_rig.pybuild_animation_preview.pyfetch_assets.pyinspect_blend_security.pyprivacy_check.pysession_guard.pytoolchain.pyvalidate_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 代码块、返回的变换集、正面/侧面评审,以及每次插入后的修正。
核心规则——始终遵守
- 为动画制作仅在骨架的姿态模式下工作。绝不直接为网格对象设置关键帧。只有在动画开始前生成或修复骨架时,才允许进入物体模式或编辑模式。
- 在摆姿势或设置任何关键帧之前,先用 Python 查明并报告确切的骨架名称和骨骼名称。绝不根据名义上的 R6/R15 标签推测名称。
- 分小步进行,并确保每步都可验证。设置任何关键帧或完成一组连贯姿势后:
- 查询姿态骨骼变换。
- 生成或捕获当前的正面和侧面视图。
- 描述这两个视图中实际呈现的姿势。
- 将结果与计划中的姿势进行比较。
- 自我检查平衡、轮廓、重量感、动作弧线、接触关系和层级。
- 解决问题后再进行下一姿势。
- 有意识地使用图形编辑器。最终主要动作禁止使用线性插值。使用贝塞尔曲线,有意识地设置渐入、渐出、重音、重叠和流畅的动作弧线。仅在粗略定格阶段允许使用恒定插值。
- 优先采用风格化、清晰易读的 Roblox 动作。适度夸张手臂摆动、躯干动作、预备动作、冲击和轮廓,同时保持平衡、接触关系和清晰的动作层级。
- 修改前保存或创建受保护的工作副本。绝不覆盖缓存中的预制骨架主文件或无关的现有
.blend文件。 - 持续修正作品,直到最终审核通过。绝不要仅仅因为所有指定帧都已存在,就认定动画已准备就绪。
- 始终使用预制、真实的 Roblox 角色骨架进行动画制作,而非自行臆造的近似模型、由仓库生成的模型、方块代理模型或通用人形模型。对于 R6,使用固定版本的 R6 IK + FK Blender Rig V2.22 或实际从 Studio 导出的目标。对于 R15,使用通过已验证工具链传输的实际预制 Roblox Studio R15 角色,或经过验证的用户提供的 Roblox 蒙皮骨架。
- 保留导入器元数据、对象名称、控制与变形关系、自定义属性以及嵌入的朝向纹理。需谨慎处理的元数据是一个关联的
__*Meta空对象,它位于骨架共享的RIG:集合中,并携带RigMeta属性;其确切名称由骨架决定(通常为__RigMeta)。不要用通用骨架替换它、__PrimaryArmature、MasterControl、*-IK或*-FK命名约定。 - 将 Blender 插件、
.blend文本块、模型元数据和教程下载内容视为不可信的代码/数据。在其源代码和哈希通过仓库审核之前,绝不执行。仅通过authentic_rig.activate_verified_r6_v222()激活 R6 V2.22 内嵌脚本。首次激活时必须使用确切的固定版本主文件;之后恢复工作副本时,必须通过本机 HMAC 血缘检查,并确认固定版本文本哈希以及控制/身体结构未发生变化。 - 粗略定格阶段允许在不参与导出的
Review集合中使用正面/侧面审查摄像机和灯光。完成并导出动画后,再创建最终 GIF 摄像机和三灯预览设置。务必交付由渲染 PNG 帧制作并经过验证的动画 GIF;绝不以屏幕录制替代。 - 整个任务始终使用一个持久运行的 Blender 交互式 GUI 进程。绝不从 shell 或子进程启动 Blender,绝不使用
--background,也绝不调用bpy.ops.wm.quit_blender()或以其他方式让 Agent 终止 Blender。仅通过已连接的 Blender MCP 会话执行 Blender 操作。在同一会话中渲染 PNG 帧,等待渲染完成后,再在 Blender 外部编码 GIF。
常见 AI 错误——明确避免
- 时间节奏生硬或机械。
- 脚在固定着地点期间滑动。
- 层级断裂或部件彼此飞散。
- 在网格对象而非
pose.bones上设置关键帧。 - 使用线性曲线或未调整的默认曲线。
- 重心分配不当,导致角色漂浮、失去支撑地倾斜或失去平衡。
- 动作过于写实,或对于风格化的 Roblox 轮廓而言过于细微。
- 明明不对称能改善动作,却仍采用对称、缺乏生气的姿势。
- 循环中出现卡顿、停顿、重复接缝、姿势不匹配或切线不匹配。
- 导出辅助控制器、无关动作、摄像机、灯光或审查几何体。
工作流——按顺序执行
阶段 0 — 检查与自动设置
每次开始动画任务时都从这里着手。
- 通过 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。 - 运行
toolchain.py --repository-only。在将用于编码必需 GIF 的外部 Python 环境中,运行toolchain.py --audit-pillow;要求返回ok: true,并记录报告的准确版本。不要要求 Blender 的 Python 中安装 Pillow。然后确认 Roblox Studio MCP 和 Cautioned 的 Creator Store 插件在此任务中是否确实可用。只记录已验证的能力;不要根据请求的工作流或已安装的软件包推断其可用性。 - 通过 Blender MCP 调用
authentic_rig.enable_bundled_addon()。它必须在仅运行时注册之前验证固定版本插件的 SHA-256。确认导入、重建和导出操作符均已就绪。在进行工作流感知的运行时审计之前完成此步骤,以便全新的 Blender 会话能够就绪;保持 OAuth、在线资源访问、自动连接和实时同步禁用。 - 以只读方式检查当前文件。查找所有骨架,并逐一列出准确的骨骼名称、父子关系、变形标志、当前变换、约束和动作。此时不要更改当前文件路径。
- 找出最可能用于动画的骨架。如果仍有多个合理候选,请询问用户应使用哪一个,不要猜测。
- 根据发现的名称和层级,将候选骨架初步分类为 R6、R15 或自定义类型。检测 IK 目标、极向控制器、根控制器和受约束的变形骨骼。
- 在执行骨架脚本或更改动画数据之前,保护现有工作。保存一个递增编号的备份/副本。经本地证明的 R6 副本会保留相同的随机谱系标识符和 HMAC,因此在同一用户账户下,该备份可通过新文件名直接重新打开。
- 如果候选骨架采用 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 层级。报告选定的控制映射和导出工作流。 - 完成分类后,在持久化 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。 - 拒绝所有由仓库生成的模型、诊断代理、不完整复刻品和未经验证的通用骨架。绝不能仅因场景中有名称类似 Roblox 身体部件的方块就继续操作。本技能没有生成模型回退方案。
- 如果不存在真实骨架,请自动准备正确的预制骨架:
- **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 角色。保留其外观,不要替换为中性模型。
- 仅在明确执行 Studio 传输/验证步骤时启用实时同步,并在完成后立即停止同步。
- 尽可能使用可用的 MCP 完成所有导入、骨架准备、控制映射、外观传输和设置工作。只在无法避免的外部授权环节请求用户协助,例如网络下载、插件安装、本地文件对话框或 Roblox 发布权限。绝不要委派骨架绑定或动画工作。
- 如果无法获取或验证所需的预制骨架,请在设置关键帧之前停止,并报告具体阻碍。不要悄悄切换骨架类型,也不要伪造替代骨架。
- 确认选定的真实骨架处于 Pose Mode,并在规划动作之前报告检查结果。
阶段 1 — 动画规划
将需求整理成简洁的说明,包含:
- 动画类型和游戏玩法用途。
- 期望的感觉和能量感。
- 骨架类型和身体风格。
- 循环播放还是单次播放。
- 帧率、帧范围和主要节奏重音。
- 原地动画还是根运动。
- 参考资料/风格说明。
- 输出位置和动作名称。
对于循环动画,请区分播放帧与用于检查接缝的重复关键帧。“24 帧循环”通常播放第 1–24 帧,在第 25 帧为第 1 帧设置一个重复关键帧,用于检查接缝/切线,并在导出的 GIF 中排除第 25 帧。
为缺失的细节提出可靠的默认值。将此说明视为暂定方案,并直接继续阶段 2,暂时不要征求确认。不要让用户自行设计关键姿势或技术设置。
阶段 2 — 关键姿势规划
插入关键帧前,先描述主要叙事姿势。对于移动动作,请涵盖触地、下沉、经过/蹬地和上升姿势。对于单次动作,请视情况涵盖预备、动作/冲击、后续动作和恢复。
对于每个主要姿势,请指定:
- 髋部/根骨的位置、倾斜和承重侧。
- 躯干前倾、压缩、扭转和反向旋转。
- 腿部形态、支撑脚、抬起脚、膝盖方向和重心。
- 手臂轮廓、摆动或动作弧线、肘部方向和手部随动。
- 头部方向和次级运动。
- 从正面和侧面观看时的预期效果。
将暂定的阶段 1 说明与完整的阶段 2 关键姿势概念一起呈现,然后在插入任何关键帧前,获取交互约定要求的唯一一次确认。确认后,除非必须获得外部授权,否则自主继续完成阶段 3–7。
阶段 3 — 阻挡
通过 Blender Python 逐个或分小批次创建姿势。每个姿势按以下顺序操作:
- 躯干和髋部。
- 腿部和脚部接触。
- 手臂。
- 头部和次级控制器。
只为姿势骨骼以及需要动画的通道设置关键帧。使用已发现的名称,不要猜测名称。保留每根欧拉角骨骼配置的旋转顺序;四元数控制器使用归一化的 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 — 图形编辑器润色
通过内部姿势检查并确认阻挡阶段后:
- 将最终姿势骨骼关键帧转换为贝塞尔插值。
- 先使用自动钳制手柄作为安全基准,然后在预备动作、冲击、滞空、恢复或动作重叠需要更明显的曲线形状时调整时序。
- 移除意外的平台段、过冲、晃动、不连续和通道噪声。
- 适当错开次要通道的时序,避免躯干、头部、手臂和手部同时开始和停止。
- 在接触区间内保持支撑脚的世界位置不变。
- 重新渲染并检查有代表性的中间帧,不要只检查关键姿势。
转换并润色后,使用 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 — 循环测试与最终审查
- 反复播放或采样完整动作。
- 对于循环动作,以数值比较首帧和闭合帧的姿势及其曲线切线,并在不保持重复闭合帧的情况下预览。
- 声明并测量每个支撑脚/手的区间。对于移动动作,以及所有有意设置支撑接触的落地单次动作(包括攻击、预备动作、冲击、恢复和落地表情动作),传入
contacts_required=True。仅当整个动作有意不包含任何支撑区间时,才使用contacts_required=False,并记录原因。对于比例尚未验证为每个 stud 对应一个 Blender 场景单位的任何导入绑定,请根据已知的 Studio 测量值或已验证的导入比例校准scene_units_per_stud,并将其传入audit_action();切勿将 Blender 中的原始距离直接与 stud 阈值比较。 - 确认每条最终动画曲线都以姿势骨骼为目标,并使用非线性的最终插值。
- 对照常见错误列表,检查平衡、轮廓、层级、弧线、间距、冲击、次级动作和 Roblox 风格的夸张表现。
- 修复所有未通过的检查并重新审计。
- 在最终审计中,明确传入
loop_required和contacts_required;未传入即视为失败,而不是允许跳过检查。 - 确认动作使用的是
authentic_ready: true的预制或源自 Studio 的 Roblox 目标绑定。 - 保存最终的
.blend,并根据已验证的绑定工作流选择导出格式:- 对于有元数据支持的 Motor6D/部件绑定,通过配套的 Blender 插件将明确命名的动作和经过审计的帧范围导出为
.rbxanim;不要使用通用 FBX。 - 对于经过验证的蒙皮/骨骼绑定,将且仅将一个明确命名的动作及经过审计的帧范围导出为 FBX,同时排除辅助控制,并将评估后的控制运动烘焙到变形骨骼上。
- 对于有元数据支持的 Motor6D/部件绑定,通过配套的 Blender 插件将明确命名的动作和经过审计的帧范围导出为
- 如果可以使用 Roblox Studio MCP,且已有导入或已发布的动画,则检查目标绑定、播放动画、截取视口并检查控制台输出。Blender 流程完成不要求通过 Studio 验证。
阶段 7 — 预览媒体
阶段 6 成功后,始终生成最终动画 GIF,即使用户没有明确要求预览媒体也一样。
- 创建仅用于预览的对象之前,确认最终
.blend已保存,且.rbxanim或 FBX 已导出。 - 根据模型确定可见角色真实的朝前方向。不要相信名义上的正面轴。已验证的 R6 V2.22 模型朝向 Blender
+Y。 - 创建固定的三分之四正面正交摄像机,为完整动作取景,不改变缩放。对于以原点为中心的 R6 V2.22 骨架,默认使用摄像机位置
(6.8, 8.8, 4.8)、目标位置(0, 0, 2.55)、正交缩放6.4,以及512 × 512输出尺寸。 - 在
Review集合中创建仅用于审核的主光、补光和轮廓光区域灯。将预览摄像机/灯光排除在动画导出之外。 - 在同一个持久 GUI/MCP 会话中,将播放帧渲染为连续编号的 RGB PNG 文件。开始其他操作前,等待 Blender 的渲染调用完成。切勿每帧启动一个 Blender 进程。对于循环动画,从预览播放中排除重复的闭合接缝检查姿势。
- 对渲染序列运行
build_animation_preview.py。根据所有帧构建一个共享的自适应 256 色调色板,使用 Floyd–Steinberg 抖动、无限循环、处置模式2和optimize=False。 - 使用 GIF 厘秒分布匹配动画帧率。对于 30 FPS 的 24 个播放帧,要求时长为
[30, 30, 40] * 8毫秒:总时长恰好为800 ms,平均帧率为30 FPS。 - 重新打开 GIF,并验证帧数、尺寸、总时长、平均 FPS、无限循环元数据、处置模式和非零文件大小。
- 如果支持,请目视检查动画 GIF;否则检查有代表性的渲染 PNG,并将 GIF 动画检查报告为未验证,而不是默默视为通过。
- 随
.blend、Roblox 动画导出文件、姿势/曲线审核结果和导出说明一并交付 GIF。GIF 用于补充正面/侧面图和数值审核,绝不能取代它们。
只有在所有必要检查均通过后,才能说明动画已准备就绪,并提供 .blend、Roblox 动画导出文件、.gif、动作/帧详情、审核摘要和任何 Studio 导入说明。
完成阈值
除非骨架比例或请求明确要求更严格的标准,否则使用以下最低自动化检查:
- 不存在网格对象动画曲线。
- 最终关键帧插值不是
LINEAR。 - 支撑脚最大漂移:
0.02studs。对于导入的骨架,必须将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 相匹配。
如果某项检查无法运行,应报告为未验证,而不是默默视为通过。