Files
project-rr/characters/goblin/goblin_portrait_combat1_native.tscn
T
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

251 lines
11 KiB
Plaintext

[gd_scene format=3]
[ext_resource type="Texture2D" path="res://characters/goblin/spine/goblin_portrait_combat1.png" id="1_1cpgk"]
[sub_resource type="Animation" id="Animation_ay7fh"]
length = 0.001
loop_mode = 1
[sub_resource type="AnimationLibrary" id="AnimationLibrary_sxo0n"]
_data = {
&"animation": SubResource("Animation_ay7fh")
}
[node name="Native" type="Node2D" unique_id=733706962]
[node name="SpineRoot" type="Node2D" parent="." unique_id=135499714]
position = Vector2(644.2985, 325.61194)
scale = Vector2(4.2985077, -4.2985077)
[node name="Skeleton2D" type="Skeleton2D" parent="SpineRoot" unique_id=1634262799]
[node name="root" type="Bone2D" parent="SpineRoot/Skeleton2D" unique_id=1720567583]
rest = Transform2D(1, 0, 0, 1, 0, 0)
auto_calculate_length_and_angle = false
length = 0.0
bone_angle = 0.0
[node name="weapon1c" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=45062112]
texture = ExtResource("1_1cpgk")
skeleton = NodePath("..")
polygon = PackedVector2Array(-19.999996, -75, -57.999996, -75, -58, 32, -20.000002, 32)
uv = PackedVector2Array(40, 144, 2.0000002, 144, 2.0000002, 37, 40, 37)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="M_armB2_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=706074130]
modulate = Color(0.4862745, 0.69411767, 0.3372549, 1)
z_index = 1
texture = ExtResource("1_1cpgk")
skeleton = NodePath("..")
polygon = PackedVector2Array(23.000004, -75, -13.999997, -75, -13.999999, -23, 23.000002, -23)
uv = PackedVector2Array(207, 69, 170, 69, 170, 17, 207, 17)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="M_armclothB2_#05" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1093648469]
modulate = Color(0.96862745, 0.9843137, 0.8980392, 1)
z_index = 2
texture = ExtResource("1_1cpgk")
skeleton = NodePath("..")
polygon = PackedVector2Array(22.000004, -68, -11.999997, -68, -11.999998, -48, 22.000002, -48)
uv = PackedVector2Array(222, 109, 188, 109, 188, 89, 222, 89)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="M_armB1_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1969454893]
modulate = Color(0.4862745, 0.69411767, 0.3372549, 1)
z_index = 3
texture = ExtResource("1_1cpgk")
skeleton = NodePath("..")
polygon = PackedVector2Array(16.000004, -75, -0.9999967, -75, -0.9999968, -73, 16.000004, -73)
uv = PackedVector2Array(19, 4.0000005, 2.0000002, 4.0000005, 2.0000002, 2.0000002, 19, 2.0000002)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="M_bodyB_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=34531152]
modulate = Color(0.4862745, 0.69411767, 0.3372549, 1)
z_index = 4
texture = ExtResource("1_1cpgk")
skeleton = NodePath("..")
polygon = PackedVector2Array(2.0000033, -75, -57.999996, -75, -58, -24, 2.000001, -24)
uv = PackedVector2Array(168, 58, 108, 58, 108, 7, 168, 7)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="M_bodyA_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1591217492]
modulate = Color(0.4862745, 0.69411767, 0.3372549, 1)
z_index = 5
texture = ExtResource("1_1cpgk")
skeleton = NodePath("..")
polygon = PackedVector2Array(16.000004, -73, -57.999996, -73, -58, 5, 16, 5)
uv = PackedVector2Array(157, 222, 83, 222, 83, 144, 157, 144)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="M_armA2_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=827201265]
modulate = Color(0.4862745, 0.69411767, 0.3372549, 1)
z_index = 6
texture = ExtResource("1_1cpgk")
skeleton = NodePath("..")
polygon = PackedVector2Array(-31.999998, -58, -57.999996, -58, -58, -15, -32, -15)
uv = PackedVector2Array(178, 142, 152, 142, 152, 99, 178, 99)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="M_armA2_L" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1956164497]
z_index = 7
texture = ExtResource("1_1cpgk")
skeleton = NodePath("..")
polygon = PackedVector2Array(-45, -23, -58, -23, -58, -17, -45, -17)
uv = PackedVector2Array(55, 49, 42, 49, 42, 43, 55, 43)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="M_armclothA2_#05" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=511458260]
modulate = Color(0.96862745, 0.9843137, 0.8980392, 1)
z_index = 8
texture = ExtResource("1_1cpgk")
skeleton = NodePath("..")
polygon = PackedVector2Array(-50.999996, -55, -57.999996, -55, -58, -40, -51, -40)
uv = PackedVector2Array(197, 163, 190, 163, 190, 148, 197, 148)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="M_weaponcloth" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=694107029]
z_index = 9
texture = ExtResource("1_1cpgk")
skeleton = NodePath("..")
polygon = PackedVector2Array(-4.9999967, -75, -40.999996, -75, -41, -11, -4.9999995, -11)
uv = PackedVector2Array(78, 144, 42, 144, 42, 80, 78, 80)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="M_earB_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=927959045]
modulate = Color(0.4862745, 0.69411767, 0.3372549, 1)
z_index = 10
texture = ExtResource("1_1cpgk")
skeleton = NodePath("..")
polygon = PackedVector2Array(56, -17, 8.000001, -17, 7.9999995, 10, 56, 10)
uv = PackedVector2Array(90, 78, 42, 78, 42, 51, 90, 51)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="M_headE" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1827514801]
z_index = 11
texture = ExtResource("1_1cpgk")
skeleton = NodePath("..")
polygon = PackedVector2Array(29.000002, -33, -4.9999986, -33, -5, -1, 29, -1)
uv = PackedVector2Array(214, 143, 180, 143, 180, 111, 214, 111)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="M_headD_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=52504173]
modulate = Color(0.4862745, 0.69411767, 0.3372549, 1)
z_index = 12
texture = ExtResource("1_1cpgk")
skeleton = NodePath("..")
polygon = PackedVector2Array(30.000002, -39, -17.999998, -39, -18, 4, 30, 4)
uv = PackedVector2Array(106, 49, 58, 49, 58, 6, 106, 6)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="M_headC" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=273138908]
z_index = 13
texture = ExtResource("1_1cpgk")
skeleton = NodePath("..")
polygon = PackedVector2Array(22.000002, -34, 1.0000014, -34, 1.0000001, -3, 22, -3)
uv = PackedVector2Array(220, 195, 199, 195, 199, 164, 220, 164)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="M_headB" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=700223784]
z_index = 14
texture = ExtResource("1_1cpgk")
skeleton = NodePath("..")
polygon = PackedVector2Array(31, -18, 2.0000007, -18, 2, 0, 31, 0)
uv = PackedVector2Array(188, 163, 159, 163, 159, 145, 188, 145)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="M_headA_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=224732583]
modulate = Color(0.4862745, 0.69411767, 0.3372549, 1)
z_index = 15
texture = ExtResource("1_1cpgk")
skeleton = NodePath("..")
polygon = PackedVector2Array(46, -17, -33, -17, -33.000004, 59, 45.999996, 59)
uv = PackedVector2Array(81, 222, 2.0000002, 222, 2.0000002, 146, 81, 146)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="M_headA_L" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=60621849]
z_index = 16
texture = ExtResource("1_1cpgk")
skeleton = NodePath("..")
polygon = PackedVector2Array(44, 5, -26, 5, -26.000002, 57, 43.999996, 57)
uv = PackedVector2Array(150, 142, 80, 142, 80, 90, 150, 90)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="M_faceC_#01" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=2039038847]
modulate = Color(0.8666667, 0.78039217, 0.3764706, 1)
z_index = 17
texture = ExtResource("1_1cpgk")
skeleton = NodePath("..")
polygon = PackedVector2Array(46, 1, -2, 1, -2.0000007, 18, 46, 18)
uv = PackedVector2Array(186, 88, 138, 88, 138, 71, 186, 71)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="M_faceB_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1730056709]
modulate = Color(0.4862745, 0.69411767, 0.3372549, 1)
z_index = 18
texture = ExtResource("1_1cpgk")
skeleton = NodePath("..")
polygon = PackedVector2Array(49, 0, -5, 0, -5.0000014, 29, 49, 29)
uv = PackedVector2Array(56, 35, 2.0000002, 35, 2.0000002, 6, 56, 6)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="M_faceB_L" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=86722115]
z_index = 19
texture = ExtResource("1_1cpgk")
skeleton = NodePath("..")
polygon = PackedVector2Array(47, 8, 10, 8, 9.999999, 28, 47, 28)
uv = PackedVector2Array(196, 222, 159, 222, 159, 202, 196, 202)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="M_faceA_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1051282063]
modulate = Color(0.4862745, 0.69411767, 0.3372549, 1)
z_index = 20
texture = ExtResource("1_1cpgk")
skeleton = NodePath("..")
polygon = PackedVector2Array(47, -16, 10.000001, -16, 9.999999, 14, 47, 14)
uv = PackedVector2Array(196, 195, 159, 195, 159, 165, 196, 165)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="M_faceA_L" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=477662133]
z_index = 21
texture = ExtResource("1_1cpgk")
skeleton = NodePath("..")
polygon = PackedVector2Array(46, -13, 34, -13, 34, 12, 46, 12)
uv = PackedVector2Array(221, 222, 209, 222, 209, 197, 221, 197)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="M_earA_#00" type="Polygon2D" parent="SpineRoot/Skeleton2D" unique_id=1072690034]
modulate = Color(0.4862745, 0.69411767, 0.3372549, 1)
z_index = 22
texture = ExtResource("1_1cpgk")
skeleton = NodePath("..")
polygon = PackedVector2Array(-14, -8, -58, -8, -58, 20, -14.000001, 20)
uv = PackedVector2Array(136, 88, 92, 88, 92, 59.999996, 136, 59.999996)
polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(2, 3, 0)]
bones = ["root", PackedFloat32Array(1, 1, 1, 1)]
[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=1698709385]
root_node = NodePath("../SpineRoot/Skeleton2D")
libraries/ = SubResource("AnimationLibrary_sxo0n")