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,201 @@
|
||||
[gd_scene format=3]
|
||||
|
||||
[ext_resource type="Texture2D" path="res://characters/human/spine/woman_portrait_combat0.png" id="1_wk5es"]
|
||||
|
||||
[sub_resource type="Animation" id="Animation_hwcdj"]
|
||||
length = 0.001
|
||||
loop_mode = 1
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_eb6yi"]
|
||||
_data = {
|
||||
&"animation": SubResource("Animation_hwcdj")
|
||||
}
|
||||
|
||||
[node name="Native" type="Node2D" unique_id=1018203995]
|
||||
|
||||
[node name="SpineRoot" type="Node2D" parent="." unique_id=1382330074]
|
||||
position = Vector2(651.52, 352.32)
|
||||
scale = Vector2(3.84, -3.84)
|
||||
|
||||
[node name="Skeleton2D" type="Skeleton2D" parent="SpineRoot" unique_id=1286013762]
|
||||
|
||||
[node name="root" type="Bone2D" parent="SpineRoot/Skeleton2D" unique_id=637290563]
|
||||
rest = Transform2D(1, 0, 0, 1, 0, 0)
|
||||
auto_calculate_length_and_angle = false
|
||||
length = 0.0
|
||||
bone_angle = 0.0
|
||||
|
||||
[node name="C_hairG_hairback$0_#02" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=336485576]
|
||||
modulate = Color(0.9647059, 0.91764706, 1, 1)
|
||||
texture = ExtResource("1_wk5es")
|
||||
skeleton = NodePath("..")
|
||||
polygon = PackedVector2Array(-18.999996, -77, -46.999996, -77, -47, -35, -18.999998, -35)
|
||||
uv = PackedVector2Array(345, 136, 317, 136, 317, 94, 345, 94)
|
||||
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
|
||||
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
|
||||
|
||||
[node name="C_hairF_hairback$0_#02" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1233852454]
|
||||
modulate = Color(0.9647059, 0.91764706, 1, 1)
|
||||
z_index = 1
|
||||
texture = ExtResource("1_wk5es")
|
||||
skeleton = NodePath("..")
|
||||
polygon = PackedVector2Array(-25.999998, -24, -59, -24, -59.000004, 64, -26.000002, 64)
|
||||
uv = PackedVector2Array(241, 180, 208.00002, 180, 208.00002, 92, 241, 92)
|
||||
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
|
||||
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
|
||||
|
||||
[node name="C_hairE_hairback$0_#02" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=201681360]
|
||||
modulate = Color(0.9647059, 0.91764706, 1, 1)
|
||||
z_index = 2
|
||||
texture = ExtResource("1_wk5es")
|
||||
skeleton = NodePath("..")
|
||||
polygon = PackedVector2Array(39, -15, -45, -15, -45.000004, 73, 38.999996, 73)
|
||||
uv = PackedVector2Array(290, 406, 206, 406, 206, 318, 290, 318)
|
||||
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
|
||||
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
|
||||
|
||||
[node name="C_armB1" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=109300670]
|
||||
z_index = 3
|
||||
texture = ExtResource("1_wk5es")
|
||||
skeleton = NodePath("..")
|
||||
polygon = PackedVector2Array(47.000004, -77, 3.3657768e-06, -77, 6.993822e-07, -16, 47, -16)
|
||||
uv = PackedVector2Array(215, 83, 168, 83, 168, 22, 215, 22)
|
||||
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
|
||||
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
|
||||
|
||||
[node name="C_bodyA" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1311840842]
|
||||
z_index = 4
|
||||
texture = ExtResource("1_wk5es")
|
||||
skeleton = NodePath("..")
|
||||
polygon = PackedVector2Array(33.000004, -77, -34.999996, -77, -35, 4, 33, 4)
|
||||
uv = PackedVector2Array(70, 141, 2, 141, 2, 60.000004, 70, 60.000004)
|
||||
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
|
||||
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
|
||||
|
||||
[node name="C_hairD_hairfront$0_#02" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=476151200]
|
||||
modulate = Color(0.9647059, 0.91764706, 1, 1)
|
||||
z_index = 5
|
||||
texture = ExtResource("1_wk5es")
|
||||
skeleton = NodePath("..")
|
||||
polygon = PackedVector2Array(48.000004, -50, 21.000002, -50, 20.999998, 55, 47.999996, 55)
|
||||
uv = PackedVector2Array(99, 141, 72.00001, 141, 72.00001, 36.000004, 99, 36.000004)
|
||||
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
|
||||
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
|
||||
|
||||
[node name="C_cloth_bodyA3" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=175449421]
|
||||
z_index = 6
|
||||
texture = ExtResource("1_wk5es")
|
||||
skeleton = NodePath("..")
|
||||
polygon = PackedVector2Array(53.000004, -77, -25.999996, -77, -25.999998, -38, 53, -38)
|
||||
uv = PackedVector2Array(355, 223, 276, 223, 276, 184, 355, 184)
|
||||
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
|
||||
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
|
||||
|
||||
[node name="C_cloth_bodyA1" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1710215888]
|
||||
z_index = 7
|
||||
texture = ExtResource("1_wk5es")
|
||||
skeleton = NodePath("..")
|
||||
polygon = PackedVector2Array(27.000002, -58, -35.999996, -58, -36, -11, 27, -11)
|
||||
uv = PackedVector2Array(65, 58.000004, 2, 58.000004, 2, 11, 65, 11)
|
||||
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
|
||||
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
|
||||
|
||||
[node name="C_armA2" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=308074720]
|
||||
z_index = 8
|
||||
texture = ExtResource("1_wk5es")
|
||||
skeleton = NodePath("..")
|
||||
polygon = PackedVector2Array(-11.999996, -77, -58.999996, -77, -59, -13, -11.999999, -13)
|
||||
uv = PackedVector2Array(404, 224.00002, 357, 224.00002, 357, 160, 404, 160)
|
||||
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
|
||||
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
|
||||
|
||||
[node name="C_headA_ear$0_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1509436694]
|
||||
modulate = Color(1, 0.9411765, 0.9019608, 1)
|
||||
z_index = 9
|
||||
texture = ExtResource("1_wk5es")
|
||||
skeleton = NodePath("..")
|
||||
polygon = PackedVector2Array(39, -19, -34, -19, -34.000004, 48, 38.999996, 48)
|
||||
uv = PackedVector2Array(290, 316, 217, 316, 217, 249, 290, 249)
|
||||
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
|
||||
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
|
||||
|
||||
[node name="C_eyeB2" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=875153737]
|
||||
z_index = 10
|
||||
texture = ExtResource("1_wk5es")
|
||||
skeleton = NodePath("..")
|
||||
polygon = PackedVector2Array(33, 5, -8, 5, -8.000001, 19, 33, 19)
|
||||
uv = PackedVector2Array(388, 139, 347, 139, 347, 125, 388, 125)
|
||||
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
|
||||
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
|
||||
|
||||
[node name="C_eyeB1_#01" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=51673085]
|
||||
modulate = Color(0.36862746, 0.1764706, 0.50980395, 1)
|
||||
z_index = 11
|
||||
texture = ExtResource("1_wk5es")
|
||||
skeleton = NodePath("..")
|
||||
polygon = PackedVector2Array(34, 4, -10, 4, -10.000001, 21, 34, 21)
|
||||
uv = PackedVector2Array(110.99999, 34, 67, 34, 67, 17, 110.99999, 17)
|
||||
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
|
||||
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
|
||||
|
||||
[node name="C_faceB1" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=568947379]
|
||||
z_index = 12
|
||||
texture = ExtResource("1_wk5es")
|
||||
skeleton = NodePath("..")
|
||||
polygon = PackedVector2Array(37, -9, -2.9999995, -9, -3.0000012, 29, 37, 29)
|
||||
uv = PackedVector2Array(340, 92, 300, 92, 300, 54.000004, 340, 54.000004)
|
||||
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
|
||||
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
|
||||
|
||||
[node name="C_hairC_hairfront$0_#02" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=2135239753]
|
||||
modulate = Color(0.9647059, 0.91764706, 1, 1)
|
||||
z_index = 13
|
||||
texture = ExtResource("1_wk5es")
|
||||
skeleton = NodePath("..")
|
||||
polygon = PackedVector2Array(41, 13, -19, 13, -19.000002, 61, 40.999996, 61)
|
||||
uv = PackedVector2Array(352, 272.99997, 292, 272.99997, 292, 225, 352, 225)
|
||||
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
|
||||
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
|
||||
|
||||
[node name="C_hairB_hairfront$0_#02" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=490474412]
|
||||
modulate = Color(0.9647059, 0.91764706, 1, 1)
|
||||
z_index = 14
|
||||
texture = ExtResource("1_wk5es")
|
||||
skeleton = NodePath("..")
|
||||
polygon = PackedVector2Array(42, 9, 12, 9, 11.999997, 62, 41.999996, 62)
|
||||
uv = PackedVector2Array(166, 84, 136, 84, 136, 31.000002, 166, 31.000002)
|
||||
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
|
||||
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
|
||||
|
||||
[node name="C_hairA_hairfront$0_#02" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1801800616]
|
||||
modulate = Color(0.9647059, 0.91764706, 1, 1)
|
||||
z_index = 15
|
||||
texture = ExtResource("1_wk5es")
|
||||
skeleton = NodePath("..")
|
||||
polygon = PackedVector2Array(8.000002, -52, -27.999998, -52, -28.000002, 58, 7.9999976, 58)
|
||||
uv = PackedVector2Array(132, 253.99998, 96, 253.99998, 96, 144.00002, 132, 144.00002)
|
||||
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
|
||||
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
|
||||
|
||||
[node name="C_eyeA1_#01" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=745255164]
|
||||
modulate = Color(0.36862746, 0.1764706, 0.50980395, 1)
|
||||
z_index = 16
|
||||
texture = ExtResource("1_wk5es")
|
||||
skeleton = NodePath("..")
|
||||
polygon = PackedVector2Array(34, 4, -10, 4, -10.000001, 21, 34, 21)
|
||||
uv = PackedVector2Array(346, 52.000004, 302, 52.000004, 302, 35, 346, 35)
|
||||
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
|
||||
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
|
||||
|
||||
[node name="C_faceA1" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=792850263]
|
||||
z_index = 17
|
||||
texture = ExtResource("1_wk5es")
|
||||
skeleton = NodePath("..")
|
||||
polygon = PackedVector2Array(37, -9, -2.9999995, -9, -3.0000012, 29, 37, 29)
|
||||
uv = PackedVector2Array(300, 48, 260, 48, 260, 10, 300, 10)
|
||||
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
|
||||
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=1627405370]
|
||||
root_node = NodePath("../SpineRoot/Skeleton2D")
|
||||
libraries/ = SubResource("AnimationLibrary_eb6yi")
|
||||
Reference in New Issue
Block a user