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,66 @@
[
{
"Figure": ["Elf1", "Goblin"],
"State": ["Sex", "Sex"],
"Spine": [
{
"Path": "%spine\elf1_goblin_sex",
"Animation": ["sex_0", "sex_1", "pregnant_pregnantsize$0"],
"Loop": true,
},
],
},
{
"Figure": ["Elf1", "Goblin"],
"State": ["Sex", "Cumshot"],
"Spine": [
{
"Path": "%spine\elf1_goblin_sex",
"Animation": ["cumshot_inside_0", "cumshot_inside_small_pregnantsize$0", "pregnant_pregnantsize$0"],
"Loop": false,
},
],
},
{
"Figure": ["Elf1", "Goblin"],
"State": ["Sex", "Rest"],
"Spine": [
{
"Path": "%spine\elf1_goblin_sex",
"Animation": ["sex_idle_0", "sex_idle_1", "pregnant_pregnantsize$0"],
"Loop": true,
},
],
},
{
"Figure": ["Elf1", "Goblin"],
"State": ["Birth", "Birth"],
"Spine": [
{
"Path": "%spine\elf1_goblin_birth",
"Animation": ["birthA_0"],
"Loop": false,
},
],
},
{
"Figure": ["Elf1", "Goblin"],
"State": ["Map", "Map"],
"Spine": [
{
"Path": "%spine\elf1_goblin_sex",
"Animation": ["portrait"],
"Loop": false,
},
],
},
]
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,321 @@
elf1_goblin_birth.png
size:700,700
filter:Linear,Linear
BabyA_0
bounds:498,110,40,40
offsets:516,173,1080,1080
BabyA_0_1
bounds:498,110,40,40
offsets:516,173,1080,1080
BabyB_0
bounds:537,152,29,43
offsets:511,186,1080,1080
BabyB_0_1
bounds:537,152,29,43
offsets:511,186,1080,1080
BabyD4_1
bounds:570,9,36,15
offsets:526,200,1080,1080
BabyD4_1_1
bounds:570,9,36,15
offsets:526,200,1080,1080
C_armA
bounds:660,425,37,29
offsets:418,126,1080,1080
C_armA1
bounds:660,456,35,53
offsets:405,138,1080,1080
C_armA2
bounds:556,424,52,85
offsets:404,169,1080,1080
C_armclothA1_1
bounds:448,91,48,42
offsets:401,132,1080,1080
C_bodyA_3
bounds:584,607,106,91
offsets:475,158,1080,1080
C_bodyA_4
bounds:473,604,109,94
offsets:475,158,1080,1080
C_bodyA_L_3
bounds:556,88,40,20
offsets:520,227,1080,1080
C_bodyA_L_4
bounds:393,54,55,31
offsets:516,222,1080,1080
C_bodyB
bounds:410,405,70,89
offsets:440,193,1080,1080
C_bodyclothA
bounds:498,88,56,20
offsets:431,244,1080,1080
C_chainA_1
bounds:317,366,92,33
offsets:322,132,1080,1080
C_chainB_1
bounds:2,28,139,28
offsets:318,149,1080,1080
C_chainC_1
bounds:584,576,98,29
offsets:563,154,1080,1080
C_clothlegA1
bounds:157,378,89,95
offsets:415,142,1080,1080
C_clothlegA2
bounds:444,338,36,65
offsets:467,144,1080,1080
C_clothlegB1
bounds:243,270,73,92
offsets:576,157,1080,1080
C_clothlegB2
bounds:557,292,41,60
offsets:577,159,1080,1080
C_faceA_a
bounds:640,238,26,35
offsets:459,280,1080,1080
C_faceB_a
bounds:668,248,26,35
offsets:459,280,1080,1080
C_hairA_0
bounds:610,421,48,88
offsets:434,242,1080,1080
C_hairA_1
bounds:395,264,47,100
offsets:433,230,1080,1080
C_hairbackA
bounds:482,427,72,82
offsets:407,250,1080,1080
C_hairbackB1_2
bounds:2,176,93,132
offsets:306,105,1080,1080
C_hairbackB2_1
bounds:248,364,67,109
offsets:357,217,1080,1080
C_hairbackB2_2
bounds:2,310,91,174
offsets:334,151,1080,1080
C_hairclothA1
bounds:97,211,49,126
offsets:375,188,1080,1080
C_headA
bounds:473,511,101,91
offsets:395,235,1080,1080
C_legA1
bounds:95,339,60,145
offsets:415,93,1080,1080
C_legA2
bounds:170,503,135,110
offsets:415,127,1080,1080
C_legA2_L
bounds:318,268,75,96
offsets:455,130,1080,1080
C_legB1
bounds:2,486,166,127
offsets:622,122,1080,1080
C_legB2
bounds:2,58,112,116
offsets:537,133,1080,1080
C_legB2_L
bounds:314,157,72,109
offsets:573,136,1080,1080
C_milkA_1
bounds:671,199,16,47
offsets:444,206,1080,1080
C_milkB_1
bounds:97,178,16,31
offsets:537,245,1080,1080
C_nippleA
bounds:636,171,29,28
offsets:441,233,1080,1080
C_nippleB
bounds:668,285,30,23
offsets:520,252,1080,1080
C_pussyA_a
bounds:636,201,33,35
offsets:537,148,1080,1080
C_pussyA_b
bounds:605,166,29,32
offsets:537,147,1080,1080
C_pussyB
bounds:450,33,44,27
offsets:531,163,1080,1080
C_pussyC_a
bounds:568,161,35,34
offsets:540,148,1080,1080
C_pussyC_b
bounds:598,200,36,36
offsets:539,146,1080,1080
C_semenA_1
bounds:368,28,22,54
offsets:524,128,1080,1080
C_semenA_2
bounds:393,87,53,78
offsets:496,127,1080,1080
C_semenB_1
bounds:561,197,18,19
offsets:539,137,1080,1080
C_semenB_2
bounds:547,2,21,22
offsets:538,134,1080,1080
C_semenC_1
bounds:537,197,22,48
offsets:555,134,1080,1080
C_semenC_2
bounds:647,511,39,63
offsets:548,133,1080,1080
C_semenD_2
bounds:493,12,52,16
offsets:530,125,1080,1080
C_semenD_3
bounds:170,475,127,26
offsets:508,115,1080,1080
C_semeninA_1_1
bounds:605,152,36,12
offsets:517,170,1080,1080
C_semeninA_2_1
bounds:2,2,49,24
offsets:511,165,1080,1080
C_semeninA_3_1
bounds:450,62,46,27
offsets:500,170,1080,1080
C_semeninA_4_1
bounds:540,110,56,40
offsets:495,170,1080,1080
C_semeninA_5_1
bounds:207,11,80,53
offsets:491,171,1080,1080
C_semeninA_6_1
bounds:314,84,77,71
offsets:491,171,1080,1080
C_semeninA_7_1
bounds:116,125,78,75
offsets:492,173,1080,1080
C_semeninB_1_1
bounds:449,2,37,12
offsets:510,170,1080,1080
C_semeninB_2_1
bounds:496,30,52,23
offsets:500,166,1080,1080
C_semeninB_3_1
bounds:600,275,66,26
offsets:504,170,1080,1080
C_semeninB_4_1
bounds:600,303,62,45
offsets:511,167,1080,1080
C_semeninB_5_1
bounds:116,65,77,58
offsets:491,164,1080,1080
C_semeninB_6_1
bounds:157,302,84,74
offsets:484,163,1080,1080
C_semeninB_7_1
bounds:604,350,78,69
offsets:495,170,1080,1080
C_titsA
bounds:490,288,65,63
offsets:438,202,1080,1080
C_titsA_L
bounds:449,16,42,15
offsets:449,246,1080,1080
C_titsB
bounds:195,66,77,57
offsets:477,218,1080,1080
C_wombA_3_1
bounds:482,353,72,72
offsets:498,166,1080,1080
C_wombA_4_1
bounds:317,401,91,93
offsets:487,160,1080,1080
C_wombB_3_1
bounds:143,2,62,61
offsets:503,171,1080,1080
C_wombB_4_1
bounds:289,6,77,76
offsets:493,168,1080,1080
M_armA1
bounds:196,125,80,56
offsets:408,258,1080,1080
M_armA2
bounds:444,254,44,82
offsets:457,287,1080,1080
M_armA2_L
bounds:278,126,34,55
offsets:465,306,1080,1080
M_armB
bounds:411,366,23,37
offsets:399,274,1080,1080
M_armB1
bounds:498,152,37,41
offsets:404,284,1080,1080
M_armB2
bounds:556,354,46,68
offsets:415,298,1080,1080
M_bodyA
bounds:307,496,118,117
offsets:433,267,1080,1080
M_dickA
bounds:498,55,52,31
offsets:468,266,1080,1080
M_dickB
bounds:448,135,48,45
offsets:490,247,1080,1080
M_earA
bounds:490,247,62,39
offsets:444,354,1080,1080
M_earB
bounds:552,56,50,30
offsets:378,337,1080,1080
M_faceA
bounds:599,238,39,35
offsets:386,334,1080,1080
M_faceA_L
bounds:230,272,10,28
offsets:389,338,1080,1080
M_faceB
bounds:392,12,55,40
offsets:381,350,1080,1080
M_faceB_L
bounds:53,2,35,24
offsets:383,362,1080,1080
M_faceC
bounds:552,26,50,28
offsets:384,351,1080,1080
M_headA
bounds:230,183,82,85
offsets:381,335,1080,1080
M_headA_L
bounds:576,511,69,63
offsets:384,355,1080,1080
M_headB
bounds:90,2,30,24
offsets:404,336,1080,1080
M_headD
bounds:488,195,47,50
offsets:408,318,1080,1080
M_headE
bounds:561,218,35,40
offsets:407,324,1080,1080
M_legA1
bounds:427,505,44,108
offsets:515,232,1080,1080
M_legA2
bounds:443,182,43,70
offsets:517,269,1080,1080
M_legB1
bounds:148,202,80,98
offsets:460,213,1080,1080
M_legB2
bounds:388,167,53,95
offsets:460,146,1080,1080
M_semenA_1
bounds:684,580,8,25
offsets:488,265,1080,1080
M_semenB_1
bounds:557,260,40,30
offsets:476,268,1080,1080
M_semenC_1
bounds:664,310,25,38
offsets:498,249,1080,1080
shadow
bounds:2,615,469,83
offsets:320,93,1080,1080
Binary file not shown.

