From 15fbfeebd65bca1b092acf93256cb80227e1b67b Mon Sep 17 00:00:00 2001 From: ProDeath21 <> Date: Sat, 26 Oct 2024 14:34:37 +0200 Subject: [PATCH] Blender Plugin 1.8.2 Hide all LODs after sort operation (Niklas) --- .../_Release/L1960_Tools_1_8_2.zip | Bin 0 -> 31178 bytes .../L1960_Tools_1_8_2/ColorPalette_01.png | Bin 0 -> 16990 bytes .../L1960_Tools_1_8_2/ColorPalette_02.png | Bin 0 -> 15542 bytes .../L1960_Tools_1_8_2/CubeProjection.py | 94 +++++++++ .../_Source/L1960_Tools_1_8_2/Helper.py | 191 ++++++++++++++++++ .../_Source/L1960_Tools_1_8_2/PrepareLods.py | 128 ++++++++++++ .../_Source/L1960_Tools_1_8_2/__init__.py | 122 +++++++++++ 7 files changed, 535 insertions(+) create mode 100644 Blender/L1960_Tools/_Release/L1960_Tools_1_8_2.zip create mode 100644 Blender/L1960_Tools/_Source/L1960_Tools_1_8_2/ColorPalette_01.png create mode 100644 Blender/L1960_Tools/_Source/L1960_Tools_1_8_2/ColorPalette_02.png create mode 100644 Blender/L1960_Tools/_Source/L1960_Tools_1_8_2/CubeProjection.py create mode 100644 Blender/L1960_Tools/_Source/L1960_Tools_1_8_2/Helper.py create mode 100644 Blender/L1960_Tools/_Source/L1960_Tools_1_8_2/PrepareLods.py create mode 100644 Blender/L1960_Tools/_Source/L1960_Tools_1_8_2/__init__.py diff --git a/Blender/L1960_Tools/_Release/L1960_Tools_1_8_2.zip b/Blender/L1960_Tools/_Release/L1960_Tools_1_8_2.zip new file mode 100644 index 0000000000000000000000000000000000000000..f546bf98e01e5d58142d602dd41f00e1d5cbaec7 GIT binary patch literal 31178 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 Opr)*)RD9Pu`2PUmEl~IX literal 0 HcmV?d00001 diff --git a/Blender/L1960_Tools/_Source/L1960_Tools_1_8_2/ColorPalette_02.png b/Blender/L1960_Tools/_Source/L1960_Tools_1_8_2/ColorPalette_02.png new file mode 100644 index 0000000000000000000000000000000000000000..68a926be528a08255b88e5290bbe12b5b98e9fe9 GIT binary patch literal 15542 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 1: + for uv_layer in reversed(arr_layers): + arr_layers.remove(uv_layer) + arr_layers.new(name = 'MLOD') + + + texture_filepath = os.path.join(L1960_path, colorpalettes[1]) + + if not len(obj.data.materials) == 0: + obj.data.materials.clear() + + palette_enum_selection = context.scene.color_palettes.mlod_enum_selection + mlod_material_name = "MLOD_" + palette_enum_selection[:-4] + + if not bpy.data.materials.get(mlod_material_name): + material = bpy.data.materials.new(name=mlod_material_name) + material.use_nodes = True + bsdf_node = material.node_tree.nodes["Principled BSDF"] + texImage = material.node_tree.nodes.new('ShaderNodeTexImage') + texImage.image = bpy.data.images.get(palette_enum_selection) + + material.node_tree.links.new(bsdf_node.inputs['Base Color'], texImage.outputs['Color']) + + obj.data.materials.append(bpy.data.materials.get(mlod_material_name)) + + + self.report({'INFO'}, 'Mesh configured like MLOD') + return {"FINISHED"} + + def import_palettes_textures(self): + for image_name in colorpalettes: + texture_name = image_name.split(".")[0] + if texture_name not in bpy.data.textures: + texture = bpy.data.textures.new(name=texture_name, type='IMAGE') + else: + texture = bpy.data.textures.get(texture_name) + if image_name not in bpy.data.images: + image = bpy.data.images.load(os.path.join(L1960_path, image_name)) + else: + image = bpy.data.images.get(image_name) + texture.image = image + +### PREPARE LODS ### + +class MESH_OT_prepare_lods_decimate(bpy.types.Operator): + """Copy current Mesh and apply decimate Modifier""" + + bl_idname = "mesh.prepare_lods_decimate" + bl_label = "Copy current Mesh and apply decimate Modifier" + bl_options = {"REGISTER", "UNDO"} + + def execute(self, context): + + #Selected Mesh + obj = bpy.context.active_object + + if obj not in bpy.context.selected_objects or obj.type != "MESH": + self.report({'WARNING'}, 'Select a Mesh to continue') + return {"CANCELLED"} + + if not obj.name[:-1].endswith('LOD'): + obj.name = obj.name + '_LOD0' + + LODnumber = context.scene.lod_slider #Get from Slider + startLODcount = int(obj.name[-1]) + endLODcount = startLODcount + LODnumber + + for i in range (startLODcount + 1, endLODcount): + new_obj = obj.copy() + new_obj.data = obj.data.copy() + new_obj.name = obj.name[:-1] + str(i) + bpy.context.collection.objects.link(new_obj) + + for t in range (startLODcount, i): + newModifierName = 'LOD_Decimate_' + str(t) + new_obj.modifiers.new(type='DECIMATE', name=newModifierName) + mod = new_obj.modifiers[newModifierName] + mod.ratio = 0.49 + mod.use_collapse_triangulate = True + + self.report({'INFO'}, 'LOD´s created') + return {"FINISHED"} \ No newline at end of file diff --git a/Blender/L1960_Tools/_Source/L1960_Tools_1_8_2/__init__.py b/Blender/L1960_Tools/_Source/L1960_Tools_1_8_2/__init__.py new file mode 100644 index 0000000..3921418 --- /dev/null +++ b/Blender/L1960_Tools/_Source/L1960_Tools_1_8_2/__init__.py @@ -0,0 +1,122 @@ +bl_info = { + "name": "L1960 Tools", + "author": "Prodeath21", + "version": (1, 8, 2), + "blender": (2, 80, 0), + "location": "3D Viewport > Sidebar > 1960Life category", + "description": "Set´s up the Projection-Modifier automatically and add´s in the Emptys if not allready created.", + "category": "Object", +} + +# ---------------------------------------------- +# Import modules +# ---------------------------------------------- +if "bpy" in locals(): + import imp + imp.reload(CubeProjection) + imp.reload(Helper) + imp.reload(PrepareLods) + print("L1960 Tools: Reloaded multifiles") +else: + from . import CubeProjection + from . import Helper + from . import PrepareLods + +import bpy + +from . CubeProjection import MESH_OT_add_auto_cube_projection, MESH_OT_add_modifier_to_mesh +from . Helper import MESH_OT_fix_material_names, MESH_OT_group_objects_in_collections, MESH_OT_fix_naming_conventions, MESH_OT_generate_empty_for_mesh +from . PrepareLods import MESH_OT_prepare_lods_decimate, MESH_OT_set_up_mlod, EnumColorPalettes + +class L1960_PT_tools(bpy.types.Panel): + pass + #where to add the panel + bl_space_type = "VIEW_3D" + bl_region_type = "UI" + + #add labels + bl_label = "1960-Life Tools" + bl_category = "1960-Life" + + def draw(self, context): + """define the layout of the panel""" + box = self.layout.box() + # UV-Project helper + box.label(text="UV-Projection") + row = box.row() + row.operator("mesh.add_auto_cube_projection", text="Set up Projectors") + row = box.row() + row.operator("mesh.add_modifier_to_mesh", text="Add Modifier to Mesh") + self.layout.separator() + # Helpers + box = self.layout.box() + box.label(text="Various Helper") + row = box.row() + row.operator("mesh.fix_material_names", text="Fix Material Name´s") + row = box.row() + row.operator("mesh.group_objects_in_collections", text="Group to Collections") + row = box.row() + row.operator("mesh.fix_naming_convention", text="Fix Naming Convention") + row = box.row() + row.operator("mesh.generate_empty_for_mesh", text="Generate Empty") + self.layout.separator() + # Generate LODs + box = self.layout.box() + box.label(text="LOD´s") + row = box.row() + row.operator("mesh.prepare_lods_decimate", text="Create LOD´s") + box.prop(context.scene, "lod_slider", text="Amount") + box = self.layout.box() + box.prop(context.scene.color_palettes, "mlod_enum_selection", expand=True) + row = box.row() + row.operator("mesh.set_up_mlod", text="Set up MLOD") + self.layout.separator() + ############################### + # Enfusion Blender Tools Linked + box = self.layout.box() + box.label(text="EBT Linked") + row = box.row() + row.operator("view3d.ebt_sort", text="Sort Objects") + # colliders setup is allowed in both OBJECT and EDIT mode + row = box.row() + row.operator("view3d.ebt_colliders_setup", text=" Colliders Setup") + row = box.row() + # Light Setup + row.operator("view3d.ebt_setup_light", text=" Light Setup") + row = box.row() + col = row.column(align=True) + # Update Materials + col.operator("scene.ebt_update_enf_materials",) + row = box.row() + col = row.column(align=True) + + +#register the panel with blender +modules = [ L1960_PT_tools, + MESH_OT_add_auto_cube_projection, + MESH_OT_add_modifier_to_mesh, + MESH_OT_fix_material_names, + MESH_OT_group_objects_in_collections, + MESH_OT_fix_naming_conventions, + MESH_OT_generate_empty_for_mesh, + MESH_OT_prepare_lods_decimate, + MESH_OT_set_up_mlod, + EnumColorPalettes +] + +def register(): + for mod in modules: + bpy.utils.register_class(mod) + + bpy.types.Scene.lod_slider = bpy.props.IntProperty(name="LOD Number", default=3, min=0, max=10) + bpy.types.Scene.color_palettes = bpy.props.PointerProperty(type=EnumColorPalettes) + +def unregister(): + for mod in modules: + bpy.utils.unregister_class(mod) + + del bpy.types.Scene.lod_slider + del bpy.types.Scene.color_palettes + +if __name__== "__main__": + register() \ No newline at end of file