Sie können das Proxy-Geometrie-Werkzeug über Blueprint- und Python-Scripts aufrufen. Dies kann Ihnen dabei helfen, Ihre Asset-Erstellung und Datenvorbereitungs-Pipeline zu automatisieren, indem Sie Statisches-Mesh-Actors und ihre Materialien aus Scripts kombinieren und vereinfachen, die Sie im Unreal Editor ausführen. Dies kann die Rendering-Performance deutlich verbessern, was allerdings auf Kosten der visuellen Präzision geht.
Beispielsweise enthält diese Radbaugruppe 147 separate Statisches-Mesh-Actors mit insgesamt 900.000 Dreiecken und für jedes Mesh ein separates Material. Dies führt zu Hunderten von starken Draw-Aufrufen für die GPU. Nach dem Ausführen des Proxy-Geometrie-Werkzeugs werden die Actors zu einem einzigen Modell mit einem einzigen Material zusammengeführt, das mit einem Draw-Aufruf gerendert werden kann.


Die Dreiecke werden außerdem um 97 % verringert. Dies hat zu einigen Deformationen geführt, aber Sie können die Einstellungen in Ihrem Script anpassen, um das richtige Gleichgewicht zwischen Vereinfachung und visueller Qualität zu finden.
Da das Proxy-Geometrie-Werkzeug einige relativ komplexe Transformationen Ihrer Geometrie erfordert und viele Einstellungen zur Steuerung seiner Funktionsweise bietet, empfehlen wir Ihnen, das Werkzeug zunächst über die Benutzeroberfläche im Editor zu verwenden. Rufen Sie es erst dann aus Scripts auf, wenn Sie sicher sind, dass Sie das Werkzeug und seine Einstellungen verstehen und eine gute Vorstellung von den zu erwartenden Effekten haben. Weitere Informationen finden Sie in den weiteren Anleitungen in diesem Abschnitt.
Voraussetzung: Falls Sie es noch nicht getan haben, müssen Sie das Editor Scripting Utilities-Plugin installieren. Weitere Informationen dazu finden Sie unter Scripting und Automatisierung im Editor.
Das Proxy-Geometrie-Werkzeug ist über den Knoten Editor Level Library > Create Proxy Mesh Actor verfügbar.

Sie müssen diesem Knoten die folgenden Inputs geben:
- Ein Array, das alle Statisches-Mesh-Actors enthält, die Sie zusammenführen möchten. Beachten Sie, dass es sich dabei um Statisches-Mesh-Actors handeln muss, die keine Actors enthalten, die Statisches-Mesh-Komponenten enthalten.
-
Ein Editor Scripting Create Proxy Mesh Actor Optionen-Objekt, das die vom Proxy-Geometrie-Werkzeug verwendeten Einstellungen enthält. Dieses Objekt zeigt die meisten Einstellungen an, die in der Benutzeroberfläche des Proxy-Geometrie-Werkzeugs angezeigt werden. Um eines dieser Objekte zu holen, ziehen Sie vom Input Merge Options nach links und wählen Sie Make EditorScriptingCreateProxyMeshActorOptions aus.
Bild für Großansicht anklicken.
Verwenden Sie dieses Objekt, um die Einstellungen für das Proxy-Geometrie-Werkzeug bereitzustellen. Viele der detaillierten Einstellungen werden in einem anderen Objekt bereitgestellt, das Sie an den Input Mesh Proxy Settings weiterleiten. Um eines dieser Objekte zu holen, wiederholen Sie den obigen Vorgang: Ziehen Sie vom Input Mesh Proxy Settings nach links und wählen Sie Make MeshProxySettings aus.
Bild für Großansicht anklicken.
Beispielsweise nimmt der folgende Codeausschnitt alle Actors, die aktuell im Level-Viewport und Welt-Outliner ausgewählt sind, fügt sie zu einem Proxy Mesh zusammen, speichert das Ergebnis in einem Asset mit einem angegebenen Namen und Speicherort und ersetzt die ursprünglichen Statisches-Mesh-Actors im Level durch eine einzelne Instanz des neu generierten Proxy-Assets.
Bild für Großansicht anklicken.
Das Proxy-Geometrie-Werkzeug wird über die Funktion unreal.EditorLevelLibrary.create_proxy_mesh_actor()
bereitgestellt Sie müssen dieser Funktion die folgenden Parameter übergeben:
- Ein Array, das alle Statisches-Mesh-Actors enthält, die Sie zusammenführen möchten. Beachten Sie, dass es sich dabei um Statisches-Mesh-Actors handeln muss, die keine Actors enthalten, die Statisches-Mesh-Komponenten enthalten.
- Ein
unreal.EditorScriptingCreateProxyMeshActorOptions
-Objekt, das die vom Proxy-Geometrie-Werkzeug zu verwendenden Einstellungen enthält. Dieses Objekt zeigt die meisten Einstellungen an, die in der Benutzeroberfläche des Proxy-Geometrie-Werkzeugs angezeigt werden. Sie müssen eines dieser Objekte erstellen und seine Eigenschaften einrichten.
Beispielsweise nimmt der folgende Codeausschnitt alle Statisches-Mesh-Actors im Level, fügt sie zu einem Proxy Mesh zusammen, speichert das Ergebnis in einem Asset namens „Proxy“ und tauscht die ursprünglichen Statisches-Mesh-Actors im Level gegen eine einzelne Instanz des Proxy-Assets aus.
import unreal
actors = unreal.EditorLevelLibrary.get_selected_level_actors()
merge_options = unreal.EditorScriptingCreateProxyMeshActorOptions()
merge_options.base_package_name = "/Game/Proxy"
merge_options.destroy_source_actors = False
merge_options.new_actor_label = "Proxy"
merge_options.spawn_merged_actor = True
merge_options.mesh_proxy_settings.set_editor_property("allow_adjacency", False)
merge_options.mesh_proxy_settings.set_editor_property("allow_distance_field", False)
merge_options.mesh_proxy_settings.set_editor_property("allow_vertex_colors", False)
merge_options.mesh_proxy_settings.set_editor_property("calculate_correct_lod_model", True)
merge_options.mesh_proxy_settings.set_editor_property("compute_light_map_resolution", True)
merge_options.mesh_proxy_settings.set_editor_property("create_collision", False)
merge_options.mesh_proxy_settings.set_editor_property("generate_lightmap_u_vs", True)
merge_options.mesh_proxy_settings.set_editor_property("merge_distance", 1,0)
merge_options.mesh_proxy_settings.set_editor_property("voxel_size", 0,1)
merged_actor = unreal.EditorLevelLibrary.create_proxy_mesh_actor(actors, merge_options)