ProjectRR — нативный прототип на ассетах ProjectR
- Все 189 скелетов Spine сконвертированы в нативные Godot Skeleton2D (.tscn), без Spine в рантайме - Меню + сцены: подземелье (карта комнат), просмотр спрайтов, нативные анимации - Кастомизация цвета (кожа/волосы/глаза) через шейдер - Вытащенные текстуры/UI/шрифты + нарезка спрайтов из атласа - Датасет комнат для LoRA, офлайн-инструменты конвертации в tools/ Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
# spineconv — экспорт геометрии Spine → JSON (офлайн)
|
||||
|
||||
Читает `.skel.bytes` + `.atlas.txt` через свободный исходник **spine-csharp 4.2** и
|
||||
выгружает геометрию рига (кости setup + привязки: мировые вершины, UV, треугольники,
|
||||
веса) в компактный JSON, который потребляет нативный сборщик (`src/NativeCharacter.cs`).
|
||||
Нужен потому, что рантайм spine-godot НЕ отдаёт геометрию привязок.
|
||||
|
||||
## Как собрать и запустить
|
||||
|
||||
```bash
|
||||
# 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. **spineconv** → `tools/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.
|
||||
Reference in New Issue
Block a user