diff --git a/assets/characters/skins/aria.glb b/assets/characters/skins/aria.glb new file mode 100644 index 0000000..7cb55bb Binary files /dev/null and b/assets/characters/skins/aria.glb differ diff --git a/assets/characters/skins/aria.license.json b/assets/characters/skins/aria.license.json new file mode 100644 index 0000000..5d08dc2 --- /dev/null +++ b/assets/characters/skins/aria.license.json @@ -0,0 +1,9 @@ +{ + "name": "Anime Girl Rigged Anime model", + "uid": "fbccf5c5a7b244e7ab04fa44da19c621", + "author": "dequeijospizza", + "author_url": "https://sketchfab.com/dequeijospizza", + "license": "CC Attribution", + "license_slug": "by", + "source_url": "https://sketchfab.com/3d-models/anime-girl-rigged-anime-model-fbccf5c5a7b244e7ab04fa44da19c621" +} \ No newline at end of file diff --git a/assets/characters/skins/aria.rig.json b/assets/characters/skins/aria.rig.json new file mode 100644 index 0000000..94eafb9 --- /dev/null +++ b/assets/characters/skins/aria.rig.json @@ -0,0 +1,2446 @@ +{ + "roles": { + "hips": "Hips", + "head": "Head", + "neck": "Neck", + "spine": [ + "Spine", + "Chest", + "Neck", + "Head" + ], + "shoulder.L": "Left shoulder", + "shoulder.R": "Right shoulder", + "foot.R": "Right ankle", + "foot.L": "Left ankle", + "hand.R": "Right wrist", + "hand.L": "Left wrist", + "forearm.L": "Left elbow", + "forearm.R": "Right elbow", + "shin.R": "Right knee", + "shin.L": "Left knee", + "toe.R": "Right toe", + "toe.L": "Left toe", + "upper_arm.L": "Left arm", + "upper_arm.R": "Right arm", + "thigh.L": "Left leg", + "thigh.R": "Right leg" + }, + "chains": [ + { + "class": "breast", + "root_parent": "Chest", + "bones": [ + "Breast_L", + "J_Sec_L_Bust2" + ], + "tips": [ + [ + 0.0, + 0.38874, + -0.0 + ], + [ + 0.0, + 0.38874, + -0.0 + ] + ], + "hulls": [ + [ + [ + 0.03918, + 0.3986, + -0.03177 + ], + [ + -0.31692, + 0.12871, + 0.0247 + ], + [ + 0.00567, + 0.14769, + 0.24402 + ], + [ + -0.06314, + 0.16842, + -0.25954 + ], + [ + 0.20424, + 0.29346, + 0.14434 + ], + [ + 0.19068, + 0.22473, + -0.1262 + ], + [ + -0.15582, + 0.2848, + 0.07169 + ], + [ + -0.20464, + 0.16064, + 0.22922 + ], + [ + -0.19735, + 0.26033, + -0.1455 + ], + [ + 0.01152, + 0.31875, + 0.12467 + ] + ], + [] + ], + "neighbours": [ + { + "J_Sec_L_Bust2": 9.193998822705257, + "Breast_R": 0.3764394436581815, + "J_Sec_R_Bust2": 0.003499964148881679 + }, + { + "Breast_L": 9.193998822705257, + "Breast_R": 0.0034999641116944535 + } + ] + }, + { + "class": "breast", + "root_parent": "Chest", + "bones": [ + "Breast_R", + "J_Sec_R_Bust2" + ], + "tips": [ + [ + 0.0, + 0.38874, + 0.0 + ], + [ + 0.0, + 0.38874, + 0.0 + ] + ], + "hulls": [ + [ + [ + -0.03918, + 0.3986, + -0.03177 + ], + [ + 0.31692, + 0.12871, + 0.0247 + ], + [ + -0.00567, + 0.14769, + 0.24402 + ], + [ + 0.06314, + 0.16842, + -0.25954 + ], + [ + -0.20424, + 0.29346, + 0.14434 + ], + [ + -0.19068, + 0.22473, + -0.1262 + ], + [ + 0.15582, + 0.2848, + 0.07169 + ], + [ + 0.20464, + 0.16064, + 0.22922 + ], + [ + 0.19735, + 0.26033, + -0.1455 + ], + [ + -0.01151, + 0.31875, + 0.12467 + ] + ], + [] + ], + "neighbours": [ + { + "J_Sec_R_Bust2": 9.193998837122376, + "Breast_L": 0.3764394436581815, + "J_Sec_L_Bust2": 0.0034999641116944535 + }, + { + "Breast_R": 9.193998837122376, + "Breast_L": 0.003499964148881679 + } + ] + }, + { + "class": "hair", + "root_parent": "Head", + "bones": [ + "J_Sec_Hair1_01", + "J_Sec_Hair2_01" + ], + "tips": [ + [ + 0.0, + 0.225, + 0.0 + ], + [ + -0.05022, + 0.2025, + 0.01923 + ] + ], + "hulls": [ + [ + [ + 0.09447, + 0.24155, + -0.0315 + ], + [ + -0.04828, + 0.01976, + 0.03783 + ], + [ + 0.11382, + 0.04851, + -0.03257 + ], + [ + -0.04325, + 0.18876, + 0.03505 + ], + [ + 0.01782, + 0.12533, + -0.07161 + ], + [ + 0.02162, + 0.00293, + -0.05244 + ], + [ + 0.10203, + 0.14431, + -0.0093 + ], + [ + 0.03209, + 0.07408, + 0.00945 + ], + [ + 0.00666, + 0.21828, + -0.04928 + ], + [ + -0.07027, + 0.10508, + 0.01321 + ] + ], + [ + [ + -0.05881, + 0.19647, + 0.09871 + ], + [ + 0.0648, + 0.00303, + -0.0669 + ], + [ + -0.06062, + 0.06902, + -0.00249 + ], + [ + -0.00078, + 0.21342, + -0.00069 + ], + [ + 0.02329, + 0.08044, + -0.04655 + ], + [ + -0.01217, + 0.13015, + 0.04149 + ], + [ + -0.0225, + -0.00212, + -0.0364 + ], + [ + -0.00399, + 0.02675, + 0.04507 + ], + [ + -0.10051, + 0.11036, + 0.05383 + ], + [ + -0.03352, + 0.12178, + -0.02194 + ] + ] + ], + "neighbours": [ + { + "J_Sec_Hair2_01": 22.972438677485403 + }, + { + "J_Sec_Hair1_01": 22.972438677485403 + } + ] + }, + { + "class": "hair", + "root_parent": "Head", + "bones": [ + "J_Sec_Hair1_02", + "J_Sec_Hair2_02" + ], + "tips": [ + [ + -0.0, + 0.19616, + -0.0 + ], + [ + -0.0818, + 0.15667, + -0.10643 + ] + ], + "hulls": [ + [ + [ + 0.04578, + 0.19034, + -0.0406 + ], + [ + -0.02239, + 0.01462, + 0.03917 + ], + [ + -0.0415, + 0.07489, + -0.07313 + ], + [ + 0.00598, + 0.11389, + 0.04116 + ], + [ + 0.0487, + 0.04889, + -0.03139 + ], + [ + -0.03562, + 0.16283, + -0.06103 + ], + [ + -0.01481, + 0.01888, + -0.03196 + ], + [ + -0.0045, + 0.17787, + 0.02396 + ], + [ + -0.00456, + 0.10669, + -0.01995 + ], + [ + 0.01334, + 0.05192, + 0.05689 + ] + ], + [ + [ + -0.12149, + 0.09743, + -0.10074 + ], + [ + 0.01373, + 0.0092, + 0.01315 + ], + [ + -0.00018, + 0.18129, + -0.0002 + ], + [ + -0.01681, + 0.10314, + -0.0822 + ], + [ + -0.06942, + 0.01192, + -0.07566 + ], + [ + 0.02318, + 0.02473, + -0.06344 + ], + [ + -0.01445, + 0.06765, + -0.01295 + ], + [ + -0.12514, + 0.04077, + -0.12366 + ], + [ + -0.0731, + 0.11297, + -0.06305 + ], + [ + -0.01056, + 0.1322, + -0.03103 + ] + ] + ], + "neighbours": [ + { + "J_Sec_Hair2_02": 17.0205659394362 + }, + { + "J_Sec_Hair1_02": 17.0205659394362 + } + ] + }, + { + "class": "hair", + "root_parent": "Head", + "bones": [ + "J_Sec_Hair1_03", + "J_Sec_Hair2_03" + ], + "tips": [ + [ + 0.0, + 0.17641, + -0.0 + ], + [ + -0.06885, + 0.17137, + -0.00646 + ] + ], + "hulls": [ + [ + [ + -0.0722, + 0.18633, + -0.02627 + ], + [ + 0.0305, + -0.00025, + -0.15613 + ], + [ + -0.00862, + 0.0065, + 0.04037 + ], + [ + 0.02177, + 0.08482, + -0.06373 + ], + [ + -0.0081, + 0.13123, + 0.03299 + ], + [ + 0.03457, + 0.00841, + -0.02626 + ], + [ + 0.00855, + 0.1604, + -0.03854 + ], + [ + -0.04051, + 0.12641, + -0.08651 + ], + [ + -0.04802, + 0.06966, + 0.04389 + ], + [ + -0.0098, + 0.03532, + -0.10934 + ] + ], + [ + [ + -0.03027, + 0.18398, + 0.01981 + ], + [ + -0.06784, + -0.00444, + -0.02996 + ], + [ + 0.03378, + 0.07296, + -0.03493 + ], + [ + -0.07286, + 0.09234, + -0.02167 + ], + [ + 0.00208, + 0.0159, + 0.00818 + ], + [ + -0.01071, + 0.10779, + 0.00869 + ], + [ + -0.10109, + 0.04475, + -0.00482 + ], + [ + -0.04154, + 0.06436, + 0.02452 + ], + [ + -0.06085, + 0.12777, + 0.01832 + ], + [ + -0.05117, + -0.00521, + 0.01114 + ] + ] + ], + "neighbours": [ + { + "J_Sec_Hair2_03": 16.98434789938547 + }, + { + "J_Sec_Hair1_03": 16.98434789938547 + } + ] + }, + { + "class": "hair", + "root_parent": "Head", + "bones": [ + "J_Sec_Hair1_04", + "J_Sec_Hair2_04" + ], + "tips": [ + [ + 0.0, + 0.20068, + 0.0 + ], + [ + -0.00263, + 0.23103, + -0.01728 + ] + ], + "hulls": [ + [ + [ + -0.04816, + 0.14955, + -0.10966 + ], + [ + 0.01934, + 0.0272, + 0.04578 + ], + [ + 0.00018, + 0.00673, + -0.10378 + ], + [ + 0.01426, + 0.17341, + 0.03604 + ], + [ + 0.00837, + 0.09686, + -0.03421 + ], + [ + -0.05654, + 0.06018, + -0.12187 + ], + [ + -0.01455, + 0.17106, + -0.03337 + ], + [ + -0.02035, + 0.03107, + -0.04335 + ], + [ + -0.02237, + 0.12539, + 0.01139 + ], + [ + 0.00261, + 0.10186, + -0.09323 + ] + ], + [ + [ + -0.00314, + 0.18775, + 0.00957 + ], + [ + 0.03646, + 0.00182, + 0.01057 + ], + [ + -0.08872, + 0.05488, + -0.04327 + ], + [ + 0.05309, + 0.10312, + 0.01737 + ], + [ + -0.01518, + 0.11791, + -0.04718 + ], + [ + -0.02454, + 0.01266, + -0.02389 + ], + [ + 0.01004, + 0.06561, + -0.01171 + ], + [ + 0.02047, + 0.14042, + 0.00517 + ], + [ + 0.05235, + 0.04912, + 0.01049 + ], + [ + -0.03767, + 0.07462, + -0.01785 + ] + ] + ], + "neighbours": [ + { + "J_Sec_Hair2_04": 4.785209337865712 + }, + { + "J_Sec_Hair1_04": 4.785209337865712 + } + ] + }, + { + "class": "hair", + "root_parent": "Head", + "bones": [ + "J_Sec_Hair1_05", + "J_Sec_Hair2_05" + ], + "tips": [ + [ + 0.0, + 0.19576, + 0.0 + ], + [ + 0.01309, + 0.22907, + -0.0144 + ] + ], + "hulls": [ + [ + [ + 0.00443, + 0.17584, + -0.03919 + ], + [ + -0.0172, + 0.01835, + 0.0459 + ], + [ + 0.05477, + 0.04038, + -0.12436 + ], + [ + -0.00758, + 0.07903, + -0.03555 + ], + [ + 0.04833, + 0.13054, + -0.11277 + ], + [ + -0.01122, + 0.11371, + 0.04112 + ], + [ + 0.01924, + 0.02001, + -0.04468 + ], + [ + -0.00384, + 0.03622, + -0.09958 + ], + [ + 0.04695, + 0.08026, + -0.05923 + ], + [ + 0.02585, + 0.06533, + 0.01037 + ] + ], + [ + [ + 0.00791, + 0.1868, + 0.00713 + ], + [ + -0.03408, + -0.00144, + 0.01013 + ], + [ + 0.0996, + 0.05093, + -0.03772 + ], + [ + -0.04711, + 0.09809, + 0.01015 + ], + [ + 0.02597, + 0.10979, + -0.03871 + ], + [ + 0.01829, + 0.02464, + -0.01585 + ], + [ + -0.03193, + 0.05505, + -0.01639 + ], + [ + 0.04899, + 0.06648, + -0.01357 + ], + [ + -0.01853, + 0.13994, + 0.0044 + ], + [ + 0.02922, + 0.15396, + -0.01835 + ] + ] + ], + "neighbours": [ + { + "J_Sec_Hair2_05": 4.838946945472742 + }, + { + "J_Sec_Hair1_05": 4.838946945472742 + } + ] + }, + { + "class": "hair", + "root_parent": "Head", + "bones": [ + "J_Sec_Hair1_06", + "J_Sec_Hair2_06" + ], + "tips": [ + [ + 0.0, + 0.20028, + 0.0 + ], + [ + 0.01026, + 0.25529, + 0.04098 + ] + ], + "hulls": [ + [ + [ + -0.02234, + 0.19959, + 0.09585 + ], + [ + 0.06909, + 0.03811, + -0.05283 + ], + [ + -0.02148, + 0.00066, + 0.09551 + ], + [ + 0.06279, + 0.17879, + -0.04568 + ], + [ + -0.02572, + 0.07633, + -0.01073 + ], + [ + -0.03163, + 0.09938, + 0.09986 + ], + [ + -0.02083, + 0.17275, + -0.00907 + ], + [ + 0.01477, + 0.06039, + 0.05939 + ], + [ + 0.02229, + 0.12162, + -0.04746 + ], + [ + 0.02251, + 0.0243, + -0.00734 + ] + ], + [ + [ + 0.06015, + 0.22911, + -0.0011 + ], + [ + -0.05265, + 0.03143, + 0.08272 + ], + [ + 0.06391, + 0.04875, + -0.01979 + ], + [ + -0.02374, + 0.16827, + 0.07916 + ], + [ + -0.02059, + 0.1094, + -0.00368 + ], + [ + -0.0153, + 0.01564, + -0.01213 + ], + [ + 0.05065, + 0.13682, + -0.01444 + ], + [ + -0.00086, + 0.19862, + 0.00076 + ], + [ + -0.03562, + 0.05999, + 0.02753 + ], + [ + 0.02369, + 0.04294, + 0.01742 + ] + ] + ], + "neighbours": [ + { + "J_Sec_Hair2_06": 8.396507483964648 + }, + { + "J_Sec_Hair1_06": 8.396507483964648 + } + ] + }, + { + "class": "hair", + "root_parent": "Head", + "bones": [ + "J_Sec_Hair1_07", + "J_Sec_Hair2_07" + ], + "tips": [ + [ + -0.0, + 0.19916, + 0.0 + ], + [ + -0.01456, + 0.25235, + 0.04074 + ] + ], + "hulls": [ + [ + [ + 0.02852, + 0.17109, + 0.10127 + ], + [ + -0.06816, + 0.03967, + -0.0538 + ], + [ + 0.02766, + 0.0149, + 0.10554 + ], + [ + -0.06062, + 0.17917, + -0.00931 + ], + [ + 0.02545, + 0.07577, + -0.01077 + ], + [ + 0.02064, + 0.17146, + -0.00919 + ], + [ + -0.01052, + 0.07381, + 0.06791 + ], + [ + -0.02294, + 0.12076, + -0.04708 + ], + [ + -0.02819, + 0.03178, + 0.01218 + ], + [ + 0.03393, + 0.12386, + 0.04969 + ] + ], + [ + [ + -0.06232, + 0.2295, + -0.0027 + ], + [ + 0.05055, + 0.00527, + 0.08341 + ], + [ + -0.0638, + 0.04837, + -0.02066 + ], + [ + 0.02712, + 0.1478, + 0.07029 + ], + [ + -0.04658, + 0.13861, + 0.00766 + ], + [ + 0.01496, + 0.01533, + -0.01238 + ], + [ + 0.01774, + 0.10913, + -0.00653 + ], + [ + 0.0009, + 0.19854, + 0.00075 + ], + [ + 0.01654, + 0.05632, + 0.03637 + ], + [ + -0.02986, + 0.09482, + -0.00924 + ] + ] + ], + "neighbours": [ + { + "J_Sec_Hair2_07": 8.387276555993644 + }, + { + "J_Sec_Hair1_07": 8.387276555993644 + } + ] + }, + { + "class": "hair", + "root_parent": "Head", + "bones": [ + "J_Sec_Hair1_08", + "J_Sec_Hair2_08", + "J_Sec_Hair3_08", + "J_Sec_Hair4_08" + ], + "tips": [ + [ + -0.0, + 0.4484, + -0.0 + ], + [ + -0.0, + 0.45058, + -0.0 + ], + [ + -0.0, + 0.45088, + -0.0 + ], + [ + 0.06856, + 0.41454, + 0.28126 + ] + ], + "hulls": [ + [ + [ + -0.30561, + 0.45896, + 0.04852 + ], + [ + 0.27358, + 0.01398, + 0.01529 + ], + [ + -0.2397, + -0.00088, + 0.03466 + ], + [ + 0.13601, + 0.43669, + -0.00605 + ], + [ + 0.02976, + 0.17673, + 0.13792 + ], + [ + -0.18885, + 0.25379, + -0.05246 + ], + [ + -0.09161, + 0.39157, + 0.12423 + ], + [ + 0.26957, + 0.2445, + -0.00455 + ], + [ + 0.01242, + 0.00153, + 0.01039 + ], + [ + 0.15512, + 0.35123, + 0.16179 + ] + ], + [ + [ + -0.39137, + 0.43685, + -0.00457 + ], + [ + 0.29538, + 0.05297, + 0.04624 + ], + [ + -0.18377, + 0.00373, + 0.09429 + ], + [ + 0.14142, + 0.42686, + 0.26603 + ], + [ + 0.03116, + 0.23743, + 0.00994 + ], + [ + 0.28106, + 0.43336, + -0.021 + ], + [ + -0.19905, + 0.32519, + 0.21259 + ], + [ + -0.33851, + 0.17608, + -0.03686 + ], + [ + -0.1304, + 0.43552, + -0.01005 + ], + [ + 0.04921, + 0.04297, + 0.16624 + ] + ], + [ + [ + 0.31564, + 0.51941, + 0.24352 + ], + [ + -0.4024, + 0.01923, + -0.00149 + ], + [ + 0.28266, + 0.02971, + -0.0152 + ], + [ + -0.21378, + 0.45457, + 0.23382 + ], + [ + -0.04398, + 0.02826, + 0.26246 + ], + [ + 0.09935, + 0.33826, + 0.00182 + ], + [ + -0.51489, + 0.32827, + 0.11295 + ], + [ + 0.25435, + 0.21405, + 0.25001 + ], + [ + -0.17792, + 0.22781, + 0.00393 + ], + [ + 0.03024, + 0.34581, + 0.26545 + ] + ], + [ + [ + -0.46123, + 0.21427, + 0.22503 + ], + [ + 0.40725, + 0.37305, + -0.01867 + ], + [ + 0.06145, + -0.05132, + 0.25919 + ], + [ + -0.06744, + 0.41233, + 0.01445 + ], + [ + 0.3766, + -0.03946, + 0.03895 + ], + [ + -0.18003, + 0.03332, + 0.04701 + ], + [ + 0.11189, + 0.27147, + 0.2613 + ], + [ + -0.17493, + 0.29239, + 0.29856 + ], + [ + 0.14603, + 0.15083, + 0.00786 + ], + [ + -0.24578, + 0.02817, + 0.3072 + ] + ] + ], + "neighbours": [ + { + "J_Sec_Hair2_08": 84.55824972109777 + }, + { + "J_Sec_Hair1_08": 84.55824972109777, + "J_Sec_Hair3_08": 86.75028206731109 + }, + { + "J_Sec_Hair4_08": 87.00580237252505, + "J_Sec_Hair2_08": 86.75028206731109 + }, + { + "J_Sec_Hair3_08": 87.00580237252505 + } + ] + }, + { + "class": "hair", + "root_parent": "Head", + "bones": [ + "J_Sec_Hair1_09", + "J_Sec_Hair2_09", + "J_Sec_Hair3_09", + "J_Sec_Hair4_09" + ], + "tips": [ + [ + 0.0, + 0.4504, + 0.0 + ], + [ + 0.0, + 0.44739, + 0.0 + ], + [ + 0.0, + 0.44959, + 0.0 + ], + [ + -0.27432, + 0.58888, + 0.16117 + ] + ], + "hulls": [ + [ + [ + -0.28438, + 0.47107, + 0.20579 + ], + [ + 0.05209, + 0.02956, + -0.19388 + ], + [ + -0.16264, + 0.02227, + 0.22503 + ], + [ + -0.09705, + 0.43194, + -0.20724 + ], + [ + -0.01701, + 0.31943, + 0.08756 + ], + [ + -0.18365, + 0.16814, + -0.14643 + ], + [ + -0.25345, + 0.24513, + 0.11073 + ], + [ + -0.02347, + 0.06617, + 0.04353 + ], + [ + 0.07976, + 0.29127, + -0.17225 + ], + [ + -0.16634, + 0.45435, + 0.04176 + ] + ], + [ + [ + -0.37512, + 0.44713, + 0.17017 + ], + [ + 0.12345, + 0.03225, + -0.14097 + ], + [ + -0.2256, + -0.01577, + 0.1733 + ], + [ + -0.08658, + 0.43353, + -0.16681 + ], + [ + -0.06829, + 0.24528, + 0.08554 + ], + [ + -0.16512, + 0.12466, + -0.19884 + ], + [ + 0.13143, + 0.40807, + -0.00862 + ], + [ + -0.31702, + 0.25772, + -0.00895 + ], + [ + -0.07047, + 0.00962, + 0.00769 + ], + [ + 0.02445, + 0.25684, + -0.13267 + ] + ], + [ + [ + -0.45478, + 0.39909, + 0.15102 + ], + [ + 0.15868, + 0.02054, + -0.08618 + ], + [ + -0.33289, + -0.01496, + -0.05022 + ], + [ + 0.0199, + 0.44565, + 0.02737 + ], + [ + -0.25988, + 0.31748, + -0.10597 + ], + [ + -0.09569, + 0.13674, + 0.09789 + ], + [ + -0.03946, + 0.18458, + -0.15987 + ], + [ + -0.41833, + 0.13849, + 0.13964 + ], + [ + -0.21358, + 0.34463, + 0.15775 + ], + [ + 0.17694, + 0.27369, + -0.08447 + ] + ], + [ + [ + -0.39932, + 0.52168, + 0.30937 + ], + [ + 0.14105, + 0.04215, + -0.15308 + ], + [ + -0.2636, + 0.01466, + 0.26982 + ], + [ + -0.00913, + 0.49202, + -0.0559 + ], + [ + -0.16879, + 0.15532, + -0.03854 + ], + [ + -0.12843, + 0.33076, + 0.24491 + ], + [ + -0.39598, + 0.30824, + 0.10678 + ], + [ + -0.36593, + 0.56439, + 0.02983 + ], + [ + 0.08624, + 0.24417, + 0.00414 + ], + [ + -0.03737, + 0.0521, + 0.15515 + ] + ] + ], + "neighbours": [ + { + "J_Sec_Hair2_09": 78.90760830260274 + }, + { + "J_Sec_Hair1_09": 78.90760830260274, + "J_Sec_Hair3_09": 79.41734449788348 + }, + { + "J_Sec_Hair4_09": 75.41101903626877, + "J_Sec_Hair2_09": 79.41734449788348 + }, + { + "J_Sec_Hair3_09": 75.41101903626877 + } + ] + }, + { + "class": "hair", + "root_parent": "Head", + "bones": [ + "J_Sec_Hair1_10", + "J_Sec_Hair2_10", + "J_Sec_Hair3_10", + "J_Sec_Hair4_10" + ], + "tips": [ + [ + 0.0, + 0.47332, + -0.0 + ], + [ + -0.0, + 0.47073, + -0.0 + ], + [ + 0.0, + 0.47288, + 0.0 + ], + [ + 0.22602, + 0.61274, + 0.10067 + ] + ], + "hulls": [ + [ + [ + 0.18077, + 0.47731, + -0.18119 + ], + [ + 0.06787, + 0.00853, + 0.19382 + ], + [ + -0.02113, + 0.09323, + -0.2118 + ], + [ + 0.17566, + 0.40583, + 0.18377 + ], + [ + -0.09678, + 0.37162, + -0.0954 + ], + [ + 0.14964, + 0.24161, + -0.0546 + ], + [ + -0.04655, + 0.06776, + 0.00735 + ], + [ + 0.22101, + 0.15549, + 0.13301 + ], + [ + 0.00905, + 0.29716, + 0.09358 + ], + [ + 0.11489, + 0.42991, + -0.00726 + ] + ], + [ + [ + 0.30631, + 0.48093, + -0.00228 + ], + [ + -0.1194, + 0.04685, + -0.17181 + ], + [ + 0.19604, + -0.00397, + 0.15273 + ], + [ + -0.15218, + 0.42435, + -0.03701 + ], + [ + 0.17267, + 0.24478, + -0.1935 + ], + [ + 0.11202, + 0.30075, + 0.11453 + ], + [ + 0.07806, + 0.44881, + -0.10016 + ], + [ + 0.29375, + 0.16718, + 0.01605 + ], + [ + 0.14902, + 0.02449, + -0.12039 + ], + [ + -0.01624, + 0.12069, + 0.02256 + ] + ], + [ + [ + 0.41409, + 0.39957, + -0.09052 + ], + [ + -0.18235, + 0.03764, + -0.10022 + ], + [ + 0.26176, + -0.01005, + 0.12052 + ], + [ + -0.06114, + 0.47471, + 0.00376 + ], + [ + 0.14259, + 0.17242, + -0.17004 + ], + [ + 0.20735, + 0.3115, + 0.14406 + ], + [ + -0.01304, + 0.20912, + 0.03708 + ], + [ + 0.14656, + 0.41243, + -0.1042 + ], + [ + 0.34696, + 0.15113, + -0.07191 + ], + [ + -0.175, + 0.2941, + -0.0837 + ] + ], + [ + [ + 0.37956, + 0.57778, + 0.03076 + ], + [ + -0.13405, + 0.02451, + -0.13434 + ], + [ + 0.23259, + 0.09825, + 0.28538 + ], + [ + -0.02689, + 0.44125, + -0.07193 + ], + [ + 0.20504, + 0.05451, + -0.07925 + ], + [ + 0.20793, + 0.43887, + 0.27931 + ], + [ + 0.41433, + 0.27788, + 0.10857 + ], + [ + 0.01113, + 0.24433, + 0.13666 + ], + [ + 0.22519, + 0.37064, + 0.00799 + ], + [ + 0.06119, + 0.0232, + 0.14819 + ] + ] + ], + "neighbours": [ + { + "J_Sec_Hair2_10": 62.44316311540696 + }, + { + "J_Sec_Hair1_10": 62.44316311540696, + "J_Sec_Hair3_10": 63.04460060622763 + }, + { + "J_Sec_Hair2_10": 63.04460060622763, + "J_Sec_Hair4_10": 60.580090488886825 + }, + { + "J_Sec_Hair3_10": 60.580090488886825 + } + ] + }, + { + "class": "hair", + "root_parent": "Head", + "bones": [ + "J_Sec_Hair1_11", + "J_Sec_Hair2_11", + "J_Sec_Hair3_11" + ], + "tips": [ + [ + 0.0, + 0.41625, + -0.0 + ], + [ + -0.0, + 0.41705, + -0.0 + ], + [ + 0.01975, + 0.43345, + -0.0549 + ] + ], + "hulls": [ + [ + [ + -0.05218, + 0.41347, + 0.04055 + ], + [ + 0.03177, + -0.00215, + -0.03525 + ], + [ + 0.05281, + 0.22688, + -0.07803 + ], + [ + -0.04312, + 0.15373, + 0.04853 + ], + [ + 0.04807, + 0.40192, + -0.10172 + ], + [ + -0.05799, + 0.3071, + -0.09105 + ], + [ + -0.02007, + 0.28454, + 0.04857 + ], + [ + -0.05505, + 0.09475, + -0.06273 + ], + [ + -0.03984, + 0.02599, + 0.05062 + ], + [ + -0.04777, + 0.20882, + -0.04542 + ] + ], + [ + [ + 0.0335, + 0.42533, + 0.059 + ], + [ + -0.07896, + 0.01346, + -0.0795 + ], + [ + -0.06451, + 0.25664, + -0.103 + ], + [ + 0.00506, + 0.16691, + 0.0594 + ], + [ + 0.10342, + 0.322, + -0.06778 + ], + [ + 0.04654, + 0.11855, + -0.11069 + ], + [ + -0.07462, + 0.38391, + -0.04358 + ], + [ + 0.00894, + 0.03726, + 0.02739 + ], + [ + 0.0153, + 0.29673, + 0.03412 + ], + [ + -0.08764, + 0.14273, + -0.07676 + ] + ], + [ + [ + -0.08371, + 0.39845, + -0.06629 + ], + [ + 0.09888, + 0.01185, + -0.0626 + ], + [ + 0.06292, + 0.24178, + 0.06504 + ], + [ + -0.10335, + 0.02984, + -0.04318 + ], + [ + 0.121, + 0.18905, + -0.09701 + ], + [ + -0.05214, + 0.19389, + -0.0401 + ], + [ + 0.0448, + 0.07149, + 0.05703 + ], + [ + 0.01522, + 0.36661, + 0.02339 + ], + [ + 0.0443, + 0.29237, + -0.07533 + ], + [ + 0.03699, + 0.1027, + -0.09551 + ] + ] + ], + "neighbours": [ + { + "J_Sec_Hair2_11": 38.39318372494317 + }, + { + "J_Sec_Hair1_11": 38.39318372494317, + "J_Sec_Hair3_11": 38.646242415686416 + }, + { + "J_Sec_Hair2_11": 38.646242415686416 + } + ] + }, + { + "class": "hair", + "root_parent": "Head", + "bones": [ + "J_Sec_Hair1_12", + "J_Sec_Hair2_12", + "J_Sec_Hair3_12" + ], + "tips": [ + [ + 0.0, + 0.4231, + -0.0 + ], + [ + 0.0, + 0.42393, + 0.0 + ], + [ + -0.01853, + 0.42829, + -0.05765 + ] + ], + "hulls": [ + [ + [ + -0.04897, + 0.41696, + -0.10284 + ], + [ + 0.03355, + 0.02915, + 0.05755 + ], + [ + 0.06137, + 0.24279, + -0.02321 + ], + [ + 0.04967, + 0.41749, + 0.04582 + ], + [ + -0.05423, + 0.11301, + -0.06107 + ], + [ + -0.05612, + 0.29021, + -0.06077 + ], + [ + 0.00571, + 0.15956, + 0.05422 + ], + [ + 0.05643, + 0.35235, + -0.08243 + ], + [ + 0.05285, + 0.06806, + -0.06063 + ], + [ + 0.00115, + 0.33161, + 0.01545 + ] + ], + [ + [ + 0.02286, + 0.42359, + 0.08787 + ], + [ + -0.04479, + 0.01488, + -0.08559 + ], + [ + 0.08707, + 0.2424, + -0.08143 + ], + [ + -0.10175, + 0.36172, + -0.0585 + ], + [ + 0.03806, + 0.12152, + 0.06415 + ], + [ + -0.07421, + 0.18773, + -0.07202 + ], + [ + 0.06401, + 0.39442, + -0.08826 + ], + [ + -0.00933, + 0.28697, + 0.02684 + ], + [ + 0.07358, + 0.08769, + -0.10203 + ], + [ + 0.05864, + 0.02867, + 0.00668 + ] + ], + [ + [ + 0.0723, + 0.40647, + -0.04364 + ], + [ + -0.09043, + -0.00774, + -0.05388 + ], + [ + -0.06249, + 0.20278, + 0.08036 + ], + [ + 0.10805, + 0.03552, + -0.02907 + ], + [ + -0.07139, + 0.28655, + -0.12501 + ], + [ + -0.02577, + 0.0356, + 0.09033 + ], + [ + 0.0582, + 0.19865, + -0.02788 + ], + [ + -0.04492, + 0.33234, + 0.01004 + ], + [ + -0.06003, + 0.13334, + -0.07141 + ], + [ + -0.01371, + 0.12562, + 0.02416 + ] + ] + ], + "neighbours": [ + { + "J_Sec_Hair2_12": 39.49819143834376 + }, + { + "J_Sec_Hair1_12": 39.49819143834376, + "J_Sec_Hair3_12": 39.1444003614134 + }, + { + "J_Sec_Hair2_12": 39.1444003614134 + } + ] + }, + { + "class": "hair", + "root_parent": "Head", + "bones": [ + "J_Sec_Hair1_13" + ], + "tips": [ + [ + -0.04922, + 0.38428, + 0.01987 + ] + ], + "hulls": [ + [ + [ + -0.1728, + 0.28892, + 0.01266 + ], + [ + 0.17534, + 0.16503, + -0.00874 + ], + [ + -0.08442, + 0.00104, + 0.02219 + ], + [ + 0.02968, + 0.30322, + -0.00323 + ], + [ + -0.2248, + 0.11037, + 0.03115 + ], + [ + 0.15053, + 0.287, + -0.01652 + ], + [ + 0.08457, + 0.09472, + 0.00967 + ], + [ + -0.06799, + 0.24028, + 0.01268 + ], + [ + -0.1849, + 0.17744, + 0.02477 + ], + [ + -0.15154, + 0.08483, + 0.03122 + ] + ] + ], + "neighbours": [ + {} + ] + } + ], + "twist": [], + "colliders": [ + { + "bone": "Hips", + "child": "Spine", + "from": 0.0, + "radius_head": 0.6138, + "radius_tail": 0.6138, + "radius": 0.6138, + "lid": true + }, + { + "bone": "Left leg", + "child": "Left knee", + "from": 0.1, + "radius_head": 0.4096, + "radius_tail": 0.2172, + "radius": 0.2172 + }, + { + "bone": "Right leg", + "child": "Right knee", + "from": 0.1, + "radius_head": 0.4096, + "radius_tail": 0.2172, + "radius": 0.2172 + }, + { + "bone": "Left knee", + "child": "Left ankle", + "from": 0.1, + "radius_head": 0.3512, + "radius_tail": 0.1763, + "radius": 0.1763 + }, + { + "bone": "Right knee", + "child": "Right ankle", + "from": 0.1, + "radius_head": 0.3512, + "radius_tail": 0.1763, + "radius": 0.1763 + } + ], + "weights_authored": true, + "driven_bones": [ + "Chest", + "Head", + "Hips", + "Left ankle", + "Left arm", + "Left elbow", + "Left knee", + "Left leg", + "Left shoulder", + "Left toe", + "Left wrist", + "Neck", + "Right ankle", + "Right arm", + "Right elbow", + "Right knee", + "Right leg", + "Right shoulder", + "Right toe", + "Right wrist", + "Spine" + ] +} \ No newline at end of file diff --git a/assets/characters/skins/aria_Image_0.png b/assets/characters/skins/aria_Image_0.png new file mode 100644 index 0000000..9f09547 Binary files /dev/null and b/assets/characters/skins/aria_Image_0.png differ diff --git a/assets/characters/skins/aria_Image_1.png b/assets/characters/skins/aria_Image_1.png new file mode 100644 index 0000000..c350b42 Binary files /dev/null and b/assets/characters/skins/aria_Image_1.png differ diff --git a/assets/characters/skins/aria_Image_10.png b/assets/characters/skins/aria_Image_10.png new file mode 100644 index 0000000..0ca5d26 Binary files /dev/null and b/assets/characters/skins/aria_Image_10.png differ diff --git a/assets/characters/skins/aria_Image_11.png b/assets/characters/skins/aria_Image_11.png new file mode 100644 index 0000000..6e597e3 Binary files /dev/null and b/assets/characters/skins/aria_Image_11.png differ diff --git a/assets/characters/skins/aria_Image_12.png b/assets/characters/skins/aria_Image_12.png new file mode 100644 index 0000000..74abd9e Binary files /dev/null and b/assets/characters/skins/aria_Image_12.png differ diff --git a/assets/characters/skins/aria_Image_13.png b/assets/characters/skins/aria_Image_13.png new file mode 100644 index 0000000..34f55cf Binary files /dev/null and b/assets/characters/skins/aria_Image_13.png differ diff --git a/assets/characters/skins/aria_Image_14.png b/assets/characters/skins/aria_Image_14.png new file mode 100644 index 0000000..01ef27b Binary files /dev/null and b/assets/characters/skins/aria_Image_14.png differ diff --git a/assets/characters/skins/aria_Image_2.png b/assets/characters/skins/aria_Image_2.png new file mode 100644 index 0000000..65949ca Binary files /dev/null and b/assets/characters/skins/aria_Image_2.png differ diff --git a/assets/characters/skins/aria_Image_3.png b/assets/characters/skins/aria_Image_3.png new file mode 100644 index 0000000..8a3c4a2 Binary files /dev/null and b/assets/characters/skins/aria_Image_3.png differ diff --git a/assets/characters/skins/aria_Image_4.png b/assets/characters/skins/aria_Image_4.png new file mode 100644 index 0000000..4db5f8c Binary files /dev/null and b/assets/characters/skins/aria_Image_4.png differ diff --git a/assets/characters/skins/aria_Image_5.png b/assets/characters/skins/aria_Image_5.png new file mode 100644 index 0000000..1c38583 Binary files /dev/null and b/assets/characters/skins/aria_Image_5.png differ diff --git a/assets/characters/skins/aria_Image_6.png b/assets/characters/skins/aria_Image_6.png new file mode 100644 index 0000000..c9b6829 Binary files /dev/null and b/assets/characters/skins/aria_Image_6.png differ diff --git a/assets/characters/skins/aria_Image_7.png b/assets/characters/skins/aria_Image_7.png new file mode 100644 index 0000000..4647df8 Binary files /dev/null and b/assets/characters/skins/aria_Image_7.png differ diff --git a/assets/characters/skins/aria_Image_8.png b/assets/characters/skins/aria_Image_8.png new file mode 100644 index 0000000..07fcff7 Binary files /dev/null and b/assets/characters/skins/aria_Image_8.png differ diff --git a/assets/characters/skins/aria_Image_9.png b/assets/characters/skins/aria_Image_9.png new file mode 100644 index 0000000..011b6bb Binary files /dev/null and b/assets/characters/skins/aria_Image_9.png differ diff --git a/assets/characters/skins/hikari.glb b/assets/characters/skins/hikari.glb new file mode 100644 index 0000000..cebfc7f Binary files /dev/null and b/assets/characters/skins/hikari.glb differ diff --git a/assets/characters/skins/hikari.license.json b/assets/characters/skins/hikari.license.json new file mode 100644 index 0000000..f7c92f1 --- /dev/null +++ b/assets/characters/skins/hikari.license.json @@ -0,0 +1,9 @@ +{ + "name": "school anime girl (rigged)", + "uid": "6eaf44ff6ef7461583a5eccc301b88fc", + "author": "hikari", + "author_url": "https://sketchfab.com/hikari0135", + "license": "CC Attribution", + "license_slug": "by", + "source_url": "https://sketchfab.com/3d-models/school-anime-girl-rigged-6eaf44ff6ef7461583a5eccc301b88fc" +} \ No newline at end of file diff --git a/assets/characters/skins/hikari.rig.json b/assets/characters/skins/hikari.rig.json new file mode 100644 index 0000000..080b67d --- /dev/null +++ b/assets/characters/skins/hikari.rig.json @@ -0,0 +1,731 @@ +{ + "roles": { + "hips": "Hips", + "head": "Bone.003_end", + "neck": "Neck", + "spine": [ + "Spine", + "Chest", + "Upper Chest", + "Neck", + "Head", + "Bone.003", + "Bone.003_end" + ], + "shoulder.R": "Right shoulder", + "shoulder.L": "Left shoulder", + "foot.R": "Right ankle", + "foot.L": "Left ankle", + "hand.R": "Right wrist", + "hand.L": "Left wrist", + "forearm.R": "Right elbow", + "forearm.L": "Left elbow", + "shin.R": "Right knee", + "shin.L": "Left knee", + "toe.R": "Right toe", + "toe.L": "Left toe_end", + "upper_arm.R": "Right arm", + "upper_arm.L": "Left arm", + "thigh.L": "Left leg", + "thigh.R": "Right leg" + }, + "chains": [ + { + "class": "breast", + "root_parent": "Upper Chest", + "bones": [ + "Breast_L", + "J_Sec_L_Bust2", + "J_Sec_L_Bust2_end" + ], + "tips": [ + [ + -0.0, + 0.0, + 0.0 + ], + [ + 2e-05, + 5e-05, + -0.0 + ], + [ + 2e-05, + 5e-05, + -0.0 + ] + ], + "hulls": [ + [], + [], + [] + ], + "neighbours": [ + {}, + {}, + {} + ] + }, + { + "class": "breast", + "root_parent": "Upper Chest", + "bones": [ + "Breast_R", + "J_Sec_R_Bust2", + "J_Sec_R_Bust2_end" + ], + "tips": [ + [ + 0.0, + 0.0, + -0.0 + ], + [ + -3e-05, + 5e-05, + -1e-05 + ], + [ + -3e-05, + 5e-05, + -1e-05 + ] + ], + "hulls": [ + [], + [], + [] + ], + "neighbours": [ + {}, + {}, + {} + ] + }, + { + "class": "hair", + "root_parent": "Head", + "bones": [ + "J_Sec_Hair1_01", + "J_Sec_Hair2_01", + "J_Sec_Hair2_01_end" + ], + "tips": [ + [ + -0.0, + -0.0, + -0.0 + ], + [ + 3e-05, + 3e-05, + -4e-05 + ], + [ + 3e-05, + 3e-05, + -4e-05 + ] + ], + "hulls": [ + [ + [ + -0.0, + -0.0, + -0.0 + ] + ], + [ + [ + -0.0, + 0.0, + 0.0 + ] + ], + [] + ], + "neighbours": [ + { + "J_Sec_Hair2_01": 14.335576471341188 + }, + { + "J_Sec_Hair1_01": 14.335576471341188 + }, + {} + ] + }, + { + "class": "hair", + "root_parent": "Head", + "bones": [ + "J_Sec_Hair1_02", + "J_Sec_Hair2_02", + "J_Sec_Hair2_02_end" + ], + "tips": [ + [ + 0.0, + 0.0, + -0.0 + ], + [ + 0.0, + 2e-05, + -5e-05 + ], + [ + 0.0, + 2e-05, + -5e-05 + ] + ], + "hulls": [ + [ + [ + -0.0, + 0.0, + -0.0 + ] + ], + [ + [ + -0.0, + 0.0, + -0.0 + ] + ], + [] + ], + "neighbours": [ + { + "J_Sec_Hair2_02": 13.644314260335037 + }, + { + "J_Sec_Hair1_02": 13.644314260335037 + }, + {} + ] + }, + { + "class": "hair", + "root_parent": "Head", + "bones": [ + "J_Sec_Hair1_03", + "J_Sec_Hair2_03", + "J_Sec_Hair2_03_end" + ], + "tips": [ + [ + 0.0, + 0.0, + -0.0 + ], + [ + 1e-05, + -0.0, + -6e-05 + ], + [ + 1e-05, + -0.0, + -6e-05 + ] + ], + "hulls": [ + [ + [ + 0.0, + 0.0, + 0.0 + ] + ], + [ + [ + -0.0, + 0.0, + 0.0 + ] + ], + [] + ], + "neighbours": [ + { + "J_Sec_Hair2_03": 29.697010893706615 + }, + { + "J_Sec_Hair1_03": 29.697010893706615 + }, + {} + ] + }, + { + "class": "hair", + "root_parent": "Head", + "bones": [ + "J_Sec_Hair1_04", + "J_Sec_Hair2_04", + "J_Sec_Hair2_04_end" + ], + "tips": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + 2e-05, + 1e-05, + -6e-05 + ], + [ + 2e-05, + 1e-05, + -6e-05 + ] + ], + "hulls": [ + [ + [ + -0.0, + -0.0, + 0.0 + ] + ], + [ + [ + 0.0, + 0.0, + -0.0 + ] + ], + [] + ], + "neighbours": [ + { + "J_Sec_Hair2_04": 11.592366459380674 + }, + { + "J_Sec_Hair1_04": 11.592366459380674 + }, + {} + ] + }, + { + "class": "hair", + "root_parent": "Head", + "bones": [ + "J_Sec_Hair1_05", + "J_Sec_Hair2_05", + "J_Sec_Hair2_05_end" + ], + "tips": [ + [ + 0.0, + 0.0, + -0.0 + ], + [ + 1e-05, + 2e-05, + -6e-05 + ], + [ + 1e-05, + 2e-05, + -6e-05 + ] + ], + "hulls": [ + [ + [ + 0.0, + 0.0, + -0.0 + ] + ], + [ + [ + -0.0, + 0.0, + -0.0 + ] + ], + [] + ], + "neighbours": [ + { + "J_Sec_Hair2_05": 11.876289952662745 + }, + { + "J_Sec_Hair1_05": 11.876289952662745 + }, + {} + ] + }, + { + "class": "hair", + "root_parent": "Head", + "bones": [ + "J_Sec_Hair1_06", + "J_Sec_Hair2_06", + "J_Sec_Hair3_06", + "J_Sec_Hair4_06", + "J_Sec_Hair5_06", + "J_Sec_Hair5_06_end" + ], + "tips": [ + [ + -0.0, + 0.0, + -0.0 + ], + [ + -0.0, + 0.0, + 0.0 + ], + [ + -0.0, + 0.0, + 0.0 + ], + [ + -0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 3e-05, + -5e-05 + ], + [ + 0.0, + 3e-05, + -5e-05 + ] + ], + "hulls": [ + [ + [ + 0.0, + 0.0, + -0.0 + ] + ], + [ + [ + -0.0, + 0.0, + 0.0 + ] + ], + [ + [ + -0.0, + 0.0, + -0.0 + ] + ], + [ + [ + -0.0, + 0.0, + 0.0 + ] + ], + [ + [ + -0.0, + 0.0, + 0.0 + ] + ], + [] + ], + "neighbours": [ + { + "J_Sec_Hair2_06": 35.917357232526754 + }, + { + "J_Sec_Hair3_06": 35.52913589468082, + "J_Sec_Hair1_06": 35.917357232526754 + }, + { + "J_Sec_Hair4_06": 40.302343821289796, + "J_Sec_Hair2_06": 35.52913589468082 + }, + { + "J_Sec_Hair3_06": 40.302343821289796, + "J_Sec_Hair5_06": 40.950213036078026 + }, + { + "J_Sec_Hair4_06": 40.950213036078026 + }, + {} + ] + }, + { + "class": "hair", + "root_parent": "Head", + "bones": [ + "J_Sec_Hair1_07", + "J_Sec_Hair2_07", + "J_Sec_Hair3_07", + "J_Sec_Hair4_07", + "J_Sec_Hair5_07", + "J_Sec_Hair5_07_end" + ], + "tips": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + -0.0, + 0.0, + -0.0 + ], + [ + -0.0, + 0.0, + 0.0 + ], + [ + -0.0, + 0.0, + 0.0 + ], + [ + 3e-05, + 3e-05, + -3e-05 + ], + [ + 3e-05, + 3e-05, + -3e-05 + ] + ], + "hulls": [ + [ + [ + 0.0, + 0.0, + -0.0 + ] + ], + [ + [ + -0.0, + 0.0, + -0.0 + ] + ], + [ + [ + 0.0, + 0.0, + 0.0 + ] + ], + [ + [ + -0.0, + 0.0, + 0.0 + ] + ], + [ + [ + 0.0, + 0.0, + -0.0 + ] + ], + [] + ], + "neighbours": [ + { + "J_Sec_Hair2_07": 35.51566362438205 + }, + { + "J_Sec_Hair3_07": 35.31215403867316, + "J_Sec_Hair1_07": 35.51566362438205 + }, + { + "J_Sec_Hair4_07": 44.27519591590416, + "J_Sec_Hair2_07": 35.31215403867316 + }, + { + "J_Sec_Hair3_07": 44.27519591590416, + "J_Sec_Hair5_07": 40.6256217681383 + }, + { + "J_Sec_Hair4_07": 40.6256217681383 + }, + {} + ] + }, + { + "class": "hair", + "root_parent": "Head", + "bones": [ + "J_Sec_Hair1_08", + "J_Sec_Hair2_08", + "J_Sec_Hair3_08", + "J_Sec_Hair3_08_end" + ], + "tips": [ + [ + 0.0, + 0.0, + 0.0 + ], + [ + -0.0, + 0.0, + 0.0 + ], + [ + 4e-05, + -4e-05, + -1e-05 + ], + [ + 4e-05, + -4e-05, + -1e-05 + ] + ], + "hulls": [ + [ + [ + -0.0, + -0.0, + 0.0 + ] + ], + [ + [ + -0.0, + 0.0, + 0.0 + ] + ], + [ + [ + -0.0, + -0.0, + 0.0 + ] + ], + [] + ], + "neighbours": [ + { + "J_Sec_Hair2_08": 2.5078807040660998 + }, + { + "J_Sec_Hair1_08": 2.5078807040660998, + "J_Sec_Hair3_08": 2.222614413427433 + }, + { + "J_Sec_Hair2_08": 2.222614413427433 + }, + {} + ] + } + ], + "twist": [ + { + "bone": "Bone.004", + "parent": "Head", + "child": "Bone.004_end" + }, + { + "bone": "Bone.005", + "parent": "Head", + "child": "Bone.005_end" + }, + { + "bone": "Bone.006", + "parent": "Head", + "child": "Bone.006_end" + }, + { + "bone": "Bone.007", + "parent": "Head", + "child": "Bone.007_end" + }, + { + "bone": "Bone.008", + "parent": "Head", + "child": "Bone.008_end" + }, + { + "bone": "Bone.009", + "parent": "Head", + "child": "Bone.009_end" + }, + { + "bone": "Bone.010", + "parent": "Head", + "child": "Bone.010_end" + }, + { + "bone": "Bone.011", + "parent": "Head", + "child": "Bone.011_end" + }, + { + "bone": "Bone.012", + "parent": "Head", + "child": "Bone.012_end" + }, + { + "bone": "Bone.013", + "parent": "Head", + "child": "Bone.013_end" + }, + { + "bone": "Bone.001", + "parent": "Upper Chest", + "child": "Bone.001_end" + }, + { + "bone": "Bone.002", + "parent": "Upper Chest", + "child": "Bone.002_end" + } + ], + "colliders": [], + "weights_authored": true, + "driven_bones": [ + "Bone.003", + "Bone.003_end", + "Chest", + "Head", + "Hips", + "Left ankle", + "Left arm", + "Left elbow", + "Left knee", + "Left leg", + "Left shoulder", + "Left toe_end", + "Left wrist", + "Neck", + "Right ankle", + "Right arm", + "Right elbow", + "Right knee", + "Right leg", + "Right shoulder", + "Right toe", + "Right wrist", + "Spine", + "Upper Chest" + ] +} \ No newline at end of file diff --git a/assets/characters/skins/hikari_Image_0.jpg b/assets/characters/skins/hikari_Image_0.jpg new file mode 100644 index 0000000..b800bc9 Binary files /dev/null and b/assets/characters/skins/hikari_Image_0.jpg differ diff --git a/assets/characters/skins/hikari_Image_1.jpg b/assets/characters/skins/hikari_Image_1.jpg new file mode 100644 index 0000000..83bfa3d Binary files /dev/null and b/assets/characters/skins/hikari_Image_1.jpg differ diff --git a/assets/characters/skins/hikari_Image_2.jpg b/assets/characters/skins/hikari_Image_2.jpg new file mode 100644 index 0000000..a12bafb Binary files /dev/null and b/assets/characters/skins/hikari_Image_2.jpg differ diff --git a/assets/characters/skins/hikari_Image_3.jpg b/assets/characters/skins/hikari_Image_3.jpg new file mode 100644 index 0000000..6062980 Binary files /dev/null and b/assets/characters/skins/hikari_Image_3.jpg differ diff --git a/assets/characters/skins/hikari_Image_4.jpg b/assets/characters/skins/hikari_Image_4.jpg new file mode 100644 index 0000000..dcb75de Binary files /dev/null and b/assets/characters/skins/hikari_Image_4.jpg differ diff --git a/assets/characters/skins/kiyoko.glb b/assets/characters/skins/kiyoko.glb new file mode 100644 index 0000000..68cbe01 Binary files /dev/null and b/assets/characters/skins/kiyoko.glb differ diff --git a/assets/characters/skins/kiyoko.license.json b/assets/characters/skins/kiyoko.license.json new file mode 100644 index 0000000..e6a893e --- /dev/null +++ b/assets/characters/skins/kiyoko.license.json @@ -0,0 +1,9 @@ +{ + "name": "Kiyoko School Girl", + "uid": "072667d7b2b3468e9baff483b27c3a09", + "author": "Kasujin", + "author_url": "https://sketchfab.com/Kasujin", + "license": "CC Attribution", + "license_slug": "by", + "source_url": "https://sketchfab.com/3d-models/kiyoko-school-girl-072667d7b2b3468e9baff483b27c3a09" +} \ No newline at end of file diff --git a/assets/characters/skins/kiyoko.rig.json b/assets/characters/skins/kiyoko.rig.json new file mode 100644 index 0000000..7c5a3b1 --- /dev/null +++ b/assets/characters/skins/kiyoko.rig.json @@ -0,0 +1,3071 @@ +{ + "roles": { + "hips": "J_Bip_C_Hips", + "head": "J_Adj_L_FaceEye", + "neck": "J_Bip_C_Neck", + "spine": [ + "J_Bip_C_Spine", + "J_Bip_C_Chest", + "J_Bip_C_UpperChest", + "J_Bip_C_Neck", + "J_Bip_C_Head", + "J_Adj_L_FaceEye" + ], + "shin.R": "J_Bip_R_LowerLeg", + "shin.L": "J_Bip_L_LowerLeg", + "thigh.R": "J_Bip_R_UpperLeg", + "thigh.L": "J_Bip_L_UpperLeg", + "shoulder.R": "J_Bip_R_Shoulder", + "shoulder.L": "J_Bip_L_Shoulder", + "forearm.R": "J_Bip_R_LowerArm", + "forearm.L": "J_Bip_L_LowerArm", + "upper_arm.R": "J_Bip_R_UpperArm", + "upper_arm.L": "J_Bip_L_UpperArm", + "toe.L": "J_Bip_L_ToeBase", + "toe.R": "J_Bip_R_ToeBase", + "foot.R": "J_Bip_R_Foot", + "foot.L": "J_Bip_L_Foot", + "hand.L": "J_Bip_L_Hand", + "hand.R": "J_Bip_R_Hand" + }, + "chains": [ + { + "class": "bust", + "root_parent": "J_Bip_C_UpperChest", + "bones": [ + "J_Sec_L_Bust1", + "J_Sec_L_Bust2" + ], + "tips": [ + [ + -0.02822, + 0.05487, + 0.00675 + ], + [ + -0.02822, + 0.05487, + 0.00675 + ] + ], + "hulls": [ + [ + [ + -0.06907, + 0.01709, + 0.03093 + ], + [ + 0.01313, + 0.06773, + -0.02415 + ], + [ + -0.0464, + 0.04364, + -0.02388 + ], + [ + -0.01596, + 0.05683, + 0.03057 + ], + [ + -0.04145, + 0.02998, + 0.04945 + ], + [ + -0.05482, + 0.0409, + 0.01062 + ], + [ + 0.01149, + 0.06713, + 0.01269 + ], + [ + -0.01336, + 0.06822, + -0.00635 + ], + [ + -0.00726, + 0.05979, + -0.04593 + ], + [ + -0.03102, + 0.0483, + -0.04574 + ] + ], + [] + ], + "neighbours": [ + { + "J_Sec_L_Bust2": 1.1574203600849464, + "J_Sec_R_Bust1": 0.11661945163003545 + }, + { + "J_Sec_L_Bust1": 1.1574203600849464 + } + ] + }, + { + "class": "bust", + "root_parent": "J_Bip_C_UpperChest", + "bones": [ + "J_Sec_R_Bust1", + "J_Sec_R_Bust2" + ], + "tips": [ + [ + 0.02822, + 0.05487, + 0.00675 + ], + [ + 0.02822, + 0.05487, + 0.00675 + ] + ], + "hulls": [ + [ + [ + 0.06907, + 0.01709, + 0.03093 + ], + [ + -0.01313, + 0.06773, + -0.02415 + ], + [ + 0.0464, + 0.04364, + -0.02388 + ], + [ + 0.01596, + 0.05683, + 0.03057 + ], + [ + 0.04145, + 0.02998, + 0.04945 + ], + [ + 0.05482, + 0.0409, + 0.01062 + ], + [ + -0.01149, + 0.06713, + 0.01269 + ], + [ + 0.01336, + 0.06822, + -0.00635 + ], + [ + 0.00726, + 0.05979, + -0.04593 + ], + [ + 0.03102, + 0.0483, + -0.04574 + ] + ], + [] + ], + "neighbours": [ + { + "J_Sec_R_Bust2": 1.1574203600849464, + "J_Sec_L_Bust1": 0.11661945163003545 + }, + { + "J_Sec_R_Bust1": 1.1574203600849464 + } + ] + }, + { + "class": "hair", + "root_parent": "J_Bip_C_Head", + "bones": [ + "J_Sec_Hair1_01", + "J_Sec_Hair2_01", + "J_Sec_Hair3_01" + ], + "tips": [ + [ + -0.00179, + 0.03486, + 0.00055 + ], + [ + -0.01116, + 0.03272, + 0.00086 + ], + [ + -0.01116, + 0.03272, + 0.00086 + ] + ], + "hulls": [ + [ + [ + -0.00846, + 0.02453, + 0.00427 + ], + [ + -0.00252, + 0.00336, + -0.00789 + ], + [ + -0.00858, + 0.00443, + 0.00697 + ], + [ + -0.00097, + 0.01453, + 0.00074 + ], + [ + -0.00426, + 0.02468, + -0.00724 + ], + [ + -0.0001, + 0.00419, + 0.00175 + ], + [ + -0.0085, + 0.01455, + 0.00554 + ], + [ + -0.00327, + 0.01394, + -0.00788 + ], + [ + -0.00215, + 0.02485, + 5e-05 + ] + ], + [ + [ + -0.01247, + 0.03034, + -0.00101 + ], + [ + -0.00214, + 0.00042, + -0.00073 + ], + [ + -0.00604, + 0.0106, + -0.00492 + ], + [ + -0.00989, + 0.02021, + 0.00049 + ], + [ + -0.00806, + 0.01005, + 0.00167 + ], + [ + -0.00397, + 0.00036, + -0.00646 + ], + [ + -0.007, + -0.00021, + 0.00274 + ], + [ + -0.00467, + 0.01074, + -0.00086 + ], + [ + -0.0089, + 0.02064, + -0.00308 + ], + [ + -0.00813, + 0.02077, + -0.0009 + ] + ], + [] + ], + "neighbours": [ + { + "J_Sec_Hair2_01": 1.806053266471615 + }, + { + "J_Sec_Hair1_01": 1.806053266471615 + }, + {} + ] + }, + { + "class": "hair", + "root_parent": "J_Bip_C_Head", + "bones": [ + "J_Sec_Hair1_02", + "J_Sec_Hair2_02", + "J_Sec_Hair3_02" + ], + "tips": [ + [ + 0.0112, + 0.03153, + 0.00487 + ], + [ + -0.01067, + 0.02305, + -0.02196 + ], + [ + -0.01067, + 0.02305, + -0.02196 + ] + ], + "hulls": [ + [ + [ + 0.0016, + 0.04157, + -0.01528 + ], + [ + 0.00699, + 0.00051, + 0.01678 + ], + [ + -0.01119, + 0.0059, + -0.01882 + ], + [ + 0.00854, + 0.02338, + 0.00234 + ], + [ + 0.01364, + 0.01905, + 0.02425 + ], + [ + 0.00383, + 0.02047, + -0.01766 + ], + [ + -0.01111, + 0.0194, + -0.00462 + ], + [ + -8e-05, + 0.00405, + -0.0011 + ], + [ + -0.00373, + 0.03054, + -0.01763 + ], + [ + 0.00353, + 0.0308, + -0.00627 + ] + ], + [ + [ + -0.00745, + 0.02625, + -0.04543 + ], + [ + -0.02883, + 0.00742, + 0.0102 + ], + [ + 0.02313, + -0.00623, + -0.01403 + ], + [ + -0.00785, + 0.01457, + -0.01602 + ], + [ + 0.00493, + 0.00057, + -0.02812 + ], + [ + 0.00058, + 0.00063, + -0.00206 + ], + [ + 0.01191, + 0.00336, + -0.0137 + ], + [ + 0.0002, + 0.01312, + -0.03115 + ], + [ + 0.00719, + -0.00665, + -0.01942 + ], + [ + 0.01758, + 0.00074, + -0.02281 + ] + ], + [] + ], + "neighbours": [ + { + "J_Sec_Hair2_02": 9.416776602017269 + }, + { + "J_Sec_Hair1_02": 9.416776602017269 + }, + {} + ] + }, + { + "class": "hair", + "root_parent": "J_Bip_C_Head", + "bones": [ + "J_Sec_Hair1_03", + "J_Sec_Hair2_03", + "J_Sec_Hair3_03" + ], + "tips": [ + [ + 0.01112, + 0.04107, + 0.00338 + ], + [ + 0.00799, + 0.02983, + -0.02835 + ], + [ + 0.00799, + 0.02983, + -0.02835 + ] + ], + "hulls": [ + [ + [ + -0.0201, + 0.0489, + 0.00678 + ], + [ + 0.03387, + 0.00448, + -0.00477 + ], + [ + -0.02309, + 0.00126, + 0.00401 + ], + [ + 0.01553, + 0.03579, + 0.00278 + ], + [ + -0.0101, + 0.02591, + -0.00442 + ], + [ + 0.01098, + 0.00463, + 0.00707 + ], + [ + 0.02709, + 0.01896, + 0.00995 + ], + [ + -0.00051, + 0.04773, + 0.00211 + ], + [ + -0.00605, + 0.00842, + -0.00208 + ], + [ + -0.02312, + 0.02503, + 0.00687 + ] + ], + [ + [ + 0.01449, + 0.05794, + -0.02204 + ], + [ + -0.00187, + -0.02794, + -0.0191 + ], + [ + -0.00591, + 0.02187, + 0.00675 + ], + [ + 0.00484, + 0.01429, + -0.02831 + ], + [ + 0.00503, + -0.00808, + -0.00465 + ], + [ + 0.00022, + 0.03427, + -0.01267 + ], + [ + 0.0103, + 0.03444, + -0.03176 + ], + [ + 0.0049, + 0.01219, + -0.00826 + ], + [ + -0.00244, + -0.01093, + -0.02778 + ], + [ + 0.00672, + 0.04546, + -0.02065 + ] + ], + [] + ], + "neighbours": [ + { + "J_Sec_Hair2_03": 28.652466934563993 + }, + { + "J_Sec_Hair1_03": 28.652466934563993 + }, + {} + ] + }, + { + "class": "hair", + "root_parent": "J_Bip_C_Head", + "bones": [ + "J_Sec_Hair1_04", + "J_Sec_Hair2_04", + "J_Sec_Hair3_04" + ], + "tips": [ + [ + 0.01086, + 0.03113, + -0.00479 + ], + [ + 0.01071, + 0.02966, + -0.01083 + ], + [ + 0.01071, + 0.02966, + -0.01083 + ] + ], + "hulls": [ + [ + [ + -0.00945, + 0.03644, + 0.00941 + ], + [ + 0.02187, + -0.0017, + -0.01224 + ], + [ + 0.01478, + 0.02758, + -0.00153 + ], + [ + -0.00945, + 0.00935, + 0.00976 + ], + [ + 0.01038, + 0.00411, + 0.0024 + ], + [ + 0.02431, + 0.02073, + -0.01319 + ], + [ + -0.01538, + 0.02371, + 0.00337 + ], + [ + -0.0216, + 0.01668, + 0.01518 + ], + [ + 0.02096, + 0.01062, + -0.00436 + ], + [ + -0.00229, + 0.02614, + 0.00381 + ] + ], + [ + [ + 0.01085, + 0.03503, + -0.01287 + ], + [ + -0.00752, + 0.00495, + 0.0055 + ], + [ + 0.0142, + 0.00072, + -0.00944 + ], + [ + -0.00839, + 0.02898, + 0.00731 + ], + [ + 0.01006, + 0.01734, + -0.00898 + ], + [ + 0.00142, + 0.02481, + -0.0021 + ], + [ + 0.00507, + 0.00977, + -0.00136 + ], + [ + -0.00395, + 0.01829, + 0.00677 + ], + [ + -0.01318, + 0.01289, + 0.00909 + ], + [ + 0.00095, + 0.00791, + 0.00626 + ] + ], + [] + ], + "neighbours": [ + { + "J_Sec_Hair2_04": 9.739047031025505 + }, + { + "J_Sec_Hair1_04": 9.739047031025505 + }, + {} + ] + }, + { + "class": "hair", + "root_parent": "J_Bip_C_Head", + "bones": [ + "J_Sec_Hair1_05", + "J_Sec_Hair2_05", + "J_Sec_Hair3_05" + ], + "tips": [ + [ + -0.00267, + 0.03995, + 2e-05 + ], + [ + 0.01236, + 0.03728, + 0.00232 + ], + [ + 0.01236, + 0.03728, + 0.00232 + ] + ], + "hulls": [ + [ + [ + 0.01342, + 0.03693, + 0.01143 + ], + [ + -0.01062, + -0.00285, + -0.00904 + ], + [ + -0.01069, + 0.03266, + -0.01642 + ], + [ + 0.02722, + 0.00967, + 0.02045 + ], + [ + 0.01016, + 0.00729, + 0.00108 + ], + [ + -0.00572, + 0.02245, + 0.00357 + ], + [ + 0.01374, + 0.01868, + 0.01467 + ], + [ + -0.00023, + 0.01371, + -0.00985 + ], + [ + -0.00337, + -0.00126, + 0.00426 + ], + [ + 0.00218, + 0.0344, + 0.00068 + ] + ], + [ + [ + 0.01231, + 0.03734, + 0.00225 + ], + [ + -0.0092, + 0.00498, + -0.0157 + ], + [ + 0.02241, + 0.00086, + 0.0176 + ], + [ + 0.00663, + 0.01264, + 0.00269 + ], + [ + -0.00152, + 0.01836, + -0.00391 + ], + [ + 0.00801, + 0.0264, + 0.00212 + ], + [ + 0.00515, + 0.00107, + 0.00152 + ], + [ + 0.02508, + 0.01179, + 0.01744 + ], + [ + -0.00541, + 0.00665, + -0.00533 + ], + [ + 0.0129, + 0.00733, + 0.00845 + ] + ], + [] + ], + "neighbours": [ + { + "J_Sec_Hair2_05": 12.136693552290065 + }, + { + "J_Sec_Hair1_05": 12.136693552290065 + }, + {} + ] + }, + { + "class": "hair", + "root_parent": "J_Bip_C_Head", + "bones": [ + "J_Sec_Hair1_06", + "J_Sec_Hair2_06", + "J_Sec_Hair3_06" + ], + "tips": [ + [ + 0.00979, + 0.06992, + -0.00277 + ], + [ + 0.03558, + 0.05906, + 0.00267 + ], + [ + 0.03558, + 0.05906, + 0.00267 + ] + ], + "hulls": [ + [ + [ + -0.00796, + 0.07334, + -0.01193 + ], + [ + 0.00803, + 0.00715, + 0.03115 + ], + [ + -0.01274, + 0.01999, + -0.01263 + ], + [ + 0.02153, + 0.05703, + 0.02492 + ], + [ + 0.00966, + 0.04728, + -0.00447 + ], + [ + 0.00102, + 0.00127, + 0.00487 + ], + [ + 0.01548, + 0.02331, + 0.01261 + ], + [ + 0.00672, + 0.03904, + 0.02892 + ], + [ + -0.01272, + 0.04146, + -0.0089 + ], + [ + -0.01088, + -0.00143, + -0.01251 + ] + ], + [ + [ + 0.05446, + 0.06037, + 0.01606 + ], + [ + -0.01448, + 0.01371, + -0.00892 + ], + [ + 0.01615, + 0.01833, + 0.03113 + ], + [ + 0.01785, + 0.04612, + -0.00383 + ], + [ + 0.03933, + 0.03937, + 0.03083 + ], + [ + 0.00474, + 0.00067, + 0.01014 + ], + [ + 0.01234, + 0.02208, + -0.00204 + ], + [ + 0.03558, + 0.05902, + 0.00277 + ], + [ + 0.02745, + 0.02677, + 0.01376 + ], + [ + 0.00781, + -0.00083, + 0.03146 + ] + ], + [] + ], + "neighbours": [ + { + "J_Sec_Hair2_06": 17.151499337137746 + }, + { + "J_Sec_Hair1_06": 17.151499337137746 + }, + {} + ] + }, + { + "class": "hair", + "root_parent": "J_Bip_C_Head", + "bones": [ + "J_Sec_Hair1_07", + "J_Sec_Hair2_07", + "J_Sec_Hair3_07" + ], + "tips": [ + [ + -0.01413, + 0.04253, + 0.0056 + ], + [ + 0.01383, + 0.03096, + -0.02833 + ], + [ + 0.01383, + 0.03096, + -0.02833 + ] + ], + "hulls": [ + [ + [ + -0.00417, + 0.04397, + -0.00148 + ], + [ + -0.0007, + 6e-05, + 0.00679 + ], + [ + -0.0121, + 0.0206, + 0.00982 + ], + [ + 0.00261, + 0.0234, + -0.00292 + ], + [ + -0.01812, + 0.03812, + 0.01188 + ], + [ + 0.0051, + 0.00909, + -0.00314 + ], + [ + -0.0076, + 0.01139, + 0.00272 + ], + [ + -0.00912, + 0.03704, + 0.00536 + ], + [ + -0.00468, + 0.02742, + 0.00401 + ], + [ + -0.00924, + 0.00382, + 0.00885 + ] + ], + [ + [ + 0.00322, + 0.03511, + -0.0422 + ], + [ + -0.00339, + -0.00787, + -0.00791 + ], + [ + 0.00161, + 0.00906, + -0.03076 + ], + [ + 0.00874, + 0.00816, + 0.00108 + ], + [ + 0.01385, + 0.03095, + -0.02832 + ], + [ + 0.00455, + 0.01593, + -0.01755 + ], + [ + -0.00295, + -7e-05, + -0.02029 + ], + [ + 0.00259, + 0.02129, + -0.03849 + ], + [ + 0.00314, + 0.00665, + -0.01192 + ], + [ + -0.00018, + 0.00311, + -0.00208 + ] + ], + [] + ], + "neighbours": [ + { + "J_Sec_Hair2_07": 12.95251969089636 + }, + { + "J_Sec_Hair1_07": 12.95251969089636 + }, + {} + ] + }, + { + "class": "hair", + "root_parent": "J_Bip_C_Head", + "bones": [ + "J_Sec_Hair1_08", + "J_Sec_Hair2_08", + "J_Sec_Hair3_08" + ], + "tips": [ + [ + -0.01414, + 0.06968, + -0.00406 + ], + [ + -0.04212, + 0.05622, + 0.0006 + ], + [ + -0.04212, + 0.05622, + 0.0006 + ] + ], + "hulls": [ + [ + [ + 0.01293, + 0.07861, + -0.02833 + ], + [ + -0.01331, + 0.00442, + 0.01001 + ], + [ + 0.02195, + 0.02537, + -0.02522 + ], + [ + -0.02324, + 0.05659, + 0.00872 + ], + [ + 0.00267, + 0.03296, + 0.00146 + ], + [ + 0.01345, + -0.00146, + -0.01281 + ], + [ + -0.00786, + 0.06491, + -0.01448 + ], + [ + 0.01031, + 0.04654, + -0.02964 + ], + [ + -0.02007, + 0.03646, + -0.0058 + ], + [ + -0.00207, + 0.01709, + -0.01415 + ] + ], + [ + [ + -0.04208, + 0.05627, + 0.00061 + ], + [ + 0.0224, + 0.01875, + -0.02406 + ], + [ + -0.01816, + 0.00616, + 0.014 + ], + [ + -0.00929, + 0.04589, + -0.02215 + ], + [ + -0.03867, + 0.03033, + 0.02021 + ], + [ + -0.00358, + 0.01706, + -0.00987 + ], + [ + -0.0157, + 0.03652, + 0.00136 + ], + [ + -0.01592, + 0.02578, + 0.02254 + ], + [ + 0.00962, + 0.03631, + -0.02138 + ], + [ + -0.0233, + 0.05486, + -0.01258 + ] + ], + [] + ], + "neighbours": [ + { + "J_Sec_Hair2_08": 22.67897996497351 + }, + { + "J_Sec_Hair1_08": 22.67897996497351 + }, + {} + ] + }, + { + "class": "hair", + "root_parent": "J_Bip_C_Head", + "bones": [ + "J_Sec_Hair1_09", + "J_Sec_Hair2_09", + "J_Sec_Hair3_09", + "J_Sec_Hair4_09" + ], + "tips": [ + [ + 0.00656, + 0.0474, + 0.00209 + ], + [ + 0.01706, + 0.0446, + 0.00299 + ], + [ + 0.02854, + 0.03812, + 0.00482 + ], + [ + 0.02854, + 0.03812, + 0.00482 + ] + ], + "hulls": [ + [ + [ + 0.0041, + 0.04654, + -0.04275 + ], + [ + -0.00212, + 0.00195, + 0.02043 + ], + [ + -0.01037, + 0.00453, + -0.03435 + ], + [ + 0.01098, + 0.04256, + 0.01272 + ], + [ + 0.00989, + 0.01657, + -0.00669 + ], + [ + 0.00547, + 0.02398, + -0.03392 + ], + [ + 0.01109, + 0.02125, + 0.02163 + ], + [ + -7e-05, + 0.04024, + -0.02371 + ], + [ + -0.00138, + 0.03938, + -0.00175 + ], + [ + -0.0025, + 0.01464, + -0.04513 + ] + ], + [ + [ + 0.01155, + 0.04899, + -0.02492 + ], + [ + 0.01373, + 0.01337, + 0.01953 + ], + [ + 0.00042, + 0.00972, + -0.04317 + ], + [ + 0.00737, + 0.03226, + -0.00042 + ], + [ + 0.00988, + 0.00928, + -0.00588 + ], + [ + 0.01089, + 0.02663, + -0.03046 + ], + [ + 0.01694, + 0.03448, + 0.01905 + ], + [ + -0.00177, + 0.00778, + -0.02453 + ], + [ + 0.00883, + 0.03371, + -0.01582 + ], + [ + -0.00258, + 0.0207, + -0.0326 + ] + ], + [ + [ + 0.02849, + 0.0382, + 0.00456 + ], + [ + -0.00149, + 0.00458, + -0.03428 + ], + [ + 0.00607, + 0.00195, + 0.00791 + ], + [ + 0.01332, + 0.02759, + -0.01492 + ], + [ + 0.017, + 0.0198, + 0.00588 + ], + [ + 0.0021, + 0.00722, + -0.01197 + ], + [ + -0.00011, + 0.01283, + -0.02387 + ], + [ + 0.02521, + 0.02306, + 0.0148 + ], + [ + 0.00731, + 0.01733, + -0.01594 + ], + [ + 0.01358, + 0.00607, + 0.01594 + ] + ], + [] + ], + "neighbours": [ + { + "J_Sec_Hair2_09": 6.085030456593955 + }, + { + "J_Sec_Hair1_09": 6.085030456593955, + "J_Sec_Hair3_09": 6.217334650162728 + }, + { + "J_Sec_Hair2_09": 6.217334650162728 + }, + {} + ] + }, + { + "class": "hair", + "root_parent": "J_Bip_C_Head", + "bones": [ + "J_Sec_Hair1_10", + "J_Sec_Hair2_10", + "J_Sec_Hair3_10", + "J_Sec_Hair4_10" + ], + "tips": [ + [ + -0.00523, + 0.04681, + 0.00168 + ], + [ + -0.01541, + 0.04425, + 0.00372 + ], + [ + -0.02703, + 0.03779, + 0.00697 + ], + [ + -0.02703, + 0.03779, + 0.00697 + ] + ], + "hulls": [ + [ + [ + 0.00254, + 0.03996, + -0.03885 + ], + [ + -0.0085, + 0.00607, + 0.02523 + ], + [ + 0.01355, + -0.00332, + -0.03069 + ], + [ + 0.00262, + 0.04386, + 0.00354 + ], + [ + 0.00857, + 0.00125, + 0.00306 + ], + [ + -0.00882, + 0.02119, + -0.00174 + ], + [ + -0.00108, + 0.01702, + -0.03077 + ], + [ + -0.00035, + 0.02781, + 0.02349 + ], + [ + 0.00106, + 0.03774, + -0.01836 + ], + [ + -0.00997, + 0.04078, + 0.02213 + ] + ], + [ + [ + -0.02137, + 0.03805, + 0.02335 + ], + [ + 0.00232, + 0.01406, + -0.03706 + ], + [ + -0.00047, + 0.00152, + 0.02164 + ], + [ + -0.00768, + 0.03901, + -0.01181 + ], + [ + -0.00924, + 0.01479, + -0.00068 + ], + [ + -0.00484, + 0.03418, + -0.03234 + ], + [ + -0.00787, + 0.02115, + 0.02217 + ], + [ + 0.00087, + 0.01924, + -0.01671 + ], + [ + -0.00652, + 0.03796, + 0.0041 + ], + [ + 0.00204, + 0.01813, + 0.00269 + ] + ], + [ + [ + -0.03056, + 0.04392, + 0.00527 + ], + [ + 0.0016, + 0.0091, + -0.02955 + ], + [ + -0.00748, + 0.00801, + 0.01125 + ], + [ + -0.00885, + 0.02284, + -0.01325 + ], + [ + -0.01882, + 0.02575, + 0.00806 + ], + [ + -0.02055, + 0.04066, + -0.00934 + ], + [ + -0.02723, + 0.02881, + 0.0177 + ], + [ + 0.00206, + 0.00531, + -0.01729 + ], + [ + -0.00303, + 0.01298, + -0.00933 + ], + [ + -0.01558, + 0.01188, + 0.01886 + ] + ], + [] + ], + "neighbours": [ + { + "J_Sec_Hair2_10": 4.348037023628208 + }, + { + "J_Sec_Hair1_10": 4.348037023628208, + "J_Sec_Hair3_10": 4.307469985860632 + }, + { + "J_Sec_Hair2_10": 4.307469985860632 + }, + {} + ] + }, + { + "class": "hair", + "root_parent": "J_Bip_C_Head", + "bones": [ + "J_Sec_Hair1_11", + "J_Sec_Hair2_11", + "J_Sec_Hair3_11", + "J_Sec_Hair4_11" + ], + "tips": [ + [ + 0.01001, + 0.05484, + -0.0104 + ], + [ + 0.00594, + 0.05596, + -0.00663 + ], + [ + 0.00284, + 0.05652, + -0.00375 + ], + [ + 0.00284, + 0.05652, + -0.00375 + ] + ], + "hulls": [ + [ + [ + -0.0336, + 0.05073, + -0.02585 + ], + [ + 0.03431, + 0.00309, + 0.02653 + ], + [ + 0.03101, + 0.04289, + -0.01762 + ], + [ + -0.00462, + -0.0013, + -0.01728 + ], + [ + -0.05014, + 0.00712, + -0.03009 + ], + [ + 0.00588, + 0.02005, + 0.0094 + ], + [ + -0.00129, + 0.04205, + -0.0166 + ], + [ + 0.03881, + 0.03532, + 0.01253 + ], + [ + 0.02742, + 0.00285, + -0.00672 + ], + [ + -0.02026, + 0.01388, + -0.03785 + ] + ], + [ + [ + 0.01152, + 0.05436, + -0.0143 + ], + [ + -0.03654, + 0.00851, + -0.01442 + ], + [ + 0.02489, + 0.00155, + 0.01241 + ], + [ + -0.00134, + 0.01164, + -0.01049 + ], + [ + -0.01899, + 0.03823, + -0.01455 + ], + [ + 0.02563, + 0.03094, + 0.0062 + ], + [ + -0.00124, + 0.04081, + 0.0012 + ], + [ + 0.02009, + 0.02067, + -0.0136 + ], + [ + -0.01384, + -0.00132, + -0.02476 + ], + [ + 0.0111, + 0.01937, + 0.01747 + ] + ], + [ + [ + 0.01809, + 0.06474, + 0.00451 + ], + [ + -0.00252, + -0.00034, + -0.00919 + ], + [ + -0.01443, + 0.04127, + -0.00749 + ], + [ + 0.02423, + 0.02907, + 0.00268 + ], + [ + 0.01752, + 0.00581, + 0.0013 + ], + [ + -0.01334, + 0.01982, + -0.00015 + ], + [ + 0.01209, + 0.04863, + -0.00886 + ], + [ + 0.00612, + 0.03733, + 0.00917 + ], + [ + -1e-05, + 0.02768, + -0.01425 + ], + [ + -0.01285, + 0.06118, + -0.00357 + ] + ], + [] + ], + "neighbours": [ + { + "J_Sec_Hair2_11": 20.1695800288937 + }, + { + "J_Sec_Hair1_11": 20.1695800288937, + "J_Sec_Hair3_11": 18.79479094472742 + }, + { + "J_Sec_Hair2_11": 18.79479094472742 + }, + {} + ] + }, + { + "class": "hair", + "root_parent": "J_Bip_C_Head", + "bones": [ + "J_Sec_Hair1_12", + "J_Sec_Hair2_12", + "J_Sec_Hair3_12", + "J_Sec_Hair4_12" + ], + "tips": [ + [ + -0.0098, + 0.05611, + -0.01118 + ], + [ + -0.00567, + 0.05729, + -0.00697 + ], + [ + -0.0024, + 0.05789, + -0.00363 + ], + [ + -0.0024, + 0.05789, + -0.00363 + ] + ], + "hulls": [ + [ + [ + 0.035, + 0.05517, + -0.02733 + ], + [ + -0.03495, + 0.00451, + 0.02597 + ], + [ + 0.00651, + 0.00181, + -0.01847 + ], + [ + -0.03053, + 0.04456, + -0.01868 + ], + [ + 0.05194, + 0.01062, + -0.031 + ], + [ + -0.00549, + 0.02112, + 0.00883 + ], + [ + -0.02727, + 0.00374, + -0.00708 + ], + [ + -0.03845, + 0.03769, + 0.01136 + ], + [ + 0.00835, + 0.03947, + -0.0201 + ], + [ + -0.01009, + 0.05696, + 0.00016 + ] + ], + [ + [ + -0.01724, + 0.05565, + -0.0071 + ], + [ + 0.03655, + 0.01314, + -0.01521 + ], + [ + -0.02476, + 0.00201, + 0.01213 + ], + [ + 0.00092, + 0.01441, + -0.01105 + ], + [ + 0.01819, + 0.04209, + -0.01466 + ], + [ + -0.00506, + 0.0267, + 0.01481 + ], + [ + 0.0236, + 0.00453, + 0.00578 + ], + [ + -0.02433, + 0.01446, + -0.00795 + ], + [ + 0.01407, + 0.00225, + -0.02557 + ], + [ + 0.00066, + 0.04337, + 0.00041 + ] + ], + [ + [ + -0.00061, + 0.06864, + -0.00452 + ], + [ + -0.00632, + -0.00079, + -0.00813 + ], + [ + 0.00826, + 0.03388, + -0.01943 + ], + [ + -0.02358, + 0.03881, + 0.00234 + ], + [ + 0.0134, + 0.01709, + -0.00064 + ], + [ + 0.0104, + 0.04449, + 0.00057 + ], + [ + -0.00671, + 0.01917, + 0.00805 + ], + [ + -0.01297, + 0.01892, + -0.01268 + ], + [ + -0.01932, + 0.06422, + 0.00449 + ], + [ + -0.01306, + 0.04876, + -0.00903 + ] + ], + [] + ], + "neighbours": [ + { + "J_Sec_Hair2_12": 20.797115504793354 + }, + { + "J_Sec_Hair1_12": 20.797115504793354, + "J_Sec_Hair3_12": 20.753898724733332 + }, + { + "J_Sec_Hair2_12": 20.753898724733332 + }, + {} + ] + }, + { + "class": "hair", + "root_parent": "J_Bip_C_Head", + "bones": [ + "J_Sec_Hair1_13", + "J_Sec_Hair2_13", + "J_Sec_Hair3_13" + ], + "tips": [ + [ + 0.02011, + 0.09181, + -0.00286 + ], + [ + 0.03975, + 0.05486, + -0.00267 + ], + [ + 0.03975, + 0.05486, + -0.00267 + ] + ], + "hulls": [ + [ + [ + 0.01278, + 0.09433, + 0.00743 + ], + [ + 0.00503, + -0.00394, + -0.02307 + ], + [ + 0.03257, + 0.04406, + -0.00514 + ], + [ + 0.01058, + 0.01845, + 0.00721 + ], + [ + 0.01238, + 0.07186, + -0.0156 + ], + [ + 0.01675, + 0.02279, + -0.02178 + ], + [ + 0.02799, + 0.0669, + 0.0055 + ], + [ + 0.0045, + -0.00404, + 0.00515 + ], + [ + 0.0101, + 0.04025, + -0.00087 + ], + [ + 0.03093, + 0.08206, + -0.01168 + ] + ], + [ + [ + 0.03347, + 0.06049, + -0.00477 + ], + [ + -0.01279, + 0.00778, + -0.00465 + ], + [ + -0.00957, + 0.05038, + 0.01515 + ], + [ + 0.02852, + 0.02198, + -0.0276 + ], + [ + -0.00084, + 0.03441, + -0.00966 + ], + [ + -0.00561, + 0.02163, + 0.01707 + ], + [ + 0.00605, + 0.05881, + -0.00897 + ], + [ + 0.00839, + -0.00286, + -0.00961 + ], + [ + 0.00835, + 0.06527, + 0.00993 + ], + [ + 0.01485, + 0.03519, + -0.02093 + ] + ], + [] + ], + "neighbours": [ + { + "J_Sec_Hair2_13": 28.349896885998273 + }, + { + "J_Sec_Hair1_13": 28.349896885998273 + }, + {} + ] + }, + { + "class": "hair", + "root_parent": "J_Bip_C_Head", + "bones": [ + "J_Sec_Hair1_14", + "J_Sec_Hair2_14", + "J_Sec_Hair3_14" + ], + "tips": [ + [ + -0.02011, + 0.09181, + -0.00286 + ], + [ + -0.03975, + 0.05486, + -0.00267 + ], + [ + -0.03975, + 0.05486, + -0.00267 + ] + ], + "hulls": [ + [ + [ + -0.01256, + 0.0943, + 0.00048 + ], + [ + -0.00487, + -0.00404, + -0.02413 + ], + [ + -0.02955, + 0.03699, + 0.00229 + ], + [ + -0.01589, + 0.06506, + -0.01716 + ], + [ + -0.00892, + 0.0113, + 0.00738 + ], + [ + -0.01583, + 0.02999, + -0.0233 + ], + [ + -0.03173, + 0.067, + 0.00648 + ], + [ + -0.01225, + 0.0508, + 0.00085 + ], + [ + -0.02915, + 0.08183, + -0.00816 + ], + [ + -0.00797, + 0.03032, + 0.00049 + ] + ], + [ + [ + -0.02436, + 0.06451, + -0.00364 + ], + [ + -0.00762, + -0.00295, + -0.00432 + ], + [ + 0.01095, + 0.03578, + 0.01561 + ], + [ + -0.02764, + 0.02899, + -0.02757 + ], + [ + 0.00397, + 0.0245, + -0.01162 + ], + [ + 0.00189, + 0.06375, + 0.01059 + ], + [ + -0.004, + 0.05114, + -0.00914 + ], + [ + 0.0006, + 0.01537, + 0.0133 + ], + [ + 0.0135, + 0.00781, + -0.00586 + ], + [ + -0.03979, + 0.05491, + -0.00254 + ] + ], + [] + ], + "neighbours": [ + { + "J_Sec_Hair2_14": 28.360807644433685 + }, + { + "J_Sec_Hair1_14": 28.360807644433685 + }, + {} + ] + }, + { + "class": "hair", + "root_parent": "J_Bip_C_Head", + "bones": [ + "J_Sec_Hair1_15", + "J_Sec_Hair2_15", + "J_Sec_Hair3_15" + ], + "tips": [ + [ + -0.01211, + 0.05321, + 0.01422 + ], + [ + -0.01309, + 0.05293, + 0.01456 + ], + [ + -0.01309, + 0.05293, + 0.01456 + ] + ], + "hulls": [ + [ + [ + -0.0267, + 0.05046, + -0.00606 + ], + [ + -0.00062, + 0.00414, + -0.00789 + ], + [ + -0.00667, + 0.03155, + 0.00125 + ], + [ + -0.01534, + 0.01553, + -0.00251 + ], + [ + -0.013, + 0.04884, + 0.00424 + ], + [ + -0.02028, + 0.03313, + -0.00813 + ], + [ + -0.01922, + 0.03774, + 0.00385 + ], + [ + -0.00317, + 0.01852, + -0.00357 + ], + [ + -0.02513, + 0.0499, + 0.0063 + ], + [ + -0.01121, + 0.02662, + -0.00923 + ] + ], + [ + [ + -0.03068, + 0.05762, + 0.02615 + ], + [ + -0.0165, + 0.0015, + -0.01958 + ], + [ + 0.00662, + 0.03993, + -0.00269 + ], + [ + -0.03151, + 0.03456, + -0.00473 + ], + [ + -0.00954, + 0.05841, + 0.00746 + ], + [ + -0.02504, + 0.01517, + -0.00152 + ], + [ + -0.02627, + 0.04302, + 0.01308 + ], + [ + -0.02356, + 0.04756, + -0.00138 + ], + [ + -0.01502, + 0.05269, + 0.02041 + ], + [ + -0.02537, + 0.02337, + -0.01417 + ] + ], + [] + ], + "neighbours": [ + { + "J_Sec_Hair2_15": 26.225395679503343 + }, + { + "J_Sec_Hair1_15": 26.225395679503343 + }, + {} + ] + }, + { + "class": "hair", + "root_parent": "J_Bip_C_Head", + "bones": [ + "J_Sec_Hair1_16", + "J_Sec_Hair2_16", + "J_Sec_Hair3_16" + ], + "tips": [ + [ + 0.01211, + 0.05321, + 0.01422 + ], + [ + 0.01309, + 0.05293, + 0.01456 + ], + [ + 0.01309, + 0.05293, + 0.01456 + ] + ], + "hulls": [ + [ + [ + 0.02113, + 0.05354, + -0.00554 + ], + [ + 0.00076, + 0.00423, + -0.00969 + ], + [ + 0.01547, + 0.02449, + 0.00187 + ], + [ + 0.00814, + 0.04121, + 0.00081 + ], + [ + 0.01089, + 0.01686, + -0.0105 + ], + [ + 0.01191, + 0.00639, + -0.0002 + ], + [ + 0.02305, + 0.04065, + 0.00039 + ], + [ + 0.00967, + 0.0323, + -0.00837 + ], + [ + 0.00387, + 0.02312, + -0.00284 + ], + [ + 0.01576, + 0.0526, + 0.00473 + ] + ], + [ + [ + 0.03068, + 0.05762, + 0.02615 + ], + [ + 0.01647, + 0.0008, + -0.01661 + ], + [ + -0.00663, + 0.03986, + -0.00258 + ], + [ + 0.03067, + 0.03647, + -0.00831 + ], + [ + 0.00894, + 0.0606, + 0.01156 + ], + [ + 0.02504, + 0.01517, + -0.00152 + ], + [ + 0.03677, + 0.04015, + 0.01336 + ], + [ + 0.02325, + 0.05038, + 0.00229 + ], + [ + 0.00499, + 0.04553, + 0.01218 + ], + [ + 0.02024, + 0.01552, + -0.01657 + ] + ], + [] + ], + "neighbours": [ + { + "J_Sec_Hair2_16": 26.322509970647936 + }, + { + "J_Sec_Hair1_16": 26.322509970647936 + }, + {} + ] + }, + { + "class": "hair", + "root_parent": "J_Bip_C_Head", + "bones": [ + "J_Sec_Hair1_17", + "J_Sec_Hair2_17", + "J_Sec_Hair3_17" + ], + "tips": [ + [ + 0.02348, + 0.0957, + -0.02381 + ], + [ + -0.00217, + 0.10077, + -0.01388 + ], + [ + -0.00217, + 0.10077, + -0.01388 + ] + ], + "hulls": [ + [ + [ + 0.05658, + 0.08838, + -0.03346 + ], + [ + 0.00273, + -0.00065, + -5e-05 + ], + [ + 0.00587, + 0.05197, + -0.03052 + ], + [ + 0.02929, + 0.03537, + 0.00239 + ], + [ + 0.01178, + 0.09133, + -0.04513 + ], + [ + 0.02602, + 0.08072, + -0.00753 + ], + [ + 0.04559, + 0.05799, + -0.02396 + ], + [ + 0.01376, + 0.02351, + -0.02037 + ], + [ + 0.02303, + 0.07156, + -0.03101 + ], + [ + 0.03541, + 0.0901, + -0.04576 + ] + ], + [ + [ + -0.00135, + 0.11116, + -0.01126 + ], + [ + 0.02807, + 0.00059, + 0.01304 + ], + [ + -0.00773, + 0.04692, + -0.03614 + ], + [ + 0.03907, + 0.07185, + -0.02125 + ], + [ + 0.01188, + 0.04645, + 0.01195 + ], + [ + -0.01439, + 0.00065, + -0.00596 + ], + [ + 0.01794, + 0.01334, + -0.02856 + ], + [ + -0.02031, + 0.08883, + -0.02963 + ], + [ + 0.04174, + 0.03605, + -0.01935 + ], + [ + 0.00605, + 0.07751, + 0.00105 + ] + ], + [] + ], + "neighbours": [ + { + "J_Sec_Hair2_17": 20.076729074867217 + }, + { + "J_Sec_Hair1_17": 20.076729074867217 + }, + {} + ] + }, + { + "class": "hair", + "root_parent": "J_Bip_C_Head", + "bones": [ + "J_Sec_Hair1_18", + "J_Sec_Hair2_18", + "J_Sec_Hair3_18" + ], + "tips": [ + [ + -0.02373, + 0.0961, + -0.02398 + ], + [ + 0.00214, + 0.10123, + -0.01396 + ], + [ + 0.00214, + 0.10123, + -0.01396 + ] + ], + "hulls": [ + [ + [ + -0.05372, + 0.0887, + -0.03821 + ], + [ + -0.00155, + 0.0015, + 0.0044 + ], + [ + -0.0045, + 0.05349, + -0.02979 + ], + [ + -0.04112, + 0.0547, + -0.00352 + ], + [ + -0.00889, + 0.09313, + -0.04332 + ], + [ + -0.02936, + 0.09161, + -0.00708 + ], + [ + -0.02751, + 0.02093, + -0.01345 + ], + [ + 0.00019, + 0.02767, + -0.00731 + ], + [ + -0.02593, + 0.07379, + -0.03643 + ], + [ + -0.05391, + 0.08442, + -0.01154 + ] + ], + [ + [ + 0.00123, + 0.11161, + -0.01115 + ], + [ + -0.03379, + -0.00147, + 0.00928 + ], + [ + 0.01417, + 0.03707, + -0.03033 + ], + [ + -0.04251, + 0.06227, + -0.012 + ], + [ + -0.00944, + 0.03602, + 0.01124 + ], + [ + 0.01272, + 0.00165, + -0.00377 + ], + [ + 0.01934, + 0.07901, + -0.0333 + ], + [ + -0.03593, + 0.02393, + -0.02433 + ], + [ + -0.00213, + 0.07633, + 0.00866 + ], + [ + -0.03081, + 0.09597, + -0.01973 + ] + ], + [] + ], + "neighbours": [ + { + "J_Sec_Hair2_18": 20.05058973935537 + }, + { + "J_Sec_Hair1_18": 20.05058973935537 + }, + {} + ] + } + ], + "twist": [], + "colliders": [ + { + "bone": "J_Bip_C_Hips", + "child": "J_Bip_C_Spine", + "from": 0.0, + "radius_head": 0.1447, + "radius_tail": 0.1447, + "radius": 0.1447, + "lid": true + }, + { + "bone": "J_Bip_L_UpperLeg", + "child": "J_Bip_L_LowerLeg", + "from": 0.1, + "radius_head": 0.0974, + "radius_tail": 0.0554, + "radius": 0.0554 + }, + { + "bone": "J_Bip_R_UpperLeg", + "child": "J_Bip_R_LowerLeg", + "from": 0.1, + "radius_head": 0.0974, + "radius_tail": 0.0554, + "radius": 0.0554 + }, + { + "bone": "J_Bip_L_LowerLeg", + "child": "J_Bip_L_Foot", + "from": 0.1, + "radius_head": 0.0922, + "radius_tail": 0.0493, + "radius": 0.0493 + }, + { + "bone": "J_Bip_R_LowerLeg", + "child": "J_Bip_R_Foot", + "from": 0.1, + "radius_head": 0.0922, + "radius_tail": 0.0493, + "radius": 0.0493 + } + ], + "weights_authored": true, + "driven_bones": [ + "J_Adj_L_FaceEye", + "J_Bip_C_Chest", + "J_Bip_C_Head", + "J_Bip_C_Hips", + "J_Bip_C_Neck", + "J_Bip_C_Spine", + "J_Bip_C_UpperChest", + "J_Bip_L_Foot", + "J_Bip_L_Hand", + "J_Bip_L_LowerArm", + "J_Bip_L_LowerLeg", + "J_Bip_L_Shoulder", + "J_Bip_L_ToeBase", + "J_Bip_L_UpperArm", + "J_Bip_L_UpperLeg", + "J_Bip_R_Foot", + "J_Bip_R_Hand", + "J_Bip_R_LowerArm", + "J_Bip_R_LowerLeg", + "J_Bip_R_Shoulder", + "J_Bip_R_ToeBase", + "J_Bip_R_UpperArm", + "J_Bip_R_UpperLeg", + "Root" + ] +} \ No newline at end of file diff --git a/assets/characters/skins/kiyoko_Image_0.png b/assets/characters/skins/kiyoko_Image_0.png new file mode 100644 index 0000000..6422ae2 Binary files /dev/null and b/assets/characters/skins/kiyoko_Image_0.png differ diff --git a/assets/characters/skins/kiyoko_Image_1.png b/assets/characters/skins/kiyoko_Image_1.png new file mode 100644 index 0000000..13e0d06 Binary files /dev/null and b/assets/characters/skins/kiyoko_Image_1.png differ diff --git a/assets/characters/skins/kiyoko_Image_10.png b/assets/characters/skins/kiyoko_Image_10.png new file mode 100644 index 0000000..1830c02 Binary files /dev/null and b/assets/characters/skins/kiyoko_Image_10.png differ diff --git a/assets/characters/skins/kiyoko_Image_11.png b/assets/characters/skins/kiyoko_Image_11.png new file mode 100644 index 0000000..8241d50 Binary files /dev/null and b/assets/characters/skins/kiyoko_Image_11.png differ diff --git a/assets/characters/skins/kiyoko_Image_12.png b/assets/characters/skins/kiyoko_Image_12.png new file mode 100644 index 0000000..e7504ab Binary files /dev/null and b/assets/characters/skins/kiyoko_Image_12.png differ diff --git a/assets/characters/skins/kiyoko_Image_13.png b/assets/characters/skins/kiyoko_Image_13.png new file mode 100644 index 0000000..49d84d9 Binary files /dev/null and b/assets/characters/skins/kiyoko_Image_13.png differ diff --git a/assets/characters/skins/kiyoko_Image_14.png b/assets/characters/skins/kiyoko_Image_14.png new file mode 100644 index 0000000..9d741a2 Binary files /dev/null and b/assets/characters/skins/kiyoko_Image_14.png differ diff --git a/assets/characters/skins/kiyoko_Image_15.png b/assets/characters/skins/kiyoko_Image_15.png new file mode 100644 index 0000000..51857f6 Binary files /dev/null and b/assets/characters/skins/kiyoko_Image_15.png differ diff --git a/assets/characters/skins/kiyoko_Image_16.png b/assets/characters/skins/kiyoko_Image_16.png new file mode 100644 index 0000000..4e480e5 Binary files /dev/null and b/assets/characters/skins/kiyoko_Image_16.png differ diff --git a/assets/characters/skins/kiyoko_Image_17.png b/assets/characters/skins/kiyoko_Image_17.png new file mode 100644 index 0000000..aaecbc5 Binary files /dev/null and b/assets/characters/skins/kiyoko_Image_17.png differ diff --git a/assets/characters/skins/kiyoko_Image_18.png b/assets/characters/skins/kiyoko_Image_18.png new file mode 100644 index 0000000..505f953 Binary files /dev/null and b/assets/characters/skins/kiyoko_Image_18.png differ diff --git a/assets/characters/skins/kiyoko_Image_19.png b/assets/characters/skins/kiyoko_Image_19.png new file mode 100644 index 0000000..ff84526 Binary files /dev/null and b/assets/characters/skins/kiyoko_Image_19.png differ diff --git a/assets/characters/skins/kiyoko_Image_2.png b/assets/characters/skins/kiyoko_Image_2.png new file mode 100644 index 0000000..4bbe4eb Binary files /dev/null and b/assets/characters/skins/kiyoko_Image_2.png differ diff --git a/assets/characters/skins/kiyoko_Image_20.png b/assets/characters/skins/kiyoko_Image_20.png new file mode 100644 index 0000000..f06d0c3 Binary files /dev/null and b/assets/characters/skins/kiyoko_Image_20.png differ diff --git a/assets/characters/skins/kiyoko_Image_3.png b/assets/characters/skins/kiyoko_Image_3.png new file mode 100644 index 0000000..296717d Binary files /dev/null and b/assets/characters/skins/kiyoko_Image_3.png differ diff --git a/assets/characters/skins/kiyoko_Image_4.png b/assets/characters/skins/kiyoko_Image_4.png new file mode 100644 index 0000000..bc420f8 Binary files /dev/null and b/assets/characters/skins/kiyoko_Image_4.png differ diff --git a/assets/characters/skins/kiyoko_Image_5.png b/assets/characters/skins/kiyoko_Image_5.png new file mode 100644 index 0000000..4edc525 Binary files /dev/null and b/assets/characters/skins/kiyoko_Image_5.png differ diff --git a/assets/characters/skins/kiyoko_Image_6.png b/assets/characters/skins/kiyoko_Image_6.png new file mode 100644 index 0000000..6ba30d9 Binary files /dev/null and b/assets/characters/skins/kiyoko_Image_6.png differ diff --git a/assets/characters/skins/kiyoko_Image_7.png b/assets/characters/skins/kiyoko_Image_7.png new file mode 100644 index 0000000..cddd94b Binary files /dev/null and b/assets/characters/skins/kiyoko_Image_7.png differ diff --git a/assets/characters/skins/kiyoko_Image_8.png b/assets/characters/skins/kiyoko_Image_8.png new file mode 100644 index 0000000..bbd1c4e Binary files /dev/null and b/assets/characters/skins/kiyoko_Image_8.png differ diff --git a/assets/characters/skins/kiyoko_Image_9.png b/assets/characters/skins/kiyoko_Image_9.png new file mode 100644 index 0000000..c350b42 Binary files /dev/null and b/assets/characters/skins/kiyoko_Image_9.png differ diff --git a/assets/characters/skins/momo.glb b/assets/characters/skins/momo.glb new file mode 100644 index 0000000..c2d6501 Binary files /dev/null and b/assets/characters/skins/momo.glb differ diff --git a/assets/characters/skins/momo.license.json b/assets/characters/skins/momo.license.json new file mode 100644 index 0000000..f0bc2e1 --- /dev/null +++ b/assets/characters/skins/momo.license.json @@ -0,0 +1,9 @@ +{ + "name": "DANDADAN - Momo Ayase (3D Model) + DL", + "uid": "6ac6c3476a1f4b8da1c7de7e98a7c83c", + "author": "HiGuys920", + "author_url": "https://sketchfab.com/higuys920", + "license": "CC Attribution", + "license_slug": "by", + "source_url": "https://sketchfab.com/3d-models/dandadan-momo-ayase-3d-model-dl-6ac6c3476a1f4b8da1c7de7e98a7c83c" +} \ No newline at end of file diff --git a/assets/characters/skins/momo.rig.json b/assets/characters/skins/momo.rig.json new file mode 100644 index 0000000..905626d --- /dev/null +++ b/assets/characters/skins/momo.rig.json @@ -0,0 +1,1810 @@ +{ + "roles": { + "hips": "Hips", + "head": "Sk_00_03", + "neck": "Sk_00_02", + "spine": [ + "Sk_00_00", + "Sk_00_01", + "Sk_00_02", + "Sk_00_03" + ], + "shoulder.R": "Right shoulder", + "shoulder.L": "Left shoulder", + "foot.R": "Right ankle", + "foot.L": "Left ankle", + "hand.R": "Right wrist", + "hand.L": "Left wrist", + "forearm.R": "Right elbow", + "forearm.L": "Left elbow", + "shin.L": "Left knee", + "shin.R": "Right knee", + "toe.R": "Toes30_R", + "toe.L": "Toes30_L", + "upper_arm.R": "Right arm", + "upper_arm.L": "Left arm", + "thigh.L": "Left leg", + "thigh.R": "Right leg" + }, + "chains": [ + { + "class": "bust", + "root_parent": "Chest", + "bones": [ + "Bust03_L_001", + "Bust03_L_001.seg1", + "Bust03_L_001.seg2", + "Bust03_L_001.seg3" + ], + "tips": [ + [ + 0.0, + 0.02267, + 0.0 + ], + [ + -0.0, + 0.02267, + -0.0 + ], + [ + -0.0, + 0.02267, + -0.0 + ], + [ + -0.21739, + 0.13668, + -0.04483 + ] + ], + "hulls": [ + [ + [ + 0.21045, + -0.20429, + -0.08542 + ], + [ + 0.20116, + 0.14169, + 0.11444 + ], + [ + -0.16098, + -0.16904, + -0.10869 + ], + [ + -0.04696, + -0.01412, + 0.08814 + ], + [ + 0.17813, + -0.059, + 0.06901 + ], + [ + 0.01029, + -0.1666, + -0.01029 + ], + [ + -0.01003, + -0.20293, + -0.1477 + ], + [ + 0.09181, + 0.05892, + 0.10705 + ], + [ + -0.11276, + -0.10104, + 0.03231 + ], + [ + 0.06444, + -0.08013, + 0.08263 + ] + ], + [ + [ + -0.15007, + -0.11493, + -0.16604 + ], + [ + 0.10078, + 0.12253, + 0.11617 + ], + [ + -0.08368, + -0.05847, + 0.05945 + ], + [ + -0.14386, + -0.1036, + -0.06514 + ], + [ + 0.06751, + 0.08738, + 0.09788 + ], + [ + -0.12764, + -0.09075, + -0.01995 + ], + [ + -0.15059, + -0.11217, + -0.11811 + ], + [ + -0.1073, + -0.07509, + 0.02322 + ] + ], + [ + [ + -0.19036, + -0.13182, + -0.03519 + ], + [ + 0.09712, + 0.13502, + 0.0692 + ], + [ + -0.04547, + 0.00235, + 0.11531 + ], + [ + 0.02828, + 0.0524, + 0.12107 + ], + [ + -0.03107, + 0.01944, + 0.09137 + ], + [ + 0.01661, + 0.04231, + 0.09928 + ] + ], + [ + [ + -0.21652, + -0.11445, + -0.14774 + ], + [ + 0.06831, + 0.20871, + 0.06151 + ], + [ + -0.07538, + -0.02603, + 0.07376 + ], + [ + -0.15245, + 0.11439, + -0.11601 + ], + [ + -0.07431, + 0.13903, + 0.0328 + ], + [ + -0.18455, + -0.04723, + -0.00316 + ], + [ + -0.22392, + 0.02113, + -0.09766 + ], + [ + 0.04689, + 0.09358, + 0.07421 + ], + [ + -0.16226, + 0.06615, + 0.00265 + ], + [ + -0.01213, + 0.20261, + -0.02915 + ] + ] + ], + "neighbours": [ + { + "Bust02_L.seg3": 10.684019018217892, + "Bust03_L_001.seg1": 0.39247250024091307, + "Bust01_L_001.seg1": 4.800724986178796, + "Bust02_L": 6.635007128308069, + "Bust01_L_001": 1.3835900670950232, + "Bust02_L.seg2": 1.1628704178966145, + "Bust02_L.seg1": 1.2647811147863781, + "Bust01_L_001.seg2": 1.6922467906349197 + }, + { + "Bust03_L_001.seg2": 0.7403938854892498, + "Bust02_L.seg3": 0.5296733698751332, + "Bust03_L_001": 0.39247250024091307, + "Bust02_L": 0.6099544862060277, + "Bust01_L_001": 0.3548198778082869, + "Bust02_L.seg1": 0.051393940012049555 + }, + { + "Bust03_L_001.seg1": 0.7403938854892498, + "Bust02_L.seg3": 0.4899941747474428, + "Bust03_L_001.seg3": 1.023675833835116, + "Bust02_L": 0.3201858651144034, + "Bust01_L_001": 0.26777733789898783, + "Bust02_L.seg1": 0.008267936081229 + }, + { + "Bust02_L": 7.855898180459636, + "Bust01_L_001": 8.371310126734542, + "Bust02_L.seg2": 1.5247301951670538, + "Bust02_L.seg1": 1.282291840066493, + "Bust02_L.seg3": 7.879450940680849, + "Bust03_L_001.seg2": 1.023675833835116 + } + ] + }, + { + "class": "bust", + "root_parent": "Chest", + "bones": [ + "Bust02_L", + "Bust02_L.seg1", + "Bust02_L.seg2", + "Bust02_L.seg3" + ], + "tips": [ + [ + 0.0, + 0.03046, + 0.0 + ], + [ + -0.0, + 0.03046, + 0.0 + ], + [ + 0.0, + 0.03046, + 0.0 + ], + [ + 0.01771, + 0.08456, + 0.40469 + ] + ], + "hulls": [ + [ + [ + -0.24205, + -0.28179, + 0.06551 + ], + [ + 0.17296, + 0.24557, + -0.11376 + ], + [ + 0.18708, + -0.21381, + -0.18684 + ], + [ + -0.0223, + -0.26978, + -0.08768 + ], + [ + 0.24684, + 0.02388, + -0.15213 + ], + [ + 0.15201, + -0.07029, + -0.20017 + ], + [ + -0.15796, + -0.20133, + 0.14551 + ], + [ + -0.09378, + -0.26936, + 0.02385 + ], + [ + 0.20882, + 0.13912, + -0.18818 + ], + [ + 0.07284, + -0.27933, + -0.16417 + ] + ], + [ + [ + -0.17088, + -0.19857, + 0.17547 + ], + [ + 0.19703, + 0.16978, + -0.09552 + ], + [ + 0.20327, + 0.07788, + -0.07458 + ], + [ + 0.17079, + 0.13877, + -0.07738 + ] + ], + [ + [ + -0.20098, + -0.15745, + 0.21759 + ], + [ + 0.16517, + 0.21775, + -0.0608 + ], + [ + 0.15981, + 0.15215, + -0.02853 + ], + [ + -0.18514, + -0.19514, + 0.19732 + ], + [ + 0.18245, + 0.17205, + -0.04168 + ] + ], + [ + [ + -0.13726, + -0.066, + 0.32181 + ], + [ + 0.15246, + 0.21618, + -0.00719 + ], + [ + 0.10058, + 0.07334, + 0.22945 + ], + [ + -0.15017, + -0.19083, + 0.21818 + ], + [ + 0.15907, + 0.10033, + 0.08866 + ], + [ + -0.01117, + 0.0487, + 0.30385 + ], + [ + 0.0988, + 0.18945, + 0.16032 + ], + [ + -0.03688, + -0.06666, + 0.25723 + ], + [ + 0.20051, + 0.09559, + -0.01374 + ], + [ + -0.18178, + -0.11271, + 0.25545 + ] + ] + ], + "neighbours": [ + { + "Bust02_R.seg1": 0.005960952082285087, + "Bust02_R": 3.915824087943572, + "Bust01_R_001": 0.31005864655387483, + "Bust02_L.seg1": 0.4461314780366022, + "Bust01_L_001": 6.613423885382499, + "Bust03_L_001.seg3": 7.855898180459636, + "Bust01_L_001.seg1": 4.352280333812645, + "Bust01_L_001.seg2": 0.8579342939684047, + "Bust03_L_001": 6.635007128308069, + "Bust03_L_001.seg2": 0.3201858651144034, + "Bust03_L_001.seg1": 0.6099544862060277 + }, + { + "Bust02_L.seg2": 0.38188457635027917, + "Bust02_R": 0.3747821533537301, + "Bust02_L": 0.4461314780366022, + "Bust01_L_001": 0.5235603986584445, + "Bust03_L_001.seg3": 1.282291840066493, + "Bust01_L_001.seg1": 0.5806351635478039, + "Bust01_L_001.seg2": 0.4524824916068204, + "Bust03_L_001.seg2": 0.008267936081229, + "Bust03_L_001.seg1": 0.051393940012049555, + "Bust03_L_001": 1.2647811147863781, + "Bust02_R.seg1": 0.05764958974084089, + "Bust01_R_001": 0.025810371362056328 + }, + { + "Bust02_L.seg3": 0.49236435356060004, + "Bust02_R": 0.41566034136591967, + "Bust02_R.seg1": 0.09971818586097242, + "Bust02_L.seg1": 0.38188457635027917, + "Bust01_L_001": 0.6073705560446581, + "Bust03_L_001.seg3": 1.5247301951670538, + "Bust01_L_001.seg1": 0.45601591565223715, + "Bust01_L_001.seg2": 0.5283447766357731, + "Bust03_L_001": 1.1628704178966145, + "Bust02_R.seg2": 0.022343147561200094, + "Bust01_R_001": 0.011205419963657398 + }, + { + "Bust02_L.seg2": 0.49236435356060004, + "Bust02_R": 0.45644401532108525, + "Bust02_R.seg1": 0.48457604242424607, + "Bust01_L_001": 6.729600693488217, + "Bust03_L_001.seg3": 7.879450940680849, + "Bust03_L_001.seg2": 0.4899941747474428, + "Bust03_L_001.seg1": 0.5296733698751332, + "Bust03_L_001": 10.684019018217892, + "Bust01_L_001.seg1": 3.965650537698678, + "Bust01_L_001.seg2": 3.4417638093538288, + "Bust02_R.seg2": 0.16906718151336297, + "Bust02_R.seg3": 0.05393812309813728, + "Bust01_R_001": 0.01809775013429321 + } + ] + }, + { + "class": "bust", + "root_parent": "Chest", + "bones": [ + "Bust01_L_001", + "Bust01_L_001.seg1", + "Bust01_L_001.seg2", + "Bust01_L_001.seg3" + ], + "tips": [ + [ + -0.0, + 0.15014, + -0.0 + ], + [ + 0.0, + 0.15014, + -0.0 + ], + [ + 0.0, + 0.15014, + 0.0 + ], + [ + 0.0, + 0.15014, + 0.0 + ] + ], + "hulls": [ + [], + [], + [], + [] + ], + "neighbours": [ + { + "Bust02_L.seg3": 6.729600693488217, + "Bust02_L.seg2": 0.6073705560446581, + "Bust02_R": 0.6135937533841633, + "Bust02_L.seg1": 0.5235603986584445, + "Bust02_L": 6.613423885382499, + "Bust03_L_001.seg3": 8.371310126734542, + "Bust01_L_001.seg1": 0.38629788478024046, + "Bust03_L_001": 1.3835900670950232, + "Bust03_L_001.seg2": 0.26777733789898783, + "Bust03_L_001.seg1": 0.3548198778082869, + "Bust02_R.seg1": 0.009288447555037216 + }, + { + "Bust02_L.seg3": 3.965650537698678, + "Bust03_L_001": 4.800724986178796, + "Bust01_L_001.seg2": 2.2278659449511196, + "Bust02_L.seg2": 0.45601591565223715, + "Bust02_L": 4.352280333812645, + "Bust02_L.seg1": 0.5806351635478039, + "Bust01_L_001": 0.38629788478024046 + }, + { + "Bust01_L_001.seg1": 2.2278659449511196, + "Bust02_L.seg2": 0.5283447766357731, + "Bust02_L": 0.8579342939684047, + "Bust02_L.seg1": 0.4524824916068204, + "Bust02_L.seg3": 3.4417638093538288, + "Bust03_L_001": 1.6922467906349197 + }, + {} + ] + }, + { + "class": "bust", + "root_parent": "Chest", + "bones": [ + "Bust03_R_001", + "Bust03_R_001.seg1", + "Bust03_R_001.seg2", + "Bust03_R_001.seg3" + ], + "tips": [ + [ + -0.0, + 0.02282, + 0.0 + ], + [ + 0.0, + 0.02282, + 0.0 + ], + [ + 0.0, + 0.02282, + -0.0 + ], + [ + 0.21009, + 0.14103, + -0.04948 + ] + ], + "hulls": [ + [ + [ + -0.20077, + -0.20753, + -0.08485 + ], + [ + -0.20739, + 0.14103, + 0.09554 + ], + [ + 0.15612, + -0.16754, + -0.11058 + ], + [ + 0.04606, + -0.0108, + 0.08908 + ], + [ + -0.17787, + -0.06051, + 0.06838 + ], + [ + -0.007, + -0.16699, + -0.00583 + ], + [ + 0.01579, + -0.20666, + -0.14192 + ], + [ + -0.09429, + 0.06004, + 0.10424 + ], + [ + 0.11442, + -0.09931, + 0.03924 + ], + [ + -0.06399, + -0.07908, + 0.08399 + ] + ], + [ + [ + -0.15295, + 0.17304, + 0.05605 + ], + [ + 0.12916, + -0.08896, + -0.01648 + ], + [ + -0.03075, + 0.07732, + 0.11571 + ], + [ + 0.08356, + -0.05537, + 0.06146 + ], + [ + -0.10337, + 0.12653, + 0.10315 + ], + [ + -0.07085, + 0.08854, + 0.09397 + ], + [ + 0.10796, + -0.07252, + 0.02599 + ] + ], + [ + [ + 0.19067, + -0.15981, + -0.12148 + ], + [ + -0.1014, + 0.13462, + 0.063 + ], + [ + 0.04468, + 0.00499, + 0.11569 + ], + [ + 0.18524, + -0.13007, + -0.03633 + ], + [ + -0.01955, + 0.04434, + 0.09662 + ], + [ + 0.1462, + -0.12554, + -0.06108 + ], + [ + 0.15378, + -0.13542, + -0.11372 + ], + [ + 0.02865, + 0.02218, + 0.08994 + ] + ], + [ + [ + 0.21854, + -0.11998, + -0.14011 + ], + [ + -0.07433, + 0.20846, + 0.05302 + ], + [ + 0.0736, + -0.02306, + 0.07352 + ], + [ + 0.15048, + 0.11359, + -0.11907 + ], + [ + 0.06996, + 0.14078, + 0.02802 + ], + [ + 0.18266, + -0.04608, + -0.00117 + ], + [ + 0.18892, + -0.00074, + -0.13853 + ], + [ + -0.0509, + 0.09415, + 0.06915 + ], + [ + 0.15965, + 0.06881, + 0.00099 + ], + [ + 0.0074, + 0.20144, + -0.03643 + ] + ] + ], + "neighbours": [ + { + "Bust02_R": 5.307509138452929, + "Bust01_R_001": 1.4136093184462317, + "Bust01_R_001.seg1": 4.873491615786004, + "Bust02_R.seg3": 11.991912180052568, + "Bust02_R.seg2": 1.2955009556263646, + "Bust02_R.seg1": 1.502616046949964, + "Bust03_R_001.seg1": 0.4782062616681064, + "Bust01_R_001.seg2": 1.7041195119539072 + }, + { + "Bust03_R_001": 0.4782062616681064, + "Bust03_R_001.seg2": 1.003560123198177, + "Bust02_R.seg3": 0.5816850788738794, + "Bust02_R": 0.3973616822628325, + "Bust02_R.seg1": 0.047119399907472825, + "Bust01_R_001": 0.309535936388295 + }, + { + "Bust03_R_001.seg3": 0.8463580589684323, + "Bust03_R_001.seg1": 1.003560123198177, + "Bust02_R.seg3": 0.5084140222547837, + "Bust01_R_001": 0.3455534938015109, + "Bust02_R": 0.5067806721295243, + "Bust02_R.seg1": 0.02246419977765446, + "Bust02_R.seg2": 0.015858820704345522 + }, + { + "Bust02_R": 10.011569689474808, + "Bust01_R_001": 8.207608152240955, + "Bust02_R.seg3": 4.943467353681944, + "Bust02_R.seg2": 1.7124571917050189, + "Bust02_R.seg1": 1.6439859359300746, + "Bust03_R_001.seg2": 0.8463580589684323 + } + ] + }, + { + "class": "bust", + "root_parent": "Chest", + "bones": [ + "Bust02_R", + "Bust02_R.seg1", + "Bust02_R.seg2", + "Bust02_R.seg3" + ], + "tips": [ + [ + 0.0, + 0.033, + -0.0 + ], + [ + 0.0, + 0.033, + 0.0 + ], + [ + -0.0, + 0.033, + 0.0 + ], + [ + -0.0509, + 0.11285, + 0.37203 + ] + ], + "hulls": [ + [ + [ + 0.19991, + -0.3038, + 0.11316 + ], + [ + -0.15726, + 0.23417, + -0.18295 + ], + [ + -0.15728, + -0.20432, + -0.19939 + ], + [ + 0.01641, + -0.31205, + -0.02794 + ], + [ + -0.16715, + 0.01663, + -0.19535 + ], + [ + 0.1546, + -0.17254, + 0.1938 + ], + [ + -0.04335, + -0.23479, + -0.14819 + ], + [ + 0.09914, + -0.27985, + 0.05063 + ], + [ + -0.19944, + 0.12705, + -0.17768 + ], + [ + -0.24663, + -0.06047, + -0.17831 + ] + ], + [ + [ + -0.14559, + 0.22289, + -0.14284 + ], + [ + -0.18205, + 0.09194, + -0.1003 + ], + [ + -0.10488, + 0.1979, + -0.08784 + ], + [ + -0.14457, + 0.15053, + -0.09301 + ], + [ + -0.17802, + 0.17644, + -0.13589 + ], + [ + -0.19322, + 0.12358, + -0.12305 + ], + [ + -0.14468, + 0.13486, + -0.1141 + ] + ], + [ + [ + 0.14468, + -0.16648, + 0.23672 + ], + [ + -0.13596, + 0.20604, + -0.10259 + ], + [ + -0.18157, + 0.07618, + -0.07372 + ], + [ + -0.14031, + 0.13152, + -0.07136 + ], + [ + -0.10183, + 0.18581, + -0.06675 + ], + [ + -0.16728, + 0.16489, + -0.08834 + ] + ], + [ + [ + 0.12572, + -0.11453, + 0.32711 + ], + [ + -0.12463, + 0.19648, + -0.04788 + ], + [ + -0.05411, + 0.14396, + 0.25337 + ], + [ + -0.13244, + 0.10869, + 0.09611 + ], + [ + 0.01439, + -0.01653, + 0.26488 + ], + [ + -0.09723, + 0.23408, + 0.13014 + ], + [ + -0.16708, + 0.07888, + -0.02123 + ], + [ + 0.09776, + -0.18742, + 0.23875 + ], + [ + -0.10045, + 0.17949, + 0.0428 + ], + [ + -0.04167, + 0.0467, + 0.22684 + ] + ] + ], + "neighbours": [ + { + "Bust02_L.seg3": 0.45644401532108525, + "Bust02_L.seg2": 0.41566034136591967, + "Bust02_R.seg1": 0.4601587836668959, + "Bust02_L.seg1": 0.3747821533537301, + "Bust02_L": 3.915824087943572, + "Bust01_R_001": 7.0890085884225496, + "Bust01_L_001": 0.6135937533841633, + "Bust03_R_001.seg3": 10.011569689474808, + "Bust01_R_001.seg1": 3.203896606274064, + "Bust03_R_001": 5.307509138452929, + "Bust01_R_001.seg2": 0.2931302984772375, + "Bust03_R_001.seg2": 0.5067806721295243, + "Bust03_R_001.seg1": 0.3973616822628325 + }, + { + "Bust02_L.seg3": 0.48457604242424607, + "Bust02_L.seg2": 0.09971818586097242, + "Bust02_R": 0.4601587836668959, + "Bust02_R.seg2": 0.4511130851945411, + "Bust01_R_001": 0.6168202296418669, + "Bust02_L": 0.005960952082285087, + "Bust03_R_001.seg3": 1.6439859359300746, + "Bust01_R_001.seg1": 0.9091350649963715, + "Bust01_R_001.seg2": 0.38717467091078317, + "Bust03_R_001": 1.502616046949964, + "Bust03_R_001.seg2": 0.02246419977765446, + "Bust03_R_001.seg1": 0.047119399907472825, + "Bust02_L.seg1": 0.05764958974084089, + "Bust01_L_001": 0.009288447555037216 + }, + { + "Bust02_R.seg1": 0.4511130851945411, + "Bust01_R_001": 0.7206833667025079, + "Bust02_R.seg3": 0.4693402085530754, + "Bust03_R_001.seg3": 1.7124571917050189, + "Bust03_R_001": 1.2955009556263646, + "Bust01_R_001.seg1": 0.7197488227225909, + "Bust01_R_001.seg2": 0.48970259372865915, + "Bust02_L.seg2": 0.022343147561200094, + "Bust02_L.seg3": 0.16906718151336297, + "Bust03_R_001.seg2": 0.015858820704345522 + }, + { + "Bust03_R_001.seg3": 4.943467353681944, + "Bust01_R_001": 4.914154174777157, + "Bust02_R.seg2": 0.4693402085530754, + "Bust03_R_001": 11.991912180052568, + "Bust01_R_001.seg1": 4.62673858015464, + "Bust03_R_001.seg2": 0.5084140222547837, + "Bust03_R_001.seg1": 0.5816850788738794, + "Bust01_R_001.seg2": 4.197806614286925, + "Bust02_L.seg3": 0.05393812309813728 + } + ] + }, + { + "class": "bust", + "root_parent": "Chest", + "bones": [ + "Bust01_R_001", + "Bust01_R_001.seg1", + "Bust01_R_001.seg2", + "Bust01_R_001.seg3" + ], + "tips": [ + [ + -0.0, + 0.15102, + 0.0 + ], + [ + -0.0, + 0.15102, + 0.0 + ], + [ + 0.0, + 0.15102, + -0.0 + ], + [ + 0.0, + 0.15102, + -0.0 + ] + ], + "hulls": [ + [], + [ + [ + -0.09373, + 0.10047, + -0.07804 + ], + [ + -0.02435, + 0.12835, + 0.03513 + ], + [ + -0.08577, + 0.1204, + -0.02203 + ], + [ + -0.03383, + 0.1191, + -0.0049 + ], + [ + -0.08983, + 0.11462, + -0.04127 + ], + [ + -0.02962, + 0.12394, + 0.01407 + ] + ], + [], + [] + ], + "neighbours": [ + { + "Bust02_R.seg2": 0.7206833667025079, + "Bust02_R.seg1": 0.6168202296418669, + "Bust02_L": 0.31005864655387483, + "Bust02_R": 7.0890085884225496, + "Bust03_R_001.seg3": 8.207608152240955, + "Bust02_R.seg3": 4.914154174777157, + "Bust01_R_001.seg1": 0.38291045211652436, + "Bust03_R_001": 1.4136093184462317, + "Bust03_R_001.seg2": 0.3455534938015109, + "Bust03_R_001.seg1": 0.309535936388295, + "Bust02_L.seg1": 0.025810371362056328, + "Bust02_L.seg2": 0.011205419963657398, + "Bust02_L.seg3": 0.01809775013429321 + }, + { + "Bust02_R": 3.203896606274064, + "Bust01_R_001": 0.38291045211652436, + "Bust03_R_001": 4.873491615786004, + "Bust01_R_001.seg2": 2.315045669707698, + "Bust02_R.seg1": 0.9091350649963715, + "Bust02_R.seg3": 4.62673858015464, + "Bust02_R.seg2": 0.7197488227225909 + }, + { + "Bust01_R_001.seg1": 2.315045669707698, + "Bust02_R.seg1": 0.38717467091078317, + "Bust02_R.seg3": 4.197806614286925, + "Bust03_R_001": 1.7041195119539072, + "Bust02_R.seg2": 0.48970259372865915, + "Bust02_R": 0.2931302984772375 + }, + {} + ] + }, + { + "class": "hair", + "root_parent": "Head", + "bones": [ + "HairF_Top", + "HairFL_00", + "HairFL_01" + ], + "tips": [ + [ + 0.0, + 0.57663, + -0.0 + ], + [ + -0.0, + 0.12796, + 0.0 + ], + [ + -0.0, + 0.12796, + 0.0 + ] + ], + "hulls": [ + [ + [ + -0.32205, + 0.89481, + -0.11118 + ], + [ + -0.05537, + 0.1575, + 0.00405 + ], + [ + -0.01437, + 0.58099, + -0.1041 + ], + [ + -0.02314, + 0.35354, + -0.14007 + ], + [ + -0.13017, + 0.76177, + -0.15337 + ], + [ + -0.10099, + 0.64714, + -0.19197 + ], + [ + 0.00379, + 0.26583, + -0.06645 + ], + [ + 0.02133, + 0.45562, + -0.12007 + ], + [ + -0.22316, + 0.84121, + -0.11203 + ], + [ + -0.0497, + 0.51683, + -0.18633 + ] + ], + [], + [] + ], + "neighbours": [ + { + "HairFL_00": 0.05267075423349632 + }, + { + "HairF_Top": 0.05267075423349632 + }, + {} + ] + }, + { + "class": "hair", + "root_parent": "Head", + "bones": [ + "HairF_Top_001", + "HairFR_02_00", + "HairFR_02_01", + "HairFR_02_02" + ], + "tips": [ + [ + -0.0, + 0.94302, + -0.0 + ], + [ + -0.0, + 0.21364, + 0.0 + ], + [ + 0.0, + 0.29694, + -0.0 + ], + [ + 0.0, + 0.29694, + -0.0 + ] + ], + "hulls": [ + [ + [ + -0.01307, + 1.01208, + 0.05905 + ], + [ + 0.04037, + 0.17847, + -0.08806 + ], + [ + -0.10283, + 0.6138, + -0.21962 + ], + [ + -0.11025, + 0.44722, + 0.06269 + ], + [ + 0.00084, + 0.92655, + -0.25084 + ], + [ + -0.09464, + 0.7267, + 0.09578 + ], + [ + -0.06401, + 0.38794, + -0.16696 + ], + [ + -0.11492, + 0.82402, + -0.10792 + ], + [ + -0.15214, + 0.5963, + -0.0445 + ], + [ + -0.08901, + 0.29779, + -0.00702 + ] + ], + [ + [ + 0.09116, + 0.26972, + -0.18382 + ], + [ + -0.03115, + 0.10864, + 0.08697 + ], + [ + -0.03288, + 0.27668, + -0.01112 + ], + [ + 0.00195, + 0.11804, + -0.10515 + ], + [ + -0.01918, + 0.2776, + 0.1015 + ], + [ + 0.04898, + 0.22897, + -0.09357 + ], + [ + 0.08366, + 0.16582, + -0.20628 + ], + [ + -0.0561, + 0.15736, + 0.00842 + ], + [ + -0.05998, + 0.21239, + 0.08044 + ], + [ + -0.00412, + 0.17085, + -0.04284 + ] + ], + [ + [ + -0.03083, + 0.47275, + 0.03406 + ], + [ + 0.00177, + 0.06985, + -0.06042 + ], + [ + 0.06615, + 0.29079, + -0.10972 + ], + [ + -0.06108, + 0.22439, + 0.0947 + ], + [ + -0.03532, + 0.33844, + 0.01367 + ], + [ + -0.00828, + 0.212, + -0.0297 + ], + [ + -0.08824, + 0.11304, + 0.04854 + ], + [ + 0.07385, + 0.18055, + -0.14856 + ], + [ + 0.03664, + 0.40041, + -0.08611 + ], + [ + -0.01505, + 0.13512, + -0.00378 + ] + ], + [] + ], + "neighbours": [ + { + "HairFR_02_00": 11.198780429524012, + "HairFR_02_01": 1.68590918343183, + "HairFR_02_02": 0.01914253633767224 + }, + { + "HairF_Top_001": 11.198780429524012, + "HairFR_02_01": 14.30398476346928, + "HairFR_02_02": 0.6820841702186262 + }, + { + "HairF_Top_001": 1.68590918343183, + "HairFR_02_00": 14.30398476346928, + "HairFR_02_02": 12.428229786449679 + }, + { + "HairFR_02_01": 12.428229786449679, + "HairFR_02_00": 0.6820841702186262, + "HairF_Top_001": 0.01914253633767224 + } + ] + }, + { + "class": "hair", + "root_parent": "Head", + "bones": [ + "HairF_Top_002", + "HairFR_00", + "HairFR_01", + "HairFR_02" + ], + "tips": [ + [ + 0.0, + 0.55107, + -0.0 + ], + [ + 0.0, + 0.10479, + -0.0 + ], + [ + -0.0, + 0.13542, + -0.0 + ], + [ + -0.0, + 0.13542, + -0.0 + ] + ], + "hulls": [ + [ + [ + -0.22773, + 0.57374, + -0.07988 + ], + [ + -0.14383, + 0.01513, + -0.17114 + ], + [ + -0.21913, + 0.26886, + -0.0285 + ], + [ + -0.20917, + 0.43746, + -0.01401 + ], + [ + -0.17564, + 0.13005, + -0.05806 + ], + [ + -0.25436, + 0.37429, + -0.06218 + ], + [ + -0.2519, + 0.48285, + -0.06932 + ], + [ + -0.16381, + 0.06859, + -0.10866 + ], + [ + -0.19981, + 0.52289, + -0.02756 + ], + [ + -0.21018, + 0.20129, + -0.06548 + ] + ], + [ + [ + -0.14258, + 0.06622, + -0.17139 + ], + [ + -0.10517, + 0.10493, + -0.05584 + ], + [ + -0.13905, + 0.10378, + -0.1202 + ], + [ + -0.12305, + 0.05597, + -0.11322 + ], + [ + -0.13286, + 0.10606, + -0.0828 + ], + [ + -0.11144, + 0.05903, + -0.14525 + ], + [ + -0.11216, + 0.08875, + -0.11174 + ], + [ + -0.14278, + 0.08552, + -0.14701 + ], + [ + -0.14619, + 0.05146, + -0.14732 + ], + [ + -0.1154, + 0.05833, + -0.17206 + ] + ], + [ + [ + -0.11928, + 0.02105, + -0.06213 + ], + [ + -0.04586, + 0.0355, + 0.0335 + ], + [ + -0.08188, + 0.02085, + -0.01342 + ], + [ + -0.09146, + 0.01881, + -0.0456 + ], + [ + -0.06502, + 0.03461, + 0.00713 + ], + [ + -0.09942, + 0.02845, + -0.0315 + ], + [ + -0.10893, + 0.01338, + -0.07424 + ], + [ + -0.05727, + 0.03238, + 0.01978 + ], + [ + -0.09448, + 0.01066, + -0.03347 + ], + [ + -0.10756, + 0.02008, + -0.03659 + ] + ], + [] + ], + "neighbours": [ + { + "HairFR_00": 6.522659186510956, + "HairFR_01": 2.4443696705936615, + "HairFR_02": 0.012604948497175639 + }, + { + "HairF_Top_002": 6.522659186510956, + "HairFR_01": 10.866074148113151, + "HairFR_02": 0.8757130731296292 + }, + { + "HairF_Top_002": 2.4443696705936615, + "HairFR_00": 10.866074148113151, + "HairFR_02": 0.9474554435243647 + }, + { + "HairFR_01": 0.9474554435243647, + "HairFR_00": 0.8757130731296292, + "HairF_Top_002": 0.012604948497175639 + } + ] + } + ], + "twist": [], + "colliders": [ + { + "bone": "Hips", + "child": "Sk_00_00", + "from": 0.0, + "radius_head": 0.6216, + "radius_tail": 0.6216, + "radius": 0.6216, + "lid": true + }, + { + "bone": "Left leg", + "child": "Left knee", + "from": 0.1, + "radius_head": 0.5183, + "radius_tail": 0.3158, + "radius": 0.3158 + }, + { + "bone": "Right leg", + "child": "Right knee", + "from": 0.1, + "radius_head": 0.519, + "radius_tail": 0.3153, + "radius": 0.3153 + }, + { + "bone": "Left knee", + "child": "Left ankle", + "from": 0.1, + "radius_head": 0.5643, + "radius_tail": 0.5185, + "radius": 0.5185 + }, + { + "bone": "Right knee", + "child": "Right ankle", + "from": 0.1, + "radius_head": 0.5641, + "radius_tail": 0.5187, + "radius": 0.5187 + } + ], + "weights_authored": true, + "driven_bones": [ + "Head", + "Hips", + "Left ankle", + "Left arm", + "Left elbow", + "Left knee", + "Left leg", + "Left shoulder", + "Left wrist", + "Neck", + "Neck_001", + "Right ankle", + "Right arm", + "Right elbow", + "Right knee", + "Right leg", + "Right shoulder", + "Right wrist", + "Root_001", + "Root_002", + "Root_003", + "Root_004", + "Root_005", + "Root_006", + "Root_007", + "Sk_00_00", + "Sk_00_01", + "Sk_00_02", + "Sk_00_03", + "Toes30_L", + "Toes30_R" + ] +} \ No newline at end of file diff --git a/assets/characters/skins/momo_Image_0.png b/assets/characters/skins/momo_Image_0.png new file mode 100644 index 0000000..9d7b916 Binary files /dev/null and b/assets/characters/skins/momo_Image_0.png differ diff --git a/assets/characters/skins/momo_Image_1.png b/assets/characters/skins/momo_Image_1.png new file mode 100644 index 0000000..0cb82fc Binary files /dev/null and b/assets/characters/skins/momo_Image_1.png differ diff --git a/assets/characters/skins/momo_Image_2.png b/assets/characters/skins/momo_Image_2.png new file mode 100644 index 0000000..4f1ddb5 Binary files /dev/null and b/assets/characters/skins/momo_Image_2.png differ diff --git a/assets/characters/skins/momo_Image_3.png b/assets/characters/skins/momo_Image_3.png new file mode 100644 index 0000000..4aab3e9 Binary files /dev/null and b/assets/characters/skins/momo_Image_3.png differ diff --git a/assets/characters/skins/momo_Image_4.png b/assets/characters/skins/momo_Image_4.png new file mode 100644 index 0000000..0f37d65 Binary files /dev/null and b/assets/characters/skins/momo_Image_4.png differ diff --git a/assets/characters/skins/skins.json b/assets/characters/skins/skins.json index 0d98e6d..b60f4a8 100644 --- a/assets/characters/skins/skins.json +++ b/assets/characters/skins/skins.json @@ -20,6 +20,34 @@ "description": "Quaternius reference mannequin (CC0)", "model": "res://assets/characters/skins/mannequin.glb", "unlocked": true + }, + { + "id": "kiyoko", + "name": "Kiyoko", + "description": "Kiyoko School Girl \u2014 VRoid (CC-BY, Kasujin)", + "model": "res://assets/characters/skins/kiyoko.glb", + "unlocked": true + }, + { + "id": "aria", + "name": "Aria", + "description": "Anime Girl Rigged \u2014 VRoid (CC-BY, dequeijospizza)", + "model": "res://assets/characters/skins/aria.glb", + "unlocked": true + }, + { + "id": "momo", + "name": "Momo", + "description": "Momo Ayase, DANDADAN (CC-BY, HiGuys920)", + "model": "res://assets/characters/skins/momo.glb", + "unlocked": true + }, + { + "id": "hikari", + "name": "Hikari", + "description": "School anime girl \u2014 VRoid (CC-BY, hikari)", + "model": "res://assets/characters/skins/hikari.glb", + "unlocked": true } ] } \ No newline at end of file diff --git a/tools/retarget.py b/tools/retarget.py index b5795c9..1e07550 100644 --- a/tools/retarget.py +++ b/tools/retarget.py @@ -106,6 +106,25 @@ SPRING_CLASSES = {"hair", "skirt", "cloth", "ribbon", "tail", "cape", "coat", "antenna", "wing"} +def spring_class(name): + """Which secondary-motion class this bone belongs to, or None. + + Whole token first, then a SHORT positional suffix — the same rule as + rig_map.is_cosmetic, and it must be the same rule, because a bone that reads + as cosmetic there and as nothing here is left out of every chain and its + geometry never moves. DANDADAN's hair is HairFL / HairFR / HairF_Top, which + tokenise to "hairfl" and matched no class at all: she imported with six + chains, all of them her bust, and not one strand of hair. + """ + for t in tokens(name): + if t in SPRING_CLASSES: + return t + for c in SPRING_CLASSES: + if len(t) - len(c) <= 2 and t.startswith(c) and len(t) > len(c): + return c + return None + + # --------------------------------------------------------------------- import @@ -680,8 +699,7 @@ def _body_points(meshes): mw = m.matrix_world for v in m.data.vertices: cloth_w = sum(g.weight for g in v.groups - if any(t in SPRING_CLASSES - for t in tokens(gname.get(g.group, "")))) + if spring_class(gname.get(g.group, ""))) if cloth_w < 0.35: out.append(mw @ v.co) return out @@ -880,7 +898,7 @@ def describe_rig(arm, roles, mapping, meshes): chains = [] springy = {b.name: b for b in arm.data.bones if b.name not in driven - and any(t in SPRING_CLASSES for t in tokens(b.name))} + and spring_class(b.name)} neighbours = _cloth_neighbours(meshes, set(springy)) for name, bone in springy.items(): @@ -902,8 +920,7 @@ def describe_rig(arm, roles, mapping, meshes): hulls.append(_hull_samples(arm, path[i], owned)) fallback = t chains.append({ - "class": next((t for t in tokens(path[0]) - if t in SPRING_CLASSES), "cloth"), + "class": spring_class(path[0]) or "cloth", "root_parent": bone.parent.name if bone.parent else None, "bones": path, "tips": tips, @@ -1066,6 +1083,7 @@ def main(): arm.animation_data.nla_tracks.remove(track) merged = 0 + kept_clips = set() for action in [a for a in bpy.data.actions if a not in before_actions]: clip = LIBRARY_CLIP_MAP.get(action.name.split(".")[0]) if not clip: @@ -1074,11 +1092,44 @@ def main(): baked = retarget_clip(src_arm, src_roles, arm, roles, mapping, action, clip, yaw, scale) add_nla_clip(arm, baked, clip) + kept_clips.add(clip) merged += 1 if merged == 0: print("ERROR: no clips retargeted") sys.exit(1) + # Drop anything animated that we did not put here. + # + # Clearing bpy.data.actions before the library import is not enough: a + # character can carry its own clip in an NLA track that survives, and it is + # then exported alongside ours. `hikari` shipped two — " Girl|Loli Anime + # GirlAction" — which are keyed for a rig that no longer exists after the + # retarget, so they export as frozen rest-pose statues and the build fails a + # check that is right to fail it. + # Across EVERY object, not just the armature we retargeted onto. The export + # runs in NLA_TRACKS mode, so anything sitting in an NLA track anywhere in + # the file ships — including a second armature the model happened to carry, + # which is where hikari's two were hiding. + def _strip_foreign(ad): + if ad is None: + return + for track in list(ad.nla_tracks): + if not any(st.action and st.action.name in kept_clips + for st in track.strips): + ad.nla_tracks.remove(track) + if ad.action is not None and ad.action.name not in kept_clips: + ad.action = None + + for obj in list(bpy.data.objects): + _strip_foreign(obj.animation_data) + if obj.type == "MESH" and obj.data.shape_keys: + _strip_foreign(obj.data.shape_keys.animation_data) + for a in list(bpy.data.actions): + if a.name not in kept_clips: + a.use_fake_user = False + bpy.data.actions.remove(a) + print(f"Kept {len(kept_clips)} clips; dropped everything else") + for o in new_objects: bpy.data.objects.remove(o, do_unlink=True) @@ -1149,7 +1200,8 @@ def subdivide_cloth_panels(arm, meshes, roles, segments=4): for bone in arm.data.bones: if not is_cosmetic(bone.name): continue - if not any(t in SPRING_CLASSES and t != "hair" for t in tokens(bone.name)): + cls = spring_class(bone.name) + if cls is None or cls == "hair": continue if bone.children: continue # already a chain — the artist's own topology wins diff --git a/tools/rig_map.py b/tools/rig_map.py index acce702..aa5174a 100644 --- a/tools/rig_map.py +++ b/tools/rig_map.py @@ -97,8 +97,25 @@ def tokens(name: str): def is_cosmetic(name: str) -> bool: - """Whole-token match only — see the note on COSMETIC.""" - return any(t in COSMETIC for t in tokens(name)) + """Whole-token match, plus a short positional suffix — see COSMETIC. + + A bare token match misses the very common habit of gluing a position onto + the word: DANDADAN's hair bones are HairFL / HairFR / HairF_Top (front-left, + front-right, front-top), which tokenise to "hairfl" and match nothing, so + her hair was not detected as hair at all and none of it moved. + + Only a SHORT remainder counts — two characters at most, which covers l/r/f/b + and the fl/fr/bl/br pairs and nothing else. That is what keeps the original + rule intact: "forearm" still does not begin with any cosmetic stem, and + "earring" has a four-character remainder and is not swept in by accident. + """ + for t in tokens(name): + if t in COSMETIC: + return True + for c in COSMETIC: + if len(t) - len(c) <= 2 and t.startswith(c) and len(t) > len(c): + return True + return False def is_segment_of(name: str, all_names: set) -> bool: @@ -131,11 +148,33 @@ class RigRoles: self.head = None self.neck = None self._resolve_limbs() + self._fill_limbs_by_anatomy() self._resolve_spine() # ---------------------------------------------------------------- limbs def _resolve_limbs(self): + """Claim limb roles by the MOST SPECIFIC spelling that matches. + + Not by walking LIMB_ORDER and taking the first role that matches at all. + That let a catch-all stem in an early role beat an exact one in a later + role, and the result depended on the order bones happened to arrive in: + + J_Bip_L_UpperLeg canon "upperleg" + shin matches "leg" <- claimed it, because shin is first + thigh matches "upperleg" <- never consulted + J_Bip_L_LowerLeg canon "lowerleg" + shin already taken; nothing in thigh matches -> unclaimed + + so a VRoid rig resolved with no thighs at all and the build stopped. The + same trap catches Mixamo, whose LeftUpLeg is a thigh and LeftLeg a shin — + it stayed hidden only because every character imported so far used the + Rigify DEF- spellings, where each role has an exact stem of its own. + + Every plausible claim is collected, then granted longest-stem first, so + "upperleg" always beats "leg" whatever order the bones are in. + """ + claims = [] for name in self.names: if is_cosmetic(name) or is_segment_of(name, self.names): continue @@ -144,11 +183,56 @@ class RigRoles: continue stem = canon(name) for role in LIMB_ORDER: - if (role, side) in self.limb: - continue - if any(alt.replace("_", "") in stem for alt in LIMB_ROLES[role]): - self.limb[(role, side)] = name + hits = [alt.replace("_", "") for alt in LIMB_ROLES[role] + if alt.replace("_", "") in stem] + if hits: + claims.append((len(max(hits, key=len)), role, side, name)) + # Longest stem wins; LIMB_ORDER breaks ties, so a bone matching two roles + # equally well still resolves the way the list intends. + order = {role: i for i, role in enumerate(LIMB_ORDER)} + claims.sort(key=lambda c: (-c[0], order[c[1]])) + used = set() + for _, role, side, name in claims: + if (role, side) in self.limb or name in used: + continue + self.limb[(role, side)] = name + used.add(name) + + # A leg is thigh -> shin -> foot, whatever the bones are called. Walk it. + # + # Names alone cannot settle this and it is not a matter of adding more + # spellings. A bare "leg" is the SHIN on a Mixamo rig (whose thigh is + # "UpLeg") and the THIGH on a rig whose shin is called "knee" — the same + # token means opposite bones, and both rigs are common. What does not vary + # is the skeleton: the foot's parent is the shin and the shin's parent is + # the thigh. + # + # Only ever FILLS IN what the names could not resolve; a confident name + # match is never overridden. Twist bones are stepped over, since a rig may + # put one between the thigh and the shin. + def _fill_limbs_by_anatomy(self): + for side in ("L", "R"): + chain = [] + b = self.bones.get(self.limb.get(("foot", side), "")) + while b is not None and len(chain) < 6: + b = b.parent + if b is None or b.name not in self.names: break + if is_cosmetic(b.name) or is_segment_of(b.name, self.names): + continue # a twist segment is not a joint of its own + chain.append(b.name) + # chain is now [shin, thigh, hips, ...] going up from the foot. + for role, up in (("shin", 0), ("thigh", 1)): + if (role, side) in self.limb or up >= len(chain): + continue + name = chain[up] + # Never claim a bone another role already owns, and never claim + # the trunk — a two-bone leg would otherwise take the hips. + if name in self.limb.values(): + continue + if side_of(name) != side: + continue + self.limb[(role, side)] = name # ---------------------------------------------------------------- spine diff --git a/tools/verify_character.py b/tools/verify_character.py index 87ef9e0..676e0a2 100644 --- a/tools/verify_character.py +++ b/tools/verify_character.py @@ -48,6 +48,16 @@ PATH = argv[0] SIDECAR = argv[1] if len(argv) > 1 else os.path.splitext(PATH)[0] + ".rig.json" LEG_HINTS = ("thigh", "shin", "foot", "toe", "upleg", "calf") +# Resolved bone roles from the sidecar — filled in below. Every check that needs +# to know "which bones are the legs" asks THIS, not the name hints. +# +# The hints are a fallback for a build with no sidecar, and they are only ever +# right for rigs that happen to spell things the way the library does. A VRoid +# rig calls its thigh J_Bip_L_UpperLeg: no hint matches it, so the cross-leg +# bleed check found no leg vertex groups at all and PASSED vacuously, and the +# leg-motion check declared every locomotion clip static while the legs were in +# fact animating perfectly. Two green-looking lies from one missing lookup. +ROLE_LEGS = {"L": set(), "R": set()} failures = [] warnings = [] # Set from the sidecar. A model whose source had no skeleton at all has to go @@ -71,6 +81,10 @@ def check(ok, label, detail="", needs_authored_weights=False, advisory=False): def side_of(name): + if name in ROLE_LEGS["L"]: + return -1 + if name in ROLE_LEGS["R"]: + return 1 n = name.lower() if not any(h in n for h in LEG_HINTS): return 0 @@ -81,9 +95,17 @@ def side_of(name): return 0 +SIDECAR_INFO = {} if os.path.exists(SIDECAR): with open(SIDECAR, "r", encoding="utf-8") as f: - weights_authored = bool(json.load(f).get("weights_authored", True)) + SIDECAR_INFO = json.load(f) + weights_authored = bool(SIDECAR_INFO.get("weights_authored", True)) + _roles = SIDECAR_INFO.get("roles", {}) + for _r in ("thigh", "shin", "foot", "toe"): + for _s in ("L", "R"): + _b = _roles.get(f"{_r}.{_s}") + if _b: + ROLE_LEGS[_s].add(_b) bpy.ops.object.select_all(action="SELECT") bpy.ops.object.delete() @@ -193,6 +215,21 @@ if os.path.exists(SIDECAR): cloth.update(c["bones"]) print(f" sidecar: {len(info.get('chains', []))} cloth chains " f"({len(cloth)} bones), {len(info.get('twist', []))} twist bones") + # A chain whose bones have no measurable extent is DEAD: the runtime drops + # any bone whose tip is shorter than a millimetre, so such a chain simulates + # nothing and the costume is welded solid — silently, because the sidecar + # still reports it. hikari shipped ten of them; her cosmetic bones are + # zero-length terminators from a rig that had been through two toolchains. + dead = 0 + for c in info.get("chains", []): + ext = max((sum(v * v for v in t) ** 0.5 for t in c.get("tips", [])), + default=0.0) + if ext < 0.001: + dead += 1 + if info.get("chains"): + check(dead == 0, "cloth chains have measurable extent", + f"{dead} of {len(info['chains'])} chains are zero-length and will " + f"not simulate", advisory=True) else: warnings.append(f"no sidecar at {SIDECAR}") @@ -202,6 +239,12 @@ else: LOCOMOTION = {"Idle", "Walk", "Run", "Sprint", "Jump", "Fall", "Land", "CrouchIdle", "CrouchWalk", "Dash"} +# The thighs and shins by ROLE, so this works on any rig's spelling. +leg_bones = {b for s in ROLE_LEGS.values() for b in s} +if not leg_bones: + leg_bones = {b.name for b in arm.data.bones + if any(h in b.name.lower() for h in ("thigh", "shin"))} + frozen = [] legless = [] keyed_cloth = set() @@ -217,8 +260,7 @@ for name, action in sorted(actions.items()): moved[b] = max(moved[b], max(vals) - min(vals)) if max(moved.values(), default=0.0) < 0.005: frozen.append(name) - legs = max((v for b, v in moved.items() - if any(h in b.lower() for h in ("thigh", "shin"))), default=0.0) + legs = max((v for b, v in moved.items() if b in leg_bones), default=0.0) if name in LOCOMOTION and legs < 0.01: legless.append(f"{name}({legs:.4f})")