Files
project-rr/tools/spineconv
Leonid PershinandClaude Opus 4.8 04cf5f90b0 ProjectRR — нативный прототип на ассетах ProjectR
- Все 189 скелетов Spine сконвертированы в нативные Godot Skeleton2D (.tscn), без Spine в рантайме
- Меню + сцены: подземелье (карта комнат), просмотр спрайтов, нативные анимации
- Кастомизация цвета (кожа/волосы/глаза) через шейдер
- Вытащенные текстуры/UI/шрифты + нарезка спрайтов из атласа
- Датасет комнат для LoRA, офлайн-инструменты конвертации в tools/

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-03 16:29:21 +03:00
..

spineconv — экспорт геометрии Spine → JSON (офлайн)

Читает .skel.bytes + .atlas.txt через свободный исходник spine-csharp 4.2 и выгружает геометрию рига (кости setup + привязки: мировые вершины, UV, треугольники, веса) в компактный JSON, который потребляет нативный сборщик (src/NativeCharacter.cs). Нужен потому, что рантайм spine-godot НЕ отдаёт геометрию привязок.

Как собрать и запустить

# 1) исходники spine-csharp 4.2 (рядом с этой папкой)
git clone --depth 1 --branch 4.2 --filter=blob:none --sparse \
  https://github.com/EsotericSoftware/spine-runtimes.git spine-rt
cd spine-rt && git sparse-checkout set spine-csharp/src && cd ..
# (csproj ссылается на ..\spine-rt\spine-csharp\src\**\*.cs — поправь путь при необходимости)

# 2) собрать
dotnet build -c Release

# 3) экспорт геометрии персонажа
dotnet bin/Release/net8.0/spineconv.dll <path>/elf1_combat  tools/rig/elf1_combat.json

Пайплайн Spine → нативный Godot (Вариант B)

  1. spineconvtools/rig/<name>.json (геометрия рига).
  2. tools/bake_anim.gd (в редакторе spine-godot, headless) → tools/rig/<name>_anims.json (запекает локальные трансформы костей покадрово; прогоняет Spine-рантайм офлайн).
  3. src/NativeCharacter.cs — в рантайме собирает Skeleton2D + взвешенные Polygon2D из геометрии и AnimationPlayer из запечённых костей. Spine в рантайме не используется.

Итоговый персонаж (NativeCharacter.cs + два JSON + атлас-PNG) переносится в обычный Godot без модуля Spine.