示例#1
0
 def execute(self, context):
     obj = context.active_object
     root = mmd_model.Model.findRoot(obj)
     mmd_root=root.mmd_root
     rig = mmd_model.Model(root)
     armature = rig.armature()
     morph = mmd_root.bone_morphs[mmd_root.active_morph]
     morph_data = morph.data[morph.active_data]
     utils.selectSingleBone(context, armature, morph_data.bone)
     return { 'FINISHED' }
示例#2
0
 def execute(self, context):
     obj = context.active_object
     root = mmd_model.Model.findRoot(obj)
     mmd_root=root.mmd_root  
     rig = mmd_model.Model(root)
     armature = rig.armature()  
     morph = mmd_root.bone_morphs[mmd_root.active_morph]
     morph_data = morph.data[morph.active_data]
     p_bone = armature.pose.bones[morph_data.bone]
     p_bone.location = morph_data.location
     p_bone.rotation_quaternion = morph_data.rotation
     utils.selectSingleBone(context, armature, p_bone.name)
     return { 'FINISHED' }   
示例#3
0
 def execute(self, context):
     obj = context.active_object
     root = mmd_model.Model.findRoot(obj)
     mmd_root=root.mmd_root
     rig = mmd_model.Model(root)
     armature = rig.armature()
     utils.selectSingleBone(context, armature, None, True)
     morph = mmd_root.bone_morphs[mmd_root.active_morph]
     for morph_data in morph.data:
         p_bone = armature.pose.bones.get(morph_data.bone, None)
         if p_bone:
             p_bone.bone.select = True
             p_bone.location += morph_data.location
             p_bone.rotation_quaternion *= morph_data.rotation
     return { 'FINISHED' }
示例#4
0
 def execute(self, context):
     obj = context.active_object
     root = mmd_model.Model.findRoot(obj)
     mmd_root = root.mmd_root
     rig = mmd_model.Model(root)
     armature = rig.armature()
     morph = mmd_root.bone_morphs[mmd_root.active_morph]
     morph_data = morph.data[morph.active_data]
     p_bone = armature.pose.bones[morph_data.bone]
     mtx = Quaternion(
         *morph_data.rotation.to_axis_angle()).to_matrix().to_4x4()
     mtx.translation = morph_data.location
     p_bone.matrix_basis = mtx
     utils.selectSingleBone(context, armature, p_bone.name)
     return {'FINISHED'}
示例#5
0
 def execute(self, context):
     from mmd_tools_local.bpyutils import matmul
     obj = context.active_object
     root = mmd_model.Model.findRoot(obj)
     mmd_root = root.mmd_root
     rig = mmd_model.Model(root)
     armature = rig.armature()
     utils.selectSingleBone(context, armature, None, True)
     morph = mmd_root.bone_morphs[mmd_root.active_morph]
     for morph_data in morph.data:
         p_bone = armature.pose.bones.get(morph_data.bone, None)
         if p_bone:
             p_bone.bone.select = True
             mtx = matmul(
                 p_bone.matrix_basis.to_3x3(),
                 Quaternion(*morph_data.rotation.to_axis_angle()).to_matrix(
                 )).to_4x4()
             mtx.translation = p_bone.location + morph_data.location
             p_bone.matrix_basis = mtx
     return {'FINISHED'}
    def execute(self, context):
        obj = context.active_object
        root = mmd_model.Model.findRoot(obj)
        mmd_root = root.mmd_root
        frame = ItemOp.get_by_index(mmd_root.display_item_frames, mmd_root.active_display_item_frame)
        if frame is None:
            return {'CANCELLED'}
        item = ItemOp.get_by_index(frame.items, frame.active_item)
        if item is None:
            return {'CANCELLED'}

        if item.type == 'MORPH':
            morphs = getattr(mmd_root, item.morph_type)
            index = morphs.find(item.name)
            if index >= 0:
                mmd_root.active_morph_type = item.morph_type
                mmd_root.active_morph = index
        else:
            utils.selectSingleBone(context, mmd_model.Model(root).armature(), item.name)
        return {'FINISHED'}