主题
TapTap Maker Assets For WasiCore
Use TapTap Maker as an optional asset production toolchain for Spark Editor 2.0/WasiCore projects. Do not treat Maker as the WasiCore runtime. The output of this workflow is ordinary project assets and resource paths that follow WasiCore SDK rules.
If an existing official resource is good enough, prefer sce-resource-picker. Use Maker when the user needs a custom visual/audio asset or a style-consistent batch that does not exist in the SDK resource indexes.
For a new project needing a playable humanoid, read the complete humanoid workflow. It connects Maker generation/rigging to full Editor MCP import, dimensions/orientation, bone mapping, model-space alignment and animation verification without internal repository paths. This reference is included in the project-local Skill mirrors.
Eligibility And Setup
- State the prerequisite clearly: Maker tools require TapTap Maker limited-test qualification/entitlement and a valid logged-in Maker environment or token. Spark Editor 2.0 open-test access does not by itself grant Maker tool access.
- If the user does not have Maker qualification, do not promise Maker image/model/video/music generation. Continue with SDK official resources, user-provided assets, or other AI tools chosen by the user.
- If Maker MCP tools are already visible in the AI session, use them directly. If they are not visible and the user has Maker qualification, ask them to install/reconnect Maker MCP:
powershell
npx -y @taptap/maker install --ide codex,cursor,claudeThis is a machine/IDE-level setup step. It registers Maker MCP servers so the AI assistant can call Maker tools directly; it does not grant Maker qualification, consume project files, or initialize the current folder as a Maker workspace. After install, the user may need to restart the AI client or reload MCP connections.
Initialize a Maker workspace only when generated files should be materialized locally and tracked by Maker metadata:
powershell
npx -y @taptap/maker initPrefer a dedicated Maker asset workspace or a clearly named project subfolder for generation. Do not run init blindly in a production WasiCore project root unless the user explicitly wants that folder to become Maker-bound and accepts extra Maker metadata files.
Asset tools require a bound Maker project, not merely an installed MCP. Start with maker://status or maker_status_lite. Use an explicit target_dir for the chosen asset workspace; check that it contains .maker-mcp/config.json. Let the official init flow bind a user-selected existing Maker project, or create a new Maker project only when the user explicitly chooses that. A new Spark project is not automatically a Maker project. For PAT_EXPIRED, run the official CLI login flow and let the user complete browser authorization; the CLI saves the token automatically, so do not ask the user to paste it into chat or project files.
Tool Choice
Use the Maker MCP proxy tools when available:
| Need | Tool | Notes |
|---|---|---|
| Single icon, sprite, texture, concept image | generate_image | Request transparent background for UI icons, sprites, decals, and cutouts. |
| Several related variants | batch_generate_images | Prefer for matching icon sets, sprite variants, tiles, props, or UI skins. |
| Modify an existing image | edit_image | Inspect the source image first; use project-local paths, HTTP(S) URLs, or data URLs. |
| 3D model from text or image | create_3d_asset with action=start | Choose direct for simple throwaway props, reviewed when art direction needs a preview checkpoint. |
| 3D task status | create_3d_asset with action=query | Reuse the returned asset_id; obey next_action.poll_after_seconds. |
| Confirm reviewed 3D previews | create_3d_asset with action=continue | Show returned previews and wait for explicit user approval before continuing. |
| Video asset | create_video_task / query_video_task | Use for promotional clips, UI/video panels, or reference video; confirm runtime ingestion separately. |
| Background music | text_to_music | Use for BGM or longer music tracks, not short sound effects. |
If the session lacks Maker proxy tools, explain that Maker MCP is unavailable in the current AI tool environment. Do not silently substitute generic image tools when the workflow depends on Maker entitlement or Maker metadata.
Treat the current tools/list and schemas as authoritative. Legacy create_3d_model_task / query_3d_model_task should only be used if they are actually exposed; do not assume the current create_3d_asset interface takes legacy confirmed_image_paths or rig parameters.
Prompting Rules
- Describe the asset as a game production asset: subject, view angle, art style, lighting, readability at target size, background/alpha, and forbidden text/watermarks.
- Use power-of-two sizes for textures and icons when practical:
128x128,256x256,512x512,1024x1024. - For UI icons and 2D sprites, request a centered standalone object, clean silhouette, transparent background, no text, no watermark.
- For style sets, keep a shared style phrase and use
batch_generate_imagesso variants stay consistent. - Save or copy the final chosen files into the WasiCore project using the path rules below; keep Maker's generated metadata in the Maker workspace if one is used.
Import Into WasiCore
Read docs/sdk/guides/ResourcePathGuide.md in the target project before wiring assets. The most common destinations are:
| Asset | Project file location | Code/data path |
|---|---|---|
| UI image, Canvas image, icon, 2D sprite sheet | ui/image/... or ui/icon/... | image/... or icon/... |
| Project-private sound or music | res/sound/custom/... | sound/custom/... |
| Project-private particle texture or authored effect | res/effect/custom/... | effect/custom/... |
| Project-private font generated elsewhere | res/font/<family>/... plus ref/fontref.txt | font/<family> |
| Ordinary JSON/text read by C# file APIs | ui/AppBundle/user_files/... or AppBundle/user_files/... | user_files/... |
Do not put engine-loaded images, sounds, models, particles, or fonts in user_files. Do not write the ui/ or res/ prefix in engine resource paths.
The Maker model-generation MCP delivers an MDL resource package. Inspect the actual tool result and local files: the package may contain MDL meshes, Maker XML prefabs, materials, textures, and UUID .meta files. Do not promise an FBX/GLB export or direct the user to an FBX importer when their tool only returns MDL. Use the existing mesh bundle and adapt its prefab/materials for Spark; do not ask for another mesh conversion. Local extraction paths come from the returned files, not an assumed directory layout.
For every Maker 3D import, read Spark model import and decoration placement before copying the bundle. Maker's XML node prefab and UUID references are not Spark's JSON prefab format. Resolve UUIDs through the supplied .meta files, create a Spark model.prefab, and adapt material techniques and texture channels to Spark. A bare MDL is readable by the preview-info MCP tool but is not directly previewable or draggable as a decoration in the art resource library.
Prefer Editor MCP resource_import_model_package when present. Follow the closed import workflow: inspect dryRun, execute within authorization, require validation/dependenciesReady, then resource_open_preview and visible rendering/terrain placement checks. Manual adaptation is the fallback for older editors or unsupported source formats.
For static props, use a project-owned res/deco/<unique-name>/model.prefab. Show the user where to find it under the art library's Project Resources / 项目资源 tab and how to drag that prefab from the terrain editor's Assets / 素材 panel into the scene. Verify visible geometry, material, orientation, size, and placement; a successful metadata response alone does not prove rendering. Do not end the asset handoff at a file-copy or model-generation success message.
Project-owned resources under res are already included in the client package and do not require resource statistics or objref entries, whether loaded from a saved scene, GameData, or code. Verify their local dependency paths and visible behavior. Resource statistics are for cloud-resource client predownloads: only for those resources, use analyzable IFile/resource literals or GameData, run the resource statistics flow, and check ref/objref.txt. Do not add dummy references or require a statistics build for imported project-local Maker assets.
3D Model Workflow
- With the current create_3d_asset tool, start with payload.generation_strategy, quality_tier, and prompt or images. A single reusable scenery prop can use direct generation. Use reviewed for characters, creatures, important props, or precise art direction, and supply the required subject_type. For reviewed output, show all preview_assets and wait for explicit approval before action=continue. Direct generation has no preview-approval phase.
- Prefer a front-facing reference image when using an image input. Follow the live schema for optional left/back/right views and local input handling.
- Use action=query with asset_id and the same target_dir until the existing task completes. Respect the returned polling interval. If a state-changing request is interrupted after dispatch, reconcile the existing task before retrying; never blindly submit another generation.
- Static scenery props do not need rigging. For skeletal assets, inspect action=get_options / post_process and the live rig capability rules. Rigging produces bones and skinning; generate or obtain compatible clips separately. Offer animation generation only when the live tool and upstream service expose it.
- Current create_3d_asset separates model generation from post_process rig. Query and import the final rigged bundle, selecting its entryPoint when the static prefab remains alongside it. Legacy text_to_3d may request rigging by default, but returned animation descriptions do not expose a user-callable motion-generation capability.
- If a completed result asks about rigging, use the user's already stated static/scenery or skeletal requirement. Ask only when that requirement is undecided; do not add rigging to a static decoration test.
- After a model is ready, inspect the local workspace paths returned by Maker and follow the model import procedure. For skeletal XML/UMD2 packages, use resource_import_model_package with the rigged entryPoint and compatible uncompressed UANI clips; map the default preview clip to idle. Check boneCount, track matching and actual playback. For an already-authored Spark JSON prefab, validate and repair its dependencies instead of converting it again. Preserve original Maker assets.
- Treat a Maker rigged MDL as an external skeleton by default. Do not make
GameDataModel.HumanoidSourceAnimationsthe first way to put Spark's shared humanoid motions on it. That field adds source clips to the normal bake manifest; it does not establish semantic bone mapping, choose the motion family's reference model, or correct Maker-to-Spark axis and unit differences. - When skeletal motion generation is unavailable, follow official animation retargeting: inspect both MDLs with resource_get_skeleton, choose the motion's actual sourceModel, construct a source-to-target boneMap and use resource_retarget_animations with dryRun first. Check unmapped bones, actual limb motion and project reload. The tool creates a new prefab and target-named clips while retaining the original project material/texture dependencies. Track counts do not prove correct weapon grip, finger motion or foot contact.
- Only use the ordinary
HumanoidSourceAnimationsbake path for a Maker model when the imported project resource already has a verified rig configuration and the model is known to share the selected motion family's skeleton and reference space. After explicit retargeting, generated project-owned clips may be listed there for resource collection; the field is not a substitute for retarget setup.
For material adaptation, check texture color space and packing before binding textures: typical sRGB color maps need a same-stem XML with srgb=true; normal/data maps remain linear. The standard packed-normal PBR path expects RG normal XY, B roughness, A metallic, while MaterialPBRVertexColor has a different layout. Prefer generated import MCP settings; direct GameGraph texture references need explicit adaptation and runtime visual verification.
Verification
For official animation retargeting, provide alignmentBones using mapped source torso-up and left-to-right landmarks. Check the returned sourceToTargetRotation, sourceUnitScale and bind-pose invariant errors; prefab rotation alone does not align animation data. Continue to inspect actual shoulder/elbow/wrist and foot poses after these checks. The generated rigconfig stores the mapping, but adding further cross-space official motions must use this MCP workflow rather than assuming the legacy direct-add path applies the same alignment.
After wiring assets into the project:
- Build both targets when code or GameData changed:
powershell
dotnet build src/GameEntry.csproj -c Client-Debug
dotnet build src/GameEntry.csproj -c Server-Debug- For UI/GameGraph visual assets, run sce-preview-verify to launch and screenshot the result.
- For cloud resources requiring client predownload, run resource statistics and check ref/objref.txt. Project-local Maker assets packaged under res do not need this step.
- If a path works in editor debug but fails after publish, check
docs/sdk/guides/ResourceManifestTroubleshooting.mdbefore changing code.
Failure Modes
- No Maker qualification: state the limitation and switch to SDK resources or user-supplied assets.
- Maker MCP not installed or tools not visible: provide the
npx -y @taptap/maker install --ide codex,cursor,claudecommand and tell the user to reload MCP. - Wrong workspace initialized: stop before writing Maker metadata into an unrelated project root.
- 3D source image is not front-facing: request a front view or generate one first.
- Model absent or invisible in the art library: check Project Resources versus My Assets, XML versus JSON prefab, unresolved UUIDs, actual technique paths, texture channels, and model bounds using model-import.md.
- Resource appears in editor but not publish: for project resources, check local dependency paths and packaging; for cloud predownloads, check resource statistics and ref/objref.txt. See ResourcePathGuide for the distinction.