mirror of
https://github.com/korenkonder/ReDIVA.git
synced 2026-10-03 04:08:10 +03:00
3434 lines
101 KiB
C++
3434 lines
101 KiB
C++
/*
|
|
by korenkonder
|
|
GitHub/GitLab: korenkonder
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include "../../KKdLib/default.hpp"
|
|
#include "../../KKdLib/database/bone.hpp"
|
|
#include "../../KKdLib/database/motion.hpp"
|
|
#include "../../KKdLib/mat.hpp"
|
|
#include "../../KKdLib/mot.hpp"
|
|
#include "../../KKdLib/vec.hpp"
|
|
#include "../draw_object.hpp"
|
|
#include "../item_table.hpp"
|
|
#include "../object.hpp"
|
|
#include "../static_var.hpp"
|
|
|
|
enum ex_expression_block_stack_type {
|
|
EX_EXPRESSION_BLOCK_STACK_NUMBER = 0x00,
|
|
EX_EXPRESSION_BLOCK_STACK_VARIABLE = 0x01,
|
|
EX_EXPRESSION_BLOCK_STACK_VARIABLE_RADIAN = 0x02,
|
|
EX_EXPRESSION_BLOCK_STACK_OP1 = 0x03,
|
|
EX_EXPRESSION_BLOCK_STACK_OP2 = 0x04,
|
|
EX_EXPRESSION_BLOCK_STACK_OP3 = 0x05,
|
|
};
|
|
|
|
enum eyes_base_adjust_type {
|
|
EYES_BASE_ADJUST_NONE = -1,
|
|
EYES_BASE_ADJUST_DIRECTION = 0x00,
|
|
EYES_BASE_ADJUST_CLEARANCE = 0x01,
|
|
EYES_BASE_ADJUST_OFF = 0x02,
|
|
EYES_BASE_ADJUST_MAX = 0x03,
|
|
};
|
|
|
|
enum mot_bone_index {
|
|
MOT_BONE_N_HARA_CP = 0x00,
|
|
MOT_BONE_KG_HARA_Y = 0x01,
|
|
MOT_BONE_KL_HARA_XZ = 0x02,
|
|
MOT_BONE_KL_HARA_ETC = 0x03,
|
|
MOT_BONE_N_HARA = 0x04,
|
|
MOT_BONE_CL_MUNE = 0x05,
|
|
MOT_BONE_J_MUNE_WJ = 0x06,
|
|
MOT_BONE_E_MUNE_CP = 0x07,
|
|
MOT_BONE_N_MUNE_B = 0x08,
|
|
MOT_BONE_KL_MUNE_B_WJ = 0x09,
|
|
MOT_BONE_KL_KUBI = 0x0A,
|
|
MOT_BONE_N_KAO = 0x0B,
|
|
MOT_BONE_CL_KAO = 0x0C,
|
|
MOT_BONE_J_KAO_WJ = 0x0D,
|
|
MOT_BONE_E_KAO_CP = 0x0E,
|
|
MOT_BONE_FACE_ROOT = 0x0F,
|
|
MOT_BONE_N_AGO = 0x10,
|
|
MOT_BONE_KL_AGO_WJ = 0x11,
|
|
MOT_BONE_N_TOOTH_UNDER = 0x12,
|
|
MOT_BONE_TL_TOOTH_UNDER_WJ = 0x13,
|
|
MOT_BONE_N_EYE_L = 0x14,
|
|
MOT_BONE_KL_EYE_L = 0x15,
|
|
MOT_BONE_N_EYE_L_WJ_EX = 0x16,
|
|
MOT_BONE_KL_HIGHLIGHT_L_WJ = 0x17,
|
|
MOT_BONE_N_EYE_R = 0x18,
|
|
MOT_BONE_KL_EYE_R = 0x19,
|
|
MOT_BONE_N_EYE_R_WJ_EX = 0x1A,
|
|
MOT_BONE_KL_HIGHLIGHT_R_WJ = 0x1B,
|
|
MOT_BONE_N_EYELID_L_A = 0x1C,
|
|
MOT_BONE_TL_EYELID_L_A_WJ = 0x1D,
|
|
MOT_BONE_N_EYELID_L_B = 0x1E,
|
|
MOT_BONE_TL_EYELID_L_B_WJ = 0x1F,
|
|
MOT_BONE_N_EYELID_R_A = 0x20,
|
|
MOT_BONE_TL_EYELID_R_A_WJ = 0x21,
|
|
MOT_BONE_N_EYELID_R_B = 0x22,
|
|
MOT_BONE_TL_EYELID_R_B_WJ = 0x23,
|
|
MOT_BONE_N_KUTI_D = 0x24,
|
|
MOT_BONE_TL_KUTI_D_WJ = 0x25,
|
|
MOT_BONE_N_KUTI_D_L = 0x26,
|
|
MOT_BONE_TL_KUTI_D_L_WJ = 0x27,
|
|
MOT_BONE_N_KUTI_D_R = 0x28,
|
|
MOT_BONE_TL_KUTI_D_R_WJ = 0x29,
|
|
MOT_BONE_N_KUTI_DS_L = 0x2A,
|
|
MOT_BONE_TL_KUTI_DS_L_WJ = 0x2B,
|
|
MOT_BONE_N_KUTI_DS_R = 0x2C,
|
|
MOT_BONE_TL_KUTI_DS_R_WJ = 0x2D,
|
|
MOT_BONE_N_KUTI_L = 0x2E,
|
|
MOT_BONE_TL_KUTI_L_WJ = 0x2F,
|
|
MOT_BONE_N_KUTI_M_L = 0x30,
|
|
MOT_BONE_TL_KUTI_M_L_WJ = 0x31,
|
|
MOT_BONE_N_KUTI_M_R = 0x32,
|
|
MOT_BONE_TL_KUTI_M_R_WJ = 0x33,
|
|
MOT_BONE_N_KUTI_R = 0x34,
|
|
MOT_BONE_TL_KUTI_R_WJ = 0x35,
|
|
MOT_BONE_N_KUTI_U = 0x36,
|
|
MOT_BONE_TL_KUTI_U_WJ = 0x37,
|
|
MOT_BONE_N_KUTI_U_L = 0x38,
|
|
MOT_BONE_TL_KUTI_U_L_WJ = 0x39,
|
|
MOT_BONE_N_KUTI_U_R = 0x3A,
|
|
MOT_BONE_TL_KUTI_U_R_WJ = 0x3B,
|
|
MOT_BONE_N_MABU_L_D_A = 0x3C,
|
|
MOT_BONE_TL_MABU_L_D_A_WJ = 0x3D,
|
|
MOT_BONE_N_MABU_L_D_B = 0x3E,
|
|
MOT_BONE_TL_MABU_L_D_B_WJ = 0x3F,
|
|
MOT_BONE_N_MABU_L_D_C = 0x40,
|
|
MOT_BONE_TL_MABU_L_D_C_WJ = 0x41,
|
|
MOT_BONE_N_MABU_L_U_A = 0x42,
|
|
MOT_BONE_TL_MABU_L_U_A_WJ = 0x43,
|
|
MOT_BONE_N_MABU_L_U_B = 0x44,
|
|
MOT_BONE_TL_MABU_L_U_B_WJ = 0x45,
|
|
MOT_BONE_N_EYELASHES_L = 0x46,
|
|
MOT_BONE_TL_EYELASHES_L_WJ = 0x47,
|
|
MOT_BONE_N_MABU_L_U_C = 0x48,
|
|
MOT_BONE_TL_MABU_L_U_C_WJ = 0x49,
|
|
MOT_BONE_N_MABU_R_D_A = 0x4A,
|
|
MOT_BONE_TL_MABU_R_D_A_WJ = 0x4B,
|
|
MOT_BONE_N_MABU_R_D_B = 0x4C,
|
|
MOT_BONE_TL_MABU_R_D_B_WJ = 0x4D,
|
|
MOT_BONE_N_MABU_R_D_C = 0x4E,
|
|
MOT_BONE_TL_MABU_R_D_C_WJ = 0x4F,
|
|
MOT_BONE_N_MABU_R_U_A = 0x50,
|
|
MOT_BONE_TL_MABU_R_U_A_WJ = 0x51,
|
|
MOT_BONE_N_MABU_R_U_B = 0x52,
|
|
MOT_BONE_TL_MABU_R_U_B_WJ = 0x53,
|
|
MOT_BONE_N_EYELASHES_R = 0x54,
|
|
MOT_BONE_TL_EYELASHES_R_WJ = 0x55,
|
|
MOT_BONE_N_MABU_R_U_C = 0x56,
|
|
MOT_BONE_TL_MABU_R_U_C_WJ = 0x57,
|
|
MOT_BONE_N_MAYU_L = 0x58,
|
|
MOT_BONE_TL_MAYU_L_WJ = 0x59,
|
|
MOT_BONE_N_MAYU_L_B = 0x5A,
|
|
MOT_BONE_TL_MAYU_L_B_WJ = 0x5B,
|
|
MOT_BONE_N_MAYU_L_C = 0x5C,
|
|
MOT_BONE_TL_MAYU_L_C_WJ = 0x5D,
|
|
MOT_BONE_N_MAYU_R = 0x5E,
|
|
MOT_BONE_TL_MAYU_R_WJ = 0x5F,
|
|
MOT_BONE_N_MAYU_R_B = 0x60,
|
|
MOT_BONE_TL_MAYU_R_B_WJ = 0x61,
|
|
MOT_BONE_N_MAYU_R_C = 0x62,
|
|
MOT_BONE_TL_MAYU_R_C_WJ = 0x63,
|
|
MOT_BONE_N_TOOTH_UPPER = 0x64,
|
|
MOT_BONE_TL_TOOTH_UPPER_WJ = 0x65,
|
|
MOT_BONE_N_KUBI_WJ_EX = 0x66,
|
|
MOT_BONE_N_WAKI_L = 0x67,
|
|
MOT_BONE_KL_WAKI_L_WJ = 0x68,
|
|
MOT_BONE_TL_UP_KATA_L = 0x69,
|
|
MOT_BONE_C_KATA_L = 0x6A,
|
|
MOT_BONE_J_KATA_L_WJ_CU = 0x6B,
|
|
MOT_BONE_J_UDE_L_WJ = 0x6C,
|
|
MOT_BONE_E_UDE_L_CP = 0x6D,
|
|
MOT_BONE_KL_TE_L_WJ = 0x6E,
|
|
MOT_BONE_N_HITO_L_EX = 0x6F,
|
|
MOT_BONE_NL_HITO_L_WJ = 0x70,
|
|
MOT_BONE_NL_HITO_B_L_WJ = 0x71,
|
|
MOT_BONE_NL_HITO_C_L_WJ = 0x72,
|
|
MOT_BONE_N_KO_L_EX = 0x73,
|
|
MOT_BONE_NL_KO_L_WJ = 0x74,
|
|
MOT_BONE_NL_KO_B_L_WJ = 0x75,
|
|
MOT_BONE_NL_KO_C_L_WJ = 0x76,
|
|
MOT_BONE_N_KUSU_L_EX = 0x77,
|
|
MOT_BONE_NL_KUSU_L_WJ = 0x78,
|
|
MOT_BONE_NL_KUSU_B_L_WJ = 0x79,
|
|
MOT_BONE_NL_KUSU_C_L_WJ = 0x7A,
|
|
MOT_BONE_N_NAKA_L_EX = 0x7B,
|
|
MOT_BONE_NL_NAKA_L_WJ = 0x7C,
|
|
MOT_BONE_NL_NAKA_B_L_WJ = 0x7D,
|
|
MOT_BONE_NL_NAKA_C_L_WJ = 0x7E,
|
|
MOT_BONE_N_OYA_L_EX = 0x7F,
|
|
MOT_BONE_NL_OYA_L_WJ = 0x80,
|
|
MOT_BONE_NL_OYA_B_L_WJ = 0x81,
|
|
MOT_BONE_NL_OYA_C_L_WJ = 0x82,
|
|
MOT_BONE_N_STE_L_WJ_EX = 0x83,
|
|
MOT_BONE_N_SUDE_L_WJ_EX = 0x84,
|
|
MOT_BONE_N_SUDE_B_L_WJ_EX = 0x85,
|
|
MOT_BONE_N_HIJI_L_WJ_EX = 0x86,
|
|
MOT_BONE_N_UP_KATA_L_EX = 0x87,
|
|
MOT_BONE_N_SKATA_L_WJ_CD_EX = 0x88,
|
|
MOT_BONE_N_SKATA_B_L_WJ_CD_CU_EX = 0x89,
|
|
MOT_BONE_N_SKATA_C_L_WJ_CD_CU_EX = 0x8A,
|
|
MOT_BONE_N_WAKI_R = 0x8B,
|
|
MOT_BONE_KL_WAKI_R_WJ = 0x8C,
|
|
MOT_BONE_TL_UP_KATA_R = 0x8D,
|
|
MOT_BONE_C_KATA_R = 0x8E,
|
|
MOT_BONE_J_KATA_R_WJ_CU = 0x8F,
|
|
MOT_BONE_J_UDE_R_WJ = 0x90,
|
|
MOT_BONE_E_UDE_R_CP = 0x91,
|
|
MOT_BONE_KL_TE_R_WJ = 0x92,
|
|
MOT_BONE_N_HITO_R_EX = 0x93,
|
|
MOT_BONE_NL_HITO_R_WJ = 0x94,
|
|
MOT_BONE_NL_HITO_B_R_WJ = 0x95,
|
|
MOT_BONE_NL_HITO_C_R_WJ = 0x96,
|
|
MOT_BONE_N_KO_R_EX = 0x97,
|
|
MOT_BONE_NL_KO_R_WJ = 0x98,
|
|
MOT_BONE_NL_KO_B_R_WJ = 0x99,
|
|
MOT_BONE_NL_KO_C_R_WJ = 0x9A,
|
|
MOT_BONE_N_KUSU_R_EX = 0x9B,
|
|
MOT_BONE_NL_KUSU_R_WJ = 0x9C,
|
|
MOT_BONE_NL_KUSU_B_R_WJ = 0x9D,
|
|
MOT_BONE_NL_KUSU_C_R_WJ = 0x9E,
|
|
MOT_BONE_N_NAKA_R_EX = 0x9F,
|
|
MOT_BONE_NL_NAKA_R_WJ = 0xA0,
|
|
MOT_BONE_NL_NAKA_B_R_WJ = 0xA1,
|
|
MOT_BONE_NL_NAKA_C_R_WJ = 0xA2,
|
|
MOT_BONE_N_OYA_R_EX = 0xA3,
|
|
MOT_BONE_NL_OYA_R_WJ = 0xA4,
|
|
MOT_BONE_NL_OYA_B_R_WJ = 0xA5,
|
|
MOT_BONE_NL_OYA_C_R_WJ = 0xA6,
|
|
MOT_BONE_N_STE_R_WJ_EX = 0xA7,
|
|
MOT_BONE_N_SUDE_R_WJ_EX = 0xA8,
|
|
MOT_BONE_N_SUDE_B_R_WJ_EX = 0xA9,
|
|
MOT_BONE_N_HIJI_R_WJ_EX = 0xAA,
|
|
MOT_BONE_N_UP_KATA_R_EX = 0xAB,
|
|
MOT_BONE_N_SKATA_R_WJ_CD_EX = 0xAC,
|
|
MOT_BONE_N_SKATA_B_R_WJ_CD_CU_EX = 0xAD,
|
|
MOT_BONE_N_SKATA_C_R_WJ_CD_CU_EX = 0xAE,
|
|
MOT_BONE_KL_KOSI_Y = 0xAF,
|
|
MOT_BONE_KL_KOSI_XZ = 0xB0,
|
|
MOT_BONE_KL_KOSI_ETC_WJ = 0xB1,
|
|
MOT_BONE_CL_MOMO_L = 0xB2,
|
|
MOT_BONE_J_MOMO_L_WJ = 0xB3,
|
|
MOT_BONE_J_SUNE_L_WJ = 0xB4,
|
|
MOT_BONE_E_SUNE_L_CP = 0xB5,
|
|
MOT_BONE_KL_ASI_L_WJ_CO = 0xB6,
|
|
MOT_BONE_KL_TOE_L_WJ = 0xB7,
|
|
MOT_BONE_N_HIZA_L_WJ_EX = 0xB8,
|
|
MOT_BONE_CL_MOMO_R = 0xB9,
|
|
MOT_BONE_J_MOMO_R_WJ = 0xBA,
|
|
MOT_BONE_J_SUNE_R_WJ = 0xBB,
|
|
MOT_BONE_E_SUNE_R_CP = 0xBC,
|
|
MOT_BONE_KL_ASI_R_WJ_CO = 0xBD,
|
|
MOT_BONE_KL_TOE_R_WJ = 0xBE,
|
|
MOT_BONE_N_HIZA_R_WJ_EX = 0xBF,
|
|
MOT_BONE_N_MOMO_A_L_WJ_CD_EX = 0xC0,
|
|
MOT_BONE_N_MOMO_B_L_WJ_EX = 0xC1,
|
|
MOT_BONE_N_MOMO_C_L_WJ_EX = 0xC2,
|
|
MOT_BONE_N_MOMO_A_R_WJ_CD_EX = 0xC3,
|
|
MOT_BONE_N_MOMO_B_R_WJ_EX = 0xC4,
|
|
MOT_BONE_N_MOMO_C_R_WJ_EX = 0xC5,
|
|
MOT_BONE_N_HARA_CD_EX = 0xC6,
|
|
MOT_BONE_N_HARA_B_WJ_EX = 0xC7,
|
|
MOT_BONE_N_HARA_C_WJ_EX = 0xC8,
|
|
MOT_BONE_MAX = 0xC9,
|
|
};
|
|
|
|
enum mot_play_frame_data_loop_state {
|
|
MOT_PLAY_FRAME_DATA_LOOP_NONE = -1,
|
|
MOT_PLAY_FRAME_DATA_LOOP_ONCE = 0x00,
|
|
MOT_PLAY_FRAME_DATA_LOOP_CONTINUOUS = 0x01,
|
|
MOT_PLAY_FRAME_DATA_LOOP_RESET = 0x02,
|
|
MOT_PLAY_FRAME_DATA_LOOP_REVERSE = 0x03,
|
|
MOT_PLAY_FRAME_DATA_LOOP_MAX = 0x04,
|
|
};
|
|
|
|
enum mot_play_frame_data_playback_state {
|
|
MOT_PLAY_FRAME_DATA_PLAYBACK_NONE = -1,
|
|
MOT_PLAY_FRAME_DATA_PLAYBACK_STOP = 0x00,
|
|
MOT_PLAY_FRAME_DATA_PLAYBACK_FORWARD = 0x01,
|
|
MOT_PLAY_FRAME_DATA_PLAYBACK_BACKWARD = 0x02,
|
|
MOT_PLAY_FRAME_DATA_PLAYBACK_EXTERNAL = 0x03,
|
|
MOT_PLAY_FRAME_DATA_PLAYBACK_MAX = 0x04,
|
|
};
|
|
|
|
enum mothead_data_type {
|
|
MOTHEAD_DATA_TYPE_0 = 0x00,
|
|
MOTHEAD_DATA_TYPE_1 = 0x01,
|
|
MOTHEAD_DATA_TYPE_2 = 0x02,
|
|
MOTHEAD_DATA_TYPE_3 = 0x03,
|
|
MOTHEAD_DATA_TYPE_4 = 0x04,
|
|
MOTHEAD_DATA_TYPE_5 = 0x05,
|
|
MOTHEAD_DATA_TYPE_6 = 0x06,
|
|
MOTHEAD_DATA_TYPE_7 = 0x07,
|
|
MOTHEAD_DATA_TYPE_8 = 0x08,
|
|
MOTHEAD_DATA_TYPE_9 = 0x09,
|
|
MOTHEAD_DATA_TYPE_10 = 0x0A,
|
|
MOTHEAD_DATA_TYPE_11 = 0x0B,
|
|
MOTHEAD_DATA_TYPE_12 = 0x0C,
|
|
MOTHEAD_DATA_TYPE_13 = 0x0D,
|
|
MOTHEAD_DATA_TYPE_14 = 0x0E,
|
|
MOTHEAD_DATA_TYPE_15 = 0x0F,
|
|
MOTHEAD_DATA_TYPE_16 = 0x10,
|
|
MOTHEAD_DATA_TYPE_17 = 0x11,
|
|
MOTHEAD_DATA_TYPE_18 = 0x12,
|
|
MOTHEAD_DATA_TYPE_19 = 0x13,
|
|
MOTHEAD_DATA_TYPE_20 = 0x14,
|
|
MOTHEAD_DATA_TYPE_21 = 0x15,
|
|
MOTHEAD_DATA_TYPE_22 = 0x16,
|
|
MOTHEAD_DATA_TYPE_23 = 0x17,
|
|
MOTHEAD_DATA_TYPE_24 = 0x18,
|
|
MOTHEAD_DATA_TYPE_25 = 0x19,
|
|
MOTHEAD_DATA_TYPE_26 = 0x1A,
|
|
MOTHEAD_DATA_TYPE_27 = 0x1B,
|
|
MOTHEAD_DATA_TYPE_28 = 0x1C,
|
|
MOTHEAD_DATA_TYPE_29 = 0x1D,
|
|
MOTHEAD_DATA_TYPE_30 = 0x1E,
|
|
MOTHEAD_DATA_TYPE_31 = 0x1F,
|
|
MOTHEAD_DATA_TYPE_32 = 0x20,
|
|
MOTHEAD_DATA_TYPE_33 = 0x21,
|
|
MOTHEAD_DATA_TYPE_34 = 0x22,
|
|
MOTHEAD_DATA_TYPE_35 = 0x23,
|
|
MOTHEAD_DATA_TYPE_36 = 0x24,
|
|
MOTHEAD_DATA_TYPE_37 = 0x25,
|
|
MOTHEAD_DATA_TYPE_38 = 0x26,
|
|
MOTHEAD_DATA_TYPE_39 = 0x27,
|
|
MOTHEAD_DATA_TYPE_40 = 0x28,
|
|
MOTHEAD_DATA_TYPE_41 = 0x29,
|
|
MOTHEAD_DATA_TYPE_42 = 0x2A,
|
|
MOTHEAD_DATA_TYPE_43 = 0x2B,
|
|
MOTHEAD_DATA_TYPE_44 = 0x2C,
|
|
MOTHEAD_DATA_TYPE_45 = 0x2D,
|
|
MOTHEAD_DATA_TYPE_46 = 0x2E,
|
|
MOTHEAD_DATA_TYPE_47 = 0x2F,
|
|
MOTHEAD_DATA_TYPE_48 = 0x30,
|
|
MOTHEAD_DATA_TYPE_49 = 0x31,
|
|
MOTHEAD_DATA_SET_FACE_MOTION_ID = 0x32,
|
|
MOTHEAD_DATA_TYPE_51 = 0x33,
|
|
MOTHEAD_DATA_TYPE_52 = 0x34,
|
|
MOTHEAD_DATA_SET_FACE_MOTTBL_MOTION = 0x35,
|
|
MOTHEAD_DATA_SET_HAND_R_MOTTBL_MOTION = 0x36,
|
|
MOTHEAD_DATA_SET_HAND_L_MOTTBL_MOTION = 0x37,
|
|
MOTHEAD_DATA_SET_MOUTH_MOTTBL_MOTION = 0x38,
|
|
MOTHEAD_DATA_SET_EYES_MOTTBL_MOTION = 0x39,
|
|
MOTHEAD_DATA_SET_EYELID_MOTTBL_MOTION = 0x3A,
|
|
MOTHEAD_DATA_SET_ROB_CHARA_HEAD_OBJECT = 0x3B,
|
|
MOTHEAD_DATA_TYPE_60 = 0x3C,
|
|
MOTHEAD_DATA_SET_EYELID_MOTION_FROM_FACE = 0x3D,
|
|
MOTHEAD_DATA_ROB_PARTS_ADJUST = 0x3E,
|
|
MOTHEAD_DATA_TYPE_63 = 0x3F,
|
|
MOTHEAD_DATA_WIND_RESET = 0x40,
|
|
MOTHEAD_DATA_OSAGE_RESET = 0x41,
|
|
MOTHEAD_DATA_OSAGE_STEP = 0x42,
|
|
MOTHEAD_DATA_TYPE_67 = 0x43,
|
|
MOTHEAD_DATA_TYPE_68 = 0x44,
|
|
MOTHEAD_DATA_TYPE_69 = 0x45,
|
|
MOTHEAD_DATA_TYPE_70 = 0x46,
|
|
MOTHEAD_DATA_OSAGE_MOVE_CANCEL = 0x47,
|
|
MOTHEAD_DATA_TYPE_72 = 0x48,
|
|
MOTHEAD_DATA_ROB_HAND_ADJUST = 0x49,
|
|
MOTHEAD_DATA_TYPE_74 = 0x4A,
|
|
MOTHEAD_DATA_ROB_ADJUST_GLOBAL = 0x4B,
|
|
MOTHEAD_DATA_ROB_ARM_ADJUST = 0x4C,
|
|
MOTHEAD_DATA_DISABLE_EYE_MOTION = 0x4D,
|
|
MOTHEAD_DATA_TYPE_78 = 0x4E,
|
|
MOTHEAD_DATA_ROB_CHARA_COLI_RING = 0x4F,
|
|
MOTHEAD_DATA_ADJUST_GET_GLOBAL_TRANS = 0x50,
|
|
MOTHEAD_DATA_MAX = 0x51,
|
|
};
|
|
|
|
enum MotionBlendType {
|
|
MOTION_BLEND_NONE = -1,
|
|
MOTION_BLEND = 0x00,
|
|
MOTION_BLEND_FREEZE = 0x01,
|
|
MOTION_BLEND_CROSS = 0x02,
|
|
MOTION_BLEND_COMBINE = 0x03,
|
|
};
|
|
|
|
enum motion_bone_index {
|
|
MOTION_BONE_NONE = -1,
|
|
MOTION_BONE_N_HARA_CP = 0x00,
|
|
MOTION_BONE_KG_HARA_Y = 0x01,
|
|
MOTION_BONE_KL_HARA_XZ = 0x02,
|
|
MOTION_BONE_KL_HARA_ETC = 0x03,
|
|
MOTION_BONE_N_HARA = 0x04,
|
|
MOTION_BONE_CL_MUNE = 0x05,
|
|
MOTION_BONE_N_MUNE_B = 0x06,
|
|
MOTION_BONE_KL_MUNE_B_WJ = 0x07,
|
|
MOTION_BONE_KL_KUBI = 0x08,
|
|
MOTION_BONE_N_KAO = 0x09,
|
|
MOTION_BONE_CL_KAO = 0x0A,
|
|
MOTION_BONE_FACE_ROOT = 0x0B,
|
|
MOTION_BONE_N_AGO = 0x0C,
|
|
MOTION_BONE_KL_AGO_WJ = 0x0D,
|
|
MOTION_BONE_N_TOOTH_UNDER = 0x0E,
|
|
MOTION_BONE_TL_TOOTH_UNDER_WJ = 0x0F,
|
|
MOTION_BONE_N_EYE_L = 0x10,
|
|
MOTION_BONE_KL_EYE_L = 0x11,
|
|
MOTION_BONE_N_EYE_L_WJ_EX = 0x12,
|
|
MOTION_BONE_KL_HIGHLIGHT_L_WJ = 0x13,
|
|
MOTION_BONE_N_EYE_R = 0x14,
|
|
MOTION_BONE_KL_EYE_R = 0x15,
|
|
MOTION_BONE_N_EYE_R_WJ_EX = 0x16,
|
|
MOTION_BONE_KL_HIGHLIGHT_R_WJ = 0x17,
|
|
MOTION_BONE_N_EYELID_L_A = 0x18,
|
|
MOTION_BONE_TL_EYELID_L_A_WJ = 0x19,
|
|
MOTION_BONE_N_EYELID_L_B = 0x1A,
|
|
MOTION_BONE_TL_EYELID_L_B_WJ = 0x1B,
|
|
MOTION_BONE_N_EYELID_R_A = 0x1C,
|
|
MOTION_BONE_TL_EYELID_R_A_WJ = 0x1D,
|
|
MOTION_BONE_N_EYELID_R_B = 0x1E,
|
|
MOTION_BONE_TL_EYELID_R_B_WJ = 0x1F,
|
|
MOTION_BONE_N_KUTI_D = 0x20,
|
|
MOTION_BONE_TL_KUTI_D_WJ = 0x21,
|
|
MOTION_BONE_N_KUTI_D_L = 0x22,
|
|
MOTION_BONE_TL_KUTI_D_L_WJ = 0x23,
|
|
MOTION_BONE_N_KUTI_D_R = 0x24,
|
|
MOTION_BONE_TL_KUTI_D_R_WJ = 0x25,
|
|
MOTION_BONE_N_KUTI_DS_L = 0x26,
|
|
MOTION_BONE_TL_KUTI_DS_L_WJ = 0x27,
|
|
MOTION_BONE_N_KUTI_DS_R = 0x28,
|
|
MOTION_BONE_TL_KUTI_DS_R_WJ = 0x29,
|
|
MOTION_BONE_N_KUTI_L = 0x2A,
|
|
MOTION_BONE_TL_KUTI_L_WJ = 0x2B,
|
|
MOTION_BONE_N_KUTI_M_L = 0x2C,
|
|
MOTION_BONE_TL_KUTI_M_L_WJ = 0x2D,
|
|
MOTION_BONE_N_KUTI_M_R = 0x2E,
|
|
MOTION_BONE_TL_KUTI_M_R_WJ = 0x2F,
|
|
MOTION_BONE_N_KUTI_R = 0x30,
|
|
MOTION_BONE_TL_KUTI_R_WJ = 0x31,
|
|
MOTION_BONE_N_KUTI_U = 0x32,
|
|
MOTION_BONE_TL_KUTI_U_WJ = 0x33,
|
|
MOTION_BONE_N_KUTI_U_L = 0x34,
|
|
MOTION_BONE_TL_KUTI_U_L_WJ = 0x35,
|
|
MOTION_BONE_N_KUTI_U_R = 0x36,
|
|
MOTION_BONE_TL_KUTI_U_R_WJ = 0x37,
|
|
MOTION_BONE_N_MABU_L_D_A = 0x38,
|
|
MOTION_BONE_TL_MABU_L_D_A_WJ = 0x39,
|
|
MOTION_BONE_N_MABU_L_D_B = 0x3A,
|
|
MOTION_BONE_TL_MABU_L_D_B_WJ = 0x3B,
|
|
MOTION_BONE_N_MABU_L_D_C = 0x3C,
|
|
MOTION_BONE_TL_MABU_L_D_C_WJ = 0x3D,
|
|
MOTION_BONE_N_MABU_L_U_A = 0x3E,
|
|
MOTION_BONE_TL_MABU_L_U_A_WJ = 0x3F,
|
|
MOTION_BONE_N_MABU_L_U_B = 0x40,
|
|
MOTION_BONE_TL_MABU_L_U_B_WJ = 0x41,
|
|
MOTION_BONE_N_EYELASHES_L = 0x42,
|
|
MOTION_BONE_TL_EYELASHES_L_WJ = 0x43,
|
|
MOTION_BONE_N_MABU_L_U_C = 0x44,
|
|
MOTION_BONE_TL_MABU_L_U_C_WJ = 0x45,
|
|
MOTION_BONE_N_MABU_R_D_A = 0x46,
|
|
MOTION_BONE_TL_MABU_R_D_A_WJ = 0x47,
|
|
MOTION_BONE_N_MABU_R_D_B = 0x48,
|
|
MOTION_BONE_TL_MABU_R_D_B_WJ = 0x49,
|
|
MOTION_BONE_N_MABU_R_D_C = 0x4A,
|
|
MOTION_BONE_TL_MABU_R_D_C_WJ = 0x4B,
|
|
MOTION_BONE_N_MABU_R_U_A = 0x4C,
|
|
MOTION_BONE_TL_MABU_R_U_A_WJ = 0x4D,
|
|
MOTION_BONE_N_MABU_R_U_B = 0x4E,
|
|
MOTION_BONE_TL_MABU_R_U_B_WJ = 0x4F,
|
|
MOTION_BONE_N_EYELASHES_R = 0x50,
|
|
MOTION_BONE_TL_EYELASHES_R_WJ = 0x51,
|
|
MOTION_BONE_N_MABU_R_U_C = 0x52,
|
|
MOTION_BONE_TL_MABU_R_U_C_WJ = 0x53,
|
|
MOTION_BONE_N_MAYU_L = 0x54,
|
|
MOTION_BONE_TL_MAYU_L_WJ = 0x55,
|
|
MOTION_BONE_N_MAYU_L_B = 0x56,
|
|
MOTION_BONE_TL_MAYU_L_B_WJ = 0x57,
|
|
MOTION_BONE_N_MAYU_L_C = 0x58,
|
|
MOTION_BONE_TL_MAYU_L_C_WJ = 0x59,
|
|
MOTION_BONE_N_MAYU_R = 0x5A,
|
|
MOTION_BONE_TL_MAYU_R_WJ = 0x5B,
|
|
MOTION_BONE_N_MAYU_R_B = 0x5C,
|
|
MOTION_BONE_TL_MAYU_R_B_WJ = 0x5D,
|
|
MOTION_BONE_N_MAYU_R_C = 0x5E,
|
|
MOTION_BONE_TL_MAYU_R_C_WJ = 0x5F,
|
|
MOTION_BONE_N_TOOTH_UPPER = 0x60,
|
|
MOTION_BONE_TL_TOOTH_UPPER_WJ = 0x61,
|
|
MOTION_BONE_N_KUBI_WJ_EX = 0x62,
|
|
MOTION_BONE_N_WAKI_L = 0x63,
|
|
MOTION_BONE_KL_WAKI_L_WJ = 0x64,
|
|
MOTION_BONE_TL_UP_KATA_L = 0x65,
|
|
MOTION_BONE_C_KATA_L = 0x66,
|
|
MOTION_BONE_KL_TE_L_WJ = 0x67,
|
|
MOTION_BONE_N_HITO_L_EX = 0x68,
|
|
MOTION_BONE_NL_HITO_L_WJ = 0x69,
|
|
MOTION_BONE_NL_HITO_B_L_WJ = 0x6A,
|
|
MOTION_BONE_NL_HITO_C_L_WJ = 0x6B,
|
|
MOTION_BONE_N_KO_L_EX = 0x6C,
|
|
MOTION_BONE_NL_KO_L_WJ = 0x6D,
|
|
MOTION_BONE_NL_KO_B_L_WJ = 0x6E,
|
|
MOTION_BONE_NL_KO_C_L_WJ = 0x6F,
|
|
MOTION_BONE_N_KUSU_L_EX = 0x70,
|
|
MOTION_BONE_NL_KUSU_L_WJ = 0x71,
|
|
MOTION_BONE_NL_KUSU_B_L_WJ = 0x72,
|
|
MOTION_BONE_NL_KUSU_C_L_WJ = 0x73,
|
|
MOTION_BONE_N_NAKA_L_EX = 0x74,
|
|
MOTION_BONE_NL_NAKA_L_WJ = 0x75,
|
|
MOTION_BONE_NL_NAKA_B_L_WJ = 0x76,
|
|
MOTION_BONE_NL_NAKA_C_L_WJ = 0x77,
|
|
MOTION_BONE_N_OYA_L_EX = 0x78,
|
|
MOTION_BONE_NL_OYA_L_WJ = 0x79,
|
|
MOTION_BONE_NL_OYA_B_L_WJ = 0x7A,
|
|
MOTION_BONE_NL_OYA_C_L_WJ = 0x7B,
|
|
MOTION_BONE_N_STE_L_WJ_EX = 0x7C,
|
|
MOTION_BONE_N_SUDE_L_WJ_EX = 0x7D,
|
|
MOTION_BONE_N_SUDE_B_L_WJ_EX = 0x7E,
|
|
MOTION_BONE_N_HIJI_L_WJ_EX = 0x7F,
|
|
MOTION_BONE_N_UP_KATA_L_EX = 0x80,
|
|
MOTION_BONE_N_SKATA_L_WJ_CD_EX = 0x81,
|
|
MOTION_BONE_N_SKATA_B_L_WJ_CD_CU_EX = 0x82,
|
|
MOTION_BONE_N_SKATA_C_L_WJ_CD_CU_EX = 0x83,
|
|
MOTION_BONE_N_WAKI_R = 0x84,
|
|
MOTION_BONE_KL_WAKI_R_WJ = 0x85,
|
|
MOTION_BONE_TL_UP_KATA_R = 0x86,
|
|
MOTION_BONE_C_KATA_R = 0x87,
|
|
MOTION_BONE_KL_TE_R_WJ = 0x88,
|
|
MOTION_BONE_N_HITO_R_EX = 0x89,
|
|
MOTION_BONE_NL_HITO_R_WJ = 0x8A,
|
|
MOTION_BONE_NL_HITO_B_R_WJ = 0x8B,
|
|
MOTION_BONE_NL_HITO_C_R_WJ = 0x8C,
|
|
MOTION_BONE_N_KO_R_EX = 0x8D,
|
|
MOTION_BONE_NL_KO_R_WJ = 0x8E,
|
|
MOTION_BONE_NL_KO_B_R_WJ = 0x8F,
|
|
MOTION_BONE_NL_KO_C_R_WJ = 0x90,
|
|
MOTION_BONE_N_KUSU_R_EX = 0x91,
|
|
MOTION_BONE_NL_KUSU_R_WJ = 0x92,
|
|
MOTION_BONE_NL_KUSU_B_R_WJ = 0x93,
|
|
MOTION_BONE_NL_KUSU_C_R_WJ = 0x94,
|
|
MOTION_BONE_N_NAKA_R_EX = 0x95,
|
|
MOTION_BONE_NL_NAKA_R_WJ = 0x96,
|
|
MOTION_BONE_NL_NAKA_B_R_WJ = 0x97,
|
|
MOTION_BONE_NL_NAKA_C_R_WJ = 0x98,
|
|
MOTION_BONE_N_OYA_R_EX = 0x99,
|
|
MOTION_BONE_NL_OYA_R_WJ = 0x9A,
|
|
MOTION_BONE_NL_OYA_B_R_WJ = 0x9B,
|
|
MOTION_BONE_NL_OYA_C_R_WJ = 0x9C,
|
|
MOTION_BONE_N_STE_R_WJ_EX = 0x9D,
|
|
MOTION_BONE_N_SUDE_R_WJ_EX = 0x9E,
|
|
MOTION_BONE_N_SUDE_B_R_WJ_EX = 0x9F,
|
|
MOTION_BONE_N_HIJI_R_WJ_EX = 0xA0,
|
|
MOTION_BONE_N_UP_KATA_R_EX = 0xA1,
|
|
MOTION_BONE_N_SKATA_R_WJ_CD_EX = 0xA2,
|
|
MOTION_BONE_N_SKATA_B_R_WJ_CD_CU_EX = 0xA3,
|
|
MOTION_BONE_N_SKATA_C_R_WJ_CD_CU_EX = 0xA4,
|
|
MOTION_BONE_KL_KOSI_Y = 0xA5,
|
|
MOTION_BONE_KL_KOSI_XZ = 0xA6,
|
|
MOTION_BONE_KL_KOSI_ETC_WJ = 0xA7,
|
|
MOTION_BONE_CL_MOMO_L = 0xA8,
|
|
MOTION_BONE_KL_ASI_L_WJ_CO = 0xA9,
|
|
MOTION_BONE_KL_TOE_L_WJ = 0xAA,
|
|
MOTION_BONE_N_HIZA_L_WJ_EX = 0xAB,
|
|
MOTION_BONE_CL_MOMO_R = 0xAC,
|
|
MOTION_BONE_KL_ASI_R_WJ_CO = 0xAD,
|
|
MOTION_BONE_KL_TOE_R_WJ = 0xAE,
|
|
MOTION_BONE_N_HIZA_R_WJ_EX = 0xAF,
|
|
MOTION_BONE_N_MOMO_A_L_WJ_CD_EX = 0xB0,
|
|
MOTION_BONE_N_MOMO_B_L_WJ_EX = 0xB1,
|
|
MOTION_BONE_N_MOMO_C_L_WJ_EX = 0xB2,
|
|
MOTION_BONE_N_MOMO_A_R_WJ_CD_EX = 0xB3,
|
|
MOTION_BONE_N_MOMO_B_R_WJ_EX = 0xB4,
|
|
MOTION_BONE_N_MOMO_C_R_WJ_EX = 0xB5,
|
|
MOTION_BONE_N_HARA_CD_EX = 0xB6,
|
|
MOTION_BONE_N_HARA_B_WJ_EX = 0xB7,
|
|
MOTION_BONE_N_HARA_C_WJ_EX = 0xB8,
|
|
MOTION_BONE_MAX = 0xB9,
|
|
};
|
|
|
|
enum rob_bone_index {
|
|
ROB_BONE_NONE = -1,
|
|
ROB_BONE_N_HARA_CP = 0x00,
|
|
ROB_BONE_KG_HARA_Y = 0x01,
|
|
ROB_BONE_KL_HARA_XZ = 0x02,
|
|
ROB_BONE_KL_HARA_ETC = 0x03,
|
|
ROB_BONE_N_HARA = 0x04,
|
|
ROB_BONE_CL_MUNE = 0x05,
|
|
ROB_BONE_N_MUNE_B = 0x06,
|
|
ROB_BONE_KL_MUNE_B_WJ = 0x07,
|
|
ROB_BONE_KL_KUBI = 0x08,
|
|
ROB_BONE_N_KAO = 0x09,
|
|
ROB_BONE_CL_KAO = 0x0A,
|
|
ROB_BONE_FACE_ROOT = 0x0B,
|
|
ROB_BONE_N_AGO = 0x0C,
|
|
ROB_BONE_KL_AGO_WJ = 0x0D,
|
|
ROB_BONE_N_TOOTH_UNDER = 0x0E,
|
|
ROB_BONE_TL_TOOTH_UNDER_WJ = 0x0F,
|
|
ROB_BONE_N_EYE_L = 0x10,
|
|
ROB_BONE_KL_EYE_L = 0x11,
|
|
ROB_BONE_N_EYE_L_WJ_EX = 0x12,
|
|
ROB_BONE_KL_HIGHLIGHT_L_WJ = 0x13,
|
|
ROB_BONE_N_EYE_R = 0x14,
|
|
ROB_BONE_KL_EYE_R = 0x15,
|
|
ROB_BONE_N_EYE_R_WJ_EX = 0x16,
|
|
ROB_BONE_KL_HIGHLIGHT_R_WJ = 0x17,
|
|
ROB_BONE_N_EYELID_L_A = 0x18,
|
|
ROB_BONE_TL_EYELID_L_A_WJ = 0x19,
|
|
ROB_BONE_N_EYELID_L_B = 0x1A,
|
|
ROB_BONE_TL_EYELID_L_B_WJ = 0x1B,
|
|
ROB_BONE_N_EYELID_R_A = 0x1C,
|
|
ROB_BONE_TL_EYELID_R_A_WJ = 0x1D,
|
|
ROB_BONE_N_EYELID_R_B = 0x1E,
|
|
ROB_BONE_TL_EYELID_R_B_WJ = 0x1F,
|
|
ROB_BONE_N_KUTI_D = 0x20,
|
|
ROB_BONE_TL_KUTI_D_WJ = 0x21,
|
|
ROB_BONE_N_KUTI_D_L = 0x22,
|
|
ROB_BONE_TL_KUTI_D_L_WJ = 0x23,
|
|
ROB_BONE_N_KUTI_D_R = 0x24,
|
|
ROB_BONE_TL_KUTI_D_R_WJ = 0x25,
|
|
ROB_BONE_N_KUTI_DS_L = 0x26,
|
|
ROB_BONE_TL_KUTI_DS_L_WJ = 0x27,
|
|
ROB_BONE_N_KUTI_DS_R = 0x28,
|
|
ROB_BONE_TL_KUTI_DS_R_WJ = 0x29,
|
|
ROB_BONE_N_KUTI_L = 0x2A,
|
|
ROB_BONE_TL_KUTI_L_WJ = 0x2B,
|
|
ROB_BONE_N_KUTI_M_L = 0x2C,
|
|
ROB_BONE_TL_KUTI_M_L_WJ = 0x2D,
|
|
ROB_BONE_N_KUTI_M_R = 0x2E,
|
|
ROB_BONE_TL_KUTI_M_R_WJ = 0x2F,
|
|
ROB_BONE_N_KUTI_R = 0x30,
|
|
ROB_BONE_TL_KUTI_R_WJ = 0x31,
|
|
ROB_BONE_N_KUTI_U = 0x32,
|
|
ROB_BONE_TL_KUTI_U_WJ = 0x33,
|
|
ROB_BONE_N_KUTI_U_L = 0x34,
|
|
ROB_BONE_TL_KUTI_U_L_WJ = 0x35,
|
|
ROB_BONE_N_KUTI_U_R = 0x36,
|
|
ROB_BONE_TL_KUTI_U_R_WJ = 0x37,
|
|
ROB_BONE_N_MABU_L_D_A = 0x38,
|
|
ROB_BONE_TL_MABU_L_D_A_WJ = 0x39,
|
|
ROB_BONE_N_MABU_L_D_B = 0x3A,
|
|
ROB_BONE_TL_MABU_L_D_B_WJ = 0x3B,
|
|
ROB_BONE_N_MABU_L_D_C = 0x3C,
|
|
ROB_BONE_TL_MABU_L_D_C_WJ = 0x3D,
|
|
ROB_BONE_N_MABU_L_U_A = 0x3E,
|
|
ROB_BONE_TL_MABU_L_U_A_WJ = 0x3F,
|
|
ROB_BONE_N_MABU_L_U_B = 0x40,
|
|
ROB_BONE_TL_MABU_L_U_B_WJ = 0x41,
|
|
ROB_BONE_N_EYELASHES_L = 0x42,
|
|
ROB_BONE_TL_EYELASHES_L_WJ = 0x43,
|
|
ROB_BONE_N_MABU_L_U_C = 0x44,
|
|
ROB_BONE_TL_MABU_L_U_C_WJ = 0x45,
|
|
ROB_BONE_N_MABU_R_D_A = 0x46,
|
|
ROB_BONE_TL_MABU_R_D_A_WJ = 0x47,
|
|
ROB_BONE_N_MABU_R_D_B = 0x48,
|
|
ROB_BONE_TL_MABU_R_D_B_WJ = 0x49,
|
|
ROB_BONE_N_MABU_R_D_C = 0x4A,
|
|
ROB_BONE_TL_MABU_R_D_C_WJ = 0x4B,
|
|
ROB_BONE_N_MABU_R_U_A = 0x4C,
|
|
ROB_BONE_TL_MABU_R_U_A_WJ = 0x4D,
|
|
ROB_BONE_N_MABU_R_U_B = 0x4E,
|
|
ROB_BONE_TL_MABU_R_U_B_WJ = 0x4F,
|
|
ROB_BONE_N_EYELASHES_R = 0x50,
|
|
ROB_BONE_TL_EYELASHES_R_WJ = 0x51,
|
|
ROB_BONE_N_MABU_R_U_C = 0x52,
|
|
ROB_BONE_TL_MABU_R_U_C_WJ = 0x53,
|
|
ROB_BONE_N_MAYU_L = 0x54,
|
|
ROB_BONE_TL_MAYU_L_WJ = 0x55,
|
|
ROB_BONE_N_MAYU_L_B = 0x56,
|
|
ROB_BONE_TL_MAYU_L_B_WJ = 0x57,
|
|
ROB_BONE_N_MAYU_L_C = 0x58,
|
|
ROB_BONE_TL_MAYU_L_C_WJ = 0x59,
|
|
ROB_BONE_N_MAYU_R = 0x5A,
|
|
ROB_BONE_TL_MAYU_R_WJ = 0x5B,
|
|
ROB_BONE_N_MAYU_R_B = 0x5C,
|
|
ROB_BONE_TL_MAYU_R_B_WJ = 0x5D,
|
|
ROB_BONE_N_MAYU_R_C = 0x5E,
|
|
ROB_BONE_TL_MAYU_R_C_WJ = 0x5F,
|
|
ROB_BONE_N_TOOTH_UPPER = 0x60,
|
|
ROB_BONE_TL_TOOTH_UPPER_WJ = 0x61,
|
|
ROB_BONE_N_KUBI_WJ_EX = 0x62,
|
|
ROB_BONE_N_WAKI_L = 0x63,
|
|
ROB_BONE_KL_WAKI_L_WJ = 0x64,
|
|
ROB_BONE_TL_UP_KATA_L = 0x65,
|
|
ROB_BONE_C_KATA_L = 0x66,
|
|
ROB_BONE_KATA_L_WJ_CU = 0x67,
|
|
ROB_BONE_UDE_L_WJ = 0x68,
|
|
ROB_BONE_KL_TE_L_WJ = 0x69,
|
|
ROB_BONE_N_HITO_L_EX = 0x6A,
|
|
ROB_BONE_NL_HITO_L_WJ = 0x6B,
|
|
ROB_BONE_NL_HITO_B_L_WJ = 0x6C,
|
|
ROB_BONE_NL_HITO_C_L_WJ = 0x6D,
|
|
ROB_BONE_N_KO_L_EX = 0x6E,
|
|
ROB_BONE_NL_KO_L_WJ = 0x6F,
|
|
ROB_BONE_NL_KO_B_L_WJ = 0x70,
|
|
ROB_BONE_NL_KO_C_L_WJ = 0x71,
|
|
ROB_BONE_N_KUSU_L_EX = 0x72,
|
|
ROB_BONE_NL_KUSU_L_WJ = 0x73,
|
|
ROB_BONE_NL_KUSU_B_L_WJ = 0x74,
|
|
ROB_BONE_NL_KUSU_C_L_WJ = 0x75,
|
|
ROB_BONE_N_NAKA_L_EX = 0x76,
|
|
ROB_BONE_NL_NAKA_L_WJ = 0x77,
|
|
ROB_BONE_NL_NAKA_B_L_WJ = 0x78,
|
|
ROB_BONE_NL_NAKA_C_L_WJ = 0x79,
|
|
ROB_BONE_N_OYA_L_EX = 0x7A,
|
|
ROB_BONE_NL_OYA_L_WJ = 0x7B,
|
|
ROB_BONE_NL_OYA_B_L_WJ = 0x7C,
|
|
ROB_BONE_NL_OYA_C_L_WJ = 0x7D,
|
|
ROB_BONE_N_STE_L_WJ_EX = 0x7E,
|
|
ROB_BONE_N_SUDE_L_WJ_EX = 0x7F,
|
|
ROB_BONE_N_SUDE_B_L_WJ_EX = 0x80,
|
|
ROB_BONE_N_HIJI_L_WJ_EX = 0x81,
|
|
ROB_BONE_N_UP_KATA_L_EX = 0x82,
|
|
ROB_BONE_N_SKATA_L_WJ_CD_EX = 0x83,
|
|
ROB_BONE_N_SKATA_B_L_WJ_CD_CU_EX = 0x84,
|
|
ROB_BONE_N_SKATA_C_L_WJ_CD_CU_EX = 0x85,
|
|
ROB_BONE_N_WAKI_R = 0x86,
|
|
ROB_BONE_KL_WAKI_R_WJ = 0x87,
|
|
ROB_BONE_TL_UP_KATA_R = 0x88,
|
|
ROB_BONE_C_KATA_R = 0x89,
|
|
ROB_BONE_KATA_R_WJ_CU = 0x8A,
|
|
ROB_BONE_UDE_R_WJ = 0x8B,
|
|
ROB_BONE_KL_TE_R_WJ = 0x8C,
|
|
ROB_BONE_N_HITO_R_EX = 0x8D,
|
|
ROB_BONE_NL_HITO_R_WJ = 0x8E,
|
|
ROB_BONE_NL_HITO_B_R_WJ = 0x8F,
|
|
ROB_BONE_NL_HITO_C_R_WJ = 0x90,
|
|
ROB_BONE_N_KO_R_EX = 0x91,
|
|
ROB_BONE_NL_KO_R_WJ = 0x92,
|
|
ROB_BONE_NL_KO_B_R_WJ = 0x93,
|
|
ROB_BONE_NL_KO_C_R_WJ = 0x94,
|
|
ROB_BONE_N_KUSU_R_EX = 0x95,
|
|
ROB_BONE_NL_KUSU_R_WJ = 0x96,
|
|
ROB_BONE_NL_KUSU_B_R_WJ = 0x97,
|
|
ROB_BONE_NL_KUSU_C_R_WJ = 0x98,
|
|
ROB_BONE_N_NAKA_R_EX = 0x99,
|
|
ROB_BONE_NL_NAKA_R_WJ = 0x9A,
|
|
ROB_BONE_NL_NAKA_B_R_WJ = 0x9B,
|
|
ROB_BONE_NL_NAKA_C_R_WJ = 0x9C,
|
|
ROB_BONE_N_OYA_R_EX = 0x9D,
|
|
ROB_BONE_NL_OYA_R_WJ = 0x9E,
|
|
ROB_BONE_NL_OYA_B_R_WJ = 0x9F,
|
|
ROB_BONE_NL_OYA_C_R_WJ = 0xA0,
|
|
ROB_BONE_N_STE_R_WJ_EX = 0xA1,
|
|
ROB_BONE_N_SUDE_R_WJ_EX = 0xA2,
|
|
ROB_BONE_N_SUDE_B_R_WJ_EX = 0xA3,
|
|
ROB_BONE_N_HIJI_R_WJ_EX = 0xA4,
|
|
ROB_BONE_N_UP_KATA_R_EX = 0xA5,
|
|
ROB_BONE_N_SKATA_R_WJ_CD_EX = 0xA6,
|
|
ROB_BONE_N_SKATA_B_R_WJ_CD_CU_EX = 0xA7,
|
|
ROB_BONE_N_SKATA_C_R_WJ_CD_CU_EX = 0xA8,
|
|
ROB_BONE_KL_KOSI_Y = 0xA9,
|
|
ROB_BONE_KL_KOSI_XZ = 0xAA,
|
|
ROB_BONE_KL_KOSI_ETC_WJ = 0xAB,
|
|
ROB_BONE_CL_MOMO_L = 0xAC,
|
|
ROB_BONE_J_MOMO_L_WJ = 0xAD,
|
|
ROB_BONE_J_SUNE_L_WJ = 0xAE,
|
|
ROB_BONE_KL_ASI_L_WJ_CO = 0xAF,
|
|
ROB_BONE_KL_TOE_L_WJ = 0xB0,
|
|
ROB_BONE_N_HIZA_L_WJ_EX = 0xB1,
|
|
ROB_BONE_CL_MOMO_R = 0xB2,
|
|
ROB_BONE_J_MOMO_R_WJ = 0xB3,
|
|
ROB_BONE_J_SUNE_R_WJ = 0xB4,
|
|
ROB_BONE_KL_ASI_R_WJ_CO = 0xB5,
|
|
ROB_BONE_KL_TOE_R_WJ = 0xB6,
|
|
ROB_BONE_N_HIZA_R_WJ_EX = 0xB7,
|
|
ROB_BONE_N_MOMO_A_L_WJ_CD_EX = 0xB8,
|
|
ROB_BONE_N_MOMO_B_L_WJ_EX = 0xB9,
|
|
ROB_BONE_N_MOMO_C_L_WJ_EX = 0xBA,
|
|
ROB_BONE_N_MOMO_A_R_WJ_CD_EX = 0xBB,
|
|
ROB_BONE_N_MOMO_B_R_WJ_EX = 0xBC,
|
|
ROB_BONE_N_MOMO_C_R_WJ_EX = 0xBD,
|
|
ROB_BONE_N_HARA_CD_EX = 0xBE,
|
|
ROB_BONE_N_HARA_B_WJ_EX = 0xBF,
|
|
ROB_BONE_N_HARA_C_WJ_EX = 0xC0,
|
|
ROB_BONE_MAX = 0xC1,
|
|
};
|
|
|
|
enum rob_chara_type {
|
|
ROB_CHARA_TYPE_NONE = -1,
|
|
ROB_CHARA_TYPE_0 = 0x00,
|
|
ROB_CHARA_TYPE_1 = 0x01,
|
|
ROB_CHARA_TYPE_2 = 0x02,
|
|
ROB_CHARA_TYPE_3 = 0x03,
|
|
};
|
|
|
|
enum rob_chara_data_hand_adjust_type : uint16_t {
|
|
ROB_CHARA_DATA_HAND_ADJUST_NONE = (uint16_t)-1,
|
|
ROB_CHARA_DATA_HAND_ADJUST_NORMAL = 0x00,
|
|
ROB_CHARA_DATA_HAND_ADJUST_SHORT = 0x01,
|
|
ROB_CHARA_DATA_HAND_ADJUST_TALL = 0x02,
|
|
ROB_CHARA_DATA_HAND_ADJUST_MIN = 0x03,
|
|
ROB_CHARA_DATA_HAND_ADJUST_MAX = 0x04,
|
|
ROB_CHARA_DATA_HAND_ADJUST_OPPOSITE_CHARA = 0x05,
|
|
ROB_CHARA_DATA_HAND_ADJUST_CUSTOM = 0x06,
|
|
ROB_CHARA_DATA_HAND_ADJUST_1P = 0x07,
|
|
ROB_CHARA_DATA_HAND_ADJUST_2P = 0x08,
|
|
ROB_CHARA_DATA_HAND_ADJUST_3P = 0x09,
|
|
ROB_CHARA_DATA_HAND_ADJUST_4P = 0x0A,
|
|
ROB_CHARA_DATA_HAND_ADJUST_TYPE_11 = 0x0B, // X
|
|
ROB_CHARA_DATA_HAND_ADJUST_TYPE_12 = 0x0C,
|
|
ROB_CHARA_DATA_HAND_ADJUST_TYPE_13 = 0x0D,
|
|
ROB_CHARA_DATA_HAND_ADJUST_TYPE_14 = 0x0E,
|
|
ROB_CHARA_DATA_HAND_ADJUST_ITEM = 0x0F,
|
|
};
|
|
|
|
enum rob_osage_parts {
|
|
ROB_OSAGE_PARTS_NONE = -1,
|
|
ROB_OSAGE_PARTS_LEFT = 0x00,
|
|
ROB_OSAGE_PARTS_RIGHT = 0x01,
|
|
ROB_OSAGE_PARTS_CENTER = 0x02,
|
|
ROB_OSAGE_PARTS_LONG_C = 0x03,
|
|
ROB_OSAGE_PARTS_SHORT_L = 0x04,
|
|
ROB_OSAGE_PARTS_SHORT_R = 0x05,
|
|
ROB_OSAGE_PARTS_APPEND_L = 0x06,
|
|
ROB_OSAGE_PARTS_APPEND_R = 0x07,
|
|
ROB_OSAGE_PARTS_MUFFLER = 0x08,
|
|
ROB_OSAGE_PARTS_WHITE_ONE_L = 0x09,
|
|
ROB_OSAGE_PARTS_PONY = 0x0A,
|
|
ROB_OSAGE_PARTS_ANGEL_L = 0x0B,
|
|
ROB_OSAGE_PARTS_ANGEL_R = 0x0C,
|
|
ROB_OSAGE_PARTS_MAX = 0x0D,
|
|
};
|
|
|
|
enum rob_osage_parts_bit {
|
|
ROB_OSAGE_PARTS_LEFT_BIT = 0x0001,
|
|
ROB_OSAGE_PARTS_RIGHT_BIT = 0x0002,
|
|
ROB_OSAGE_PARTS_CENTER_BIT = 0x0004,
|
|
ROB_OSAGE_PARTS_LONG_C_BIT = 0x0008,
|
|
ROB_OSAGE_PARTS_SHORT_L_BIT = 0x0010,
|
|
ROB_OSAGE_PARTS_SHORT_R_BIT = 0x0020,
|
|
ROB_OSAGE_PARTS_APPEND_L_BIT = 0x0040,
|
|
ROB_OSAGE_PARTS_APPEND_R_BIT = 0x0080,
|
|
ROB_OSAGE_PARTS_MUFFLER_BIT = 0x0100,
|
|
ROB_OSAGE_PARTS_WHITE_ONE_L_BIT = 0x0200,
|
|
ROB_OSAGE_PARTS_PONY_BIT = 0x0400,
|
|
ROB_OSAGE_PARTS_ANGEL_L_BIT = 0x0800,
|
|
ROB_OSAGE_PARTS_ANGEL_R_BIT = 0x1000,
|
|
};
|
|
|
|
enum skin_param_osage_root_coli_type {
|
|
SKIN_PARAM_OSAGE_ROOT_COLI_TYPE_NONE = 0x00,
|
|
SKIN_PARAM_OSAGE_ROOT_COLI_TYPE_BALL = 0x01,
|
|
SKIN_PARAM_OSAGE_ROOT_COLI_TYPE_CYLINDER = 0x02,
|
|
SKIN_PARAM_OSAGE_ROOT_COLI_TYPE_PLANE = 0x03,
|
|
SKIN_PARAM_OSAGE_ROOT_COLI_TYPE_ELLIPSE = 0x04,
|
|
SKIN_PARAM_OSAGE_ROOT_COLI_TYPE_5 = 0x05,
|
|
};
|
|
|
|
enum ExNodeType {
|
|
EX_NONE = 0x00,
|
|
EX_OSAGE = 0x01,
|
|
EX_EXPRESSION = 0x02,
|
|
EX_CONSTRAINT = 0x03,
|
|
EX_CLOTH = 0x04,
|
|
};
|
|
|
|
enum SubActExecType {
|
|
SUB_ACTION_EXECUTE_NONE = 0,
|
|
SUB_ACTION_EXECUTE_CRY = 1,
|
|
SUB_ACTION_EXECUTE_SHAKE_HAND = 2,
|
|
SUB_ACTION_EXECUTE_EMBARRASSED = 3,
|
|
SUB_ACTION_EXECUTE_ANGRY = 4,
|
|
SUB_ACTION_EXECUTE_LAUGH = 5,
|
|
SUB_ACTION_EXECUTE_COUNT_NUM = 6,
|
|
};
|
|
|
|
enum SubActParamType {
|
|
SUB_ACTION_PARAM_NONE = 0x0,
|
|
SUB_ACTION_PARAM_CRY = 0x1,
|
|
SUB_ACTION_PARAM_SHAKE_HAND = 0x2,
|
|
SUB_ACTION_PARAM_EMBARRASSED = 0x3,
|
|
SUB_ACTION_PARAM_ANGRY = 0x4,
|
|
SUB_ACTION_PARAM_LAUGH = 0x5,
|
|
SUB_ACTION_PARAM_COUNT_NUM = 0x6,
|
|
};
|
|
|
|
struct rob_chara;
|
|
struct rob_chara_bone_data;
|
|
|
|
struct bone_node_expression_data {
|
|
vec3 position;
|
|
vec3 rotation;
|
|
vec3 scale;
|
|
vec3 parent_scale;
|
|
|
|
bone_node_expression_data();
|
|
|
|
void mat_set(vec3& parent_scale, mat4& ex_data_mat, mat4& mat);
|
|
void reset_scale();
|
|
void set_position_rotation(float_t position_x, float_t position_y, float_t position_z,
|
|
float_t rotation_x, float_t rotation_y, float_t rotation_z);
|
|
void set_position_rotation(vec3& position, vec3& rotation);
|
|
|
|
};
|
|
|
|
struct bone_node {
|
|
const char* name;
|
|
mat4* mat;
|
|
bone_node* parent;
|
|
bone_node_expression_data exp_data;
|
|
mat4* ex_data_mat;
|
|
|
|
bone_node();
|
|
|
|
float_t* get_exp_data_component(size_t index, ex_expression_block_stack_type& type);
|
|
|
|
};
|
|
|
|
struct struc_314 {
|
|
uint32_t* field_0;
|
|
size_t field_8;
|
|
};
|
|
|
|
struct mot_key_set {
|
|
mot_key_set_type type;
|
|
int32_t keys_count;
|
|
int32_t current_key;
|
|
int32_t last_key;
|
|
const uint16_t* frames;
|
|
const float_t* values;
|
|
};
|
|
|
|
struct eyes_adjust {
|
|
bool xrot_adjust;
|
|
eyes_base_adjust_type base_adjust;
|
|
float_t neg;
|
|
float_t pos;
|
|
};
|
|
|
|
struct mot {
|
|
uint16_t key_set_count;
|
|
uint16_t frame_count;
|
|
uint16_t field_4;
|
|
mot_key_set* key_sets;
|
|
};
|
|
|
|
struct struc_369 {
|
|
int32_t field_0;
|
|
float_t field_4;
|
|
};
|
|
|
|
struct mot_key_data {
|
|
bool key_sets_ready;
|
|
size_t key_set_count;
|
|
std::vector<mot_key_set> key_set;
|
|
mot mot;
|
|
std::vector<float_t> key_set_data;
|
|
const mot_data* mot_data;
|
|
bone_database_skeleton_type skeleton_type;
|
|
int32_t skeleton_select;
|
|
int32_t motion_id;
|
|
float_t frame;
|
|
struc_369 field_68;
|
|
|
|
mot_key_data();
|
|
~mot_key_data();
|
|
};
|
|
|
|
struct bone_data {
|
|
bone_database_bone_type type;
|
|
int32_t has_parent;
|
|
motion_bone_index motion_bone_index;
|
|
int32_t mirror;
|
|
int32_t parent;
|
|
int32_t disable_mot_anim;
|
|
int32_t key_set_offset;
|
|
int32_t key_set_count;
|
|
float_t frame;
|
|
vec3 base_translation[2];
|
|
vec3 rotation;
|
|
vec3 ik_target;
|
|
vec3 trans;
|
|
mat4 rot_mat[3];
|
|
vec3 trans_prev[2];
|
|
mat4 rot_mat_prev[3][2];
|
|
mat4* pole_target_mat;
|
|
mat4* parent_mat;
|
|
bone_node* node;
|
|
float_t ik_segment_length[2];
|
|
float_t ik_2nd_segment_length[2];
|
|
float_t arm_length;
|
|
float_t eyes_xrot_adjust_neg;
|
|
float_t eyes_xrot_adjust_pos;
|
|
|
|
bone_data();
|
|
};
|
|
|
|
struct bone_data_parent {
|
|
rob_chara_bone_data* rob_bone_data;
|
|
size_t motion_bone_count;
|
|
size_t ik_bone_count;
|
|
size_t chain_pos;
|
|
std::vector<bone_data> bones;
|
|
std::vector<uint16_t> bone_indices;
|
|
vec3 global_trans;
|
|
vec3 global_rotation;
|
|
uint32_t bone_key_set_count;
|
|
uint32_t global_key_set_count;
|
|
float_t rot_y;
|
|
|
|
bone_data_parent();
|
|
~bone_data_parent();
|
|
};
|
|
|
|
struct mot_play_frame_data {
|
|
float_t frame;
|
|
float_t step;
|
|
float_t step_prev;
|
|
float_t frame_count;
|
|
float_t last_frame;
|
|
float_t max_frame;
|
|
mot_play_frame_data_playback_state playback_state;
|
|
mot_play_frame_data_loop_state loop_state;
|
|
float_t loop_begin;
|
|
float_t loop_end;
|
|
bool looped;
|
|
int32_t loop_count;
|
|
|
|
void reset();
|
|
void set_frame(float_t frame);
|
|
};
|
|
|
|
struct mot_play_data {
|
|
mot_play_frame_data frame_data;
|
|
int32_t loop_index;
|
|
bool loop_frames_enabled;
|
|
float_t loop_frames;
|
|
float_t* ext_frame;
|
|
float_t* ext_step;
|
|
|
|
void reset();
|
|
};
|
|
|
|
struct struc_308 {
|
|
int32_t field_0;
|
|
int32_t field_4;
|
|
uint8_t field_8;
|
|
mat4 mat;
|
|
mat4 field_4C;
|
|
bool field_8C;
|
|
vec3 field_90;
|
|
vec3 field_9C;
|
|
vec3 field_A8;
|
|
float_t rot_y;
|
|
float_t prev_rot_y;
|
|
uint8_t field_BC;
|
|
uint8_t field_BD;
|
|
float_t field_C0;
|
|
float_t field_C4;
|
|
vec3 field_C8;
|
|
|
|
struc_308();
|
|
};
|
|
|
|
struct struc_400 {
|
|
bool field_0;
|
|
bool field_1;
|
|
bool field_2;
|
|
bool field_3;
|
|
bool field_4;
|
|
float_t frame;
|
|
float_t rot_y;
|
|
float_t prev_rot_y;
|
|
};
|
|
|
|
class MotionBlend {
|
|
public:
|
|
bool enable;
|
|
bool rot_y;
|
|
float_t duration;
|
|
float_t frame;
|
|
float_t step;
|
|
float_t offset;
|
|
float_t blend;
|
|
|
|
MotionBlend();
|
|
virtual ~MotionBlend();
|
|
|
|
virtual void Reset();
|
|
virtual void Field_10(float_t a2, float_t a3, int32_t a4) = 0;
|
|
virtual void Step(struc_400*) = 0;
|
|
virtual void Field_20(std::vector<bone_data>*, std::vector<bone_data>*) = 0;
|
|
virtual void Blend(bone_data*, bone_data*) = 0;
|
|
virtual bool Field_30();
|
|
|
|
void SetDuration(float_t duration, float_t step, float_t offset);
|
|
};
|
|
|
|
class MotionBlendCross : public MotionBlend {
|
|
public:
|
|
bool field_20;
|
|
bool field_21;
|
|
mat4 rot_y_mat;
|
|
mat4 field_64;
|
|
mat4 field_A4;
|
|
mat4 field_E4;
|
|
|
|
MotionBlendCross();
|
|
virtual ~MotionBlendCross() override;
|
|
|
|
virtual void Reset() override;
|
|
virtual void Field_10(float_t a2, float_t a3, int32_t a4) override;
|
|
virtual void Step(struc_400*) override;
|
|
virtual void Field_20(std::vector<bone_data>*, std::vector<bone_data>*) override;
|
|
virtual void Blend(bone_data*, bone_data*) override;
|
|
};
|
|
|
|
class MotionBlendCombine : public MotionBlendCross {
|
|
public:
|
|
MotionBlendCombine();
|
|
virtual ~MotionBlendCombine() override;
|
|
|
|
virtual void Step(struc_400*) override;
|
|
virtual bool Field_30() override;
|
|
};
|
|
|
|
class MotionBlendFreeze : public MotionBlend {
|
|
public:
|
|
bool field_20;
|
|
bool field_21;
|
|
int32_t field_24;
|
|
float_t field_28;
|
|
float_t field_2C;
|
|
int32_t field_30;
|
|
mat4 rot_y_mat;
|
|
mat4 field_74;
|
|
mat4 field_B4;
|
|
mat4 field_F4;
|
|
|
|
MotionBlendFreeze();
|
|
virtual ~MotionBlendFreeze() override;
|
|
|
|
virtual void Reset() override;
|
|
virtual void Field_10(float_t a2, float_t a3, int32_t a4) override;
|
|
virtual void Step(struc_400*) override;
|
|
virtual void Field_20(std::vector<bone_data>*, std::vector<bone_data>*) override;
|
|
virtual void Blend(bone_data*, bone_data*) override;
|
|
};
|
|
|
|
class PartialMotionBlendFreeze : public MotionBlendFreeze {
|
|
public:
|
|
PartialMotionBlendFreeze();
|
|
virtual ~PartialMotionBlendFreeze() override;
|
|
|
|
virtual void Reset() override;
|
|
virtual void Field_10(float_t a2, float_t a3, int32_t a4) override;
|
|
virtual void Step(struc_400*) override;
|
|
virtual void Field_20(std::vector<bone_data>*, std::vector<bone_data>*) override;
|
|
virtual void Blend(bone_data*, bone_data*) override;
|
|
};
|
|
|
|
struct struc_313 {
|
|
std::vector<uint32_t> bitfield;
|
|
size_t motion_bone_count;
|
|
|
|
struc_313();
|
|
~struc_313();
|
|
};
|
|
|
|
typedef bool(* PFNMOTIONBONECHECKFUNC)(motion_bone_index bone_index);
|
|
|
|
struct struc_240 {
|
|
PFNMOTIONBONECHECKFUNC bone_check_func;
|
|
struc_313 field_8;
|
|
size_t motion_bone_count;
|
|
|
|
struc_240();
|
|
~struc_240();
|
|
};
|
|
|
|
struct motion_blend_mot {
|
|
struc_240 field_0;
|
|
MotionBlendCross cross;
|
|
MotionBlendFreeze freeze;
|
|
MotionBlendCombine combine;
|
|
bone_data_parent bone_data;
|
|
mot_key_data mot_key_data;
|
|
mot_play_data mot_play_data;
|
|
struc_308 field_4F8;
|
|
int32_t field_5CC;
|
|
MotionBlend* blend;
|
|
|
|
motion_blend_mot();
|
|
virtual ~motion_blend_mot();
|
|
|
|
MotionBlendType get_type();
|
|
void reset();
|
|
};
|
|
|
|
struct rob_chara_bone_data_ik_scale {
|
|
float_t ratio0;
|
|
float_t ratio1;
|
|
float_t ratio2;
|
|
float_t ratio3;
|
|
|
|
rob_chara_bone_data_ik_scale();
|
|
};
|
|
|
|
struct mot_blend {
|
|
struc_240 field_0;
|
|
bool field_30;
|
|
mot_key_data mot_key_data;
|
|
mot_play_data mot_play_data;
|
|
PartialMotionBlendFreeze blend;
|
|
|
|
mot_blend();
|
|
~mot_blend();
|
|
|
|
void reset();
|
|
};
|
|
|
|
struct struc_241 {
|
|
float_t field_0;
|
|
float_t field_4;
|
|
float_t field_8;
|
|
float_t field_C;
|
|
float_t field_10;
|
|
float_t field_14;
|
|
float_t field_18;
|
|
float_t field_1C;
|
|
vec3 field_20;
|
|
float_t field_2C;
|
|
float_t field_30;
|
|
float_t field_34;
|
|
float_t field_38;
|
|
float_t field_3C;
|
|
float_t field_40;
|
|
|
|
struc_241();
|
|
struc_241(float_t field_0, float_t field_4, float_t field_8, float_t field_C, float_t field_10,
|
|
float_t field_14, float_t field_18, float_t field_1C, vec3 field_20, float_t field_2C,
|
|
float_t field_30, float_t field_34, float_t field_38, float_t field_3C, float_t field_40);
|
|
};
|
|
|
|
struct struc_243 {
|
|
float_t field_0;
|
|
float_t field_4;
|
|
float_t field_8;
|
|
float_t field_C;
|
|
int32_t field_10;
|
|
int32_t field_14;
|
|
int32_t field_18;
|
|
int32_t field_1C;
|
|
float_t field_20;
|
|
float_t field_24;
|
|
};
|
|
|
|
struct struc_258 {
|
|
std::vector<bone_data>* field_0;
|
|
mat4 field_8;
|
|
struc_241 field_48;
|
|
bool field_8C;
|
|
bool field_8D;
|
|
bool field_8E;
|
|
bool field_8F;
|
|
bool field_90;
|
|
bool field_91;
|
|
float_t field_94;
|
|
float_t field_98;
|
|
float_t field_9C;
|
|
float_t field_A0;
|
|
float_t field_A4;
|
|
float_t field_A8;
|
|
float_t field_AC;
|
|
float_t field_B0;
|
|
vec3 field_B4;
|
|
vec3 field_C0;
|
|
mat4 field_CC;
|
|
mat4 field_10C;
|
|
bool field_14C;
|
|
float_t field_150;
|
|
float_t field_154;
|
|
float_t field_158;
|
|
struc_243 field_15C;
|
|
vec3 field_184;
|
|
bool field_190;
|
|
bool field_191;
|
|
bool field_192;
|
|
bool field_193;
|
|
bool field_194;
|
|
bool field_195;
|
|
float_t field_198;
|
|
float_t field_19C;
|
|
float_t field_1A0;
|
|
int32_t field_1A4;
|
|
int32_t field_1A8;
|
|
float_t field_1AC;
|
|
float_t field_1B0;
|
|
int32_t field_1B4;
|
|
int32_t field_1B8;
|
|
vec2 field_1BC;
|
|
bool field_1C4;
|
|
int32_t field_1C8;
|
|
int32_t field_1CC;
|
|
|
|
struc_258();
|
|
};
|
|
|
|
struct sleeve_data {
|
|
float_t radius;
|
|
float_t cyofs;
|
|
float_t czofs;
|
|
float_t ymin;
|
|
float_t ymax;
|
|
float_t zmin;
|
|
float_t zmax;
|
|
float_t mune_xofs;
|
|
float_t mune_yofs;
|
|
float_t mune_zofs;
|
|
float_t mune_rad;
|
|
};
|
|
|
|
struct rob_chara_bone_data_sleeve_adjust {
|
|
sleeve_data sleeve_l;
|
|
sleeve_data sleeve_r;
|
|
bool enable1;
|
|
bool enable2;
|
|
vec3 field_5C;
|
|
vec3 field_68;
|
|
vec3 field_74;
|
|
vec3 field_80;
|
|
float_t radius;
|
|
std::vector<bone_data>* bones;
|
|
float_t step;
|
|
|
|
rob_chara_bone_data_sleeve_adjust();
|
|
|
|
void reset();
|
|
};
|
|
|
|
struct rob_chara_bone_data {
|
|
bool field_0;
|
|
bool field_1;
|
|
size_t object_bone_count;
|
|
size_t total_bone_count;
|
|
size_t motion_bone_count;
|
|
size_t ik_bone_count;
|
|
size_t chain_pos;
|
|
std::vector<mat4> mats;
|
|
std::vector<mat4> mats2;
|
|
std::vector<bone_node> nodes;
|
|
bone_database_skeleton_type base_skeleton_type;
|
|
bone_database_skeleton_type skeleton_type;
|
|
std::vector<motion_blend_mot*> motions;
|
|
std::list<size_t> motion_indices;
|
|
std::list<size_t> motion_loaded_indices;
|
|
std::list<motion_blend_mot*> motion_loaded;
|
|
mot_blend face;
|
|
mot_blend hand_l;
|
|
mot_blend hand_r;
|
|
mot_blend mouth;
|
|
mot_blend eyes;
|
|
mot_blend eyelid;
|
|
bool disable_eye_motion;
|
|
rob_chara_bone_data_ik_scale ik_scale;
|
|
vec3 field_76C[2];
|
|
int32_t field_784;
|
|
struc_258 field_788;
|
|
rob_chara_bone_data_sleeve_adjust sleeve_adjust;
|
|
|
|
rob_chara_bone_data();
|
|
virtual ~rob_chara_bone_data();
|
|
|
|
float_t get_frame();
|
|
float_t get_frame_count();
|
|
bool get_motion_has_looped();
|
|
void reset();
|
|
void set_frame(float_t frame);
|
|
void set_motion_frame(float_t frame, float_t step, float_t frame_count);
|
|
void set_motion_loop(float_t loop_begin, int32_t loop_count, float_t loop_end);
|
|
void set_motion_loop_state(mot_play_frame_data_loop_state value);
|
|
void set_motion_max_frame(float_t value);
|
|
void set_motion_playback_state(mot_play_frame_data_playback_state value);
|
|
};
|
|
|
|
union rob_chara_pv_data_item {
|
|
struct {
|
|
int32_t head;
|
|
int32_t face;
|
|
int32_t chest;
|
|
int32_t back;
|
|
};
|
|
int32_t arr[4];
|
|
};
|
|
|
|
struct rob_chara_pv_data {
|
|
rob_chara_type type;
|
|
bool field_4;
|
|
bool field_5;
|
|
bool field_6;
|
|
vec3 field_8;
|
|
int16_t rot_y_int16;
|
|
int16_t field_16;
|
|
sleeve_data sleeve_l;
|
|
sleeve_data sleeve_r;
|
|
int32_t field_70;
|
|
int32_t motion_face_ids[10];
|
|
int32_t chara_size_index;
|
|
bool height_adjust;
|
|
rob_chara_pv_data_item item;
|
|
eyes_adjust eyes_adjust;
|
|
|
|
rob_chara_pv_data();
|
|
virtual ~rob_chara_pv_data();
|
|
};
|
|
|
|
struct struc_218 {
|
|
vec3 bone_offset;
|
|
float_t scale;
|
|
int32_t bone_index;
|
|
int32_t field_14;
|
|
};
|
|
|
|
struct struc_344 {
|
|
int32_t chara_size_index;
|
|
int32_t field_4;
|
|
int32_t swim_costume;
|
|
int32_t swim_s_costume;
|
|
};
|
|
|
|
struct chara_init_data {
|
|
int32_t object_set;
|
|
bone_database_skeleton_type skeleton_type;
|
|
object_info field_7E0;
|
|
object_info field_7E4[14];
|
|
uint32_t motion_set;
|
|
const struc_218* field_828;
|
|
const struc_218* field_830;
|
|
int32_t field_840;
|
|
int32_t field_844;
|
|
struc_344 field_848;
|
|
object_info head_objects[9];
|
|
object_info face_objects[15];
|
|
};
|
|
|
|
struct rob_chara_item_equip_object;
|
|
|
|
class ExNodeBlock {
|
|
public:
|
|
bone_node* bone_node_ptr;
|
|
ExNodeType type;
|
|
const char* name;
|
|
bone_node* parent_bone_node;
|
|
std::string parent_name;
|
|
ExNodeBlock* parent_node;
|
|
rob_chara_item_equip_object* item_equip_object;
|
|
bool field_58;
|
|
bool field_59;
|
|
bool has_children_node;
|
|
|
|
ExNodeBlock();
|
|
virtual ~ExNodeBlock();
|
|
|
|
virtual void Init() = 0;
|
|
virtual void Field_10() = 0;
|
|
virtual void Field_18(int32_t stage, bool a3) = 0;
|
|
virtual void Field_20() = 0;
|
|
virtual void SetOsagePlayData() = 0;
|
|
virtual void Disp(mat4* mat, render_context* rctx) = 0;
|
|
virtual void Reset();
|
|
virtual void Field_40() = 0;
|
|
virtual void Field_48() = 0;
|
|
virtual void Field_50() = 0;
|
|
virtual void Field_58();
|
|
|
|
void InitData(bone_node* bone_node, ExNodeType type,
|
|
const char* name, rob_chara_item_equip_object* itm_eq_obj);
|
|
};
|
|
|
|
class ExNullBlock : public ExNodeBlock {
|
|
public:
|
|
obj_skin_block_constraint* cns_data;
|
|
|
|
ExNullBlock();
|
|
virtual ~ExNullBlock() override;
|
|
|
|
virtual void Init() override;
|
|
virtual void Field_10();
|
|
virtual void Field_18(int32_t stage, bool a3) override;
|
|
virtual void Field_20() override;
|
|
virtual void SetOsagePlayData() override;
|
|
virtual void Disp(mat4* mat, render_context* rctx) override;
|
|
virtual void Field_40() override;
|
|
virtual void Field_48() override;
|
|
virtual void Field_50() override;
|
|
|
|
void InitData(rob_chara_item_equip_object* itm_eq_obj, obj_skin_block_constraint* cns_data,
|
|
const char* cns_data_name, bone_database* bone_data);
|
|
};
|
|
|
|
struct RobOsageNode;
|
|
|
|
struct RobOsageNodeDataNormalRef {
|
|
bool field_0;
|
|
RobOsageNode* n;
|
|
RobOsageNode* u;
|
|
RobOsageNode* d;
|
|
RobOsageNode* l;
|
|
RobOsageNode* r;
|
|
mat4 mat;
|
|
|
|
RobOsageNodeDataNormalRef();
|
|
|
|
void GetMat();
|
|
};
|
|
|
|
struct skin_param_hinge {
|
|
float_t ymin;
|
|
float_t ymax;
|
|
float_t zmin;
|
|
float_t zmax;
|
|
|
|
inline skin_param_hinge() {
|
|
ymin = -90.0f;
|
|
ymax = 90.0f;
|
|
zmin = -90.0f;
|
|
zmax = 90.0f;
|
|
}
|
|
|
|
void limit();
|
|
};
|
|
|
|
struct skin_param_osage_node {
|
|
float_t coli_r;
|
|
float_t weight;
|
|
float_t inertial_cancel;
|
|
skin_param_hinge hinge;
|
|
|
|
skin_param_osage_node();
|
|
};
|
|
|
|
struct RobOsageNodeResetData {
|
|
vec3 trans;
|
|
vec3 trans_diff;
|
|
vec3 rotation;
|
|
float_t length;
|
|
|
|
RobOsageNodeResetData();
|
|
};
|
|
|
|
struct RobOsageNodeData {
|
|
float_t force;
|
|
std::vector<RobOsageNode*> boc;
|
|
RobOsageNodeDataNormalRef normal_ref;
|
|
skin_param_osage_node skp_osg_node;
|
|
|
|
RobOsageNodeData();
|
|
~RobOsageNodeData();
|
|
|
|
void Reset();
|
|
};
|
|
|
|
struct opd_vec3_data {
|
|
float_t* x;
|
|
float_t* y;
|
|
float_t* z;
|
|
};
|
|
|
|
struct struc_477 {
|
|
float_t length;
|
|
vec3 rotation;
|
|
|
|
struc_477();
|
|
};
|
|
|
|
struct struc_476 {
|
|
struc_477 field_0;
|
|
struc_477 field_10;
|
|
|
|
struc_476();
|
|
};
|
|
|
|
struct RobOsageNode {
|
|
float_t length;
|
|
vec3 trans;
|
|
vec3 trans_orig;
|
|
vec3 trans_diff;
|
|
vec3 field_28;
|
|
float_t child_length;
|
|
bone_node* bone_node_ptr;
|
|
mat4* bone_node_mat;
|
|
mat4 mat;
|
|
RobOsageNode* sibling_node;
|
|
float_t max_distance;
|
|
vec3 field_94;
|
|
RobOsageNodeResetData reset_data;
|
|
float_t field_C8;
|
|
float_t field_CC;
|
|
vec3 external_force;
|
|
float_t force;
|
|
RobOsageNodeData* data_ptr;
|
|
RobOsageNodeData data;
|
|
std::vector<opd_vec3_data> opd_data;
|
|
struc_476 field_1B0;
|
|
|
|
RobOsageNode();
|
|
~RobOsageNode();
|
|
|
|
void Reset();
|
|
};
|
|
|
|
struct skin_param_osage_root_coli {
|
|
skin_param_osage_root_coli_type type;
|
|
int32_t bone0_index;
|
|
int32_t bone1_index;
|
|
float_t radius;
|
|
vec3 bone0_pos;
|
|
vec3 bone1_pos;
|
|
|
|
skin_param_osage_root_coli();
|
|
~skin_param_osage_root_coli();
|
|
};
|
|
|
|
struct skin_param_osage_root_normal_ref {
|
|
std::string n;
|
|
std::string u;
|
|
std::string d;
|
|
std::string l;
|
|
std::string r;
|
|
|
|
skin_param_osage_root_normal_ref();
|
|
~skin_param_osage_root_normal_ref();
|
|
};
|
|
|
|
struct skin_param_osage_root_boc {
|
|
int32_t ed_node;
|
|
std::string ed_root;
|
|
int32_t st_node;
|
|
|
|
skin_param_osage_root_boc();
|
|
~skin_param_osage_root_boc();
|
|
};
|
|
|
|
struct skin_param_osage_root {
|
|
int32_t field_0;
|
|
float_t force;
|
|
float_t force_gain;
|
|
float_t air_res;
|
|
float_t rot_y;
|
|
float_t rot_z;
|
|
float_t init_rot_y;
|
|
float_t init_rot_z;
|
|
float_t hinge_y;
|
|
float_t hinge_z;
|
|
const char* name;
|
|
std::vector<skin_param_osage_root_coli> coli;
|
|
float_t coli_r;
|
|
float_t friction;
|
|
float_t wind_afc;
|
|
int32_t yz_order;
|
|
std::vector<skin_param_osage_root_boc> boc;
|
|
int32_t coli_type;
|
|
float_t stiffness;
|
|
float_t move_cancel;
|
|
std::string colli_tgt_osg;
|
|
std::vector<skin_param_osage_root_normal_ref> normal_ref;
|
|
|
|
skin_param_osage_root();
|
|
~skin_param_osage_root();
|
|
};
|
|
|
|
struct skin_param {
|
|
std::vector<skin_param_osage_root_coli> coli;
|
|
float_t friction;
|
|
float_t wind_afc;
|
|
float_t air_res;
|
|
vec3 rot;
|
|
vec3 init_rot;
|
|
int32_t coli_type;
|
|
float_t stiffness;
|
|
float_t move_cancel;
|
|
float_t coli_r;
|
|
skin_param_hinge hinge;
|
|
float_t force;
|
|
float_t force_gain;
|
|
std::vector<RobOsageNode>* colli_tgt_osg;
|
|
|
|
skin_param();
|
|
~skin_param();
|
|
|
|
inline void reset() {
|
|
coli.clear();
|
|
friction = 1.0f;
|
|
wind_afc = 0.0f;
|
|
air_res = 1.0f;
|
|
rot = 0.0f;
|
|
init_rot = 0.0f;
|
|
coli_type = 0;
|
|
stiffness = 0.0f;
|
|
move_cancel = -0.01f;
|
|
coli_r = 0.0f;
|
|
hinge = skin_param_hinge();
|
|
hinge.limit();
|
|
force = 0.0f;
|
|
force_gain = 0.0f;
|
|
colli_tgt_osg = 0;
|
|
}
|
|
};
|
|
|
|
struct osage_coli {
|
|
skin_param_osage_root_coli_type type;
|
|
float_t radius;
|
|
vec3 bone0_pos;
|
|
vec3 bone1_pos;
|
|
vec3 bone_pos_diff;
|
|
float_t bone_pos_diff_length;
|
|
float_t bone_pos_diff_length_squared;
|
|
float_t field_34;
|
|
|
|
osage_coli();
|
|
~osage_coli();
|
|
|
|
static void set(osage_coli* coli, skin_param_osage_root_coli* skp_root_coli, mat4* mats);
|
|
static void ring_set(osage_coli* coli,
|
|
std::vector<skin_param_osage_root_coli>& vec_skp_root_coli, mat4* mats);
|
|
};
|
|
|
|
struct osage_ring_data {
|
|
float_t ring_rectangle_x;
|
|
float_t ring_rectangle_y;
|
|
float_t ring_rectangle_width;
|
|
float_t ring_rectangle_height;
|
|
float_t ring_height;
|
|
float_t ring_out_height;
|
|
bool field_18;
|
|
std::vector<osage_coli> coli;
|
|
std::vector<skin_param_osage_root_coli> skp_root_coli;
|
|
|
|
osage_ring_data();
|
|
~osage_ring_data();
|
|
};
|
|
|
|
struct struc_571;
|
|
|
|
struct CLOTHNode {
|
|
uint32_t flags;
|
|
vec3 trans;
|
|
vec3 trans_orig;
|
|
vec3 field_1C;
|
|
vec3 trans_diff;
|
|
vec3 normal;
|
|
vec3 tangent;
|
|
vec3 binormal;
|
|
float_t tangent_sign;
|
|
vec2 texcoord;
|
|
vec3 field_64;
|
|
float_t dist_top;
|
|
float_t dist_bottom;
|
|
float_t dist_right;
|
|
float_t dist_left;
|
|
int64_t field_80;
|
|
int32_t field_88;
|
|
RobOsageNodeResetData reset_data;
|
|
int32_t field_B4;
|
|
std::vector<opd_vec3_data> opd_data;
|
|
struc_476 field_D0;
|
|
|
|
CLOTHNode();
|
|
~CLOTHNode();
|
|
};
|
|
|
|
struct struc_341 {
|
|
size_t field_0;
|
|
size_t field_8;
|
|
float_t length;
|
|
};
|
|
|
|
struct CLOTH {
|
|
int32_t field_8;
|
|
size_t root_count;
|
|
size_t nodes_count;
|
|
std::vector<CLOTHNode> nodes;
|
|
vec3 wind_direction;
|
|
float_t field_44;
|
|
bool set_external_force;
|
|
vec3 external_force;
|
|
std::vector<struc_341> field_58;
|
|
skin_param* skin_param_ptr;
|
|
skin_param skin_param;
|
|
osage_coli coli[64];
|
|
osage_coli coli_ring[64];
|
|
osage_ring_data ring;
|
|
mat4* mats;
|
|
|
|
CLOTH();
|
|
virtual ~CLOTH();
|
|
|
|
virtual void Init();
|
|
virtual void SetSkinParamColiR(float_t coli_r);
|
|
virtual void SetSkinParamFriction(float_t friction);
|
|
virtual void SetSkinParamWindAfc(float_t wind_afc);
|
|
virtual void SetWindDirection(vec3& wind_direction);
|
|
virtual void Field_30(float_t a2);
|
|
virtual void SetSkinParamHinge(float_t hinge_y, float_t hinge_z);
|
|
virtual CLOTHNode* GetNodes();
|
|
virtual void Reset();
|
|
virtual void ResetData();
|
|
};
|
|
|
|
struct RobClothRoot {
|
|
vec3 trans;
|
|
vec3 normal;
|
|
vec4 tangent;
|
|
bone_node* node[4];
|
|
mat4* node_mat[4];
|
|
mat4* mat[4];
|
|
float_t weight[4];
|
|
mat4 field_98;
|
|
mat4 field_D8;
|
|
mat4 field_118;
|
|
};
|
|
|
|
struct RobClothSubMeshArray {
|
|
obj_sub_mesh arr[4];
|
|
|
|
RobClothSubMeshArray();
|
|
};
|
|
|
|
struct opd_blend_data {
|
|
int32_t motion_id;
|
|
float_t frame;
|
|
float_t frame_count;
|
|
bool field_C;
|
|
MotionBlendType type;
|
|
float_t blend;
|
|
};
|
|
|
|
struct RobCloth : public CLOTH {
|
|
std::vector<RobClothRoot> root;
|
|
rob_chara_item_equip_object* itm_eq_obj;
|
|
obj_skin_block_cloth_root* cls_root;
|
|
obj_skin_block_cloth* cls_data;
|
|
float_t move_cancel;
|
|
bool osage_reset;
|
|
obj_mesh mesh[2];
|
|
RobClothSubMeshArray submesh[2];
|
|
obj_mesh_vertex_buffer vertex_buffer[2];
|
|
obj_mesh_index_buffer index_buffer[2];
|
|
std::map<std::pair<int32_t, int32_t>, std::list<RobOsageNodeResetData>> motion_reset_data;
|
|
std::list<RobOsageNodeResetData>* reset_data_list;
|
|
|
|
RobCloth();
|
|
virtual ~RobCloth() override;
|
|
|
|
virtual void ResetData() override;
|
|
|
|
void AddMotionResetData(int32_t motion_id, float_t frame);
|
|
void ColiSet(mat4* mats);
|
|
void Disp(mat4* mat, render_context* rctx);
|
|
void InitData(size_t root_count, size_t nodes_count, obj_skin_block_cloth_root* root,
|
|
obj_skin_block_cloth_node* nodes, mat4* mats, int32_t a7,
|
|
rob_chara_item_equip_object* itm_eq_obj, bone_database* bone_data);
|
|
void InitDataParent(obj_skin_block_cloth* cls_data,
|
|
rob_chara_item_equip_object* itm_eq_obj, bone_database* bone_data);
|
|
float_t* LoadOpdData(size_t node_index, float_t* opd_data, size_t opd_count);
|
|
void LoadSkinParam(void* kv, const char* name, bone_database* bone_data);
|
|
void ResetExtrenalForce();
|
|
void SetForceAirRes(float_t force, float_t force_gain, float_t air_res);
|
|
void SetMotionResetData(int32_t motion_id, float_t frame);
|
|
void SetOsagePlayData(std::vector<opd_blend_data>& opd_blend_data);
|
|
float_t* SetOsagePlayDataInit(float_t* opdi_data);
|
|
void SetSkinParamOsageRoot(skin_param_osage_root& skp_root);
|
|
void UpdateDisp();
|
|
void UpdateNormals();
|
|
|
|
static void UpdateVertexBuffer(obj_mesh* mesh, obj_mesh_vertex_buffer* vertex_buffer,
|
|
CLOTHNode* node, float_t facing, int32_t indices_count, uint16_t* indices, bool double_faced);
|
|
};
|
|
|
|
class ExClothBlock : public ExNodeBlock {
|
|
public:
|
|
RobCloth rob;
|
|
obj_skin_block_cloth* cls_data;
|
|
mat4* mats;
|
|
size_t index;
|
|
|
|
ExClothBlock();
|
|
virtual ~ExClothBlock() override;
|
|
|
|
virtual void Init() override;
|
|
virtual void Field_10();
|
|
virtual void Field_18(int32_t stage, bool a3) override;
|
|
virtual void Field_20() override;
|
|
virtual void SetOsagePlayData() override;
|
|
virtual void Disp(mat4* mat, render_context* rctx) override;
|
|
virtual void Reset() override;
|
|
virtual void Field_40() override;
|
|
virtual void Field_48() override;
|
|
virtual void Field_50() override;
|
|
|
|
void AddMotionResetData(int32_t motion_id, float_t frame);
|
|
void InitData(rob_chara_item_equip_object* itm_eq_obj, obj_skin_block_cloth* cls_data,
|
|
skin_param_osage_root* skp_root, bone_database* bone_data);
|
|
float_t* LoadOpdData(size_t node_index, float_t* opd_data, size_t opd_count);
|
|
void SetMotionResetData(int32_t motion_id, float_t frame);
|
|
float_t* SetOsagePlayDataInit(float_t* opdi_data);
|
|
void SetOsageReset();
|
|
void SetSkinParam(struc_571* skp);
|
|
void SetSkinParamOsageRoot(skin_param_osage_root* skp_root);
|
|
};
|
|
|
|
struct struc_571 {
|
|
skin_param skin_param;
|
|
std::vector<RobOsageNodeData> nodes_data;
|
|
bool field_88;
|
|
|
|
struc_571();
|
|
~struc_571();
|
|
};
|
|
|
|
struct osage_setting_osg_cat {
|
|
rob_osage_parts parts;
|
|
size_t exf;
|
|
|
|
osage_setting_osg_cat();
|
|
};
|
|
|
|
struct RobOsage {
|
|
skin_param* skin_param_ptr;
|
|
bone_node_expression_data exp_data;
|
|
std::vector<RobOsageNode> nodes;
|
|
RobOsageNode node;
|
|
skin_param skin_param;
|
|
osage_setting_osg_cat osage_setting;
|
|
bool field_2A0;
|
|
bool field_2A1;
|
|
float_t field_2A4;
|
|
osage_coli coli[64];
|
|
osage_coli coli_ring[64];
|
|
vec3 wind_direction;
|
|
float_t field_1EB4;
|
|
int32_t yz_order;
|
|
int32_t field_1EBC;
|
|
mat4* parent_mat_ptr;
|
|
mat4 parent_mat;
|
|
float_t move_cancel;
|
|
bool field_1F0C;
|
|
bool osage_reset;
|
|
bool field_1F0E;
|
|
bool field_1F0F;
|
|
osage_ring_data ring;
|
|
std::map<std::pair<int32_t, int32_t>, std::list<RobOsageNodeResetData>> motion_reset_data;
|
|
std::list<RobOsageNodeResetData>* reset_data_list;
|
|
bool set_external_force;
|
|
vec3 external_force;
|
|
|
|
RobOsage();
|
|
~RobOsage();
|
|
|
|
void AddMotionResetData(int32_t motion_id, float_t frame);
|
|
bool CheckPartsBits(rob_osage_parts_bit parts_bits);
|
|
void ColiSet(mat4* mats);
|
|
RobOsageNode* GetNode(size_t index);
|
|
void InitData(obj_skin_block_osage* osg_data, obj_skin_osage_node* osg_nodes,
|
|
bone_node* ex_data_bone_nodes, obj_skin* skin);
|
|
float_t* LoadOpdData(size_t node_index, float_t* opd_data, size_t opd_count);
|
|
void LoadSkinParam(void* kv, const char* name,
|
|
skin_param_osage_root& skp_root, object_info* obj_info, bone_database* bone_data);
|
|
void Reset();
|
|
void ResetExtrenalForce();
|
|
void SetAirRes(float_t air_res);
|
|
void SetColiR(float_t coli_r);
|
|
void SetForce(float_t force, float_t force_gain);
|
|
void SetHinge(float_t hinge_y, float_t hinge_z);
|
|
void SetInitRot(float_t init_rot_y, float_t init_rot_z);
|
|
void SetMotionResetData(int32_t motion_id, float_t frame);
|
|
void SetNodesExternalForce(vec3* external_force, float_t strength);
|
|
void SetNodesForce(float_t force);
|
|
void SetOsagePlayData(mat4* parent_mat,
|
|
vec3& parent_scale, std::vector<opd_blend_data>& opd_blend_data);
|
|
float_t* SetOsagePlayDataInit(float_t* opdi_data);
|
|
void SetRot(float_t rot_y, float_t rot_z);
|
|
void SetSkinParamOsageRoot(skin_param_osage_root& skp_root);
|
|
void SetSkpOsgNodes(std::vector<skin_param_osage_node>* skp_osg_nodes);
|
|
void SetYZOrder(int32_t yz_order);
|
|
};
|
|
|
|
class ExOsageBlock : public ExNodeBlock {
|
|
public:
|
|
size_t index;
|
|
RobOsage rob;
|
|
mat4* mats;
|
|
int32_t field_1FF8;
|
|
float_t step;
|
|
|
|
ExOsageBlock();
|
|
virtual ~ExOsageBlock() override;
|
|
|
|
virtual void Init() override;
|
|
virtual void Field_10();
|
|
virtual void Field_18(int32_t stage, bool a3) override;
|
|
virtual void Field_20() override;
|
|
virtual void SetOsagePlayData() override;
|
|
virtual void Disp(mat4* mat, render_context* rctx) override;
|
|
virtual void Reset() override;
|
|
virtual void Field_40() override;
|
|
virtual void Field_48() override;
|
|
virtual void Field_50() override;
|
|
virtual void Field_58() override;
|
|
|
|
void AddMotionResetData(int32_t motion_id, float_t frame);
|
|
void InitData(rob_chara_item_equip_object* itm_eq_obj, obj_skin_block_osage* osg_data,
|
|
const char* osg_data_name, obj_skin_osage_node* osg_nodes, bone_node* bone_nodes,
|
|
bone_node* ex_data_bone_nodes, obj_skin* skin);
|
|
float_t* LoadOpdData(size_t node_index, float_t* opd_data, size_t opd_count);
|
|
void SetMotionResetData(int32_t motion_id, float_t frame);
|
|
float_t* SetOsagePlayDataInit(float_t* opdi_data);
|
|
void SetOsageReset();
|
|
void SetSkinParam(struc_571* skp);
|
|
void SetWindDirection();
|
|
void sub_1405F3E10(obj_skin_block_osage* osg_data, obj_skin_osage_node* osg_nodes,
|
|
std::vector<std::pair<uint32_t, RobOsageNode*>>* a4,
|
|
std::map<const char*, ExNodeBlock*>* a5);
|
|
};
|
|
|
|
class ExConstraintBlock : public ExNodeBlock {
|
|
public:
|
|
obj_skin_block_constraint_type constraint_type;
|
|
bone_node* source_node_bone_node;
|
|
bone_node* direction_up_vector_bone_node;
|
|
obj_skin_block_constraint* cns_data;
|
|
int64_t field_80;
|
|
|
|
ExConstraintBlock();
|
|
virtual ~ExConstraintBlock() override;
|
|
|
|
virtual void Init() override;
|
|
virtual void Field_10() override;
|
|
virtual void Field_18(int32_t stage, bool a3) override;
|
|
virtual void Field_20() override;
|
|
virtual void SetOsagePlayData() override;
|
|
virtual void Disp(mat4* mat, render_context* rctx) override;
|
|
virtual void Field_40() override;
|
|
virtual void Field_48() override;
|
|
virtual void Field_50() override;
|
|
|
|
void Calc();
|
|
void DataSet();
|
|
void InitData(rob_chara_item_equip_object* itm_eq_obj, obj_skin_block_constraint* cns_data,
|
|
const char* cns_data_name, bone_database* bone_data);
|
|
|
|
static void sub_1405F10D0(mat4* mat, vec3* a2, float_t a3, float_t a4);
|
|
static void sub_1401EB410(mat4* mat, vec3* a2, vec3* target_offset);
|
|
};
|
|
|
|
struct ex_expression_block_stack;
|
|
|
|
struct ex_expression_block_stack_number {
|
|
float_t value;
|
|
};
|
|
|
|
struct ex_expression_block_stack_variable {
|
|
float_t* value;
|
|
};
|
|
|
|
struct ex_expression_block_stack_variable_radian {
|
|
float_t* value;
|
|
};
|
|
|
|
struct ex_expression_block_stack_op1 {
|
|
float_t(*func)(float_t v1);
|
|
ex_expression_block_stack* v1;
|
|
};
|
|
|
|
struct ex_expression_block_stack_op2 {
|
|
float_t(*func)(float_t v1, float_t v2);
|
|
ex_expression_block_stack* v1;
|
|
ex_expression_block_stack* v2;
|
|
};
|
|
|
|
struct ex_expression_block_stack_op3 {
|
|
float_t(*func)(float_t v1, float_t v2, float_t v3);
|
|
ex_expression_block_stack* v1;
|
|
ex_expression_block_stack* v2;
|
|
ex_expression_block_stack* v3;
|
|
};
|
|
|
|
struct ex_expression_block_stack {
|
|
ex_expression_block_stack_type type;
|
|
union {
|
|
ex_expression_block_stack_number number;
|
|
ex_expression_block_stack_variable var;
|
|
ex_expression_block_stack_variable_radian var_rad;
|
|
ex_expression_block_stack_op1 op1;
|
|
ex_expression_block_stack_op2 op2;
|
|
ex_expression_block_stack_op3 op3;
|
|
};
|
|
};
|
|
|
|
class ExExpressionBlock : public ExNodeBlock {
|
|
public:
|
|
float_t* values[9];
|
|
ex_expression_block_stack_type types[9];
|
|
ex_expression_block_stack* expressions[9];
|
|
ex_expression_block_stack stack_data[384];
|
|
obj_skin_block_expression* exp_data;
|
|
bool field_3D20;
|
|
void(*field_3D28)(bone_node_expression_data*);
|
|
float_t frame;
|
|
bool step;
|
|
|
|
ExExpressionBlock();
|
|
virtual ~ExExpressionBlock() override;
|
|
|
|
virtual void Init() override;
|
|
virtual void Field_10() override;
|
|
virtual void Field_18(int32_t stage, bool a3) override;
|
|
virtual void Field_20() override;
|
|
virtual void SetOsagePlayData() override;
|
|
virtual void Disp(mat4* mat, render_context* rctx) override;
|
|
virtual void Field_40() override;
|
|
virtual void Field_48() override;
|
|
virtual void Field_50() override;
|
|
|
|
void Calc();
|
|
void DataSet();
|
|
void InitData(rob_chara_item_equip_object* itm_eq_obj, obj_skin_block_expression* exp_data,
|
|
const char* exp_data_name, object_info a4, size_t index, bone_database* bone_data);
|
|
};
|
|
|
|
struct ex_data_name_bone_index {
|
|
const char* name;
|
|
uint32_t bone_index;
|
|
};
|
|
|
|
struct rob_chara_item_equip;
|
|
|
|
struct rob_chara_item_equip_object {
|
|
size_t index;
|
|
mat4* mats;
|
|
object_info obj_info;
|
|
int32_t field_14;
|
|
std::vector<texture_pattern_struct> texture_pattern;
|
|
texture_data_struct texture_data;
|
|
bool null_blocks_data_set;
|
|
bone_node_expression_data exp_data;
|
|
float_t alpha;
|
|
draw_task_flags draw_task_flags;
|
|
bool can_disp;
|
|
int32_t field_A4;
|
|
mat4* mat;
|
|
int32_t osage_iterations;
|
|
bone_node* bone_nodes;
|
|
std::vector<ExNodeBlock*> node_blocks;
|
|
std::vector<bone_node> ex_data_bone_nodes;
|
|
std::vector<mat4> ex_data_mats;
|
|
std::vector<mat4> ex_data_block_mats;
|
|
std::vector<ex_data_name_bone_index> ex_bones;
|
|
int64_t field_138;
|
|
std::vector<ExNullBlock*> null_blocks;
|
|
std::vector<ExOsageBlock*> osage_blocks;
|
|
std::vector<ExConstraintBlock*> constraint_blocks;
|
|
std::vector<ExExpressionBlock*> expression_blocks;
|
|
std::vector<ExClothBlock*> cloth_blocks;
|
|
bool field_1B8;
|
|
size_t osage_nodes_count;
|
|
bool use_opd;
|
|
obj_skin_ex_data* skin_ex_data;
|
|
obj_skin* skin;
|
|
rob_chara_item_equip* item_equip;
|
|
|
|
rob_chara_item_equip_object();
|
|
virtual ~rob_chara_item_equip_object();
|
|
|
|
void add_motion_reset_data(int32_t motion_id, float_t frame, int32_t osage_iterations);
|
|
void check_no_opd(std::vector<opd_blend_data>& opd_blend_data);
|
|
void clear_ex_data();
|
|
void disp(mat4* mat, render_context* rctx);
|
|
int32_t get_bone_index(const char* name, bone_database* bone_data);
|
|
bone_node* get_bone_node(int32_t bone_index);
|
|
bone_node* get_bone_node(const char* name, bone_database* bone_data);
|
|
RobOsageNode* get_normal_ref_osage_node(std::string& name, size_t* index);
|
|
void get_parent_bone_nodes(bone_node* bone_nodes, bone_database* bone_data);
|
|
void init_ex_data_bone_nodes(obj_skin_ex_data* ex_data);
|
|
void init_members(size_t index = 0xDEADBEEF);
|
|
void load_ex_data(obj_skin_ex_data* ex_data,
|
|
bone_database* bone_data, void* data, object_database* obj_db);
|
|
void load_object_info_ex_data(object_info object_info, bone_node* bone_nodes,
|
|
bool osage_reset, bone_database* bone_data, void* data, object_database* obj_db);
|
|
void reset_external_force();
|
|
void set_alpha_draw_task_flags(float_t alpha, int32_t flags);
|
|
bool set_boc(skin_param_osage_root& skp_root, ExOsageBlock* osg);
|
|
void set_collision_target_osage(skin_param_osage_root& skp_root, skin_param* skp);
|
|
void set_motion_reset_data(int32_t motion_id, float_t frame);
|
|
void set_motion_skin_param(int8_t chara_id, int32_t motion_id, int32_t frame);
|
|
void set_null_blocks_expression_data(vec3* position, vec3* rotation, vec3* scale);
|
|
void set_osage_play_data_init(float_t* opdi_data);
|
|
void set_osage_reset();
|
|
void set_osage_move_cancel(float_t value);
|
|
void set_texture_pattern(texture_pattern_struct* tex_pat, size_t count);
|
|
void skp_load(void* kv, bone_database* bone_data);
|
|
void skp_load_file(void* data, bone_database* bone_data, object_database* obj_db);
|
|
bool skp_load_normal_ref(skin_param_osage_root& skp_root, std::vector<RobOsageNodeData>* node_data);
|
|
};
|
|
|
|
struct rob_chara_item_equip {
|
|
bone_node* bone_nodes;
|
|
mat4* matrices;
|
|
rob_chara_item_equip_object* item_equip_object;
|
|
int32_t field_18[31];
|
|
bool item_equip_range;
|
|
item_id first_item_equip_object;
|
|
item_id max_item_equip_object;
|
|
int32_t field_A0;
|
|
shadow_type_enum shadow_type;
|
|
vec3 position;
|
|
int32_t field_B4;
|
|
std::vector<texture_pattern_struct> texture_pattern;
|
|
object_info field_D0;
|
|
int32_t field_D4;
|
|
bool disable_update;
|
|
int32_t field_DC;
|
|
vec4 texture_color_coeff;
|
|
float_t wet;
|
|
float_t wind_strength;
|
|
bool chara_color;
|
|
bool npr_flag;
|
|
mat4 mat;
|
|
mat4 field_13C[30];
|
|
int32_t field_8BC;
|
|
int32_t field_8C0;
|
|
int32_t field_8C4;
|
|
int32_t field_8C8;
|
|
int32_t field_8CC;
|
|
int32_t field_8D0;
|
|
int32_t field_8D4;
|
|
int32_t field_8D8;
|
|
int32_t field_8DC;
|
|
int32_t field_8E0;
|
|
int32_t field_8E4;
|
|
int32_t field_8E8;
|
|
int32_t field_8EC;
|
|
int32_t field_8F0;
|
|
int32_t field_8F4;
|
|
int32_t field_8F8;
|
|
int32_t field_8FC;
|
|
int64_t field_900;
|
|
int64_t field_908;
|
|
int64_t field_910;
|
|
int64_t field_918;
|
|
int64_t field_920;
|
|
int64_t field_928;
|
|
int64_t field_930;
|
|
float_t step;
|
|
bool use_opd;
|
|
std::vector<opd_blend_data> opd_blend_data;
|
|
bool parts_short;
|
|
bool parts_append;
|
|
bool parts_white_one_l;
|
|
|
|
rob_chara_item_equip();
|
|
virtual ~rob_chara_item_equip();
|
|
|
|
rob_chara_item_equip_object* get_item_equip_object(item_id id);
|
|
void reset();
|
|
void reset_external_force();
|
|
void set_osage_play_data_init(item_id id, float_t* opdi_data);
|
|
};
|
|
|
|
struct item_cos_texture_change_tex {
|
|
texture* org;
|
|
texture* chg;
|
|
bool changed;
|
|
|
|
item_cos_texture_change_tex();
|
|
~item_cos_texture_change_tex();
|
|
};
|
|
|
|
struct rob_chara_item_cos_data {
|
|
::chara_index chara_index;
|
|
::chara_index chara_index_2nd;
|
|
item_cos_data cos;
|
|
item_cos_data cos_2nd;
|
|
std::map<int32_t, std::vector<item_cos_texture_change_tex>> texture_change;
|
|
std::map<int32_t, std::vector<uint32_t>> item_change;
|
|
std::map<object_info, item_id> field_F0;
|
|
std::map<int32_t, int32_t > field_100;
|
|
std::vector<texture_pattern_struct> texture_pattern[31];
|
|
std::map<int32_t, object_info> head_replace;
|
|
|
|
rob_chara_item_cos_data();
|
|
~rob_chara_item_cos_data();
|
|
};
|
|
|
|
struct struc_525 {
|
|
int32_t field_0;
|
|
int32_t field_4;
|
|
};
|
|
|
|
struct struc_524 {
|
|
int32_t field_0;
|
|
struc_525 field_4;
|
|
int32_t motion_id;
|
|
int8_t field_10;
|
|
};
|
|
|
|
struct struc_523 {
|
|
int8_t field_0;
|
|
int8_t field_1;
|
|
int32_t field_4;
|
|
int16_t field_8;
|
|
int32_t field_C;
|
|
vec3 field_10;
|
|
int32_t field_1C;
|
|
int32_t field_20;
|
|
int32_t field_24;
|
|
int32_t field_28;
|
|
int32_t field_2C;
|
|
int32_t field_30;
|
|
int32_t field_34;
|
|
int32_t field_38;
|
|
int32_t field_3C;
|
|
int32_t field_40;
|
|
int32_t field_44;
|
|
int32_t field_48;
|
|
int32_t field_4C;
|
|
int8_t field_50;
|
|
int32_t field_54;
|
|
std::list<void*> field_58;
|
|
int64_t field_68;
|
|
int64_t field_70;
|
|
int32_t field_78;
|
|
float_t field_7C;
|
|
float_t field_80;
|
|
|
|
struc_523();
|
|
~struc_523();
|
|
};
|
|
|
|
struct struc_526 {
|
|
int32_t field_0;
|
|
int32_t field_4;
|
|
};
|
|
|
|
struct struc_264 {
|
|
int8_t field_0;
|
|
struc_524 field_4;
|
|
struc_524 field_18;
|
|
struc_524 field_2C;
|
|
struc_524 field_40;
|
|
struc_524 field_54;
|
|
int32_t field_68;
|
|
int32_t field_6C;
|
|
int32_t field_70;
|
|
float_t field_74;
|
|
int16_t field_78;
|
|
int32_t field_7C;
|
|
int32_t field_80;
|
|
int32_t field_84;
|
|
int32_t field_88;
|
|
int32_t field_8C;
|
|
int32_t field_90;
|
|
int32_t field_94;
|
|
int8_t field_98;
|
|
int32_t field_9C;
|
|
int32_t field_A0;
|
|
int8_t field_A4;
|
|
int8_t field_A5;
|
|
int32_t field_A8;
|
|
int32_t field_AC;
|
|
int32_t field_B0;
|
|
bool field_B4;
|
|
struc_523 field_B8;
|
|
int32_t field_140;
|
|
int8_t field_144;
|
|
int8_t field_145;
|
|
int16_t field_146;
|
|
void* field_148;
|
|
int8_t field_150;
|
|
int16_t field_152;
|
|
int32_t field_154;
|
|
int32_t field_158;
|
|
int32_t field_15C;
|
|
int32_t field_160;
|
|
int32_t field_164;
|
|
int32_t field_168;
|
|
int32_t field_16C;
|
|
int32_t field_170;
|
|
int32_t field_174;
|
|
int32_t field_178;
|
|
int32_t field_17C;
|
|
int8_t field_180;
|
|
int32_t field_184;
|
|
int32_t field_188;
|
|
float_t field_18C;
|
|
int8_t field_190;
|
|
int32_t field_194;
|
|
int32_t field_198;
|
|
int32_t field_19C;
|
|
int32_t field_1A0;
|
|
uint8_t field_1A4;
|
|
char** field_1A8;
|
|
int32_t field_1B0;
|
|
int32_t field_1B4;
|
|
int32_t field_1B8;
|
|
int32_t field_1BC;
|
|
struc_526 field_1C0;
|
|
int8_t field_1C8;
|
|
int8_t field_1C9;
|
|
int8_t field_1CA;
|
|
int32_t field_1CC;
|
|
int32_t field_1D0;
|
|
int32_t field_1D4;
|
|
|
|
struc_264();
|
|
~struc_264();
|
|
};
|
|
|
|
class SubActParam {
|
|
public:
|
|
SubActParamType type;
|
|
|
|
SubActParam(SubActParamType type);
|
|
virtual ~SubActParam();
|
|
};
|
|
|
|
class SubActParamAngry : public SubActParam {
|
|
public:
|
|
SubActParamAngry();
|
|
virtual ~SubActParamAngry();
|
|
};
|
|
|
|
class SubActParamCountNum : public SubActParam {
|
|
public:
|
|
int32_t field_10;
|
|
|
|
SubActParamCountNum();
|
|
virtual ~SubActParamCountNum();
|
|
};
|
|
|
|
class SubActParamCry : public SubActParam {
|
|
public:
|
|
SubActParamCry();
|
|
virtual ~SubActParamCry();
|
|
};
|
|
|
|
class SubActParamEmbarrassed : public SubActParam {
|
|
public:
|
|
SubActParamEmbarrassed();
|
|
virtual ~SubActParamEmbarrassed();
|
|
};
|
|
|
|
class SubActParamLaugh : public SubActParam {
|
|
public:
|
|
SubActParamLaugh();
|
|
virtual ~SubActParamLaugh();
|
|
};
|
|
|
|
class SubActParamShakeHand : public SubActParam {
|
|
public:
|
|
int32_t field_10;
|
|
|
|
SubActParamShakeHand();
|
|
virtual ~SubActParamShakeHand();
|
|
};
|
|
|
|
class SubActExec {
|
|
public:
|
|
SubActExecType type;
|
|
int32_t field_C;
|
|
|
|
SubActExec(SubActExecType type);
|
|
virtual ~SubActExec();
|
|
|
|
virtual void Field_8() = 0;
|
|
virtual void Field_10(SubActParam* param) = 0;
|
|
virtual void Field_18(rob_chara* rob_chr) = 0;
|
|
virtual void Field_20(rob_chara* rob_chr) = 0;
|
|
};
|
|
|
|
class SubActExecAngry : public SubActExec {
|
|
public:
|
|
SubActExecAngry();
|
|
virtual ~SubActExecAngry() override;
|
|
|
|
virtual void Field_8() override;
|
|
virtual void Field_10(SubActParam* param) override;
|
|
virtual void Field_18(rob_chara* rob_chr) override;
|
|
virtual void Field_20(rob_chara* rob_chr) override;
|
|
};
|
|
|
|
class SubActExecCountNum : public SubActExec {
|
|
public:
|
|
int32_t field_10;
|
|
int32_t field_14;
|
|
int32_t field_18;
|
|
|
|
SubActExecCountNum();
|
|
virtual ~SubActExecCountNum() override;
|
|
|
|
virtual void Field_8() override;
|
|
virtual void Field_10(SubActParam* param) override;
|
|
virtual void Field_18(rob_chara* rob_chr) override;
|
|
virtual void Field_20(rob_chara* rob_chr) override;
|
|
};
|
|
|
|
class SubActExecCry : public SubActExec {
|
|
public:
|
|
SubActExecCry();
|
|
virtual ~SubActExecCry() override;
|
|
|
|
virtual void Field_8() override;
|
|
virtual void Field_10(SubActParam* param) override;
|
|
virtual void Field_18(rob_chara* rob_chr) override;
|
|
virtual void Field_20(rob_chara* rob_chr) override;
|
|
};
|
|
|
|
class SubActExecEmbarrassed : public SubActExec {
|
|
public:
|
|
int8_t field_10;
|
|
SubActExecEmbarrassed();
|
|
virtual ~SubActExecEmbarrassed() override;
|
|
|
|
virtual void Field_8() override;
|
|
virtual void Field_10(SubActParam* param) override;
|
|
virtual void Field_18(rob_chara* rob_chr) override;
|
|
virtual void Field_20(rob_chara* rob_chr) override;
|
|
};
|
|
|
|
class SubActExecLaugh : public SubActExec {
|
|
public:
|
|
SubActExecLaugh();
|
|
virtual ~SubActExecLaugh() override;
|
|
|
|
virtual void Field_8() override;
|
|
virtual void Field_10(SubActParam* param) override;
|
|
virtual void Field_18(rob_chara* rob_chr) override;
|
|
virtual void Field_20(rob_chara* rob_chr) override;
|
|
};
|
|
|
|
class SubActExecShakeHand : public SubActExec {
|
|
public:
|
|
int32_t field_10;
|
|
int32_t field_14;
|
|
int8_t field_18;
|
|
|
|
SubActExecShakeHand();
|
|
virtual ~SubActExecShakeHand() override;
|
|
|
|
virtual void Field_8() override;
|
|
virtual void Field_10(SubActParam* param) override;
|
|
virtual void Field_18(rob_chara* rob_chr) override;
|
|
virtual void Field_20(rob_chara* rob_chr) override;
|
|
};
|
|
|
|
struct RobSubAction {
|
|
struct Data {
|
|
SubActExec* field_0;
|
|
SubActExec* field_8;
|
|
SubActParam* field_10;
|
|
SubActExec* field_18;
|
|
SubActExecCry cry;
|
|
SubActExecShakeHand shake_hand;
|
|
SubActExecEmbarrassed embarrassed;
|
|
SubActExecAngry angry;
|
|
SubActExecLaugh laugh;
|
|
SubActExecCountNum count_num;
|
|
|
|
Data();
|
|
~Data();
|
|
} data;
|
|
|
|
RobSubAction();
|
|
~RobSubAction();
|
|
|
|
void Reset();
|
|
};
|
|
|
|
struct struc_389 {
|
|
float_t frame;
|
|
float_t prev_frame;
|
|
float_t last_set_frame;
|
|
};
|
|
|
|
struct struc_406 {
|
|
float_t frame;
|
|
float_t field_4;
|
|
float_t step;
|
|
};
|
|
|
|
class RobPartialMotion {
|
|
public:
|
|
struct Data {
|
|
int32_t motion_id;
|
|
int32_t mottbl_index;
|
|
int32_t state;
|
|
float_t frame;
|
|
float_t play_frame_step;
|
|
float_t frame_count;
|
|
float_t blend_duration;
|
|
float_t blend_step;
|
|
float_t blend_offset;
|
|
float_t field_24;
|
|
struc_389* frame_data;
|
|
struc_406* step_data;
|
|
int32_t field_38;
|
|
|
|
inline Data() : motion_id(), mottbl_index(), state(), frame(),
|
|
play_frame_step(), frame_count(), blend_duration(), blend_step(),
|
|
blend_offset(), field_24(), frame_data(), step_data(), field_38() {
|
|
Reset();
|
|
}
|
|
|
|
inline ~Data() {
|
|
|
|
}
|
|
|
|
inline void Reset() {
|
|
motion_id = -1;
|
|
mottbl_index = 6;
|
|
state = -1;
|
|
frame = 0.0f;
|
|
play_frame_step = 1.0f;
|
|
frame_count = 0.0f;
|
|
blend_duration = 0.0f;
|
|
blend_step = 1.0f;
|
|
blend_offset = 1.0f;
|
|
field_24 = 0.0f;
|
|
frame_data = 0;
|
|
step_data = 0;
|
|
field_38 = -1;
|
|
}
|
|
} data;
|
|
|
|
RobPartialMotion();
|
|
virtual ~RobPartialMotion();
|
|
|
|
virtual void Reset() = 0;
|
|
};
|
|
|
|
class RobFaceMotion : public RobPartialMotion {
|
|
public:
|
|
RobFaceMotion();
|
|
virtual ~RobFaceMotion() override;
|
|
|
|
virtual void Reset() override;
|
|
};
|
|
|
|
class RobHandMotion : public RobPartialMotion {
|
|
public:
|
|
RobHandMotion();
|
|
virtual ~RobHandMotion() override;
|
|
|
|
virtual void Reset() override;
|
|
};
|
|
|
|
class RobMouthMotion : public RobPartialMotion {
|
|
public:
|
|
RobMouthMotion();
|
|
virtual ~RobMouthMotion() override;
|
|
|
|
virtual void Reset() override;
|
|
};
|
|
|
|
class RobEyesMotion : public RobPartialMotion {
|
|
public:
|
|
RobEyesMotion();
|
|
virtual ~RobEyesMotion() override;
|
|
|
|
virtual void Reset() override;
|
|
};
|
|
|
|
class RobEyelidMotion : public RobPartialMotion {
|
|
public:
|
|
RobEyelidMotion();
|
|
virtual ~RobEyelidMotion() override;
|
|
|
|
virtual void Reset() override;
|
|
};
|
|
|
|
struct struc_405 {
|
|
RobFaceMotion face;
|
|
RobHandMotion hand_l;
|
|
RobHandMotion hand_r;
|
|
RobMouthMotion mouth;
|
|
RobEyesMotion eyes;
|
|
RobEyelidMotion eyelid;
|
|
object_info head_object;
|
|
object_info hand_l_object;
|
|
object_info hand_r_object;
|
|
object_info face_object;
|
|
int32_t field_1C0;
|
|
float_t time;
|
|
|
|
struc_405();
|
|
~struc_405();
|
|
|
|
void Reset();
|
|
};
|
|
|
|
struct rob_chara_data_adjust {
|
|
bool enable;
|
|
float_t frame;
|
|
float_t transition_frame;
|
|
vec3 curr_external_force;
|
|
float_t curr_force;
|
|
float_t curr_strength;
|
|
int32_t motion_id;
|
|
float_t set_frame;
|
|
float_t force_duration;
|
|
int32_t type;
|
|
int32_t cycle_type;
|
|
bool ignore_gravity;
|
|
vec3 external_force;
|
|
vec3 external_force_cycle_strength;
|
|
vec3 external_force_cycle;
|
|
float_t cycle;
|
|
float_t phase;
|
|
float_t force;
|
|
float_t strength;
|
|
float_t strength_transition;
|
|
|
|
rob_chara_data_adjust();
|
|
|
|
void reset();
|
|
};
|
|
|
|
struct rob_chara_data_hand_adjust {
|
|
bool enable;
|
|
int16_t scale_select;
|
|
rob_chara_data_hand_adjust_type type;
|
|
float_t current_scale;
|
|
float_t scale;
|
|
float_t duration;
|
|
float_t current_time;
|
|
float_t rotation_blend;
|
|
float_t scale_blend;
|
|
bool enable_scale;
|
|
bool disable_x;
|
|
bool disable_y;
|
|
bool disable_z;
|
|
vec3 offset;
|
|
vec3 field_30;
|
|
float_t arm_length;
|
|
int32_t field_40;
|
|
|
|
rob_chara_data_hand_adjust();
|
|
|
|
void reset();
|
|
};
|
|
|
|
struct rob_chara_data_arm_adjust {
|
|
bool enable;
|
|
float_t value;
|
|
float_t prev_value;
|
|
float_t next_value;
|
|
float_t duration;
|
|
float_t frame;
|
|
|
|
void reset();
|
|
};
|
|
|
|
struct rob_chara_motion {
|
|
int32_t motion_id;
|
|
int32_t prev_motion_id;
|
|
struc_389 frame_data;
|
|
struc_406 step_data;
|
|
float_t step;
|
|
int32_t field_24;
|
|
int8_t field_28;
|
|
int8_t field_29;
|
|
int8_t field_2A;
|
|
int32_t loop_index;
|
|
uint32_t field_30;
|
|
int16_t field_34;
|
|
int16_t field_36;
|
|
int32_t field_38[32];
|
|
int32_t field_B8[32];
|
|
float_t field_138;
|
|
float_t field_13C;
|
|
vec3 field_140;
|
|
int32_t field_14C;
|
|
struc_405 field_150;
|
|
float_t field_314;
|
|
RobHandMotion hand_l;
|
|
RobHandMotion hand_r;
|
|
object_info hand_l_object;
|
|
object_info hand_r_object;
|
|
struc_405 field_3B0;
|
|
rob_chara_data_adjust parts_adjust[ROB_OSAGE_PARTS_MAX];
|
|
rob_chara_data_adjust parts_adjust_prev[ROB_OSAGE_PARTS_MAX];
|
|
rob_chara_data_adjust adjust_global;
|
|
rob_chara_data_adjust adjust_global_prev;
|
|
rob_chara_data_hand_adjust hand_adjust[2];
|
|
rob_chara_data_hand_adjust hand_adjust_prev[2];
|
|
rob_chara_data_arm_adjust arm_adjust[2];
|
|
|
|
rob_chara_motion();
|
|
~rob_chara_motion();
|
|
|
|
void reset();
|
|
};
|
|
|
|
struct struc_228 {
|
|
int32_t field_0;
|
|
int32_t field_4;
|
|
uint32_t field_8;
|
|
int32_t field_C;
|
|
};
|
|
|
|
struct struc_227 {
|
|
int32_t field_0;
|
|
float_t field_4;
|
|
float_t field_8;
|
|
};
|
|
|
|
struct mothead_data {
|
|
mothead_data_type type;
|
|
int32_t frame;
|
|
void* data;
|
|
};
|
|
|
|
struct mothead_data2 {
|
|
int32_t type;
|
|
void* data;
|
|
};
|
|
|
|
struct mothead_mot {
|
|
struc_228 field_0;
|
|
int16_t field_10;
|
|
int16_t field_12;
|
|
std::vector<mothead_data2> field_18;
|
|
std::vector<mothead_data> data;
|
|
std::vector<int64_t> field_28;
|
|
bool is_x;
|
|
|
|
mothead_mot();
|
|
virtual ~mothead_mot();
|
|
};
|
|
|
|
struct mothead {
|
|
int32_t mot_set_id;
|
|
int32_t first_mot_id;
|
|
int32_t last_mot_id;
|
|
std::vector<mothead_mot*> mots;
|
|
void* data_x;
|
|
|
|
mothead();
|
|
virtual ~mothead();
|
|
};
|
|
|
|
struct mothead_file {
|
|
int32_t mot_set_id;
|
|
int32_t first_mot_id;
|
|
int32_t last_mot_id;
|
|
uint32_t mot_offsets_offset;
|
|
};
|
|
|
|
struct mothead_modern_file {
|
|
uint32_t mot_set_id;
|
|
int32_t mot_count;
|
|
int64_t hashes_offset;
|
|
int64_t mot_offsets_offset;
|
|
};
|
|
|
|
struct mothead_mot_file {
|
|
int32_t field_0;
|
|
int32_t field_4;
|
|
int32_t field_8;
|
|
int32_t field_C;
|
|
int16_t field_10;
|
|
int16_t field_12;
|
|
uint32_t field_14;
|
|
uint32_t field_18;
|
|
uint32_t field_1C;
|
|
};
|
|
|
|
struct struc_377 {
|
|
const mothead_data* current;
|
|
const mothead_data* data;
|
|
bool is_x; // X
|
|
};
|
|
|
|
struct struc_226 {
|
|
int8_t field_0[27];
|
|
};
|
|
|
|
struct struc_225 {
|
|
float_t field_0[27];
|
|
};
|
|
|
|
struct struc_224 {
|
|
float_t field_0[27];
|
|
};
|
|
|
|
struct struc_306 {
|
|
int16_t field_0;
|
|
float_t frame;
|
|
float_t field_8;
|
|
int16_t field_C;
|
|
int16_t field_E;
|
|
vec3 field_10;
|
|
vec3 field_1C;
|
|
vec3 field_28;
|
|
int32_t field_34;
|
|
int32_t field_38;
|
|
int32_t field_3C;
|
|
int32_t field_40;
|
|
int32_t field_44;
|
|
int32_t field_48;
|
|
|
|
struc_306();
|
|
struc_306(int16_t field_0, float_t frame, float_t field_8);
|
|
};
|
|
|
|
struct struc_652 {
|
|
uint32_t motion_id;
|
|
float_t frame_count;
|
|
float_t field_8;
|
|
int16_t field_C;
|
|
struc_228 field_10;
|
|
struc_228 field_20;
|
|
struc_228 field_30;
|
|
struc_228 field_40;
|
|
int16_t field_50;
|
|
int16_t field_52;
|
|
int16_t field_54;
|
|
int32_t field_58;
|
|
int32_t field_5C;
|
|
int32_t field_60;
|
|
int32_t field_64;
|
|
int32_t field_68;
|
|
int32_t loop_count;
|
|
float_t loop_begin;
|
|
float_t loop_end;
|
|
float_t field_78;
|
|
float_t field_7C;
|
|
float_t field_80;
|
|
int8_t field_84;
|
|
int32_t field_88;
|
|
int32_t field_8C;
|
|
int32_t field_90;
|
|
int16_t field_94;
|
|
int16_t field_96;
|
|
int16_t field_98;
|
|
int32_t field_9C;
|
|
int16_t field_A0;
|
|
int32_t field_A4;
|
|
int64_t field_A8;
|
|
struc_227 field_B0[26];
|
|
int32_t field_1E8;
|
|
float_t field_1EC;
|
|
float_t field_1F0;
|
|
float_t field_1F4;
|
|
float_t field_1F8;
|
|
float_t field_1FC;
|
|
float_t field_200;
|
|
int32_t field_204;
|
|
int32_t field_208;
|
|
int32_t field_20C;
|
|
int64_t field_210;
|
|
float_t field_218;
|
|
float_t field_21C;
|
|
int16_t field_220;
|
|
std::list<void*> field_228;
|
|
int16_t field_238;
|
|
float_t field_23C;
|
|
int32_t field_240;
|
|
int16_t field_244;
|
|
const mothead_data2* field_248;
|
|
int64_t field_250;
|
|
float_t field_258;
|
|
int32_t field_25C;
|
|
int64_t field_260;
|
|
int64_t field_268;
|
|
int32_t field_270;
|
|
int16_t field_274;
|
|
int16_t field_276;
|
|
int32_t field_278;
|
|
int32_t field_27C;
|
|
int32_t field_280;
|
|
int16_t field_284;
|
|
int64_t field_288;
|
|
int32_t field_290;
|
|
int32_t field_294;
|
|
int32_t field_298;
|
|
float_t field_29C;
|
|
int8_t field_2A0;
|
|
float_t field_2A4;
|
|
float_t field_2A8;
|
|
float_t field_2AC;
|
|
int64_t field_2B0;
|
|
int16_t field_2B8;
|
|
int32_t field_2BC;
|
|
float_t field_2C0;
|
|
float_t field_2C4;
|
|
int32_t field_2C8;
|
|
int32_t field_2CC;
|
|
int64_t field_2D0;
|
|
int64_t field_2D8;
|
|
int64_t field_2E0;
|
|
int16_t field_2E8;
|
|
int32_t field_2EC;
|
|
int32_t field_2F0;
|
|
int32_t field_2F4;
|
|
int32_t field_2F8;
|
|
int32_t field_2FC;
|
|
int8_t field_300;
|
|
int32_t field_304;
|
|
int32_t field_308;
|
|
float_t field_30C;
|
|
int32_t field_310;
|
|
int16_t field_314;
|
|
vec3 field_318;
|
|
float_t field_324;
|
|
float_t field_328;
|
|
int32_t iterations;
|
|
|
|
struc_652();
|
|
~struc_652();
|
|
|
|
void reset();
|
|
|
|
void sub_140536DD0();
|
|
};
|
|
|
|
struct struc_651 {
|
|
struc_377 field_0;
|
|
int32_t field_10;
|
|
int32_t field_14;
|
|
int32_t field_18;
|
|
float_t field_1C;
|
|
vec3 field_20;
|
|
struc_226 field_2C[3];
|
|
struc_225 field_80[3];
|
|
struc_224 field_1C4[3];
|
|
int64_t field_308;
|
|
float_t arm_adjust_next_value; // X
|
|
float_t arm_adjust_prev_value; // X
|
|
int32_t arm_adjust_start_frame; // X
|
|
float_t arm_adjust_duration; // X
|
|
float_t field_310;
|
|
float_t field_314;
|
|
int8_t field_318;
|
|
int32_t field_31C;
|
|
float_t field_320;
|
|
float_t field_324;
|
|
float_t field_328;
|
|
float_t field_32C;
|
|
float_t field_330;
|
|
float_t field_334;
|
|
int8_t field_338;
|
|
struc_306 field_33C[4];
|
|
|
|
struc_651();
|
|
|
|
void reset();
|
|
};
|
|
|
|
struct struc_223 {
|
|
struc_652 field_0;
|
|
struc_651 field_330;
|
|
const int64_t* field_7A0;
|
|
uint32_t motion_set_id;
|
|
|
|
struc_223();
|
|
~struc_223();
|
|
|
|
void reset();
|
|
};
|
|
|
|
struct rob_chara_data_miku_rot {
|
|
int16_t rot_y_int16;
|
|
int16_t field_2;
|
|
int16_t field_4;
|
|
int16_t field_6;
|
|
int32_t field_8;
|
|
int32_t field_C;
|
|
float_t field_10;
|
|
int32_t field_14;
|
|
vec3 position;
|
|
vec3 field_24;
|
|
vec3 field_30;
|
|
vec3 field_3C;
|
|
vec3 field_48;
|
|
vec3 field_54;
|
|
int32_t field_60;
|
|
int32_t field_64;
|
|
int32_t field_68;
|
|
mat4 field_6C;
|
|
|
|
rob_chara_data_miku_rot();
|
|
|
|
void reset();
|
|
};
|
|
|
|
struct rob_chara_adjust_data {
|
|
float_t scale;
|
|
bool height_adjust;
|
|
float_t pos_adjust_y;
|
|
vec3 pos_adjust;
|
|
vec3 offset;
|
|
bool offset_x;
|
|
bool offset_y;
|
|
bool offset_z;
|
|
bool get_global_trans;
|
|
vec3 trans;
|
|
mat4 mat;
|
|
float_t left_hand_scale;
|
|
float_t right_hand_scale;
|
|
float_t left_hand_scale_default;
|
|
float_t right_hand_scale_default;
|
|
mat4 item_mat; // X
|
|
vec3 item_trans; // X
|
|
float_t item_scale; // X
|
|
|
|
rob_chara_adjust_data();
|
|
|
|
void reset();
|
|
};
|
|
|
|
struct struc_195 {
|
|
vec3 prev_trans;
|
|
vec3 trans;
|
|
float_t scale;
|
|
float_t field_1C;
|
|
float_t field_20;
|
|
float_t field_24;
|
|
|
|
struc_195();
|
|
};
|
|
|
|
struct struc_210 {
|
|
vec2 field_0;
|
|
float_t scale;
|
|
|
|
struc_210();
|
|
};
|
|
|
|
struct struc_267 {
|
|
float_t field_0;
|
|
int16_t field_4;
|
|
int16_t field_6;
|
|
float_t field_8;
|
|
int16_t field_C;
|
|
};
|
|
|
|
struct struc_209 {
|
|
int16_t field_0;
|
|
int32_t field_4;
|
|
int32_t field_8;
|
|
int32_t field_C;
|
|
int32_t field_10;
|
|
int32_t field_14;
|
|
int32_t field_18;
|
|
int32_t field_1C;
|
|
int32_t field_20;
|
|
int32_t field_24;
|
|
int32_t field_28;
|
|
int32_t field_2C;
|
|
int32_t field_30;
|
|
int32_t field_34;
|
|
int32_t field_38;
|
|
int32_t field_3C;
|
|
int32_t field_40;
|
|
int32_t field_44;
|
|
int32_t field_48;
|
|
int32_t field_4C;
|
|
int32_t field_50;
|
|
int32_t field_54;
|
|
int32_t field_58;
|
|
int32_t field_5C;
|
|
int32_t field_60;
|
|
float_t field_64;
|
|
int32_t field_68;
|
|
int32_t field_6C;
|
|
int32_t field_70;
|
|
int32_t field_74;
|
|
mat4 field_78[27];
|
|
mat4 field_738[27];
|
|
struc_195 field_DF8[27];
|
|
struc_195 field_1230[27];
|
|
struc_195 field_1668[27];
|
|
struc_210 field_1AA0[27];
|
|
float_t field_1BE4[27];
|
|
std::vector<std::pair<int64_t, float_t>> field_1C50;
|
|
int64_t field_1C68;
|
|
int64_t field_1C70;
|
|
int64_t field_1C78;
|
|
int64_t field_1C80;
|
|
int32_t field_1C88[27];
|
|
int32_t field_1CF4[27];
|
|
int32_t field_1D60[27];
|
|
int32_t field_1DCC;
|
|
int32_t field_1DD0;
|
|
int32_t field_1DD4;
|
|
int32_t field_1DD8;
|
|
int32_t field_1DDC;
|
|
float_t field_1DE0;
|
|
float_t field_1DE4;
|
|
int32_t field_1DE8;
|
|
int32_t field_1DEC;
|
|
float_t field_1DF0;
|
|
float_t field_1DF4;
|
|
int32_t field_1DF8;
|
|
int32_t field_1DFC;
|
|
int32_t field_1E00;
|
|
int32_t field_1E04;
|
|
int32_t field_1E08;
|
|
int32_t field_1E0C;
|
|
int32_t field_1E10;
|
|
int32_t field_1E14;
|
|
int32_t field_1E18;
|
|
int32_t field_1E1C;
|
|
int32_t field_1E20;
|
|
int32_t field_1E24;
|
|
int32_t field_1E28;
|
|
int32_t field_1E2C;
|
|
int32_t field_1E30;
|
|
int32_t field_1E34;
|
|
int32_t field_1E38;
|
|
int32_t field_1E3C;
|
|
int32_t field_1E40;
|
|
int32_t field_1E44;
|
|
int32_t field_1E48;
|
|
int32_t field_1E4C;
|
|
int32_t field_1E50;
|
|
int32_t field_1E54;
|
|
int32_t field_1E58;
|
|
int32_t field_1E5C;
|
|
int32_t field_1E60;
|
|
int32_t field_1E64;
|
|
int32_t field_1E68;
|
|
int32_t field_1E6C;
|
|
int32_t field_1E70;
|
|
int32_t field_1E74;
|
|
int32_t field_1E78;
|
|
int32_t field_1E7C;
|
|
int32_t field_1E80;
|
|
int32_t field_1E84;
|
|
int32_t field_1E88;
|
|
int32_t field_1E8C;
|
|
int32_t field_1E90;
|
|
int32_t field_1E94;
|
|
int32_t field_1E98;
|
|
int32_t field_1E9C;
|
|
int32_t field_1EA0;
|
|
int32_t field_1EA4;
|
|
int32_t field_1EA8;
|
|
int32_t field_1EAC;
|
|
int32_t field_1EB0;
|
|
struc_267 field_1EB4[4];
|
|
int32_t field_1EF4[4];
|
|
int8_t field_1F04;
|
|
int32_t field_1F08;
|
|
int32_t field_1F0C;
|
|
int32_t field_1F10;
|
|
int32_t field_1F14;
|
|
int32_t field_1F18;
|
|
int32_t field_1F1C;
|
|
int8_t field_1F20;
|
|
int8_t field_1F21;
|
|
int8_t field_1F22;
|
|
int8_t field_1F23;
|
|
int8_t field_1F24;
|
|
int8_t field_1F25;
|
|
int8_t field_1F26;
|
|
|
|
struc_209();
|
|
~struc_209();
|
|
};
|
|
|
|
struct rob_chara_data {
|
|
uint8_t field_0;
|
|
uint8_t field_1;
|
|
uint8_t field_2;
|
|
uint8_t field_3;
|
|
int32_t field_4;
|
|
struc_264 field_8;
|
|
RobSubAction rob_sub_action;
|
|
rob_chara_motion motion;
|
|
struc_223 field_1588;
|
|
rob_chara_data_miku_rot miku_rot;
|
|
rob_chara_adjust_data adjust_data;
|
|
struc_209 field_1E68;
|
|
float_t field_3D90;
|
|
int32_t field_3D94;
|
|
int16_t field_3D98;
|
|
int16_t field_3D9A;
|
|
uint8_t field_3D9C;
|
|
uint8_t field_3D9D;
|
|
int32_t field_3DA0;
|
|
uint8_t field_3DA4;
|
|
int64_t field_3DA8;
|
|
int64_t field_3DB0;
|
|
int32_t field_3DB8;
|
|
int32_t field_3DBC;
|
|
int32_t field_3DC0;
|
|
int32_t field_3DC4;
|
|
int32_t field_3DC8;
|
|
int32_t field_3DCC;
|
|
int32_t field_3DD0;
|
|
float_t field_3DD4;
|
|
int32_t field_3DD8;
|
|
float_t field_3DDC;
|
|
uint8_t field_3DE0;
|
|
float_t arm_adjust_scale; // X
|
|
|
|
rob_chara_data();
|
|
~rob_chara_data();
|
|
|
|
void reset();
|
|
};
|
|
|
|
struct struc_307 {
|
|
int64_t field_0;
|
|
int32_t field_8;
|
|
int32_t field_C;
|
|
int64_t field_10;
|
|
int16_t field_18;
|
|
int16_t field_1A;
|
|
int16_t field_1C;
|
|
int16_t field_1E;
|
|
int64_t field_20;
|
|
rob_chara_bone_data* field_28;
|
|
};
|
|
|
|
struct rob_chara {
|
|
int8_t chara_id;
|
|
rob_chara_type type;
|
|
bool field_C;
|
|
bool field_D;
|
|
chara_index chara_index;
|
|
int32_t module_index;
|
|
float_t frame_speed;
|
|
void* field_20;
|
|
rob_chara_bone_data* bone_data;
|
|
rob_chara_item_equip* item_equip;
|
|
rob_chara_item_cos_data item_cos_data;
|
|
rob_chara_data data;
|
|
rob_chara_data data_prev;
|
|
const chara_init_data* chara_init_data;
|
|
rob_chara_pv_data pv_data;
|
|
|
|
rob_chara();
|
|
virtual ~rob_chara();
|
|
|
|
void autoblink_disable();
|
|
void autoblink_enable();
|
|
mat4* get_bone_data_mat(size_t index);
|
|
float_t get_frame();
|
|
float_t get_frame_count();
|
|
float_t get_max_face_depth();
|
|
int32_t get_rob_cmn_mottbl_motion_id(int32_t id);
|
|
bool get_visibility();
|
|
void load_motion(int32_t motion_id, bool a3, float_t frame,
|
|
MotionBlendType blend_type, bone_database* bone_data, motion_database* mot_db);
|
|
void reset_data(rob_chara_pv_data* pv_data,
|
|
bone_database* bone_data, motion_database* mot_db);
|
|
void reset_osage();
|
|
void set_bone_data_frame(float_t frame);
|
|
void set_chara_height_adjust(bool value);
|
|
void set_chara_pos_adjust(vec3* value);
|
|
void set_chara_pos_adjust_y(float_t value);
|
|
void set_chara_size(float_t value);
|
|
void set_eyelid_mottbl_motion_from_face(int32_t a2,
|
|
float_t blend_duration, float_t value, float_t blend_offset, motion_database* mot_db);
|
|
void set_eyelid_mottbl_motion(int32_t type,
|
|
int32_t mottbl_index, float_t value, int32_t state, float_t blend_duration,
|
|
float_t a7, float_t step, int32_t a9, float_t blend_offset, motion_database* mot_db);
|
|
void set_eyes_mottbl_motion(int32_t type,
|
|
int32_t mottbl_index, float_t value, int32_t state, float_t blend_duration,
|
|
float_t a7, float_t step, int32_t a9, float_t blend_offset, motion_database* mot_db);
|
|
void set_face_mottbl_motion(int32_t type, int32_t mottbl_index,
|
|
float_t value, int32_t state, float_t blend_duration, float_t a7,
|
|
float_t step, int32_t a9, float_t blend_offset, bool a11, motion_database* mot_db);
|
|
void set_frame(float_t frame);
|
|
void set_hand_l_mottbl_motion(int32_t type, int32_t mottbl_index,
|
|
float_t value, int32_t state, float_t blend_duration, float_t a7,
|
|
float_t step, int32_t a9, float_t blend_offset, motion_database* mot_db);
|
|
void set_hand_r_mottbl_motion(int32_t type, int32_t mottbl_index,
|
|
float_t value, int32_t state, float_t blend_duration, float_t a7,
|
|
float_t step, int32_t a9, float_t blend_offset, motion_database* mot_db);
|
|
bool set_motion_id(int32_t motion_id, float_t frame,
|
|
float_t blend_duration, bool a5, bool set_motion_reset_data,
|
|
MotionBlendType blend_type, bone_database* bone_data, motion_database* mot_db);
|
|
void set_motion_reset_data(int32_t motion_id, float_t frame);
|
|
void set_motion_skin_param(int32_t motion_id, float_t frame);
|
|
void set_mouth_mottbl_motion(int32_t type, int32_t mottbl_index,
|
|
float_t value, int32_t state, float_t blend_duration, float_t a7,
|
|
float_t step, int32_t a9, float_t blend_offset, motion_database* mot_db);
|
|
void set_osage_move_cancel(uint8_t id, float_t value);
|
|
void set_osage_reset();
|
|
void set_osage_step(float_t value);
|
|
void set_parts_disp(item_id id, bool disp);
|
|
void set_visibility(bool value);
|
|
};
|
|
|
|
struct pv_data_set_motion {
|
|
int32_t motion_id;
|
|
std::pair<float_t, int32_t> frame_stage_index;
|
|
};
|
|
|
|
#define ROB_CHARA_COUNT 6
|
|
|
|
extern rob_chara* rob_chara_array;
|
|
extern rob_chara_pv_data* rob_chara_pv_data_array;
|
|
|
|
extern const chara_init_data* chara_init_data_get(chara_index chara_index);
|
|
extern int32_t chara_init_data_get_chara_size_index(chara_index chara_index);
|
|
|
|
extern float_t chara_pos_adjust_y_table_get_value(uint32_t index);
|
|
extern float_t chara_size_table_get_value(uint32_t index);
|
|
|
|
extern const float_t get_osage_gravity_const();
|
|
|
|
extern void motion_set_load_mothead(uint32_t set, std::string* mdata_dir, motion_database* mot_db);
|
|
extern void motion_set_load_motion(uint32_t set, std::string* mdata_dir, motion_database* mot_db);
|
|
extern void motion_set_unload_mothead(uint32_t set);
|
|
extern void motion_set_unload_motion(uint32_t set);
|
|
|
|
extern bool opd_make_manager_task_free();
|
|
|
|
extern void pv_osage_manager_array_reset(int32_t chara_id);
|
|
|
|
extern void rob_init();
|
|
extern void rob_free();
|
|
|
|
extern mat4* rob_chara_bone_data_get_mats_mat(rob_chara_bone_data* rob_bone_data, size_t index);
|
|
|
|
extern bool rob_chara_array_check_visibility(int32_t chara_id);
|
|
extern rob_chara* rob_chara_array_get(int32_t chara_id);
|
|
extern rob_chara_bone_data* rob_chara_array_get_bone_data(int32_t chara_id);
|
|
extern float_t rob_chara_array_get_data_adjust_scale(int32_t chara_id);
|
|
extern rob_chara_item_equip* rob_chara_array_get_item_equip(int32_t chara_id);
|
|
extern int32_t rob_chara_array_init_chara_index(chara_index chara_index,
|
|
rob_chara_pv_data* pv_data, int32_t module_index, bool can_set_default);
|
|
extern void rob_chara_array_free_chara_id(int32_t chara_id);
|
|
extern void rob_chara_array_set_alpha_draw_task_flags(int32_t chara_id, float_t alpha, draw_task_flags flags);
|
|
|
|
extern bool rob_chara_pv_data_array_check_chara_id(int32_t chara_id);
|
|
|
|
extern bool pv_osage_manager_array_get_disp();
|
|
extern void pv_osage_manager_array_set_not_reset_true();
|
|
extern void pv_osage_manager_array_set_pv_id(int32_t chara_id, int32_t pv_id, bool reset);
|
|
extern void pv_osage_manager_array_set_pv_set_motion(
|
|
int32_t chara_id, std::vector<pv_data_set_motion>& set_motion);
|
|
|
|
extern bool task_rob_manager_append_task();
|
|
extern bool task_rob_manager_check_chara_loaded(int32_t chara_id);
|
|
extern bool task_rob_manager_free_task();
|
|
|
|
extern void motion_storage_init();
|
|
extern bool motion_storage_check_mot_file_not_ready(uint32_t set_id);
|
|
extern const mot_data* motion_storage_get_mot_data(uint32_t motion_id, motion_database* mot_db);
|
|
extern float_t motion_storage_get_mot_data_frame_count(uint32_t motion_id, motion_database* mot_db);
|
|
extern const mot_set* motion_storage_get_motion_set(uint32_t set_id);
|
|
extern void motion_storage_free();
|
|
|
|
extern void mothead_storage_init();
|
|
extern bool mothead_storage_check_mhd_file_not_ready(uint32_t set_id);
|
|
extern const mothead_mot* mothead_storage_get_mot_by_motion_id(uint32_t motion_id, motion_database* mot_db);
|
|
extern void mothead_storage_free();
|
|
|
|
extern void osage_setting_data_init();
|
|
extern bool osage_setting_data_load_file(void* data, const char* path, const char* file, uint32_t hash);
|
|
extern bool osage_setting_data_obj_has_key(object_info key);
|
|
extern void osage_setting_data_free();
|
|
|
|
extern bool skin_param_manager_array_check_task_ready();
|
|
|
|
extern void skin_param_osage_node_parse(void* kv, const char* name,
|
|
std::vector<skin_param_osage_node>* a3, skin_param_osage_root& skp_root);
|
|
|
|
extern void skin_param_osage_root_parse(void* kv, const char* name,
|
|
skin_param_osage_root& skp_root, bone_database* bone_data);
|
|
|
|
extern int32_t expression_id_to_mottbl_index(int32_t expression_id);
|
|
extern int32_t hand_anim_id_to_mottbl_index(int32_t hand_anim_id);
|
|
extern int32_t look_anim_id_to_mottbl_index(int32_t look_anim_id);
|
|
extern int32_t mouth_anim_id_to_mottbl_index(int32_t mouth_anim_id);
|