Skip to content

SCE Resource Picker ​

Use this skill whenever code or data needs a real shipped asset path. Do not invent paths from memory.

Editor MCP Resource Catalog ​

When a full SCE Editor MCP is reachable, prefer the live resource catalog tools before falling back to static JSON indexes:

  • Call editor_get_context first. If project.is_open is false or ready_state is project_not_open, project resources are unavailable, but editor-local and cloud catalog queries can still be used.
  • Use resource_catalog_list_categories to discover cloud catalog categories and common labels before broad cloud searches.
  • Use resource_catalog_search with source=local for editor public resources, source=cloud for cloud catalog assets, and source=project for the currently opened project's res/ and ui/ resources. If no project is open, source=project should return an empty result with a warning rather than an error.
  • For project resources, pass rootKind=currentMap when the user asks for "this project's own resources"; use rootKind=any only when dependency libraries should also be searched. Other project filters are editableLib, dependencyLib, and project.
  • Treat source=any as a convenience query, not a proof that cloud search was exhaustive. Cloud catalog lookup has a time budget and may return a warning while still providing valid local/project results. For ordinary path or name searches, prefer source=project or source=local; use source=cloud plus category/label filters when the user explicitly needs cloud assets.
  • Use resource_catalog_get_detail to confirm a candidate path before writing it into code, GameData, or GameUI configuration.
  • Use resource_get_preview_info before finalizing visible or audible assets. It returns structured summaries for prefab/mdl models, images/icons, sounds, animations, particles, and UI metadata without exposing the resource file contents. For models, read bbox/vertex/triangle/material/texture summaries; for images/icons, read dimensions and format; for sounds, read duration/sample rate/channels; for animations and particles, read length/tracks/emitter/material/texture summaries.
  • If the task needs a readable official .effect or prefab example for AI authoring, continue with resource-catalog-export: search the cloud catalog, download the complete resource, and export a plaintext project copy.
  • Check each response's projectOpen, availableSources, warnings, path, resourceType, and source fields. Do not assume project appears in availableSources.
  • Catalog choices should use returned resource paths, not machine-specific maintenance roots or temporary local copies. Local FBX import is a separate authoring workflow: its sources explicitly take the user's local absolute FBX paths.

Project Files, Display Names and Local FBX ​

  • Files copied directly into project res/ or ui/ do not need cloud registration or matching cloud ownership to appear in the project file browser. The MCP catalog remains a typed asset search, not a complete filesystem listing; an absent result does not prove a file is absent.
  • displayName is for presentation and name search, never for resource identity. Newer catalogs prefer res/project_resources.json entries' show_name, then a readable prefab array's type: projectResourceInfo / show_name, then the parent folder for model.prefab / particle.effect, otherwise the filename. Missing or unreadable metadata must not hide the file. Older editor catalogs may only return filename-derived names.
  • Project manifest paths are relative to project res or absolute local paths. Do not use a parent-folder ID alone to match records: two folders may contain identically named files. Prefab metadata may lag the manifest after a rename. Do not rename files or rewrite resource references merely to improve display names.
  • Use catalog path for subsequent catalog/preview calls. For code, convert according to the consuming API: res/models/Tiger/model.prefab generally becomes models/Tiger/model.prefab; ui/image/foo.png becomes image/foo.png for GameUI. Keep the original catalog path available for verification.
  • The resource browser's extension placeholder and preview-only filter describe its preview capability, not a whitelist of allowed project files. A prefab without a thumbnail can still be previewable. Raw FBX must be converted before model use.
  • Scene material placement has a narrower scope: project res prefab files and standard particle.effect entries. Its placement records use paths below res, not the absolute filesystem path used by the browser. The 2.0 material tab does not auto-create legacy Lua units; author units through GameData and the unit workflow.
  • For user-requested local FBX import, discover resource_import_fbx_batch with tools/list; it requires the full Editor host. Preview a batch with dryRun: true, then execute the authorized import with false. Inspect every per-file result, including partial failures and skipped targets.
  • For a static XML/UMD2 model bundle or ZIP, discover resource_import_model_package and follow ProjectModelImport. Inspect dryRun, execute the authorized import, inspect validation/dependency diagnostics, then resource_open_preview and verify rendering and placement. Unsupported skeletal/components/materials must not be silently flattened. Project-local res assets need no resource statistics.
json
{
  "sources": ["D:/MyAssets/Tiger.fbx", "D:/MyAssets/Tree.fbx"],
  "destination": "res/models/imported",
  "mode": "model",
  "sceneConvert": "native",
  "overwrite": "skip",
  "continueOnError": true,
  "dryRun": true
}

