Beispiel #1
0
def _get_selected_objects(context):
    selected_objects = set(i for i in context.selected_objects
                           if i.type == 'MESH')
    for i in context.selected_objects:
        root = Model.findRoot(i)
        if root == i:
            selected_objects |= set(Model(root).meshes())
    return selected_objects
Beispiel #2
0
def _setNameJ(prop, value):
    old_value = prop.get('name_j')
    prop_value = value
    if prop_value and prop_value != old_value:
        root = Model.findRoot(bpy.context.active_object)
        if root:
            rig = Model(root)
            prop_value = utils.uniqueName(
                value,
                [mat.mmd_material.name_j for mat in rig.materials() if mat])
        else:
            prop_value = utils.uniqueName(
                value, [mat.mmd_material.name_j for mat in bpy.data.materials])

    prop['name_j'] = prop_value
Beispiel #3
0
    def execute(self, context):
        from mmd_tools.core.model import Model
        root = Model.findRoot(context.active_object)
        if root is None:
            self.report({'ERROR'}, 'Select a MMD model')
            return {'CANCELLED'}

        rig = Model(root)
        if self.action == 'CLEAN':
            for obj in rig.meshes():
                self.__clean_toon_edge(obj)
        else:
            scale = rig.rootObject().empty_draw_size * 0.2
            counts = sum(
                self.__create_toon_edge(obj, scale) for obj in rig.meshes())
            self.report({'INFO'}, 'Created %d toon edge(s)' % counts)
        return {'FINISHED'}
Beispiel #4
0
def _set_bone(prop, value):
    bone_name = value
    obj = prop.id_data
    relation = obj.constraints.get('mmd_tools_rigid_parent', None)
    if relation is None:
        relation = obj.constraints.new('CHILD_OF')
        relation.name = 'mmd_tools_rigid_parent'
        relation.mute = True

    arm = relation.target
    if arm is None:
        root = Model.findRoot(obj)
        if root:
            arm = relation.target = Model(root).armature()

    if arm is not None and bone_name in arm.data.bones:
        relation.subtarget = bone_name
    else:
        relation.subtarget = bone_name = ''

    prop['bone'] = bone_name