diff --git a/raw/t6/partclassification.csv b/raw/t6/partclassification.csv index 66ac687f..e0622b8d 100644 --- a/raw/t6/partclassification.csv +++ b/raw/t6/partclassification.csv @@ -1,21 +1,23 @@ -J_Hip_RI,right_leg_upper -J_Hip_LE,left_leg_upper -J_Knee_RI,right_leg_lower -J_SpineUpper,torso_upper -J_Knee_LE,left_leg_lower -J_Ankle_RI,right_foot -J_Ankle_LE,left_foot -J_Clavicle_RI,torso_upper -J_Clavicle_LE,torso_upper -J_Shoulder_RI,right_arm_upper -J_Shoulder_LE,left_arm_upper -J_Neck,neck -J_Head,head -J_Elbow_RI,right_arm_lower -J_Elbow_LE,left_arm_lower -J_Wrist_RI,right_hand -J_Wrist_LE,left_hand -J_MainRoot,torso_lower -TAG_WEAPON_LEFT,gun -TAG_WEAPON_RIGHT,gun -J_Helmet,helmet +j_helmet,helmet +j_head,head +j_neck,neck +j_clavicle_le,torso_upper +j_clavicle_ri,torso_upper +j_spineupper,torso_upper +j_mainroot,torso_lower +j_shoulder_ri,right_arm_upper +j_shoulder_le,left_arm_upper +j_elbow_ri,right_arm_lower +j_elbow_le,left_arm_lower +j_wrist_ri,right_hand +j_wrist_le,left_hand +j_hip_ri,right_leg_upper +j_hip_le,left_leg_upper +j_knee_ri,right_leg_lower +j_knee_le,left_leg_lower +j_ankle_ri,right_foot +j_ankle_le,left_foot +tag_weapon_left,gun +tag_weapon_right,gun +tag_stowed_back,shield +tag_weapon_left,shield diff --git a/raw/t6/partclassification_mp.csv b/raw/t6/partclassification_mp.csv index 87ee201f..9ee2ad70 100644 --- a/raw/t6/partclassification_mp.csv +++ b/raw/t6/partclassification_mp.csv @@ -1,19 +1,23 @@ -J_Hip_RI,right_leg_upper -J_Hip_LE,left_leg_upper -J_Knee_RI,right_leg_lower -J_SpineUpper,torso_lower -J_SpineLower,torso_lower -J_MainRoot,torso_lower -J_Knee_LE,left_leg_lower -J_Ankle_RI,right_foot -J_Ankle_LE,left_foot -J_Clavicle_RI,torso_upper -J_Clavicle_LE,torso_upper -J_Shoulder_RI,right_arm_upper -J_Shoulder_LE,left_arm_upper -J_Neck,neck -J_Head,head -J_Elbow_RI,right_arm_lower -J_Elbow_LE,left_arm_lower -J_Wrist_RI,right_hand -J_Wrist_LE,left_hand +j_helmet,helmet +j_head,head +j_neck,neck +j_clavicle_le,torso_upper +j_clavicle_ri,torso_upper +j_spineupper,torso_middle +j_mainroot,torso_lower +j_shoulder_ri,right_arm_upper +j_shoulder_le,left_arm_upper +j_elbow_ri,right_arm_lower +j_elbow_le,left_arm_lower +j_wrist_ri,right_hand +j_wrist_le,left_hand +j_hip_ri,right_leg_upper +j_hip_le,left_leg_upper +j_knee_ri,right_leg_lower +j_knee_le,left_leg_lower +j_ankle_ri,right_foot +j_ankle_le,left_foot +tag_weapon_left,gun +tag_weapon_right,gun +tag_stowed_back,shield +tag_weapon_left,shield diff --git a/raw/t6/partclassification_new.csv b/raw/t6/partclassification_new.csv deleted file mode 100644 index f22da27e..00000000 --- a/raw/t6/partclassification_new.csv +++ /dev/null @@ -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 \ No newline at end of file diff --git a/src/ObjLoading/Game/T6/XModel/JsonXModelLoader.cpp b/src/ObjLoading/Game/T6/XModel/JsonXModelLoader.cpp index 9a2a7c9b..677f4973 100644 --- a/src/ObjLoading/Game/T6/XModel/JsonXModelLoader.cpp +++ b/src/ObjLoading/Game/T6/XModel/JsonXModelLoader.cpp @@ -30,14 +30,35 @@ namespace fs = std::filesystem; namespace { const char* HITLOC_NAMES[]{ - "none", "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 off + "none", + "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 == HITLOC_COUNT); class PartClassificationState final : public IZoneAssetLoaderState { + // TODO: Use MP part classifications when building an mp fastfile static constexpr auto PART_CLASSIFICATION_FILE = "partclassification.csv"; public: diff --git a/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperXModel.cpp b/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperXModel.cpp index 98a324ab..0d77d8a8 100644 --- a/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperXModel.cpp +++ b/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperXModel.cpp @@ -133,15 +133,6 @@ namespace bone.scale[1] = 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]; bone.globalOffset[0] = baseMat.trans.x; bone.globalOffset[1] = baseMat.trans.y;