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