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;
	}