chore: update t6 xmodel part classifications

This commit is contained in:
Jan 2024-08-10 23:41:37 +02:00
parent dfd8d1dbe9
commit 01c284fb37
No known key found for this signature in database
GPG Key ID: 44B581F78FF5C57C
5 changed files with 70 additions and 192 deletions

View File

@ -1,21 +1,23 @@
J_Hip_RI,right_leg_upper j_helmet,helmet
J_Hip_LE,left_leg_upper j_head,head
J_Knee_RI,right_leg_lower j_neck,neck
J_SpineUpper,torso_upper j_clavicle_le,torso_upper
J_Knee_LE,left_leg_lower j_clavicle_ri,torso_upper
J_Ankle_RI,right_foot j_spineupper,torso_upper
J_Ankle_LE,left_foot j_mainroot,torso_lower
J_Clavicle_RI,torso_upper j_shoulder_ri,right_arm_upper
J_Clavicle_LE,torso_upper j_shoulder_le,left_arm_upper
J_Shoulder_RI,right_arm_upper j_elbow_ri,right_arm_lower
J_Shoulder_LE,left_arm_upper j_elbow_le,left_arm_lower
J_Neck,neck j_wrist_ri,right_hand
J_Head,head j_wrist_le,left_hand
J_Elbow_RI,right_arm_lower j_hip_ri,right_leg_upper
J_Elbow_LE,left_arm_lower j_hip_le,left_leg_upper
J_Wrist_RI,right_hand j_knee_ri,right_leg_lower
J_Wrist_LE,left_hand j_knee_le,left_leg_lower
J_MainRoot,torso_lower j_ankle_ri,right_foot
TAG_WEAPON_LEFT,gun j_ankle_le,left_foot
TAG_WEAPON_RIGHT,gun tag_weapon_left,gun
J_Helmet,helmet tag_weapon_right,gun
tag_stowed_back,shield
tag_weapon_left,shield

1 J_Hip_RI j_helmet right_leg_upper helmet
2 J_Hip_LE j_head left_leg_upper head
3 J_Knee_RI j_neck right_leg_lower neck
4 J_SpineUpper j_clavicle_le torso_upper torso_upper
5 J_Knee_LE j_clavicle_ri left_leg_lower torso_upper
6 J_Ankle_RI j_spineupper right_foot torso_upper
7 J_Ankle_LE j_mainroot left_foot torso_lower
8 J_Clavicle_RI j_shoulder_ri torso_upper right_arm_upper
9 J_Clavicle_LE j_shoulder_le torso_upper left_arm_upper
10 J_Shoulder_RI j_elbow_ri right_arm_upper right_arm_lower
11 J_Shoulder_LE j_elbow_le left_arm_upper left_arm_lower
12 J_Neck j_wrist_ri neck right_hand
13 J_Head j_wrist_le head left_hand
14 J_Elbow_RI j_hip_ri right_arm_lower right_leg_upper
15 J_Elbow_LE j_hip_le left_arm_lower left_leg_upper
16 J_Wrist_RI j_knee_ri right_hand right_leg_lower
17 J_Wrist_LE j_knee_le left_hand left_leg_lower
18 J_MainRoot j_ankle_ri torso_lower right_foot
19 TAG_WEAPON_LEFT j_ankle_le gun left_foot
20 TAG_WEAPON_RIGHT tag_weapon_left gun gun
21 J_Helmet tag_weapon_right helmet gun
22 tag_stowed_back shield
23 tag_weapon_left shield

View File

@ -1,19 +1,23 @@
J_Hip_RI,right_leg_upper j_helmet,helmet
J_Hip_LE,left_leg_upper j_head,head
J_Knee_RI,right_leg_lower j_neck,neck
J_SpineUpper,torso_lower j_clavicle_le,torso_upper
J_SpineLower,torso_lower j_clavicle_ri,torso_upper
J_MainRoot,torso_lower j_spineupper,torso_middle
J_Knee_LE,left_leg_lower j_mainroot,torso_lower
J_Ankle_RI,right_foot j_shoulder_ri,right_arm_upper
J_Ankle_LE,left_foot j_shoulder_le,left_arm_upper
J_Clavicle_RI,torso_upper j_elbow_ri,right_arm_lower
J_Clavicle_LE,torso_upper j_elbow_le,left_arm_lower
J_Shoulder_RI,right_arm_upper j_wrist_ri,right_hand
J_Shoulder_LE,left_arm_upper j_wrist_le,left_hand
J_Neck,neck j_hip_ri,right_leg_upper
J_Head,head j_hip_le,left_leg_upper
J_Elbow_RI,right_arm_lower j_knee_ri,right_leg_lower
J_Elbow_LE,left_arm_lower j_knee_le,left_leg_lower
J_Wrist_RI,right_hand j_ankle_ri,right_foot
J_Wrist_LE,left_hand j_ankle_le,left_foot
tag_weapon_left,gun
tag_weapon_right,gun
tag_stowed_back,shield
tag_weapon_left,shield

