From meta-vr
Ensures complete FBX URLs or absolute paths are used when importing external 3D models into Unity projects targeting Meta Quest and Horizon OS.
How this skill is triggered — by the user, by Claude, or both
Slash command
/meta-vr:hz-unity-fbx-importThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill ensures that when importing external 3D models (FBX files) into Unity using the Unity MCP `Unity_ImportExternalModel` tool, full and complete URLs are always provided, preventing import failures due to incomplete paths.
This skill ensures that when importing external 3D models (FBX files) into Unity using the Unity MCP Unity_ImportExternalModel tool, full and complete URLs are always provided, preventing import failures due to incomplete paths.
Use this skill automatically whenever:
Unity_ImportExternalModel tool from Unity MCPALWAYS use complete, fully-qualified URLs for FBX files.
Never use relative paths, partial URLs, or assume path completion. The FbxUrl parameter must be a complete URL or absolute file path.
When a user requests to import a model, determine the source:
Remote URL (HTTP/HTTPS):
http:// or https://.fbx or .zip?param=value&other=data) are required for authenticationhttps://example.com/models/character.fbx?token=abc123&auth=xyzhttps://cdn.fbcdn.net/path/file.fbx?_nc_gid=xxx&_nc_oc=yyy&oh=zzzLocal file (file system):
C:/Users/name/Downloads/model.fbx/home/user/models/model.fbx.fbx or .zipZIP archive:
https://example.com/assets.zipBefore calling Unity_ImportExternalModel, verify the URL:
CRITICAL: For URLs with query parameters (like ?token=...&auth=...), you MUST include the ENTIRE URL including all parameters. Query parameters often contain authentication tokens required for download.
Valid examples:
https://cdn.example.com/assets/models/chair.fbxhttps://cdn.example.com/models/chair.fbx?token=abc123&auth=xyz789 (with query params)https://scontent.fbcdn.net/model.fbx?_nc_gid=xxx&_nc_oc=yyy&oh=zzz (Meta CDN with auth)http://localhost:8000/models/character.fbxfile:///C:/Users/name/Downloads/robot.fbxC:/Projects/Models/tree.fbx (Windows absolute)/home/user/assets/car.fbx (Unix absolute)https://github.com/user/repo/releases/download/v1.0/model.zipInvalid examples (never use these):
models/chair.fbx (relative path)~/Downloads/robot.fbx (tilde expansion not supported)example.com/model.fbx (missing protocol)../assets/model.fbx (relative path)model.fbx (no path at all)The Unity_ImportExternalModel tool requires:
Name (required):
office_chair, character_01, tree_oakFbxUrl (required):
http://, https://)Height (required):
AlbedoTextureUrl (optional):
.png, .jpg, .jpegUse the Unity MCP tool with complete parameters:
{
"Name": "office_chair",
"FbxUrl": "https://example.com/models/office_chair.fbx",
"Height": 1.0,
"AlbedoTextureUrl": "https://example.com/textures/chair_diffuse.png"
}
Never omit the protocol or use partial paths.
After calling Unity_ImportExternalModel:
Check for success:
success: true if import succeededExtract important data:
Report to user:
After importing, use the bounds information with the unity-placement skill for proper positioning:
The imported model has:
- Size: [width, height, depth]
- Center: [x, y, z]
- Prefab: Assets/Prefabs/name.prefab
Consider the size when placing relative to other objects.
When the user gives an incomplete path, ask for the complete path:
User: "Import models/car.fbx"
Ask for clarification: "I need the complete path to the FBX file. Is it:
What is the full path to car.fbx?"
User: "Import from example.com/models/chair.fbx"
Clarify the protocol: "Should this be:
Which protocol should I use?"
User: "Import ../models/tree.fbx"
Request absolute path: "Relative paths aren't supported. Please provide the absolute path to tree.fbx.
For example:
What is the full path?"
Unity_ImportExternalModelBefore calling Unity_ImportExternalModel, verify:
FbxUrl is a complete URL or absolute pathName parameter is a simple identifier (no spaces)Height is a reasonable positive numberAlbedoTextureUrl (if provided) is also a full URL/path with all paramsIf Unity_ImportExternalModel is not available but other Unity MCP tools (like Unity_RunCommand) are working, there are two options.
Tell the user:
"The Unity_ImportExternalModel tool is not currently enabled. To enable it:
Unity_ImportExternalModelIf the user cannot or does not want to enable the tool, read FALLBACK_MANUAL_IMPORT.md (next to this file) for a step-by-step guide to replicate the import pipeline using Unity_RunCommand, based on the reference implementation in the com.unity.ai.assistant package.
| Source Type | Format | Example |
|---|---|---|
| Remote HTTPS | https://domain/path/file.fbx | https://cdn.example.com/models/chair.fbx |
| Remote HTTP | http://domain/path/file.fbx | http://localhost:8000/model.fbx |
| Local Windows | C:/path/to/file.fbx | C:/Users/name/Downloads/robot.fbx |
| Local Mac/Linux | /path/to/file.fbx | /home/user/models/tree.fbx |
| ZIP archive | Same as above with .zip | https://example.com/pack.zip |
After importing, use the returned bounds with unity-placement:
Imported model "robot_character":
- Size: [0.6, 1.8, 0.4]
- Center: [0, 0.9, 0]
- Prefab: Assets/Prefabs/robot_character.prefab
To place this robot on the platform:
[Use unity-placement skill with the size data]
The Unity MCP Unity_ImportExternalModel tool requires complete, absolute URLs or paths. When in doubt:
Goal: Prevent import failures by ensuring every FbxUrl parameter is a valid, complete, fully-qualified URL or absolute file path.
npx claudepluginhub meta-quest/agentic-tools --plugin meta-vrControls the Unity Editor from the terminal via the `ucp` CLI. Automates scenes, GameObjects, assets, builds, tests, packages, and profiling over a WebSocket/JSON-RPC bridge.
Places Unity GameObjects relative to others using Renderer/Collider bounds to prevent overlaps. Activates on spatial placement requests like "put X on Y" or "position X 2 meters left of Y."
Guides importing and managing assets in Godot 4.3+ — image compression, 3D scene import, audio formats, and import configuration.