Each model goes to <destination>/<source basename>/model.prefab with its generated assets. mode: animation exports the first animation take as .ani; sceneConvert: unity selects the Unity preset. The initial tool supports skip or error for existing targets, not overwrite; identical source basenames can conflict. Failure may leave partial outputs. .import.json records import settings but is not a display-name configuration. Cancellation takes effect between files; large conversions may exceed a short HTTP timeout, so inspect outputs before retrying. Verify resulting prefab, textures and animations with resource_get_preview_info; importing a model does not create a GameDataUnit or upload the asset to the cloud.

The live catalog is the best source for resources that depend on the user's current editor installation, cloud catalog state, project res/ / ui/ files, or dependency libraries. Static indexes remain useful when MCP is unavailable, when reviewing repository docs offline, or when a task must be reproducible without a running editor.

Resource Indexes ​

Look in project docs/resources/ first:

NeedIndex
Characters, monsters, model prefabs, built-in animations on a modeldocs/resources/characters.json, characters1.json
Shared Humanoid animations and hit/cancel timingdocs/resources/animations.json
Particle/effect assetsdocs/resources/effects.json
Sound effects or music snippetsdocs/resources/sounds.json
Weaponsdocs/resources/weapons.json
Decoration/scenery modelsdocs/resources/deco.json
UI iconsdocs/resources/official-icons.json
UI imagesdocs/resources/ui-images.json
Overviewdocs/resources/index.json, docs/resources/readme.md

Prefer rg over opening large JSON files manually. Search by Chinese and English keywords, then read only the surrounding JSON entry.

Path Rules ​

For ordinary UI controls displaying a rectangle of an existing image atlas, use the project atlas manifest and region JSON workflow in CustomUIAtlas. A virtual child-image path need not have a loose file. Follow ui-layout-api for authoring and screenshot verification; absence of a control-level UV property is not a reason to require Canvas or CPU image cropping.

For atlas halos, black/white fringes or neighboring-image bleeding, read the guide's edge troubleshooting. Distinguish padding/extrusion, transparent-pixel RGB and alpha convention, mip filtering and published texture compression. Keep external extrusion outside the JSON region; verify the actual published texture and screenshots at the intended scales instead of changing UVs or premultiplying all images by default. Use the transparent-pixel RGB dilation checklist when preparing or checking atlas images: inspect invisible RGB values, preserve every alpha value, isolate each subimage and verify the exported texture's alpha convention.

For published atlas inventory, follow the verification MCP contract. Bind the verification to a successful publish operation and one returned platform variant, then retain verification_id for polling. JSON equality, container metadata and actual rendering are separate evidence; no pixel decoder means no pixel comparison. Do not infer a missing loose icon file is a missing resource when its logical path exists in the atlas.

  • GameUI image paths usually start from ui/ content without the ui/ prefix in code, for example file ui/image/foo.png is used as image/foo.png.
  • GameGraph and engine resources use the engine resource path expected by that API. Do not prefix paths with local filesystem roots.
  • Particle assets used by ParticleSystem.Load(...) usually look like effect/.../particle.effect.
  • Character model prefabs usually look like characters.../.../model.prefab.
  • Shared Humanoid animations are .ani paths and may require resource statistics / bake before debug.

Selection Workflow ​

  1. Identify the asset category from the task.
  2. If full Editor MCP is reachable, query resource_catalog_* and confirm the candidate with resource_catalog_get_detail.
  3. For visible or audible choices, call resource_get_preview_info on the shortlisted path and reject unsupported or clearly wrong resource types before writing data.
  4. If MCP is unavailable or the needed source is not in availableSources, search the matching static index with rg.
  5. Pick a small set of candidates and prefer:
    • assets already used by the target template or nearby sample;
    • assets with animation names matching the needed behavior;
    • simple, stable placeholder resources for prototypes.
  6. Verify the path against the consuming system:
    • 3D units/models: read skills/3d-unit-game/SKILL.md and docs/systems/ModelAnimationSystem.md when animation is involved.
    • Runtime particles: read skills/runtime-particle-builder/SKILL.md.
    • UI images/fonts: read skills/ui-layout-api/SKILL.md or skills/ui-custom-font/SKILL.md.
  7. Run sce-preview-verify for visible assets.

Common Choices ​

  • For a first 3D hero prototype, prefer the recommended built-in models listed in skills/3d-unit-game/SKILL.md.
  • For attack/move/death animation, first check the selected model's own anims field. Use shared Humanoid animations only when the model supports the bake/retarget flow.
  • For effects bound to Unit/Ability/Buff data, prefer authored effect assets and actor data. Use runtime particle builder for procedural previews or temporary code-driven VFX.
  • For icons, use official-icons.json and copy/use the listed copyTo path when creating UI image resources.

Output Format ​

When reporting a resource choice, include:

  • the chosen path;
  • the live MCP source or static index file used;
  • why it fits the task;
  • relevant preview metadata such as bbox size, image dimensions, audio duration, animation length, or particle summary when available;
  • any follow-up bake/statistics/debug step needed.