1 J_Hip_RI j_helmet right_leg_upper helmet
2 J_Hip_LE j_head left_leg_upper head
3 J_Knee_RI j_neck right_leg_lower neck
4 J_SpineUpper j_clavicle_le torso_lower torso_upper
5 J_SpineLower j_clavicle_ri torso_lower torso_upper
6 J_MainRoot j_spineupper torso_lower torso_middle
7 J_Knee_LE j_mainroot left_leg_lower torso_lower
8 J_Ankle_RI j_shoulder_ri right_foot right_arm_upper
9 J_Ankle_LE j_shoulder_le left_foot left_arm_upper
10 J_Clavicle_RI j_elbow_ri torso_upper right_arm_lower
11 J_Clavicle_LE j_elbow_le torso_upper left_arm_lower
12 J_Shoulder_RI j_wrist_ri right_arm_upper right_hand
13 J_Shoulder_LE j_wrist_le left_arm_upper left_hand
14 J_Neck j_hip_ri neck right_leg_upper
15 J_Head j_hip_le head left_leg_upper
16 J_Elbow_RI j_knee_ri right_arm_lower right_leg_lower
17 J_Elbow_LE j_knee_le left_arm_lower left_leg_lower
18 J_Wrist_RI j_ankle_ri right_hand right_foot
19 J_Wrist_LE j_ankle_le left_hand left_foot
20 tag_weapon_left gun
21 tag_weapon_right gun
22 tag_stowed_back shield
23 tag_weapon_left shield

View File

