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,47 @@
[gd_scene format=3]
[ext_resource type="Texture2D" path="res://characters/shortstack/spine/shortstack_fetus.png" id="1_r7w0p"]
[sub_resource type="Animation" id="Animation_ide1n"]
length = 0.001
loop_mode = 1
[sub_resource type="AnimationLibrary" id="AnimationLibrary_l8vmi"]
_data = {
&"animation": SubResource("Animation_ide1n")
}
[node name="Native" type="Node2D" unique_id=2049293200]
[node name="SpineRoot" type="Node2D" parent="." unique_id=848461780]
position = Vector2(592.5644, 367.46753)
scale = Vector2(9.174981, -9.174981)
[node name="Skeleton2D" type="Skeleton2D" parent="SpineRoot" unique_id=436242829]
[node name="root" type="Bone2D" parent="SpineRoot/Skeleton2D" unique_id=210505462]
rest = Transform2D(1, 0, 0, 1, 0, 0)
auto_calculate_length_and_angle = false
length = 0.0
bone_angle = 0.0
[node name="BabyB_fetalstage$0_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=768604554]
texture = ExtResource("1_r7w0p")
skeleton = NodePath("..")
polygon = PackedVector2Array(12.303589, 14.3653, 10.226321, -14.59912, -13.167419, -14.4823, -17.73376, 12.66901, 0.060238592, 32.20361)
uv = PackedVector2Array(81.30359, 20.134705, 79.22632, 49.09912, 55.83258, 48.9823, 51.266235, 21.830994, 69.06024, 2.2963867)
polygons = [PackedInt32Array(3, 4, 0), PackedInt32Array(2, 3, 0), PackedInt32Array(1, 2, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1, 1)]
[node name="BabyA_fetalstage$0_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1598978275]
z_index = 1
texture = ExtResource("1_r7w0p")
skeleton = NodePath("..")
polygon = PackedVector2Array(28.07397, -0.15625, 27.997442, -23.60748, 6.8238516, -30.57581, -17.06219, -9.20984, 9.525209, 15.61084)
uv = PackedVector2Array(48.073975, 18.65625, 47.997437, 42.107483, 26.823853, 49.075806, 2.9378052, 27.709839, 29.525208, 2.8892212)
polygons = [PackedInt32Array(0, 3, 4), PackedInt32Array(0, 2, 3), PackedInt32Array(1, 2, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1, 1)]
[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=1093196932]
root_node = NodePath("../SpineRoot/Skeleton2D")
libraries/ = SubResource("AnimationLibrary_l8vmi")