feat: Integrated Stream asset and Kai animation system

This commit is contained in:
2026-01-29 00:09:00 +01:00
parent 94565adffc
commit afa0e3c662
59 changed files with 1477 additions and 19 deletions

View File

@@ -0,0 +1,61 @@
import cv2
import numpy as np
import os
import shutil
def process_character_sheet():
# Find latest generated sheet
artifacts_dir = '/Users/davidkotnik/.gemini/antigravity/brain/07019d04-a214-43ab-9565-86f4e8f17e5b'
sheet_src = None
candidates = []
for f in os.listdir(artifacts_dir):
if 'kai_walk_sheet' in f and f.endswith('.png'):
candidates.append(os.path.join(artifacts_dir, f))
if not candidates:
print("Sheet not found.")
return
candidates.sort(key=os.path.getmtime, reverse=True)
sheet_src = candidates[0]
print(f"Processing {sheet_src}")
img = cv2.imread(sheet_src)
# Remove BG
img = cv2.cvtColor(img, cv2.COLOR_BGR2BGRA)
target = np.array([255, 0, 255])
tol = 60
lower = np.clip(target - tol, 0, 255)
upper = np.clip(target + tol, 0, 255)
mask = cv2.inRange(img[:,:,:3], lower, upper)
img[mask > 0, 3] = 0
# Save info about dimensions
h, w = img.shape[:2]
print(f"Total Sheet Dimensions: {w}x{h}")
# 4x4 grid
frame_w = w // 4
frame_h = h // 4
print(f"Calculated Frame Size: {frame_w}x{frame_h}")
# Save
dest_name = 'kai_walk_sheet.png'
targets = [
'/Users/davidkotnik/repos/novafarma/main/assets',
'/Users/davidkotnik/repos/novafarma/assets/characters',
'/Users/davidkotnik/repos/novafarma/assets/DEMO_FAZA1/Characters' # New location?
]
# Also ensure dir exists
if not os.path.exists('/Users/davidkotnik/repos/novafarma/assets/DEMO_FAZA1/Characters'):
os.makedirs('/Users/davidkotnik/repos/novafarma/assets/DEMO_FAZA1/Characters')
for t in targets:
if not os.path.exists(t): os.makedirs(t, exist_ok=True)
final_path = os.path.join(t, dest_name)
cv2.imwrite(final_path, img)
print(f"Saved to {final_path}")
if __name__ == "__main__":
process_character_sheet()