SuperAPI AI 工具集

hz-unity-fbx-import

通用与其它

查看项目

更新于 10-16 00:29

技能介绍

用途:在面向 Meta VR 与 Horizon OS 的 Unity 项目中导入外部 FBX 3D 模型。核心原则是始终使用完整、全限定的 URL 或绝对文件系统路径,绝不使用相对路径、残缺 URL 或自动补全路径。

主要能力与流程:

  1. 识别来源:远程 URL 须以 http:// 或 https:// 开头,包含完整域名与路径,文件名以 .fbx 或 .zip 结尾,且必须保留扩展名之后的所有查询参数与令牌;本地文件须为绝对路径(Windows 如 C:/Users/name/Downloads/model.fbx,Unix/Mac 如 /home/user/models/model.fbx);ZIP 需先解压再导入其中的 FBX。
  2. 下载远程文件到磁盘:import_asset 只接受绝对文件系统路径,不会下载 URL,传 URL 会报 Source file 不存在。命令示例:curl -fSL "https://example.com/models/office_chair.fbx" -o /tmp/office_chair.fbx;Windows 用 Invoke-WebRequest。URL 需加引号,避免 & 被 shell 拆分。导入前确认文件存在且非空。
  3. 导入:先 unity status --format json 确认 ready;再用 unity command import_asset --source "C:/Users/name/Downloads/office_chair.fbx" --path "Assets/Models/office_chair.fbx" --dry_run true --format json 验证,然后去掉 --dry_run 正式导入。--path 为相对创作根目录的目标路径并含扩展名;覆盖已有资源需 --confirm true。
  4. 缩放与骨骼:用 unity command set_import_settings --asset "Assets/Models/office_chair.fbx" --settings '{"globalScale": 0.46, "useFileScale": false}' --format json,globalScale 按目标高度/当前高度计算;人形骨骼还需设 animationType 为 Humanoid。
  5. 实例化并测量真实包围盒:instantiate_prefab、save_scene 后,用 GetBounds.cs 通过 run_script 读取,bounds 是计算属性,get_component_properties 无法返回;导入的 FBX 渲染器位于子对象上,需合并子渲染器包围盒。
  6. 向用户报告资源路径、实例名、测量尺寸与中心,并建议后续放置、缩放、材质步骤。

适用场景:从外部来源导入 FBX、向 Unity 项目添加 3D 模型、从 URL 或文件路径加载资源,或用户提到 import model、add FBX、load 3D asset、bring in model。

限制与注意:不支持相对路径、~/ 展开、缺少协议的 URL;用户提供不完整路径时应询问完整路径。用户提供的来源先用 --dry_run true 验证。导入后应实测尺寸而非假设。另有一个 Unity MCP 服务器配合 Meta Unity 扩展提供 Unity_ImportExternalModel,可一次完成下载、导入、高度归一化、贴图与预制体创建,但仅能通过 MCP 使用,命令目录无等价项。与 unity-placement、hz-unity-meta-movement-sdk-retargeting、unity-cli 等技能配合使用。