@ -1,140 +0,0 @@
j_helmet,helmet
head,02
j_brow_le,02
j_brow_ri,02
j_cheek_le,02
j_cheek_ri,02
j_cheekpuff_le,02
j_cheekpuff_ri,02
j_eye_lid_bot_le,02
j_eye_lid_bot_ri,02
j_eye_lid_top_le,02
j_eye_lid_top_ri,02
j_eyeball_le,02
j_eyeball_ri,02
j_eyebrow_top_le,02
j_eyebrow_top_ri,02
j_eyelid_bottom_le,02
j_eyelid_bottom_ri,02
j_eyelid_top_le,02
j_eyelid_top_ri,02
j_head,02
j_head_end,02
j_helmet,02
j_jaw,02
j_levator_le,02
j_levator_ri,02
j_lip_bot_le,02
j_lip_bot_ri,02
j_lip_top_le,02
j_lip_top_ri,02
j_mouth_le,02
j_mouth_ri,02
j_nose,02
le_ear,02
le_ear_end,02
ri_ear,02
ri_ear_end,02
tag_eye,02
tag_mouth_fx,02
j_neck,03
j_neck_end,03
neck,03
j_clavicle_le,04
j_clavicle_ri,04
back_mid,05
j_shoulderraise_le,05
j_shoulderraise_ri,05
j_spine4,05
j_spineupper,05
tag_inhand,05
tag_weapon_chest,05
torso_stabilizer,06
j_elbow_bulge_ri,07
j_shoulder_ri,07
j_shouldertwist_ri,07
shoulder,07
j_elbow_bulge_le,08
j_shoulder_le,08
j_shouldertwist_le,08
j_elbow_ri,09
j_sleave_reshape_top_ri_1,09
j_sleave_reshape_top_ri_2,09
j_sleave_reshape_top_ri_3,09
j_wristtwist_ri,09
j_elbow_le,10
j_sleave_reshape_bottom_le_1,10
j_sleave_reshape_bottom_le_2,10
j_sleave_reshape_top_le_1,10
j_sleave_reshape_top_le_2,10
j_sleave_reshape_top_le_3,10
j_wristtwist_le,10
j_index_ri_0,11
j_index_ri_1,11
j_index_ri_2,11
j_index_ri_3,11
j_mid_ri_0,11
j_mid_ri_1,11
j_mid_ri_2,11
j_mid_ri_3,11
j_palm_end_ri,11
j_palm_ri,11
j_pinky_ri_0,11
j_pinky_ri_1,11
j_pinky_ri_2,11
j_pinky_ri_3,11
j_pinkypalm_ri,11
j_ring_ri_0,11
j_ring_ri_1,11
j_ring_ri_2,11
j_ring_ri_3,11
j_ringpalm_ri,11
j_thumb_ri_0,11
j_thumb_ri_1,11
j_thumb_ri_2,11
j_thumb_ri_3,11
j_webbing_ri,11
j_wrist_ri,11
tag_weapon_right,11
j_index_le_0,12
j_index_le_1,12
j_index_le_2,12
j_index_le_3,12
j_mid_le_0,12
j_mid_le_1,12
j_mid_le_2,12
j_mid_le_3,12
j_palm_end_le,12
j_palm_le,12
j_pinky_le_0,12
j_pinky_le_1,12
j_pinky_le_2,12
j_pinky_le_3,12
j_pinkypalm_le,12
j_ring_le_0,12
j_ring_le_1,12
j_ring_le_2,12
j_ring_le_3,12
j_ringpalm_le,12
j_thumb_le_0,12
j_thumb_le_1,12
j_thumb_le_2,12
j_thumb_le_3,12
j_webbing_le,12
j_wrist_le,12
tag_knife_attach,12
j_hip_ri,13
j_hip_le,14
j_hiptwist_le,14
j_knee_bulge_ri,15
j_knee_ri,15
j_knee_bulge_le,16
j_knee_le,16
j_ankle_ri,17
j_ball_ri,17
j_toe_ri,17
j_ankle_le,18
j_ball_le,18
j_toe_le,18
tag_stowed_back,20
tag_weapon_left,20
1 j_helmet helmet
2 head 02
3 j_brow_le 02
4 j_brow_ri 02
5 j_cheek_le 02
6 j_cheek_ri 02
7 j_cheekpuff_le 02
8 j_cheekpuff_ri 02
9 j_eye_lid_bot_le 02
10 j_eye_lid_bot_ri 02
11 j_eye_lid_top_le 02
12 j_eye_lid_top_ri 02
13 j_eyeball_le 02
14 j_eyeball_ri 02
15 j_eyebrow_top_le 02
16 j_eyebrow_top_ri 02
17 j_eyelid_bottom_le 02
18 j_eyelid_bottom_ri 02
19 j_eyelid_top_le 02
20 j_eyelid_top_ri 02
21 j_head 02
22 j_head_end 02
23 j_helmet 02
24 j_jaw 02
25 j_levator_le 02
26 j_levator_ri 02
27 j_lip_bot_le 02
28 j_lip_bot_ri 02
29 j_lip_top_le 02
30 j_lip_top_ri 02
31 j_mouth_le 02
32 j_mouth_ri 02
33 j_nose 02
34 le_ear 02
35 le_ear_end 02
36 ri_ear 02
37 ri_ear_end 02
38 tag_eye 02
39 tag_mouth_fx 02
40 j_neck 03
41 j_neck_end 03
42 neck 03
43 j_clavicle_le 04
44 j_clavicle_ri 04
45 back_mid 05
46 j_shoulderraise_le 05
47 j_shoulderraise_ri 05
48 j_spine4 05
49 j_spineupper 05
50 tag_inhand 05
51 tag_weapon_chest 05
52 torso_stabilizer 06
53 j_elbow_bulge_ri 07
54 j_shoulder_ri 07
55 j_shouldertwist_ri 07
56 shoulder 07
57 j_elbow_bulge_le 08
58 j_shoulder_le 08
59 j_shouldertwist_le 08
60 j_elbow_ri 09
61 j_sleave_reshape_top_ri_1 09
62 j_sleave_reshape_top_ri_2 09
63 j_sleave_reshape_top_ri_3 09
64 j_wristtwist_ri 09
65 j_elbow_le 10
66 j_sleave_reshape_bottom_le_1 10
67 j_sleave_reshape_bottom_le_2 10
68 j_sleave_reshape_top_le_1 10
69 j_sleave_reshape_top_le_2 10
70 j_sleave_reshape_top_le_3 10
71 j_wristtwist_le 10
72 j_index_ri_0 11
73 j_index_ri_1 11
74 j_index_ri_2 11
75 j_index_ri_3 11
76 j_mid_ri_0 11
77 j_mid_ri_1 11
78 j_mid_ri_2 11
79 j_mid_ri_3 11
80 j_palm_end_ri 11
81 j_palm_ri 11
82 j_pinky_ri_0 11
83 j_pinky_ri_1 11
84 j_pinky_ri_2 11
85 j_pinky_ri_3 11
86 j_pinkypalm_ri 11
87 j_ring_ri_0 11
88 j_ring_ri_1 11
89 j_ring_ri_2 11
90 j_ring_ri_3 11
91 j_ringpalm_ri 11
92 j_thumb_ri_0 11
93 j_thumb_ri_1 11
94 j_thumb_ri_2 11
95 j_thumb_ri_3 11
96 j_webbing_ri 11
97 j_wrist_ri 11
98 tag_weapon_right 11
99 j_index_le_0 12
100 j_index_le_1 12
101 j_index_le_2 12
102 j_index_le_3 12
103 j_mid_le_0 12
104 j_mid_le_1 12
105 j_mid_le_2 12
106 j_mid_le_3 12
107 j_palm_end_le 12
108 j_palm_le 12
109 j_pinky_le_0 12
110 j_pinky_le_1 12
111 j_pinky_le_2 12
112 j_pinky_le_3 12
113 j_pinkypalm_le 12
114 j_ring_le_0 12
115 j_ring_le_1 12
116 j_ring_le_2 12
117 j_ring_le_3 12
118 j_ringpalm_le 12
119 j_thumb_le_0 12
120 j_thumb_le_1 12
121 j_thumb_le_2 12
122 j_thumb_le_3 12
123 j_webbing_le 12
124 j_wrist_le 12
125 tag_knife_attach 12
126 j_hip_ri 13
127 j_hip_le 14
128 j_hiptwist_le 14
129 j_knee_bulge_ri 15
130 j_knee_ri 15
131 j_knee_bulge_le 16
132 j_knee_le 16
133 j_ankle_ri 17
134 j_ball_ri 17
135 j_toe_ri 17
136 j_ankle_le 18
137 j_ball_le 18
138 j_toe_le 18
139 tag_stowed_back 20
140 tag_weapon_left 20

