def _setAdditionalTransformBone(prop, value): arm = prop.id_data prop['is_additional_transform_dirty'] = True if value not in arm.pose.bones.keys(): prop['additional_transform_bone_id'] = -1 return pose_bone = arm.pose.bones[value] bone = FnBone(pose_bone) prop['additional_transform_bone_id'] = bone.bone_id
def _set_bone(prop, value): root = prop.id_data fnModel = FnModel(root) arm = fnModel.armature() if value not in arm.pose.bones.keys(): prop['bone_id'] = -1 return pose_bone = arm.pose.bones[value] fnBone = FnBone(pose_bone) prop['bone_id'] = fnBone.bone_id
def _updateAdditionalTransformInfluence(prop, context): p_bone = context.active_pose_bone if p_bone and p_bone.mmd_bone.as_pointer() == prop.as_pointer(): FnBone(p_bone).update_additional_transform_influence() else: prop['is_additional_transform_dirty'] = True
def applyAdditionalTransformConstraints(self, force=False): arm = self.armature() fnBone = FnBone() for bone in arm.pose.bones[:]: fnBone.pose_bone = bone fnBone.apply_additional_transformation()