SuperAPI AI Directory

tinyworld-25d-template-sprites

Design & creation

View repository

Updated 10-30 13:08

About this skill

TinyWorld 25D Template Sprites

This is not the crowd system. Do not route playable template work through vendor/tiny-crowd-layer.js, crowd/, or engine/world/11-vehicle-crowd.js.

Runtime:

  • engine/world/47-worlds-room.js owns the playable in-world/player-room avatar from these template sheets.
  • The character is runtime-only and must not write into world[x][z], cellMeshes, export JSON, saved worlds, or crowd people.
  • Movement uses WASD/arrows. Jump uses Space. Attack uses F. Class cycling uses [ / ].
  • The world-room avatar class API is exposed via window.__tinyworldWorlds: setAvatarClass(name), cycleAvatarClass(delta), avatarClass(), and avatarClasses().
  • Warrior/orc side-view avatars in engine/world/47-worlds-room.js are also 64px grid sheets: columns are animation frames and rows are directions. Crop to a single row with repeat.y = 1 / rows; do not sample a full 256px-tall column, or four stacked bodies render in-world.
  • The Worlds avatar picker/runtime should use the side-view Without_shadow sheets for swordsman/orc avatars unless the user explicitly asks for baked ground shadows.
  • Side-view swordsman/orc row order is front/down, left, right, back/up. Movement should update the sampled row from the camera-relative sector; do not fake left/right by flipping a single side row when the sheet has real side rows.

Assets:

  • Source template sheets live under models/people/25D/.
  • Idle/walk/run sheets are 64px grid sheets.
  • Attack sheets are 96px grid sheets.
  • Rows are ordered: down, downRight, right, upRight, up, upLeft, left, downLeft.
  • Generated class sheets live under models/people/25D/classes/<class>/ as idle.png, walk.png, and attack.png.
  • Regenerate class sheets with python3 tools/generate-playable-25d-classes.py.

When adding a class:

  1. Add the class name to CLASSES and an overlay function in tools/generate-playable-25d-classes.py.
  2. Add the class name to AVATAR_CLASSES in engine/world/47-worlds-room.js.
  3. Regenerate sheets, then run npm test and npm run build.