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:
Leonid Pershin
2026-08-03 16:29:21 +03:00
co-authored by Claude Opus 4.8
commit 04cf5f90b0
2193 changed files with 360105 additions and 0 deletions
@@ -0,0 +1,38 @@
[gd_scene format=3]
[ext_resource type="Texture2D" path="res://characters/orc/spine/orc_suckle_left_head.png" id="1_fwu31"]
[sub_resource type="Animation" id="Animation_7qqqt"]
length = 0.001
loop_mode = 1
[sub_resource type="AnimationLibrary" id="AnimationLibrary_43b76"]
_data = {
&"animation": SubResource("Animation_7qqqt")
}
[node name="Native" type="Node2D" unique_id=548784086]
[node name="SpineRoot" type="Node2D" parent="." unique_id=1952693585]
position = Vector2(526.1506, 467.63834)
scale = Vector2(12.396467, -12.396467)
[node name="Skeleton2D" type="Skeleton2D" parent="SpineRoot" unique_id=528950163]
[node name="root" type="Bone2D" parent="SpineRoot/Skeleton2D" unique_id=1335250370]
rest = Transform2D(1, 0, 0, 1, 0, 0)
auto_calculate_length_and_angle = false
length = 0.0
bone_angle = 0.0
[node name="head_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1457065413]
texture = ExtResource("1_fwu31")
skeleton = NodePath("..")
polygon = PackedVector2Array(32.1745, 10.29193, 13.238041, -14.54944, -13.806459, -13.54163, -5.822941, 25.8078, 18.521418, 31.91541)
uv = PackedVector2Array(48.17539, 23.709389, 29.238941, 48.550743, 2.1944542, 47.542953, 10.177971, 8.193535, 34.522324, 2.0858994)
polygons = [PackedInt32Array(0, 1, 3), PackedInt32Array(0, 3, 4), PackedInt32Array(2, 3, 1)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1, 1)]
[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=969116493]
root_node = NodePath("../SpineRoot/Skeleton2D")
libraries/ = SubResource("AnimationLibrary_43b76")