skills/hz-unity-fbx-import/SKILL.md
Ensures complete FBX URLs or absolute paths are used when importing external 3D models into Unity projects targeting Meta Quest and Horizon OS. Use when adding FBX files, 3D models, or external assets.
npx skillsauth add meta-quest/agentic-tools hz-unity-fbx-importInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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.
tools
Provides the complete metavr (Meta VR CLI) reference for Meta Quest and Horizon OS development — installation, device setup, command discovery, MCP server mode, documentation search, app deployment, device testing setup, audio control, screenshots, and performance analysis. Use when the user needs to install metavr, asks what commands are available, needs CLI syntax help, or wants to know what metavr can do.
development
Guides integration of the Horizon Platform SDK for Meta Quest and Horizon OS Unity/C# apps — achievements, IAP, users, leaderboards, challenges, presence, notifications, abuse reporting, entitlements, asset files, application lifecycle, consent, device integrity, language packs, user age categories, and rate and review. Covers setup, initialization, API usage, data types, error handling, and best practices for all 18 public platform SDK packages.
development
Meta XR Core SDK (com.meta.xr.sdk.core) for Unity XR development. Use when setting up VR/MR projects, configuring OVRManager, adding OVRCameraRig, enabling passthrough, hand tracking, spatial anchors, boundaryless mode, controller input, Scene API, or any Meta Quest XR feature. Covers OVRProjectSetup, AndroidManifest generation, and project configuration for Meta Quest headsets.
development
Build and sideload Android apps for Meta Portal devices (Portal, Portal+, Portal Mini, Portal Go, Portal TV) using metavr. Use when targeting Portal hardware — covers ADB enablement, the no-GMS constraint, manifest/launcher intent-filter requirements, icon density quirks (PNG-only, mipmap-xxxhdpi), the Smart Camera SDK, and the gradle + `metavr adb` build/deploy/debug loop. Auto-load when the user mentions "Portal" device, targets `minSdkVersion` 28-29 for a tabletop/TV form factor, or works with the `com.facebook.portal` package.