After

Width:  |  Height:  |  Size: 267 KiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c8eu850qshlyn"
path="res://.godot/imported/elf1_goblin_birth.png-4938f2d955717ce24afbce9ee0f8576d.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://characters/elf1_goblin/spine/elf1_goblin_birth.png"
dest_files=["res://.godot/imported/elf1_goblin_birth.png-4938f2d955717ce24afbce9ee0f8576d.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
@@ -0,0 +1,348 @@
elf1_goblin_sex.png
size:684,684
filter:Linear,Linear
BabyA_4_0_1
bounds:639,638,43,44
offsets:526,172,1080,1080
BabyB_4_0_1
bounds:638,398,44,35
offsets:535,195,1080,1080
BabyC1_1_1_1
bounds:656,495,26,24
offsets:553,182,1080,1080
BabyC2_2_1_1
bounds:656,521,26,30
offsets:550,186,1080,1080
BabyC3_3_1_1
bounds:396,66,38,39
offsets:542,184,1080,1080
BabyD1_1_1_1
bounds:122,372,18,8
offsets:564,191,1080,1080
BabyD2_2_1_1
bounds:137,252,22,14
offsets:560,191,1080,1080
BabyD3_3_1_1
bounds:531,28,25,26
offsets:558,190,1080,1080
BabyD4_4_1_1
bounds:553,82,40,17
offsets:544,190,1080,1080
C_armA1
bounds:451,242,66,47
offsets:484,117,1080,1080
C_armA2
bounds:167,250,86,32
offsets:466,110,1080,1080
C_armA3
bounds:471,155,39,29
offsets:443,104,1080,1080
C_armB1
bounds:538,481,116,47
offsets:366,127,1080,1080
C_armB3
bounds:488,84,34,28
offsets:349,117,1080,1080
C_armchainA
bounds:348,9,46,46
offsets:463,96,1080,1080
C_armchainB
bounds:638,435,44,44
offsets:356,115,1080,1080
C_armclothA1
bounds:427,20,36,40
offsets:515,117,1080,1080
C_armclothA2
bounds:239,383,12,33
offsets:516,123,1080,1080
C_armclothA3
bounds:491,62,28,20
offsets:454,113,1080,1080
C_armclothB3
bounds:110,250,25,16
offsets:358,129,1080,1080
C_bodyA
bounds:536,417,100,62
offsets:451,137,1080,1080
C_bodyB_0
bounds:299,489,91,111
offsets:493,161,1080,1080
C_bodyB_1
bounds:299,489,91,111
offsets:493,161,1080,1080
C_bodyB_2
bounds:2,22,97,111
offsets:493,161,1080,1080
C_bodyB_3
bounds:2,135,102,114
offsets:493,158,1080,1080
C_bodyB_4
bounds:2,251,106,118
offsets:493,154,1080,1080
C_chainA1_1
bounds:101,2,114,34
offsets:494,97,1080,1080
C_chainA2_1
bounds:379,375,82,25
offsets:524,114,1080,1080
C_chainB_1
bounds:622,366,60,30
offsets:318,124,1080,1080
C_clothlegA1
bounds:189,157,74,91
offsets:583,149,1080,1080
C_clothlegA2
bounds:461,186,49,54
offsets:585,185,1080,1080
C_eyeA_a
bounds:106,135,56,21
offsets:425,138,1080,1080
C_eyeA_b
bounds:512,166,56,21
offsets:425,137,1080,1080
C_eyeB_a
bounds:413,155,56,21
offsets:425,138,1080,1080
C_eyeB_b
bounds:512,143,56,21
offsets:425,137,1080,1080
C_eyeC_a
bounds:488,115,18,10
offsets:430,137,1080,1080
C_faceA_a
bounds:217,3,45,35
offsets:428,129,1080,1080
C_faceA_b
bounds:192,382,45,34
offsets:428,129,1080,1080
C_faceB_a
bounds:633,227,45,35
offsets:428,129,1080,1080
C_faceB_b
bounds:440,119,45,34
offsets:428,129,1080,1080
C_hairbackA
bounds:263,74,83,81
offsets:415,130,1080,1080
C_hairbackB1_1
bounds:538,530,95,101
offsets:449,137,1080,1080
C_hairbackB1_2
bounds:101,38,77,95
offsets:449,126,1080,1080
C_hairbackB2_2
bounds:2,512,192,88
offsets:284,116,1080,1080
C_hairclothA1
bounds:470,345,64,83
offsets:455,128,1080,1080
C_hairfrontA1_1
bounds:253,437,41,75
offsets:433,123,1080,1080
C_hairfrontA1_2
bounds:400,297,49,76
offsets:433,121,1080,1080
C_hairfrontA2_1
bounds:488,430,46,77
offsets:447,121,1080,1080
C_hairfrontA2_2
bounds:248,290,76,78
offsets:447,120,1080,1080
C_hairfrontA3_1
bounds:378,168,33,65
offsets:410,121,1080,1080
C_hairfrontA3_2
bounds:253,371,41,64
offsets:406,122,1080,1080
C_hairfrontA4_1
bounds:339,161,37,72
offsets:399,120,1080,1080
C_hairfrontA4_2
bounds:326,290,72,78
offsets:382,114,1080,1080
C_hairfrontB
bounds:440,84,46,33
offsets:417,160,1080,1080
C_headA1
bounds:392,623,125,59
offsets:419,126,1080,1080
C_headA2
bounds:570,138,54,21
offsets:385,138,1080,1080
C_legA1
bounds:2,371,118,139
offsets:539,149,1080,1080
C_legA2
bounds:519,633,118,49
offsets:622,149,1080,1080
C_legB1
bounds:122,382,68,128
offsets:487,162,1080,1080
C_legB2
bounds:383,402,85,39
offsets:508,162,1080,1080
C_semenC_2
bounds:2,2,57,18
offsets:550,150,1080,1080
C_semenC_3
bounds:180,40,87,27
offsets:535,144,1080,1080
C_semeninA_1_1
bounds:427,5,36,13
offsets:530,174,1080,1080
C_semeninA_2_1
bounds:436,62,53,20
offsets:528,173,1080,1080
C_semeninA_3_1
bounds:508,114,43,27
offsets:515,174,1080,1080
C_semeninA_4_1
bounds:578,222,53,40
offsets:510,174,1080,1080
C_semeninA_5_1
bounds:451,291,75,52
offsets:507,175,1080,1080
C_semeninA_6_1
bounds:528,277,74,64
offsets:509,174,1080,1080
C_semeninA_7_1
bounds:604,264,74,68
offsets:510,177,1080,1080
C_semeninB_1_1
bounds:61,8,38,12
offsets:526,174,1080,1080
C_semeninB_2_1
bounds:633,203,47,22
offsets:518,171,1080,1080
C_semeninB_3_1
bounds:569,193,52,27
offsets:526,174,1080,1080
C_semeninB_4_1
bounds:519,233,57,42
offsets:528,174,1080,1080
C_semeninB_5_1
bounds:336,235,73,53
offsets:509,174,1080,1080
C_semeninB_6_1
bounds:269,5,77,67
offsets:505,174,1080,1080
C_semeninB_7_1
bounds:536,343,84,72
offsets:506,172,1080,1080
C_semeninC_1_1
bounds:636,85,28,27
offsets:544,234,1080,1080
C_titsA
bounds:296,370,81,55
offsets:503,129,1080,1080
C_titsA_L
bounds:348,57,46,49
offsets:538,130,1080,1080
C_vaginaA_1
bounds:596,99,38,37
offsets:536,231,1080,1080
C_vaginaB_1
bounds:492,21,37,39
offsets:536,229,1080,1080
C_wombA_4_1
bounds:392,515,97,106
offsets:498,159,1080,1080
C_wombB_4_1
bounds:106,158,81,90
offsets:507,164,1080,1080
M_armA1
bounds:265,159,72,54
offsets:550,305,1080,1080
M_armA2
bounds:192,418,59,92
offsets:565,239,1080,1080
M_armB1
bounds:413,178,46,57
offsets:477,293,1080,1080
M_armB2
bounds:635,553,37,78
offsets:474,245,1080,1080
M_bodyA
bounds:296,427,85,60
offsets:496,299,1080,1080
M_bodyB
bounds:196,514,101,86
offsets:517,263,1080,1080
M_cumshotA_a
bounds:635,56,28,27
offsets:548,271,1080,1080
M_cumshotB_1
bounds:487,127,19,26
offsets:539,214,1080,1080
M_cumshotB_a
bounds:558,54,25,26
offsets:536,269,1080,1080
M_dickA
bounds:636,114,31,28
offsets:540,230,1080,1080
M_dickA_1
bounds:626,144,31,29
offsets:541,230,1080,1080
M_dickB
bounds:401,107,37,46
offsets:544,237,1080,1080
M_dickB_1
bounds:401,107,37,46
offsets:544,237,1080,1080
M_dickC
bounds:553,101,41,35
offsets:564,240,1080,1080
M_earA
bounds:348,108,51,51
offsets:513,329,1080,1080
M_earB
bounds:622,334,58,30
offsets:445,312,1080,1080
M_faceA
bounds:595,62,38,35
offsets:460,302,1080,1080
M_faceA_L
bounds:451,345,9,28
offsets:462,305,1080,1080
M_faceB
bounds:512,189,55,42
offsets:453,318,1080,1080
M_faceB_L
bounds:623,175,34,26
offsets:455,329,1080,1080
M_faceC
bounds:570,161,48,30
offsets:458,319,1080,1080
M_headA
bounds:180,69,81,86
offsets:452,305,1080,1080
M_headA_L
bounds:265,215,69,73
offsets:452,316,1080,1080
M_headB
bounds:524,86,27,26
offsets:479,305,1080,1080
M_headC
bounds:465,20,25,40
offsets:483,284,1080,1080
M_headD
bounds:411,237,38,58
offsets:492,282,1080,1080
M_headE
bounds:396,16,29,48
offsets:491,286,1080,1080
M_legA1
bounds:167,284,79,96
offsets:589,214,1080,1080
M_legA2
bounds:491,509,45,112
offsets:628,139,1080,1080
M_legB1
bounds:392,443,94,70
offsets:485,233,1080,1080
M_legB2
bounds:110,268,55,101
offsets:467,161,1080,1080
shadow
bounds:2,602,388,80
offsets:360,101,1080,1080
Binary file not shown.

After

Width:  |  Height:  |  Size: 279 KiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ij5px2ontcrh"
path="res://.godot/imported/elf1_goblin_sex.png-83298d3f98cf3822b80e82c6a765452c.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://characters/elf1_goblin/spine/elf1_goblin_sex.png"
dest_files=["res://.godot/imported/elf1_goblin_sex.png-83298d3f98cf3822b80e82c6a765452c.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1