View File

@ -30,14 +30,35 @@ namespace fs = std::filesystem;
namespace namespace
{ {
const char* HITLOC_NAMES[]{ const char* HITLOC_NAMES[]{
"none", "helmet", "head", "neck", "torso_upper", "torso_middle", "torso_lower", "right_arm_upper", // clang-format off
"left_arm_upper", "right_arm_lower", "left_arm_lower", "right_hand", "left_hand", "right_leg_upper", "left_leg_upper", "right_leg_lower", "none",
"left_leg_lower", "right_foot", "left_foot", "gun", "shield", "helmet",
"head",
"neck",
"torso_upper",
"torso_middle",
"torso_lower",
"right_arm_upper",
"left_arm_upper",
"right_arm_lower",
"left_arm_lower",
"right_hand",
"left_hand",
"right_leg_upper",
"left_leg_upper",
"right_leg_lower",
"left_leg_lower",
"right_foot",
"left_foot",
"gun",
"shield",
// clang-format on
}; };
static_assert(std::extent_v<decltype(HITLOC_NAMES)> == HITLOC_COUNT); static_assert(std::extent_v<decltype(HITLOC_NAMES)> == HITLOC_COUNT);
class PartClassificationState final : public IZoneAssetLoaderState class PartClassificationState final : public IZoneAssetLoaderState
{ {
// TODO: Use MP part classifications when building an mp fastfile
static constexpr auto PART_CLASSIFICATION_FILE = "partclassification.csv"; static constexpr auto PART_CLASSIFICATION_FILE = "partclassification.csv";
public: public:

View File

@ -133,15 +133,6 @@ namespace
bone.scale[1] = 1.0f; bone.scale[1] = 1.0f;
bone.scale[2] = 1.0f; bone.scale[2] = 1.0f;
if (model->partClassification[boneNum])
{
if (boneNum < model->numRootBones
|| model->partClassification[boneNum - model->parentList[boneNum - model->numRootBones]] != model->partClassification[boneNum])
{
std::cerr << std::format("Part: {:02} = {}\n", model->partClassification[boneNum], bone.name);
}
}
const auto& baseMat = model->baseMat[boneNum]; const auto& baseMat = model->baseMat[boneNum];
bone.globalOffset[0] = baseMat.trans.x; bone.globalOffset[0] = baseMat.trans.x;
bone.globalOffset[1] = baseMat.trans.y; bone.globalOffset[1] = baseMat.trans.y;