SuperAPI AI 工具集

hz-unity-meta-movement-sdk-retargeting

通用与其它

查看项目

更新于 10-16 00:29

技能介绍

用途:为角色模型(人形 FBX/Prefab)设置并调整 Meta Movement SDK(MSDK)重定向,供 Meta VR 身体追踪使用。

主要能力:通过无头 API 生成默认重定向配置,避免手写 JSON;支持检查与手工微调关节映射、权重、映射行为、T-pose 值,以及排除关节、重命名骨骼、切换源骨架格式、修复缩放导致的模型扭曲。

使用方式:先用 unity-cli 调用 Meta.XR.Movement.Editor.MSDKUtilityEditor.RunDefaultRetargetingSetup(GameObject asset, string customDataSourcePath = null) 生成 <asset>.json 与 <asset>-metadata.asset;再检查 JSON 并按需编辑。命令示例:unity status --format json;unity command run_script --file AgentScripts/RunRetargetingSetup.cs --entry RunRetargetingSetup.Run --args '["Assets/MyChar/MyChar.fbx"]' --format json。脚本应放在 Assets/ 之外以避免导入与域重载。

JSON 结构:顶层含 name、config、source、target、mapping。source 为 Meta VR 身体追踪骨架(通常 OVR FullBody,约 84 关节,名称固定);target 为用户角色骨架;mapping 为每个目标关节的加权源关节列表,min/max 分别对应最小与最大体型,运行时按身高混合。

常见调整:修正 target.knownJoints 绑定(仅 12 个合法键:root、hips、rightUpperArm、leftUpperArm、rightWrist、leftWrist、chest、neck、rightUpperLeg、leftUpperLeg、rightAnkle、leftAnkle);用 excludeFromMapping 或 excludeFromTwistMappings 排除关节;调整 weightPosition/weightRotation;切换 behavior(normal、twist、childAlignedTwist);删除多余关节时需同步清理 target.joints、hierarchy、tpose、tposeMin、tposeMax 及 mapping;编辑 T-pose 位置与旋转(单位米,四元数保持单位长度)。

限制:默认配置通常 80–95% 正确,仍需人工核对;资产须位于 Assets/ 或嵌入式包内,否则可能触发不可变包保存弹窗;重命名关节须在所有相关段落一致修改,否则原生加载器会静默产生错误映射;模型缩放异常导致的扭曲应修正 FBX 导入缩放(globalScale、useFileScale、animationType)并重新生成配置,而非改 JSON。其余细节暂未提供。