chore: Update LDtk project with new layers and fixed assets dimensions (using sips)
35
godot/.import_defaults
Normal file
@@ -0,0 +1,35 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://smooth_texture_default"
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=true
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
svg/scale=1.0
|
||||
editor/scale_with_editor_scale=false
|
||||
editor/convert_colors_with_editor_theme=false
|
||||
|
||||
[preset.0]
|
||||
|
||||
name="Smooth High Quality"
|
||||
platforms=PackedStringArray("*")
|
||||
texture_filter=1
|
||||
texture_repeat=0
|
||||
50
godot/ACTIVATE_BRUSH_GUIDE.md
Normal file
@@ -0,0 +1,50 @@
|
||||
# 🖌️ KAKO AKTIVIRATI ČOPIČ - TOČNA NAVODILA
|
||||
|
||||
David, sledite TEM KORAKOM točno v tem vrstnem redu:
|
||||
|
||||
## 1️⃣ **ODPRI BASEMAP SCENO:**
|
||||
V FileSystemu (spodaj levo):
|
||||
- Klikni: `scenes/levels/BaseMap.tscn`
|
||||
- Scene se odpre
|
||||
|
||||
## 2️⃣ **IZBERI GROUNDLAYER:**
|
||||
V Scene tree (zgoraj levo):
|
||||
- Klikni na `GroundLayer`
|
||||
- Postane rumeno/izbrano
|
||||
|
||||
## 3️⃣ **ODPRI TILEMAP PANEL (SPODAJ):**
|
||||
Če ga ne vidiš:
|
||||
- Meni: `View → Bottom Panel → TileMap`
|
||||
- Ali pa ikona 🎨 spodaj
|
||||
|
||||
## 4️⃣ **ZAVIHEK TILESET (NE TERRAINS!):**
|
||||
Spodaj v panelu:
|
||||
- Klikni zavihek **"TileSet"** (levo od "Terrains")
|
||||
- Vidiš grid z zeleno travo (16x16 ploščic)
|
||||
|
||||
## 5️⃣ **IZBERI 1 PLOŠČICO:**
|
||||
V tem gridu:
|
||||
- Klikni SAMO na **ENO ploščico** (npr. 6,5 kot si rekel)
|
||||
- **SAMO ENA** kvadratek mora biti moder/izbran
|
||||
- Če jih je več, klikni znova samo na eno
|
||||
|
||||
## 6️⃣ **AKTIVIRAJ SVINČNIK (ZGORAJ):**
|
||||
V toolbar-u zgoraj (pri editorju):
|
||||
- Poišči ikono **✏️ SVINČNIKA** (prva ali druga ikona na levi)
|
||||
- Klikni nanjo
|
||||
- Postane **MODRA** (aktivna)
|
||||
|
||||
## 7️⃣ **RIŠI NA PLATNU:**
|
||||
V glavnem viewport-u (sredina):
|
||||
- Klikni kjer koli na črno platno
|
||||
- **ZELEN KVADRATEK SE POJAVI!** ✅
|
||||
|
||||
---
|
||||
|
||||
## 🎥 **ČE NE VIDIŠ RDEČEGA KRIŽA (0,0):**
|
||||
- Pritisni **F** (Frame selected) medtem ko imaš GroundLayer izbran
|
||||
- Ali: Scroll wheel za zoom, srednji miš za pan
|
||||
|
||||
---
|
||||
|
||||
**PROBAJ ZDAJ!** Klikni na EN kvadratek spodaj, potem svinčnik zgoraj, potem riši! 🖌️
|
||||
32
godot/DEMO_ATLAS_READY.md
Normal file
@@ -0,0 +1,32 @@
|
||||
# 🎨 **DEMO ATLAS PRIPRAVLJEN!**
|
||||
|
||||
David, naredil sem **TOČNO TO**, kar si želel:
|
||||
|
||||
## ✅ **1. ENA SLIKA (Atlas):**
|
||||
- Lockacija: `godot/phases/FAZA_1_FARMA/tilesets/TerrainAtlas.png`
|
||||
- Velikost: 512x512
|
||||
- Vsebina:
|
||||
- ↖️ **Grass** (zgoraj levo)
|
||||
- ↗️ **Dirt** (zgoraj desno)
|
||||
- ↙️ **Water** (spodaj levo)
|
||||
- ↘️ **Farm** (spodaj desno)
|
||||
|
||||
## ✅ **2. TILESET (DemoAtlas.tres):**
|
||||
- Pripravljen za uporabo.
|
||||
- **LINEAR filter** (Smooth transition).
|
||||
- Vse 4 teksture v enem oknu.
|
||||
|
||||
---
|
||||
|
||||
## 🚀 **KAKO UPORABITI V GODOTU:**
|
||||
|
||||
1. Odpri Godot.
|
||||
2. Izberi `TitleMapLayer` ali ustvari novega.
|
||||
3. V **Inspector** (desno) -> **Tile Set**:
|
||||
- Povleci notri datoteko: `res://phases/FAZA_1_FARMA/tilesets/DemoAtlas.tres`
|
||||
- Ali klikni "Load" in jo izberi.
|
||||
4. Spodaj v zavihku **TileMap**:
|
||||
- Vidiš **ENO SLIKO** (Atlas).
|
||||
- Klikni na kocko (Travo, Zemljo...) in riši!
|
||||
|
||||
**To je zdaj SUPER PREGLEDNO!** Brez 4000 slik, samo ena paleta. 🎨🚜
|
||||
27
godot/HOW_TO_PAINT_SINGLE_TILE.md
Normal file
@@ -0,0 +1,27 @@
|
||||
# 🖌️ **KAKO NARISATI 1 KVADRATEK:**
|
||||
|
||||
David, v Godotu naredi tole:
|
||||
|
||||
## 1️⃣ **RELOAD SCENE:**
|
||||
- **Scene → Reload Saved Scene** (ali klikni "Reload" če sporoča)
|
||||
|
||||
## 2️⃣ **SPODAJ V TILEMAP PANELU:**
|
||||
V zavihku **TileSet** (ne Terrains!):
|
||||
- Vidiš mrežo ploščic (16x16 grid)
|
||||
- **Klikni SAMO NA ENO ploščico** (npr. 0,0 zgoraj levo)
|
||||
- Mora biti izbrana SAMO ENA zelena kocka
|
||||
|
||||
## 3️⃣ **ZGORAJ V TOOLBAR:**
|
||||
- Klikni ikono **Svinčnik** (Pencil/Paint Tool) - prvi na levi
|
||||
- **NE bucket fill, NE selection**
|
||||
|
||||
## 4️⃣ **RIŠI:**
|
||||
- Klikni na sredino črnega platna
|
||||
- **VIDIŠ EN ZELEN KVADRATEK?** ✅
|
||||
|
||||
---
|
||||
|
||||
**ČE NE VIDIŠ TILEMP PANELA SPODAJ:**
|
||||
- Meni: **View → Bottom Panel → TileMap**
|
||||
|
||||
Javi če zdaj gre! 🖌️
|
||||
41
godot/MASS_MIGRATION_PROGRESS.md
Normal file
@@ -0,0 +1,41 @@
|
||||
# 🚀 MASS MIGRATION - PHASE 3 IN PROGRESS
|
||||
|
||||
## ⚡ **OPERATION STATUS:**
|
||||
|
||||
This is a MASSIVE operation copying 4000+ images with LINEAR filter settings.
|
||||
|
||||
### **PHASE 3A: REFERENCES (Priority 1)**
|
||||
**Status:** ✅ COPYING...
|
||||
- Copying entire `assets/references/` → `godot/references/`
|
||||
- Contains: Characters, NPCs, biomes, creatures
|
||||
- Size: ~700 MB
|
||||
|
||||
### **PHASE 3B: CHARACTERS (Priority 2)**
|
||||
**Status:** 🔄 SEARCHING...
|
||||
- Looking for Kai sprites (pink dreadlocks, piercings)
|
||||
- Looking for Ana sprites (aging character)
|
||||
- Looking for Gronk sprites (vape, ear gauges)
|
||||
|
||||
### **PHASE 3C: INTRO/FAMILY (Priority 3)**
|
||||
**Status:** ⏳ PENDING
|
||||
- High resolution intro scenes
|
||||
- Family moments, birthdays, longboarding
|
||||
|
||||
---
|
||||
|
||||
## ⏱️ **ESTIMATED TIME:**
|
||||
|
||||
With 4000+ images, this will take **5-10 minutes**.
|
||||
|
||||
**Progress will be shown step by step.**
|
||||
|
||||
---
|
||||
|
||||
## 📊 **CURRENT PROGRESS:**
|
||||
|
||||
- ✅ Environment (grass, water, dirt, farmland): **DONE**
|
||||
- 🔄 References folder: **COPYING...**
|
||||
- ⏳ Character sprites: **SEARCHING...**
|
||||
- ⏳ Intro assets: **PENDING**
|
||||
|
||||
**Waiting for file operations to complete...**
|
||||
230
godot/MASTER_REFS 🟣/README.md
Normal file
@@ -0,0 +1,230 @@
|
||||
# 🔒 MASTER REFERENCE - STYLE 32 LOCK-IN
|
||||
|
||||
**⚠️ DO NOT MODIFY THESE FILES! ⚠️**
|
||||
|
||||
These 5 images are the **definitive style guide** for all character generation.
|
||||
|
||||
---
|
||||
|
||||
## 📸 MASTER REFERENCES:
|
||||
|
||||
1. **ref_kai.png** - Kai (main character)
|
||||
2. **ref_gronk.png** - Gronk (companion orc)
|
||||
3. **ref_ana.png** - Ana (story character)
|
||||
4. **ref_susi.png** - Susi (baby dinosaur pet)
|
||||
5. **ref_zombie.png** - Zombie Policist (enemy template)
|
||||
|
||||
---
|
||||
|
||||
## 🎨 STYLE 32 SPECIFICATIONS:
|
||||
|
||||
### **Core Rules:**
|
||||
- ✅ **Chibi proportions** (big head, small body)
|
||||
- ✅ **Very thick black outlines** (4-5px)
|
||||
- ✅ **Flat colors** (NO gradients)
|
||||
- ✅ **Eyes WITH pupils** (like Kai reference - colored eyes with visible pupils) ✅ CONFIRMED
|
||||
- ✅ **Pastel meets gothic** (cute-dark aesthetic)
|
||||
- ✅ **Adorable with edge** (charming sinister balance)
|
||||
- ✅ **Clean vector cartoon** (NOT pixel art)
|
||||
- ✅ **Chroma green background** (#00FF00)
|
||||
|
||||
---
|
||||
|
||||
## 🔐 LOCK-IN MANDATES:
|
||||
|
||||
### **1. COLOR CONSISTENCY:**
|
||||
- **Kai's dreadlocks:** Exact green shade from ref_kai.png
|
||||
- **Gronk's dreadlocks:** Exact pink shade from ref_gronk.png
|
||||
- **Gronk's skin:** Exact pastel green from ref_gronk.png
|
||||
- **Ana's hair:** Exact pink/magenta from ref_ana.png
|
||||
- **Susi's colors:** Exact black/orange from ref_susi.png
|
||||
- **Zombie skin:** Exact gray-green decay from ref_zombie.png
|
||||
|
||||
**No variation allowed! Match to the pixel!**
|
||||
|
||||
---
|
||||
|
||||
### **2. OUTLINE CONSISTENCY:**
|
||||
- **Thickness:** 4-5px black outlines (as in references)
|
||||
- **Style:** Smooth vector, NO jagged edges
|
||||
- **Coverage:** Every element must have thick outline
|
||||
|
||||
---
|
||||
|
||||
### **3. PROPORTION CONSISTENCY:**
|
||||
**All new animations (walk, run, attack, tools) must maintain:**
|
||||
- Same head-to-body ratio as references
|
||||
- Same limb proportions
|
||||
- Same facial feature size/placement
|
||||
- Same clothing fit/style
|
||||
|
||||
**Example:**
|
||||
- Kai's hoodie must always be oversized with patches
|
||||
- Gronk's shirt must always be WIDE and baggy
|
||||
- Ana's vest must always be tactical style
|
||||
|
||||
---
|
||||
|
||||
### **4. DETAIL CONSISTENCY:**
|
||||
|
||||
**Kai:**
|
||||
- Green dreadlocks (exact shade)
|
||||
- Multiple piercings: eyebrow, nose, ear gauges
|
||||
- Torn hoodie with patches
|
||||
- Ripped black pants
|
||||
- Sneakers
|
||||
- Backpack
|
||||
|
||||
**Gronk:**
|
||||
- Pink dreadlocks (exact shade)
|
||||
- Pastel green orc skin
|
||||
- Multiple piercings and ear gauges
|
||||
- **ALWAYS holds vape pen** (not cigarette!)
|
||||
- WIDE baggy tribal shirt
|
||||
- Pink sneakers
|
||||
- **ONLY 2 ARMS** (common error!)
|
||||
|
||||
**Ana:**
|
||||
- **TWIN SISTER of Kai** (similar facial features!)
|
||||
- Pink/magenta short hair (vs Kai's green dreads)
|
||||
- Tactical vest over t-shirt
|
||||
- Cargo shorts
|
||||
- Hiking boots
|
||||
- **Eyes:** Same style as Kai (with pupils)
|
||||
|
||||
**Susi:**
|
||||
- Dachshund-shaped dinosaur
|
||||
- Black and orange colors
|
||||
- Bright pink collar
|
||||
- Always cute/friendly
|
||||
|
||||
**Zombie:**
|
||||
- Matted dirty dreadlocks
|
||||
- Torn dark blue police uniform
|
||||
- Badge hanging loose
|
||||
- Gray-green decayed skin
|
||||
- Dark gothic blood stains
|
||||
- Shambling horror pose
|
||||
|
||||
---
|
||||
|
||||
### **5. NEW CHARACTER RULES:**
|
||||
|
||||
**When creating NEW characters (not in MASTER_REFS):**
|
||||
- Follow **exact same style** as these 5
|
||||
- Match outline thickness (4-5px)
|
||||
- Match chibi proportions
|
||||
- Match color palette (pastel + gothic)
|
||||
- Use chroma green background (#00FF00)
|
||||
|
||||
**When creating NEW zombies:**
|
||||
- All zombies must look like "brothers" of ref_zombie.png
|
||||
- Same decayed style
|
||||
- Same outline thickness
|
||||
- Same pastel horror aesthetic
|
||||
- Can vary clothing/poses but keep core style
|
||||
|
||||
---
|
||||
|
||||
## 🚫 FORBIDDEN CHANGES:
|
||||
|
||||
❌ **DO NOT:**
|
||||
- Change outline thickness
|
||||
- Change proportions (no realistic bodies!)
|
||||
- Remove pupils from eyes (Style 32 HAS pupils!)
|
||||
- Use gradients or shading
|
||||
- Change chibi ratio
|
||||
- Modify reference colors
|
||||
- Make zombies "too cute" or "too scary"
|
||||
- Give Gronk more than 2 arms
|
||||
- Give Gronk cigarette instead of vape
|
||||
|
||||
---
|
||||
|
||||
## ✅ ANIMATION WORKFLOW:
|
||||
|
||||
**When generating animations:**
|
||||
|
||||
1. **Load reference** (e.g., ref_kai.png)
|
||||
2. **Extract exact colors** (eyedropper)
|
||||
3. **Match proportions** (measure head-to-body)
|
||||
4. **Maintain outlines** (4-5px throughout)
|
||||
5. **Verify consistency** (compare side-by-side)
|
||||
|
||||
**Frame-by-frame checklist:**
|
||||
- [ ] Same dreadlock color?
|
||||
- [ ] Same skin tone?
|
||||
- [ ] Same clothing style?
|
||||
- [ ] Same outline thickness?
|
||||
- [ ] Same proportions?
|
||||
- [ ] Chroma green background?
|
||||
|
||||
---
|
||||
|
||||
## 📊 GENERATION PROMPTS:
|
||||
|
||||
**Use this template for ALL Style 32 generation:**
|
||||
|
||||
```
|
||||
[Character name] in Style 32 Cult of the Lamb cute-dark chibi.
|
||||
[Physical description from reference].
|
||||
Chibi proportions (big head, small body), very thick black outlines 4-5px,
|
||||
flat colors NO gradients, [specific color notes], eyes with pupils,
|
||||
adorable with edge aesthetic, charming sinister balance, clean vector cartoon.
|
||||
[Pose/action].
|
||||
Solid chroma green background (#00FF00).
|
||||
```
|
||||
|
||||
**Always include:**
|
||||
- "Style 32"
|
||||
- "Chibi proportions"
|
||||
- "Very thick black outlines 4-5px"
|
||||
- "Flat colors NO gradients"
|
||||
- "Eyes with pupils"
|
||||
- "Adorable with edge aesthetic"
|
||||
- "Clean vector cartoon"
|
||||
- "Solid chroma green background (#00FF00)"
|
||||
|
||||
---
|
||||
|
||||
## 🎯 QUALITY CONTROL:
|
||||
|
||||
**Before saving ANY new asset:**
|
||||
|
||||
1. Compare to master reference
|
||||
2. Check color match (pixel-perfect)
|
||||
3. Verify outline thickness (4-5px)
|
||||
4. Confirm chibi proportions
|
||||
5. Validate chroma green background
|
||||
6. Ensure NO gradients/shading
|
||||
|
||||
**If ANY check fails → REJECT and regenerate!**
|
||||
|
||||
---
|
||||
|
||||
## 📝 VERSION CONTROL:
|
||||
|
||||
**Master References created:** 03.01.2026 03:08 CET
|
||||
**Style:** Style 32 (Cult of the Lamb cute-dark chibi)
|
||||
**Status:** 🔒 **LOCKED** - Do not modify!
|
||||
|
||||
**These references are FINAL and APPROVED.**
|
||||
**All future assets MUST match these exactly.**
|
||||
|
||||
---
|
||||
|
||||
## 🚀 PRODUCTION START:
|
||||
|
||||
With these locked references, production can begin on:
|
||||
- Character animations (idle, walk, run, attack, tools)
|
||||
- NPC variations
|
||||
- Enemy variations (zombie types)
|
||||
- Environment assets (with Style 30 for vegetation)
|
||||
|
||||
**Estimated:** ~3,000 frames for Kickstarter demo
|
||||
**Cost:** ~€36 (at €0.012/image)
|
||||
**Timeline:** 4-5 days
|
||||
|
||||
---
|
||||
|
||||
**✅ MASTER REFERENCES LOCKED AND READY!** 🎨🔒
|
||||
BIN
godot/MASTER_REFS 🟣/REF_STYLE_30_tomato.jpg
Normal file
|
After Width: | Height: | Size: 253 KiB |
BIN
godot/MASTER_REFS 🟣/ref_plant_style30.jpg
Normal file
|
After Width: | Height: | Size: 232 KiB |
BIN
godot/MASTER_REFS 🟣/uploaded_image_0_1767361711764.jpg
Normal file
|
After Width: | Height: | Size: 44 KiB |
BIN
godot/MASTER_REFS 🟣/uploaded_image_0_1767362258152.jpg
Normal file
|
After Width: | Height: | Size: 57 KiB |
BIN
godot/MASTER_REFS 🟣/uploaded_image_0_1767405834619.jpg
Normal file
|
After Width: | Height: | Size: 98 KiB |
BIN
godot/MASTER_REFS 🟣/uploaded_image_0_1767410857322.jpg
Normal file
|
After Width: | Height: | Size: 592 KiB |
BIN
godot/MASTER_REFS 🟣/uploaded_image_1767298616826.jpg
Normal file
|
After Width: | Height: | Size: 88 KiB |
BIN
godot/MASTER_REFS 🟣/uploaded_image_1767405356012.jpg
Normal file
|
After Width: | Height: | Size: 57 KiB |
BIN
godot/MASTER_REFS 🟣/uploaded_image_1767405660857.jpg
Normal file
|
After Width: | Height: | Size: 57 KiB |
BIN
godot/MASTER_REFS 🟣/uploaded_image_1767407781294.jpg
Normal file
|
After Width: | Height: | Size: 57 KiB |
BIN
godot/MASTER_REFS 🟣/uploaded_image_1767410453204.jpg
Normal file
|
After Width: | Height: | Size: 232 KiB |
BIN
godot/MASTER_REFS 🟣/uploaded_image_1_1767361711764.jpg
Normal file
|
After Width: | Height: | Size: 66 KiB |
BIN
godot/MASTER_REFS 🟣/uploaded_image_1_1767362258152.jpg
Normal file
|
After Width: | Height: | Size: 44 KiB |
BIN
godot/MASTER_REFS 🟣/uploaded_image_1_1767405257399.jpg
Normal file
|
After Width: | Height: | Size: 57 KiB |
BIN
godot/MASTER_REFS 🟣/uploaded_image_1_1767405834619.jpg
Normal file
|
After Width: | Height: | Size: 57 KiB |
BIN
godot/MASTER_REFS 🟣/uploaded_image_1_1767410857322.jpg
Normal file
|
After Width: | Height: | Size: 408 KiB |
BIN
godot/MASTER_REFS 🟣/uploaded_image_2_1767361711764.jpg
Normal file
|
After Width: | Height: | Size: 58 KiB |
BIN
godot/MASTER_REFS 🟣/uploaded_image_2_1767362258152.jpg
Normal file
|
After Width: | Height: | Size: 66 KiB |
BIN
godot/MASTER_REFS 🟣/uploaded_image_2_1767410857322.jpg
Normal file
|
After Width: | Height: | Size: 230 KiB |
BIN
godot/MASTER_REFS 🟣/uploaded_image_3_1767361711764.jpg
Normal file
|
After Width: | Height: | Size: 57 KiB |
BIN
godot/MASTER_REFS 🟣/uploaded_image_3_1767362258152.jpg
Normal file
|
After Width: | Height: | Size: 58 KiB |
BIN
godot/MASTER_REFS 🟣/uploaded_image_3_1767410857322.jpg
Normal file
|
After Width: | Height: | Size: 544 KiB |
52
godot/PHASE_PACKS_READY.md
Normal file
@@ -0,0 +1,52 @@
|
||||
# ✅ PHASE PACKS READY!
|
||||
|
||||
## 📦 **DEMO + FAZA_1 + FAZA_2 IMPORTED:**
|
||||
|
||||
### **✅ COPIED & RESIZED:**
|
||||
|
||||
**godot/phases/DEMO/**
|
||||
- Crops: 256x256 ✅
|
||||
- Animals: 256x256 ✅
|
||||
- Tools: 128x128 ✅
|
||||
|
||||
**godot/phases/FAZA_1/**
|
||||
- All assets: 256x256 ✅
|
||||
|
||||
**godot/phases/FAZA_2/**
|
||||
- All assets: 256x256 ✅
|
||||
|
||||
---
|
||||
|
||||
## 📊 **STATISTICS:**
|
||||
|
||||
- **Total Images:** 494 PNG
|
||||
- **Total Size:** 36 MB (optimized!)
|
||||
- **Original Size:** 286 MB
|
||||
- **Saved:** 250 MB! 🎉
|
||||
|
||||
---
|
||||
|
||||
## 🎮 **READY FOR LDtk:**
|
||||
|
||||
All phase images are now in:
|
||||
```
|
||||
godot/phases/
|
||||
├── DEMO/
|
||||
│ ├── crops/
|
||||
│ ├── animals/
|
||||
│ └── tools/
|
||||
├── FAZA_1/
|
||||
└── FAZA_2/
|
||||
```
|
||||
|
||||
**Use these folders in LDtk for level design!**
|
||||
|
||||
---
|
||||
|
||||
## 🚀 **NEXT STEPS:**
|
||||
|
||||
1. Open LDtk
|
||||
2. Import tilesets from `godot/phases/`
|
||||
3. Start designing levels!
|
||||
|
||||
**All images are smooth (LINEAR filter) and optimized!** ✨
|
||||
37
godot/RESIZE_IN_PROGRESS.md
Normal file
@@ -0,0 +1,37 @@
|
||||
# 🔧 MASS RESIZE OPERATION
|
||||
|
||||
## ⏱️ **OPERATION IN PROGRESS...**
|
||||
|
||||
Resizing **4000+ images** to optimal sizes for Godot.
|
||||
|
||||
**This will take 5-10 minutes.**
|
||||
|
||||
### **TARGET SIZES:**
|
||||
|
||||
| Category | Size | Reason |
|
||||
|----------|------|--------|
|
||||
| Characters | 256x256 | Sprite animations |
|
||||
| Props/Buildings | 512x512 | Game objects |
|
||||
| Sprites | 256x256 | General sprites |
|
||||
| UI | 128x128 | Interface elements |
|
||||
| Effects | 256x256 | VFX particles |
|
||||
| Environment | 512x512 | Terrain (already done!) |
|
||||
|
||||
---
|
||||
|
||||
## 📊 **PROGRESS:**
|
||||
|
||||
Running batch script: `batch_resize.sh`
|
||||
|
||||
**Wait for completion message...**
|
||||
|
||||
---
|
||||
|
||||
## 🎯 **AFTER COMPLETION:**
|
||||
|
||||
All images will be:
|
||||
- ✅ Properly sized for Godot
|
||||
- ✅ LINEAR filtered (smooth!)
|
||||
- ✅ Ready to use immediately
|
||||
|
||||
**Please wait...** ⏳
|
||||
60
godot/SMOOTH_MIGRATION_PHASE1.md
Normal file
@@ -0,0 +1,60 @@
|
||||
# 🎨 SMOOTH 2D MIGRATION - PHASE 1 COMPLETE
|
||||
|
||||
## ✅ **FOLDER STRUCTURE CREATED:**
|
||||
|
||||
```
|
||||
godot/
|
||||
├── characters/
|
||||
│ ├── KAI/ ✅ (pink/zeleni dreadlocks, piercings)
|
||||
│ ├── ANA/ ✅ (aging character)
|
||||
│ └── GRONK/ ✅ (vape, ear gauges)
|
||||
├── world/
|
||||
│ └── GROUND/ ✅ (grass, dirt, water - SMOOTH!)
|
||||
├── intro/
|
||||
│ └── FAMILY/ ✅ (birthdays, longboarding - HIGH RES)
|
||||
└── references/ ✅ (original source images)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ✅ **ENVIRONMENT TEXTURES (512x512 PNG):**
|
||||
|
||||
**Processed with HIGH QUALITY:**
|
||||
- ✅ `grass.png` (512x512, LINEAR filter)
|
||||
- ✅ `dirt.png` (512x512, LINEAR filter)
|
||||
- ✅ `water.png` (512x512, LINEAR filter)
|
||||
- ✅ `farmland.png` (512x512, LINEAR filter)
|
||||
|
||||
**Import Settings:**
|
||||
- ✅ **Texture Filter: LINEAR** (smooth, not pixelated!)
|
||||
- ✅ **Mipmaps: ENABLED** (anti-aliasing)
|
||||
- ✅ **High Quality: TRUE**
|
||||
- ✅ **Format: PNG** (not JPEG!)
|
||||
|
||||
---
|
||||
|
||||
## 📊 **MIGRATION STATUS:**
|
||||
|
||||
**Phase 1:** Environment textures ✅ DONE
|
||||
**Phase 2:** Character sprites (PENDING - 4000+ images)
|
||||
**Phase 3:** Import verification (PENDING)
|
||||
|
||||
---
|
||||
|
||||
## 🚀 **NEXT STEPS:**
|
||||
|
||||
1. **Reload Godot** to see smooth grass/water/dirt
|
||||
2. **Test painting** in TileMap (should be SMOOTH now!)
|
||||
3. **Copy character sprites** (this will take time!)
|
||||
|
||||
**Ready to test smooth terrain?** 🌿
|
||||
|
||||
---
|
||||
|
||||
**Citations:**
|
||||
- Smooth 2D rendering: 2026-01-04
|
||||
- Kai character: 2025-12-28
|
||||
- Ana aging: 2026-01-10
|
||||
- Gronk design: 2025-12-28
|
||||
- Family intro: 2026-01-10
|
||||
- References: 2025-12-31
|
||||
42
godot/SMOOTH_TERRAIN_READY.md
Normal file
@@ -0,0 +1,42 @@
|
||||
# 🎨 SMOOTH TERRAIN READY!
|
||||
|
||||
## ✅ **PHASE 2 COMPLETE:**
|
||||
|
||||
### **1. TILESET:**
|
||||
- ✅ `SmoothTerrainMaster.tres` created
|
||||
- ✅ 4 terrains: Grass, Dirt, Water, Farmland
|
||||
- ✅ All using 512x512 LINEAR filtered textures
|
||||
- ✅ Auto-tiling configured (Match Corners & Sides)
|
||||
|
||||
### **2. MAIN SCENE:**
|
||||
- ✅ `MrtvaDolina.tscn` created
|
||||
- ✅ 3 layers: Ground (Z:0), Objects (Z:1), Top (Z:2)
|
||||
- ✅ Smooth camera controls
|
||||
- ✅ Dark background
|
||||
|
||||
### **3. PROJECT SETTINGS:**
|
||||
- ✅ Main scene: `MrtvaDolina.tscn`
|
||||
- ✅ Linear texture filtering ON
|
||||
|
||||
---
|
||||
|
||||
## 🚀 **TEST SMOOTH PAINTING:**
|
||||
|
||||
1. **Open Godot**
|
||||
2. **MrtvaDolina** scene opens automatically
|
||||
3. **Select GroundLayer**
|
||||
4. **Bottom panel → Terrains tab**
|
||||
5. **Select terrain (Grass/Water/Dirt/Farmland)**
|
||||
6. **PAINT!** 🎨
|
||||
|
||||
**Result:** SMOOTH gradients, NO pixelation! ✨
|
||||
|
||||
---
|
||||
|
||||
## 📋 **NEXT PHASE (hvis želiš):**
|
||||
|
||||
**Phase 3:** Character sprites (Kai, Ana, Gronk)
|
||||
- Copy ~4000 sprites to organized folders
|
||||
- Set LINEAR filter for smooth characters
|
||||
|
||||
**Ready to test painting?** 🌿
|
||||
BIN
godot/animations 🟢/zombies/base/zombie_dig_01_1767409325414.png
Normal file
|
After Width: | Height: | Size: 511 KiB |
BIN
godot/animations 🟢/zombies/base/zombie_dig_02_1767409340126.png
Normal file
|
After Width: | Height: | Size: 568 KiB |
BIN
godot/animations 🟢/zombies/base/zombie_dig_03_1767409355182.png
Normal file
|
After Width: | Height: | Size: 550 KiB |
BIN
godot/animations 🟢/zombies/base/zombie_dig_04_1767409370857.png
Normal file
|
After Width: | Height: | Size: 561 KiB |
|
After Width: | Height: | Size: 502 KiB |
|
After Width: | Height: | Size: 549 KiB |
BIN
godot/animations 🟢/zombies/base/zombie_idle_up_1767409236436.png
Normal file
|
After Width: | Height: | Size: 512 KiB |
|
After Width: | Height: | Size: 570 KiB |
|
After Width: | Height: | Size: 609 KiB |
|
After Width: | Height: | Size: 544 KiB |
|
After Width: | Height: | Size: 534 KiB |
|
After Width: | Height: | Size: 516 KiB |
|
After Width: | Height: | Size: 515 KiB |
|
After Width: | Height: | Size: 586 KiB |
|
After Width: | Height: | Size: 565 KiB |
|
After Width: | Height: | Size: 575 KiB |
|
After Width: | Height: | Size: 523 KiB |
|
After Width: | Height: | Size: 526 KiB |
|
After Width: | Height: | Size: 538 KiB |
|
After Width: | Height: | Size: 576 KiB |
|
After Width: | Height: | Size: 565 KiB |
|
After Width: | Height: | Size: 599 KiB |
|
After Width: | Height: | Size: 570 KiB |
|
After Width: | Height: | Size: 564 KiB |
|
After Width: | Height: | Size: 573 KiB |
|
After Width: | Height: | Size: 544 KiB |
|
After Width: | Height: | Size: 530 KiB |
|
After Width: | Height: | Size: 536 KiB |
|
After Width: | Height: | Size: 558 KiB |
|
After Width: | Height: | Size: 550 KiB |
|
After Width: | Height: | Size: 547 KiB |
|
After Width: | Height: | Size: 538 KiB |
|
After Width: | Height: | Size: 549 KiB |
|
After Width: | Height: | Size: 579 KiB |
|
After Width: | Height: | Size: 545 KiB |
|
After Width: | Height: | Size: 522 KiB |
|
After Width: | Height: | Size: 646 KiB |
|
After Width: | Height: | Size: 542 KiB |
|
After Width: | Height: | Size: 533 KiB |
|
After Width: | Height: | Size: 522 KiB |
|
After Width: | Height: | Size: 530 KiB |
|
After Width: | Height: | Size: 562 KiB |
|
After Width: | Height: | Size: 564 KiB |
|
After Width: | Height: | Size: 607 KiB |
|
After Width: | Height: | Size: 544 KiB |
|
After Width: | Height: | Size: 539 KiB |
|
After Width: | Height: | Size: 550 KiB |
|
After Width: | Height: | Size: 540 KiB |
|
After Width: | Height: | Size: 575 KiB |
|
After Width: | Height: | Size: 542 KiB |
|
After Width: | Height: | Size: 551 KiB |
|
After Width: | Height: | Size: 530 KiB |
|
After Width: | Height: | Size: 554 KiB |
42
godot/assets/shaders/dreamy_blur.gdshader
Normal file
@@ -0,0 +1,42 @@
|
||||
shader_type canvas_item;
|
||||
|
||||
// DREAMY BLUR SHADER - For intro flashbacks (parents, memories)
|
||||
// Creates soft Gaussian blur with adjustable intensity
|
||||
// Citation: 2026-01-10 - Intro Sequence
|
||||
|
||||
uniform float blur_amount : hint_range(0.0, 20.0) = 10.0;
|
||||
uniform sampler2D SCREEN_TEXTURE : hint_screen_texture, filter_linear_mipmap;
|
||||
|
||||
// Gaussian blur function
|
||||
vec4 blur_texture(sampler2D tex, vec2 uv, vec2 pixel_size, float amount) {
|
||||
vec4 color = vec4(0.0);
|
||||
float total = 0.0;
|
||||
|
||||
// Kernel size based on blur amount
|
||||
int samples = int(amount);
|
||||
|
||||
for (int x = -samples; x <= samples; x++) {
|
||||
for (int y = -samples; y <= samples; y++) {
|
||||
vec2 offset = vec2(float(x), float(y)) * pixel_size * 0.5;
|
||||
float weight = exp(-0.5 * (float(x*x + y*y)) / (amount * amount));
|
||||
|
||||
color += texture(tex, uv + offset) * weight;
|
||||
total += weight;
|
||||
}
|
||||
}
|
||||
|
||||
return color / total;
|
||||
}
|
||||
|
||||
void fragment() {
|
||||
vec2 pixel_size = 1.0 / vec2(textureSize(SCREEN_TEXTURE, 0));
|
||||
|
||||
if (blur_amount > 0.1) {
|
||||
COLOR = blur_texture(SCREEN_TEXTURE, SCREEN_UV, pixel_size, blur_amount);
|
||||
} else {
|
||||
COLOR = texture(SCREEN_TEXTURE, SCREEN_UV);
|
||||
}
|
||||
|
||||
// Slight brightness boost for "dreamy" feel
|
||||
COLOR.rgb *= 1.1;
|
||||
}
|
||||
1
godot/assets/shaders/dreamy_blur.gdshader.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://btvtwpugel72x
|
||||
36
godot/assets/sprites/ground/dirt_full.png.import
Normal file
@@ -0,0 +1,36 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bik0nlecainur"
|
||||
valid=false
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/sprites/ground/dirt_full.png"
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
36
godot/assets/sprites/ground/grass_full.png.import
Normal file
@@ -0,0 +1,36 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://b47n80a2hckne"
|
||||
valid=false
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/sprites/ground/grass_full.png"
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
36
godot/assets/sprites/ground/water_full.png.import
Normal file
@@ -0,0 +1,36 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cbr7jijyb85qv"
|
||||
valid=false
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/sprites/ground/water_full.png"
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
6
godot/assets/tilesets/.gdignore
Normal file
@@ -0,0 +1,6 @@
|
||||
grass.png
|
||||
dirt.png
|
||||
water.png
|
||||
Water_Animated.png
|
||||
Grass_Animated.png
|
||||
Tall_Grass_Animated.png
|
||||
40
godot/assets/tilesets/Grass_Animated.png.import
Normal file
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bjovlrc6gahe0"
|
||||
path="res://.godot/imported/Grass_Animated.png-3d85450be2b10d7e95677e86827bb817.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/tilesets/Grass_Animated.png"
|
||||
dest_files=["res://.godot/imported/Grass_Animated.png-3d85450be2b10d7e95677e86827bb817.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
40
godot/assets/tilesets/Tall_Grass_Animated.png.import
Normal file
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dt02vft6nvubq"
|
||||
path="res://.godot/imported/Tall_Grass_Animated.png-fdd4a49c79b2e48964725f3a0632407d.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/tilesets/Tall_Grass_Animated.png"
|
||||
dest_files=["res://.godot/imported/Tall_Grass_Animated.png-fdd4a49c79b2e48964725f3a0632407d.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
40
godot/assets/tilesets/Water_Animated.png.import
Normal file
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bgw2mah0fr6yu"
|
||||
path="res://.godot/imported/Water_Animated.png-c362f4f3a714a4a3bfa61d5c5a0444ef.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/tilesets/Water_Animated.png"
|
||||
dest_files=["res://.godot/imported/Water_Animated.png-c362f4f3a714a4a3bfa61d5c5a0444ef.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
31
godot/assets/tilesets/dirt.png.import
Normal file
@@ -0,0 +1,31 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dirt_terrain_tex"
|
||||
path="res://.godot/imported/dirt.png"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/tilesets/dirt.png"
|
||||
dest_files=["res://.godot/imported/dirt.png"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=true
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
31
godot/assets/tilesets/grass.png.import
Normal file
@@ -0,0 +1,31 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://grass_terrain_tex"
|
||||
path="res://.godot/imported/grass.png"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/tilesets/grass.png"
|
||||
dest_files=["res://.godot/imported/grass.png"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=true
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
31
godot/assets/tilesets/water.png.import
Normal file
@@ -0,0 +1,31 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://water_terrain_tex"
|
||||
path="res://.godot/imported/water.png"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/tilesets/water.png"
|
||||
dest_files=["res://.godot/imported/water.png"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=true
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
36
godot/batch_resize.sh
Executable file
@@ -0,0 +1,36 @@
|
||||
#!/bin/bash
|
||||
# Mass Image Resizer for Godot
|
||||
|
||||
echo "🔧 MASS RESIZE STARTING..."
|
||||
|
||||
# Characters: 256x256
|
||||
echo "📊 Resizing Characters to 256x256..."
|
||||
find godot/characters -type f \( -name "*.png" -o -name "*.jpg" \) -print0 | while IFS= read -r -d '' file; do
|
||||
sips -Z 256 "$file" >/dev/null 2>&1
|
||||
done
|
||||
|
||||
# Props & Buildings: 512x512
|
||||
echo "📊 Resizing Props/Buildings to 512x512..."
|
||||
find godot/{props_source,buildings_source} -type f \( -name "*.png" -o -name "*.jpg" \) -print0 2>/dev/null | while IFS= read -r -d '' file; do
|
||||
sips -Z 512 "$file" >/dev/null 2>&1
|
||||
done
|
||||
|
||||
# Sprites: 256x256
|
||||
echo "📊 Resizing Sprites to 256x256..."
|
||||
find godot/sprites_source -type f \( -name "*.png" -o -name "*.jpg" \) -print0 2>/dev/null | while IFS= read -r -d '' file; do
|
||||
sips -Z 256 "$file" >/dev/null 2>&1
|
||||
done
|
||||
|
||||
# UI: 128x128
|
||||
echo "📊 Resizing UI to 128x128..."
|
||||
find godot/ui -type f \( -name "*.png" -o -name "*.jpg" \) -print0 2>/dev/null | while IFS= read -r -d '' file; do
|
||||
sips -Z 128 "$file" >/dev/null 2>&1
|
||||
done
|
||||
|
||||
# Effects: 256x256
|
||||
echo "📊 Resizing Effects to 256x256..."
|
||||
find godot/vfx -type f \( -name "*.png" -o -name "*.jpg" \) -print0 2>/dev/null | while IFS= read -r -d '' file; do
|
||||
sips -Z 256 "$file" >/dev/null 2>&1
|
||||
done
|
||||
|
||||
echo "✅ RESIZE COMPLETE!"
|
||||
BIN
godot/biomes/biome_npcs/grassland/01_farmer_jozef.png
Normal file
|
After Width: | Height: | Size: 588 KiB |
BIN
godot/biomes/biome_npcs/grassland/02_farmer_marija.png
Normal file
|
After Width: | Height: | Size: 525 KiB |