def _sided_rotation_limit(self, unsided_name, armature_object):
     bpy.ops.object.mode_set(mode='POSE', toggle=False)
     if unsided_name in _ROTATION_LIMITS:
         for axis_name in _ROTATION_LIMITS[unsided_name].keys():
             name = self._sided(unsided_name)
             limits = _ROTATION_LIMITS[unsided_name][axis_name]
             RigService.set_ik_rotation_limits(name,
                                               armature_object,
                                               axis=axis_name,
                                               min_angle=limits[0],
                                               max_angle=limits[1])
Exemple #2
0
    def _sided_rotation_limits(self, finger_number, armature_object):
        bpy.ops.object.mode_set(mode='POSE', toggle=False)
        for segment_number in [1, 2, 3]:
            limits = {}
            if finger_number == 1:
                if segment_number == 1:
                    limits = _ROTATION_LIMITS["thumb_first_segment"]
                else:
                    limits = _ROTATION_LIMITS["thumb_following_segments"]
            else:
                if segment_number == 1:
                    limits = _ROTATION_LIMITS["finger_first_segment"]
                else:
                    limits = _ROTATION_LIMITS["finger_following_segments"]

            for axis_name in limits.keys():
                name = self._sided("finger" + str(finger_number) + "-" +
                                   str(segment_number))
                angles = limits[axis_name]
                RigService.set_ik_rotation_limits(name,
                                                  armature_object,
                                                  axis=axis_name,
                                                  min_angle=angles[0],
                                                  max_angle=angles[1])