[PYTHON] [Blender] Teilen Sie das Blender-Skript in mehrere Dateien auf

Wächst die Quelldatei des Blender-Skripts, die ursprünglich nur eine eingeschränkte Funktionalität und eine geringe Größe hatte, nicht mit der zusätzlichen Funktionalität an Größe? In einem solchen Fall teilen wir es in mehrere Quelldateien auf. Einige Benutzer wissen jedoch möglicherweise nicht, wie ein Blender-Skript aufgeteilt wird. Hier finden Sie eine Zusammenfassung zum Aufteilen eines Blender-Skripts.

Quelle vor dem Teilen der Datei

Hier ist eine Beispielquelldatei, bevor Sie die Datei teilen. Es ist nur ein Beispiel, daher denke ich nicht wirklich über den Inhalt der Quelle nach.

all_in_one.py


import bpy

bl_info = {
# ...
}

class Operator_1(bpy.types.Operator):
    bl_idname = "uv.operator_1"
    bl_label = "Operator 1"
    file_name = "hoge.blend"

    def execute(self, context):
        return{'FINISHED'}

class Operator_2(bpy.types.Operator):
    bl_idname = "uv.operator_2"
    bl_label = "Operator 2"

    def execute(self, context):
        self.report({'INFO'}, Operator_1.file_name)
        return{'FINISHED'}



def menu_func(self, context):
    self.layout.separator()
    self.layout.menu(Operator_1.bl_idname)
    self.layout.menu(Operator_2.bl_idname)


def register():
    bpy.utils.register_module(__name__)
    bpy.types.VIEW3D_MT_uv_map.append(menu_func)

def unregister():
    bpy.utils.unregister_module(__name__)
    bpy.types.VIEW3D_MT_uv_map.remove(menu_func)


if __name__ == "__main__":
    register()

Quelle nach Dateisplit

Gibt eine Datei an, in die die Datei für jede Klasse unterteilt ist. In diesem Beispiel müssen sich alle Dateien im selben Verzeichnis befinden. Außerdem muss der Dateiname, der den Prozess beim ersten Laden des Skripts beschreibt, "__init __. Py" sein. Es gibt einen Prozess zum Lesen der ersten geteilten Datei von "__init __. Py", aber ansonsten gibt es keinen besonderen Unterschied zu dem Fall, in dem sie nicht geteilt wird. Die Erklärung dieses Teils ist, um die Wahrheit zu sagen, dieselbe wie das Python-Paket, daher ist es denjenigen, die Python kennen, sehr vertraut.

op1.py


import bpy

class Operator_1(bpy.types.Operator):
    bl_idname = "uv.operator_1"
    bl_label = "Operator 1"
    file_name = "hoge.blend"

    def execute(self, context):
        return{'FINISHED'}

op2.py


import bpy
from . import op1

class Operator_2(bpy.types.Operator):
    bl_idname = "uv.operator_2"
    bl_label = "Operator 2"

    def execute(self, context):
        self.report({'INFO'}, op1.Operator_1.file_name)
        return{'FINISHED'}

__init__.py


bl_info = {
# ...
}

if "bpy" in locals():
    import imp
    imp.reload(op1)
    imp.reload(op2)
else:
    from . import op1
    from . import op2

import bpy

def menu_func(self, context):
    self.layout.separator()
    self.layout.menu(op1.Operator_1.bl_idname)
    self.layout.menu(op2.Operator_2.bl_idname)


def register():
    bpy.utils.register_module(__name__)
    bpy.types.VIEW3D_MT_uv_map.append(menu_func)

def unregister():
    bpy.utils.unregister_module(__name__)
    bpy.types.VIEW3D_MT_uv_map.remove(menu_func)


if __name__ == "__main__":
    register()

Schließlich

Ich habe Ihnen gezeigt, wie Sie eine Datei mit einem Blender-Skript teilen. Wenn Sie sich vorstellen, dass Blender die Funktionalität eines Skripts wie ein Paket behandelt, entspricht dies dem Erstellen eines Python-Pakets. Daher war es möglicherweise nicht notwendig, einen Artikel zu schreiben, aber ich hoffe, dass dies für diejenigen hilfreich ist, die Blender-Skripte erstellen.

Referenzinformationen

Recommended Posts

[Blender] Teilen Sie das Blender-Skript in mehrere Dateien auf
Kombinieren Sie mehrere Python-Dateien zu einer Python-Datei
[Python & Unix] Kombinieren Sie mehrere PDF-Dateien zu einer.
Kombinieren Sie mehrere mit Pandas geladene Excel-Dateien zu einer
Entpacke mehrere komprimierte Dateien (Python)
Teilen Sie PDF in beliebige Seiten auf
Hochladen mehrerer Dateien mit Flask
Teilen Sie den Bildschirm mit Keyhac in 3 Teile