| name | tinyworld-25d-template-sprites |
| description | Use when changing the playable 2.5D template sprite, cloning it into character classes, or wiring idle/walk/attack sprite-sheet playback. |
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:
- Add the class name to
CLASSES and an overlay function in
tools/generate-playable-25d-classes.py.
- Add the class name to
AVATAR_CLASSES in
engine/world/47-worlds-room.js.
- Regenerate sheets, then run
npm test and npm run build.