private PMDFormat.IK ReadIK() { PMDFormat.IK result = new PMDFormat.IK(); result.ik_bone_index = binary_reader_.ReadUInt16(); result.ik_target_bone_index = binary_reader_.ReadUInt16(); result.ik_chain_length = binary_reader_.ReadByte(); result.iterations = binary_reader_.ReadUInt16(); result.control_weight = binary_reader_.ReadSingle(); result.ik_child_bone_index = ReadUInt16s(binary_reader_, result.ik_chain_length); return(result); }
private static PMXFormat.IK_Data ConvertIKData(PMDFormat.IK pmd_ik) { PMXFormat.IK_Data result = null; if (null != pmd_ik) { result = new PMXFormat.IK_Data(); result.ik_bone_index = pmd_ik.ik_target_bone_index; result.iterations = pmd_ik.iterations; result.limit_angle = pmd_ik.control_weight * 4.0f; //PMXConverter側で4倍されるので逆補正 result.ik_link = pmd_ik.ik_child_bone_index.Select(x => ConvertIKLink(x)).ToArray(); } return(result); }
private PMDFormat.IK ReadIK() { PMDFormat.IK result = new PMDFormat.IK(); result.ik_bone_index = binary_reader_.ReadUInt16(); result.ik_target_bone_index = binary_reader_.ReadUInt16(); result.ik_chain_length = binary_reader_.ReadByte(); result.iterations = binary_reader_.ReadUInt16(); result.control_weight = binary_reader_.ReadSingle(); result.ik_child_bone_index = ReadUInt16s(binary_reader_, result.ik_chain_length); return result; }