You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
autohero/docs/sprites_instruction.md

429 lines
5.4 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 🎮 Sprite & Tileset Implementation Guide (Vertical Slice)
## 1. Scope
This document defines **technical requirements and pipeline rules** for using generated sprites, tilesets, and VFX in the project.
Goal: enable a developer to **import, slice, and assemble a fully playable vertical slice** without ambiguity.
---
## 2. Global Standards
```txt
Camera: Top-down (3/4)
Tile Size: 64x64 px
Internal Grid: 16x16 px
Padding: 2 px
Format: PNG (RGBA)
Filter Mode: Point (no filtering)
Compression: None
Pixels Per Unit: 64
```
---
## 3. Project Structure
```txt
/assets
/tiles
/props
/buildings
/characters
/enemies
/items
/vfx
/ui
```
---
## 4. Tileset Implementation
### 4.1 Import Settings
* Sprite Mode: Multiple
* Mesh Type: Full Rect
* Filter: Point
* Compression: None
---
### 4.2 Grid Slicing
```txt
Cell Size: 64x64
Offset: 0,0
Padding: 2px (if present in atlas)
Pivot: Center (0.5, 0.5)
```
---
### 4.3 Tile Categories
#### Ground Layer (collision + navigation)
```txt
road_center
road_variation_01..03
road_edge_N/E/S/W
road_corner_outer
road_corner_inner
```
#### Overlay Layer (no collision)
```txt
overlay_corruption
overlay_cracks
overlay_grass
```
---
### 4.4 Tilemap Layers
```txt
Layer 0: Ground
Layer 1: Overlay
Layer 2: Props (optional tile-based)
```
---
### 4.5 Autotile Requirements
Each terrain type must include:
```txt
1 center
4 edges
4 outer corners
4 inner corners
3+ variations
```
---
## 5. Props Implementation
### 5.1 Import
* Sprite Mode: Single
* Pivot: Bottom-Center (0.5, 0.0)
---
### 5.2 Rules
```txt
Height: 0.51.5 tile
Scale: consistent with tile grid
Collider: BoxCollider (manual)
```
---
## 6. Character (Hero)
### 6.1 Import Settings
```txt
Sprite Mode: Multiple
Cell Size: 64x64
Pivot: Bottom-Center (0.5, 0.0)
```
---
### 6.2 Animation Layout
```txt
Row = animation
Column = frame
Direction = left → right
```
---
### 6.3 Required Animations
```txt
idle: 6 frames
walk: 8 frames
attack: 68 frames
hit: 4 frames
death: 6 frames
```
---
### 6.4 Runtime Setup
* Animator Controller required
* State machine:
* Idle ↔ Walk
* Walk → Attack
* Any → Hit
* Any → Death
---
### 6.5 Collision
```txt
Collider: Capsule
Hitbox: smaller than sprite
Weapon hitbox: separate trigger collider
```
---
## 7. Enemies
### 7.1 Parameters
```txt
Size: 96128 px
Pivot: Bottom-Center
```
---
### 7.2 Animations
```txt
idle
move
attack
hit
death
```
---
### 7.3 Gameplay Rules
* Weak points must be visually highlighted
* Hitbox must NOT match full sprite size
---
## 8. Items (Loot)
### 8.1 Import
```txt
Size: 32x32
Pivot: Center (0.5, 0.5)
```
---
### 8.2 Categories
```txt
consumables
currency
equipment
keys
```
---
### 8.3 Visual Encoding
```txt
common = neutral
rare = blue
epic = purple
```
---
## 9. VFX
### 9.1 Import
```txt
Size: 64128 px
Pivot: Center
Material: Additive / Alpha Blend
```
---
### 9.2 Types
```txt
slash
impact
portal
particles
electricity
```
---
### 9.3 Rules
* VFX must be separate from characters
* Use flipbook animation where applicable
* Do NOT bake effects into base sprites
---
## 10. UI
### 10.1 Sizes
```txt
Icons: 32x32
Slots: 64x64
Panels: flexible
```
---
### 10.2 Rules
* Icons must be readable without text
* Glow indicates interactivity
---
## 11. Lighting Model
### 11.1 Separation
```txt
Base sprite = no heavy lighting
Emissive = separate (windows, crystals)
Lighting = runtime (engine)
```
---
### 11.2 Restrictions
```txt
DO NOT bake global lighting into tiles
DO NOT mix emissive with base diffuse
```
---
## 12. Naming Convention
```txt
tiles/road_center_01.png
tiles/road_edge_n_01.png
props/lamp_01.png
characters/hero_idle_01.png
characters/hero_attack_03.png
enemies/corrupt_beast_idle_01.png
items/potion_red.png
vfx/slash_01.png
ui/icon_attack.png
```
---
## 13. Engine Setup (Unity / Godot)
### 13.1 Import Settings
```txt
Filter Mode = Point
Compression = None
Pixels Per Unit = 64
```
---
### 13.2 Sprite Mode
```txt
Tilesets → Multiple
Props/Items → Single
Characters → Multiple
```
---
## 14. Collision System
```txt
Tilemap Collider → Ground
Box Collider → Props
Capsule Collider → Characters
Trigger Collider → Attacks / Loot
```
---
## 15. Render Order
```txt
1 Ground
2 Overlay
3 Props
4 Characters
5 VFX
6 UI
```
---
## 16. Gameplay Loop (Vertical Slice)
```txt
1. Player movement (tilemap navigation)
2. Enter corruption zone
3. Enemy aggro
4. Combat (melee + VFX)
5. Loot drop
6. Loot collection
7. Exit via portal
```
---
## 17. Critical Constraints
```txt
All assets must align to 64x64 grid
All sprites must have correct pivot
No mixed pixel density
No baked lighting abuse
Tiles ≠ Props (strict separation)
Minimum 3 variations per tile type
```
---
## 18. Acceptance Criteria
Implementation is valid if:
* Tilemap builds without seams
* Character animations play correctly
* Combat loop is functional
* Loot is collectible and readable
* Portal completes loop
* No visual scale inconsistencies
---
**End of document**