feat: implement automated 3D character pipeline with retargeting and rig management tools

This commit is contained in:
Nicholas Butzke
2026-07-24 20:52:35 -04:00
parent afc954e129
commit 374d9f9822
19 changed files with 3220 additions and 221 deletions
+853
View File
@@ -0,0 +1,853 @@
{
"roles": {
"hips": "DEF-spine",
"head": "DEF-spine.006",
"neck": "DEF-spine.005",
"spine": [
"DEF-spine.001",
"DEF-spine.002",
"DEF-spine.003",
"DEF-spine.004",
"DEF-spine.005",
"DEF-spine.006"
],
"thigh.R": "DEF-thigh.R",
"hand.L": "DEF-hand.L",
"toe.L": "DEF-toe.L",
"hand.R": "DEF-hand.R",
"toe.R": "DEF-toe.R",
"shoulder.R": "DEF-shoulder.R",
"thigh.L": "DEF-thigh.L",
"shin.L": "DEF-shin.L",
"upper_arm.R": "DEF-upper_arm.R",
"upper_arm.L": "DEF-upper_arm.L",
"foot.R": "DEF-foot.R",
"forearm.R": "DEF-forearm.R",
"shin.R": "DEF-shin.R",
"foot.L": "DEF-foot.L",
"forearm.L": "DEF-forearm.L",
"shoulder.L": "DEF-shoulder.L"
},
"chains": [
{
"class": "hair",
"root_parent": "DEF-spine.006",
"bones": [
"DEF-hair",
"DEF-hair.001",
"DEF-hair.002"
],
"tips": [
[
0.0,
0.06838,
0.0
],
[
0.0,
0.04506,
0.0
],
[
-0.01032,
0.00854,
0.01182
]
]
},
{
"class": "hair",
"root_parent": "DEF-spine.006",
"bones": [
"DEF-hair.003",
"DEF-hair.004"
],
"tips": [
[
-0.0,
0.06123,
-0.0
],
[
-0.00017,
0.04439,
-0.00029
]
]
},
{
"class": "hair",
"root_parent": "DEF-spine.006",
"bones": [
"DEF-hair.007",
"DEF-hair.005"
],
"tips": [
[
0.0,
0.04186,
-0.0
],
[
0.00621,
0.02144,
0.00318
]
]
},
{
"class": "hair",
"root_parent": "DEF-spine.006",
"bones": [
"DEF-hair.008",
"DEF-hair.009",
"DEF-hair.010",
"DEF-hair.011"
],
"tips": [
[
-0.0,
0.08774,
0.0
],
[
0.0,
0.05443,
-0.0
],
[
-0.0,
0.03074,
0.0
],
[
-0.00258,
0.02087,
0.00039
]
]
},
{
"class": "hair",
"root_parent": "DEF-spine.006",
"bones": [
"DEF-hair.L.008",
"DEF-hair.L.009",
"DEF-hair.L.010",
"DEF-hair.L.011"
],
"tips": [
[
-0.0,
0.15518,
0.0
],
[
0.0,
0.1139,
-0.0
],
[
0.0,
0.0683,
-0.0
],
[
-0.00184,
0.09275,
-0.00073
]
]
},
{
"class": "hair",
"root_parent": "DEF-spine.006",
"bones": [
"DEF-hair.L.012",
"DEF-hair.L.013",
"DEF-hair.L.014"
],
"tips": [
[
0.0,
0.105,
0.0
],
[
0.0,
0.05073,
-0.0
],
[
-0.0067,
0.04095,
0.00485
]
]
},
{
"class": "hair",
"root_parent": "DEF-spine.006",
"bones": [
"DEF-hair.L.018",
"DEF-hair.L.019",
"DEF-hair.L.020",
"DEF-hair.L.021"
],
"tips": [
[
0.0,
0.06312,
-0.0
],
[
-0.0,
0.05056,
0.0
],
[
0.0,
0.02034,
0.0
],
[
0.0048,
0.02461,
-0.00168
]
]
},
{
"class": "hair",
"root_parent": "DEF-spine.006",
"bones": [
"DEF-hair.L.022",
"DEF-hair.L.023",
"DEF-hair.L.024",
"DEF-hair.L.025"
],
"tips": [
[
0.0,
0.06757,
0.0
],
[
0.0,
0.05187,
0.0
],
[
-0.0,
0.02554,
0.0
],
[
-0.00718,
0.05819,
-0.00047
]
]
},
{
"class": "hair",
"root_parent": "DEF-spine.006",
"bones": [
"DEF-hair.R.008",
"DEF-hair.R.009",
"DEF-hair.R.010",
"DEF-hair.R.011"
],
"tips": [
[
0.0,
0.15518,
0.0
],
[
-0.0,
0.1139,
0.0
],
[
0.0,
0.0683,
-0.0
],
[
0.00252,
-0.00932,
0.00663
]
]
},
{
"class": "hair",
"root_parent": "DEF-spine.006",
"bones": [
"DEF-hair.R.012",
"DEF-hair.R.013",
"DEF-hair.R.014"
],
"tips": [
[
0.0,
0.105,
0.0
],
[
-0.0,
0.05073,
0.0
],
[
0.0059,
0.03897,
0.00457
]
]
},
{
"class": "hair",
"root_parent": "DEF-spine.004",
"bones": [
"DEF-hair.L",
"DEF-hair.L.001",
"DEF-hair.L.002",
"DEF-hair.L.003"
],
"tips": [
[
-0.0,
0.11762,
0.0
],
[
0.0,
0.18049,
0.0
],
[
-0.0,
0.10823,
0.0
],
[
-0.04057,
-0.18138,
-0.1173
]
]
},
{
"class": "hair",
"root_parent": "DEF-spine.004",
"bones": [
"DEF-hair.L.004",
"DEF-hair.L.005",
"DEF-hair.L.006",
"DEF-hair.L.007"
],
"tips": [
[
0.0,
0.13941,
-0.0
],
[
-0.0,
0.20008,
-0.0
],
[
-0.0,
0.10005,
-0.0
],
[
-0.05539,
-0.26952,
-0.08576
]
]
},
{
"class": "hair",
"root_parent": "DEF-spine.004",
"bones": [
"DEF-hair.R",
"DEF-hair.R.001",
"DEF-hair.R.002",
"DEF-hair.R.003"
],
"tips": [
[
-0.0,
0.11761,
-0.0
],
[
0.0,
0.18049,
-0.0
],
[
0.0,
0.10823,
-0.0
],
[
0.00673,
0.04894,
-0.00199
]
]
},
{
"class": "hair",
"root_parent": "DEF-spine.004",
"bones": [
"DEF-hair.R.004",
"DEF-hair.R.005",
"DEF-hair.R.006",
"DEF-hair.R.007"
],
"tips": [
[
0.0,
0.13941,
0.0
],
[
0.0,
0.20008,
-0.0
],
[
-0.0,
0.10005,
-0.0
],
[
0.108,
-0.20337,
-0.03794
]
]
},
{
"class": "skirt",
"root_parent": "DEF-spine.001",
"bones": [
"DEF-skirt"
],
"tips": [
[
0.00968,
0.19273,
-0.02416
]
]
},
{
"class": "skirt",
"root_parent": "DEF-spine.001",
"bones": [
"DEF-skirt.003"
],
"tips": [
[
0.00768,
0.07108,
-0.00326
]
]
},
{
"class": "skirt",
"root_parent": "DEF-spine.001",
"bones": [
"DEF-skirt.L"
],
"tips": [
[
0.00938,
0.15041,
0.0127
]
]
},
{
"class": "skirt",
"root_parent": "DEF-spine.001",
"bones": [
"DEF-skirt.L.003"
],
"tips": [
[
0.04759,
0.0342,
0.00628
]
]
},
{
"class": "skirt",
"root_parent": "DEF-spine.001",
"bones": [
"DEF-skirt.R"
],
"tips": [
[
-0.03068,
0.21535,
-0.00882
]
]
},
{
"class": "skirt",
"root_parent": "DEF-spine.001",
"bones": [
"DEF-skirt.R.003"
],
"tips": [
[
-0.01829,
0.13101,
0.02073
]
]
},
{
"class": "skirt",
"root_parent": "DEF-spine.001",
"bones": [
"DEF-skirt.007"
],
"tips": [
[
0.04149,
0.08297,
0.01074
]
]
},
{
"class": "skirt",
"root_parent": "DEF-spine",
"bones": [
"DEF-skirt.002"
],
"tips": [
[
-0.02029,
0.0589,
-0.05819
]
]
},
{
"class": "skirt",
"root_parent": "DEF-spine",
"bones": [
"DEF-skirt.011"
],
"tips": [
[
0.02937,
0.14504,
-0.07502
]
]
},
{
"class": "skirt",
"root_parent": "DEF-spine",
"bones": [
"DEF-skirt.006"
],
"tips": [
[
0.00091,
0.03548,
-0.00392
]
]
},
{
"class": "skirt",
"root_parent": "DEF-spine",
"bones": [
"DEF-skirt.005"
],
"tips": [
[
0.02723,
0.16522,
-0.072
]
]
},
{
"class": "skirt",
"root_parent": "DEF-spine",
"bones": [
"DEF-skirt.L.002"
],
"tips": [
[
0.00968,
0.11247,
0.00454
]
]
},
{
"class": "skirt",
"root_parent": "DEF-spine",
"bones": [
"DEF-skirt.L.001"
],
"tips": [
[
0.08352,
0.19687,
-0.07977
]
]
},
{
"class": "skirt",
"root_parent": "DEF-spine",
"bones": [
"DEF-skirt.L.005"
],
"tips": [
[
-0.00431,
0.06347,
0.00967
]
]
},
{
"class": "skirt",
"root_parent": "DEF-spine",
"bones": [
"DEF-skirt.L.004"
],
"tips": [
[
0.12519,
0.17009,
0.08382
]
]
},
{
"class": "skirt",
"root_parent": "DEF-spine",
"bones": [
"DEF-skirt.R.002"
],
"tips": [
[
-0.00968,
0.11247,
0.00454
]
]
},
{
"class": "skirt",
"root_parent": "DEF-spine",
"bones": [
"DEF-skirt.R.001"
],
"tips": [
[
-0.1032,
0.21865,
-0.0877
]
]
},
{
"class": "skirt",
"root_parent": "DEF-spine",
"bones": [
"DEF-skirt.R.005"
],
"tips": [
[
-0.06487,
0.03189,
0.02494
]
]
},
{
"class": "skirt",
"root_parent": "DEF-spine",
"bones": [
"DEF-skirt.R.004"
],
"tips": [
[
0.04541,
0.19105,
-0.00365
]
]
},
{
"class": "skirt",
"root_parent": "DEF-spine",
"bones": [
"DEF-skirt.010"
],
"tips": [
[
0.03727,
0.10017,
0.00882
]
]
},
{
"class": "skirt",
"root_parent": "DEF-spine",
"bones": [
"DEF-skirt.009"
],
"tips": [
[
0.04312,
0.09673,
-0.03854
]
]
}
],
"twist": [
{
"bone": "DEF-upper_arm.L.001",
"parent": "DEF-upper_arm.L",
"child": "DEF-forearm.L"
},
{
"bone": "DEF-forearm.L.001",
"parent": "DEF-forearm.L",
"child": "DEF-hand.L"
},
{
"bone": "DEF-upper_arm.R.001",
"parent": "DEF-upper_arm.R",
"child": "DEF-forearm.R"
},
{
"bone": "DEF-forearm.R.001",
"parent": "DEF-forearm.R",
"child": "DEF-hand.R"
},
{
"bone": "DEF-thigh.L.001",
"parent": "DEF-thigh.L",
"child": "DEF-shin.L"
},
{
"bone": "DEF-shin.L.001",
"parent": "DEF-shin.L",
"child": "DEF-foot.L"
},
{
"bone": "DEF-thigh.R.001",
"parent": "DEF-thigh.R",
"child": "DEF-shin.R"
},
{
"bone": "DEF-shin.R.001",
"parent": "DEF-shin.R",
"child": "DEF-foot.R"
}
],
"colliders": [
{
"bone": "DEF-thigh.L",
"child": "DEF-shin.L",
"radius": 0.1543
},
{
"bone": "DEF-thigh.R",
"child": "DEF-shin.R",
"radius": 0.1519
},
{
"bone": "DEF-shin.L",
"child": "DEF-foot.L",
"radius": 0.0739
},
{
"bone": "DEF-shin.R",
"child": "DEF-foot.R",
"radius": 0.0739
}
],
"weights_authored": true,
"driven_bones": [
"DEF-f_index.01.L",
"DEF-f_index.01.R",
"DEF-f_index.02.L",
"DEF-f_index.02.R",
"DEF-f_index.03.L",
"DEF-f_index.03.R",
"DEF-f_middle.01.L",
"DEF-f_middle.01.R",
"DEF-f_middle.02.L",
"DEF-f_middle.02.R",
"DEF-f_middle.03.L",
"DEF-f_middle.03.R",
"DEF-f_pinky.01.L",
"DEF-f_pinky.01.R",
"DEF-f_pinky.02.L",
"DEF-f_pinky.02.R",
"DEF-f_pinky.03.L",
"DEF-f_pinky.03.R",
"DEF-f_ring.01.L",
"DEF-f_ring.01.R",
"DEF-f_ring.02.L",
"DEF-f_ring.02.R",
"DEF-f_ring.03.L",
"DEF-f_ring.03.R",
"DEF-foot.L",
"DEF-foot.R",
"DEF-forearm.L",
"DEF-forearm.R",
"DEF-hand.L",
"DEF-hand.R",
"DEF-shin.L",
"DEF-shin.R",
"DEF-shoulder.L",
"DEF-shoulder.R",
"DEF-spine",
"DEF-spine.001",
"DEF-spine.002",
"DEF-spine.003",
"DEF-spine.004",
"DEF-spine.005",
"DEF-spine.006",
"DEF-thigh.L",
"DEF-thigh.R",
"DEF-thumb.01.L",
"DEF-thumb.01.R",
"DEF-thumb.02.L",
"DEF-thumb.02.R",
"DEF-thumb.03.L",
"DEF-thumb.03.R",
"DEF-toe.L",
"DEF-toe.R",
"DEF-upper_arm.L",
"DEF-upper_arm.R"
]
}