Agent Skills
› jasonkneen/tiny-world-builder
› tinyworld-tinyverse-race-track
tinyworld-tinyverse-race-track
GitHub用于开发和维护 Tinyverse 地面赛道的功能,包括赛道、桥梁、卡丁车及展示钩子。涉及场景隔离、材质复用、动画循环集成及 HUD 管理,确保用户界面交互与性能优化。
触发场景
修改 Tinyverse 地面赛道布局或几何体
调整外围桥梁环路或卡丁车行为
实现或修复展示表面的显示/隐藏钩子逻辑
安装
npx skills add jasonkneen/tiny-world-builder --skill tinyworld-tinyverse-race-track -g -y
SKILL.md
Frontmatter
{
"name": "tinyworld-tinyverse-race-track",
"description": "Use when changing the Tinyverse ground-surface race track, perimeter bridge loop, rally karts, or poser-surface show\/hide hook."
}
Tinyverse Race Track
The race track lives in engine/world/61-tinyverse-race-track.js.
Rules:
- Keep the system isolated from avatar files. The track wraps
window.__tinyworldPoserSurface.{build,show,hide}and attaches one root group under the poser-surface group. - Respect sky-island vs ground-surface separation: do not add race-track meshes
to
worldGroupdirectly and do not mutate editable island or home-grid cells. - The poser surface scales Y three times harder than X/Z. Keep
root.scale.y = 1 / 3and multiply sampled terrain heights by3before placing track/kart geometry. - Use existing TinyWorld material families (
M.path,M.pathTrim,M.bridgeWood,M.bridgeWoodD,M.castleStoneD) instead of new texture assets. Clone them locally when the track needsfog=falsereadability, but never mutate sharedM.*materials. - Keep static road/bridge pieces in a static subgroup and run
mergeStaticBaseMeshesByMaterial(...)after authoring. Dynamic karts should stay in their own subgroup and animate by transform only. - The HUD should be visible only while the poser surface is visible.
PS.hide()must hide it and clear active race state. - Keep an obvious user-facing entry point. The
Play rallylauncher should callwatch(), descend to the poser surface, frame the route from the ground layer, and start the race after the descent settles. Do not leave the rally as a console-only or hidden-key feature. - Watch mode may set
body.tinyverse-rally-watchto clear obstructive editor panels and use a lightweight follower camera. Keep this state scoped towatch()and clear it on hide. - Do not create a local
requestAnimationFrameloop. The module exposeswindow.__tinyworldRaceTrack._tick(dt), and25-animation-loop-schema.jscalls it from the main loop;_tickmust stay a fast no-op while hidden. - Public runtime hook:
window.__tinyworldRaceTrackexposesshow(),hide(),watch(),startRace(),stopRace(),rebuild(),group(), androuteLength().
Validation:
node --check engine/world/61-tinyverse-race-track.jsnode tools/check.js- Visual check: click
Play rallyor callwindow.__tinyworldRaceTrack.watch()and confirm the app descends to the ground islands, frames the road loop, shows the HUD, and starts moving karts.
版本历史
- 2ffaf91 当前 2026-07-06 00:20


