07.06.2024, 04:00 PM
Unity Japan entwickelt mit MeshSync ein Tool, mit dem Objekte im blender (und anderen 3D-Konstruktionsprogrammen) oder in unity verändert werden können und gleichzeitig diese Veränderungen im jeweils anderen Programm aktualisiert werden. Noch ist es eine sehr frühe preview-Version, die aber schon gut genutzt werden kann. Blender wird durch viele Features unterstützt:
- man sieht, wie sich Änderungen des Meshes in der unity-Umgebung auswirken - es kann genau "passend" gemacht werden
- die generierten Meshes stehen nach einem Klick in unity zur Verfügung
- Animationen können einfach ausprobiert und geändert werden
- Geometry Nodes werden unterstützt (Instanzen werden bisher aber nur im game-view in unity angezeigt)
- die Maps für Unity-Materialien können nach Änderungen im blender gleich gebaked und in unity aktualisiert werden
Das MeshSync-Plugin kann auf Windows 64bit, Linux und Mac (Intel/Silicon) genutzt werden, unterstützt werden neben dem unity-Standardrenderer HDRI und URP.
Installationsbeispiel für Windows (für andere Betriebssysteme siehe die Links ganz unten):
Voraussetzungen sind eine unity-Version ab 2020.x und eine blenderversion aus 2.90, 2.91, 2.92, 2.93, 3.0, 3.1, 3.2, 3.3 und 3.4 (höhere werden noch nicht unterstützt, in den 2.9x Versionen sind nicht alle Features verfügbar).
Wichtig: nur jeweils eine unity-Editor- und blender-Instanz sollte geöffnet sein!
In unity den Package Manager über das Window-Menue starten. Dort über den "+"-Button links oben das Pulldown-Menue öffnen und "Add package from git URL" wählen. Dann in der sich öffnenden Eingabemaske den Downloadpfad eingeben (com.unity.meshsync@0.17.3-preview für die zum jetzigen Zeitpunkt aktuellste Version) und auf "Add" klicken:
Gleichzeitig werden die MeshSyncDCC-Plugins für blender (und andere 3D-Konstruktionsprogramme) in den Lib-Ordner des unity-Projekts kopiert. Das passende Plugin kann dann für die geöffnete blender Version im unity Editor in den Preferences (Edit-Menue -> Preferences) durch einen Klick auf "Install Plugin" im blender installiert werden. MeshSyncDCC für blender kann auch von Hand installiert werden - näheres dazu im github-Link ganz unten.
Nach dem Neustart von blender steht das Add-on in den Blender Preferences zur Verfügung und muss eventuell durch ein Häkchen aktiviert werden:
Und los gehts mit einem einfachen Beispiel
Im unity-Editor über das "+" links oben im Hierarchy-Fenster oder das GameObject-Menue ein MeshSyncServer-GameObject einfügen:
Danach findet man im unity-Inspector die Server-Einstellungsmöglichkeiten:
sowie im blender im N-Panel unter Tool oder im Active Tool im Properties Panel:
1: Ein Mesh im blender soll bearbeitet werden
Für dieses Beispiel habe ich in den Einstellungen nichts geändert.
Das Objekt (Cube) im blender auswählen.
Ein Klick im blender auf "AutoSync" bzw "ManualSync" läßt das Mesh im unity-Editor im 3D-Fenster an der Stelle des MeshSyncServers erscheinen. Nach einem Klick auf das MeshSyncServer-Gameobjekt im Hierarchy-Tab werden die synchronisierten Blender-Objekte als Childs angezeigt.
Jetzt kann dieses Cube-GameObject im blender bearbeitet werden (Position, Rotation und Skalierung) und das wird im unity 3D- und im Game-Fenster aktualisiert. Im blender Edit-Mode kann das Mesh verändert werden, wobei es vorkommen kann, dass die Änderungen erst in unity sichtbar werden, wenn man im blender wieder im Object-Mode ist.
Das im blender geänderte Mesh wird durch einen Klick auf "Export Meshes" (Inspector, MeshSyncServer) in unity im Verzeichnis MeshSyncAssets erzeugt und kann dann in einem MeshFilter eines Unity GameObjects genutzt werden (kein Export aus dem blender und kein Import des .fbx-files in unity notwendig).
Wenn man im blender zusätzliche Objekte einfügt, kann es vorkommen, das diese zwar im unity-3D-Fenster angezeigt werden, aber nicht im Hierarchy-Tab angezeigt werden - dann erneut auf synchronisieren klicken.
Für die Bearbeitung des Meshes in unity muß ProBuilder installiert und im MeshSyncServer-Panel UseProBuilder (erscheint erst nach der ProBuilderinstallation) ausgewählt sein. Zu beachten ist: das Mesh, das von unity aus zum blender gesendet wird, ist trianguliert und Vertex Groups sowie Shape Keys können verloren gehen.
2: Ein Objekt aus dem unity-Editor soll im blender bearbeitet werden
Meines Wissens nach gibt es noch keine Möglichkeit, ein Objekt direkt aus dem Unity-Editor über den MeshSyncServer in den blender zu bringen. Man muß dieses zuerst als .fbx exportieren und dann im blender importieren.
Danach funktioniert alles wie unter 1.
Weitere Informationen:
unity Manual:
https://docs.unity3d.com/Packages/com.un...index.html
github:
https://github.com/unity3d-jp/MeshSync
- man sieht, wie sich Änderungen des Meshes in der unity-Umgebung auswirken - es kann genau "passend" gemacht werden
- die generierten Meshes stehen nach einem Klick in unity zur Verfügung
- Animationen können einfach ausprobiert und geändert werden
- Geometry Nodes werden unterstützt (Instanzen werden bisher aber nur im game-view in unity angezeigt)
- die Maps für Unity-Materialien können nach Änderungen im blender gleich gebaked und in unity aktualisiert werden
Das MeshSync-Plugin kann auf Windows 64bit, Linux und Mac (Intel/Silicon) genutzt werden, unterstützt werden neben dem unity-Standardrenderer HDRI und URP.
Installationsbeispiel für Windows (für andere Betriebssysteme siehe die Links ganz unten):
Voraussetzungen sind eine unity-Version ab 2020.x und eine blenderversion aus 2.90, 2.91, 2.92, 2.93, 3.0, 3.1, 3.2, 3.3 und 3.4 (höhere werden noch nicht unterstützt, in den 2.9x Versionen sind nicht alle Features verfügbar).
Wichtig: nur jeweils eine unity-Editor- und blender-Instanz sollte geöffnet sein!
In unity den Package Manager über das Window-Menue starten. Dort über den "+"-Button links oben das Pulldown-Menue öffnen und "Add package from git URL" wählen. Dann in der sich öffnenden Eingabemaske den Downloadpfad eingeben (com.unity.meshsync@0.17.3-preview für die zum jetzigen Zeitpunkt aktuellste Version) und auf "Add" klicken:
Gleichzeitig werden die MeshSyncDCC-Plugins für blender (und andere 3D-Konstruktionsprogramme) in den Lib-Ordner des unity-Projekts kopiert. Das passende Plugin kann dann für die geöffnete blender Version im unity Editor in den Preferences (Edit-Menue -> Preferences) durch einen Klick auf "Install Plugin" im blender installiert werden. MeshSyncDCC für blender kann auch von Hand installiert werden - näheres dazu im github-Link ganz unten.
Nach dem Neustart von blender steht das Add-on in den Blender Preferences zur Verfügung und muss eventuell durch ein Häkchen aktiviert werden:
Und los gehts mit einem einfachen Beispiel
Im unity-Editor über das "+" links oben im Hierarchy-Fenster oder das GameObject-Menue ein MeshSyncServer-GameObject einfügen:
Danach findet man im unity-Inspector die Server-Einstellungsmöglichkeiten:
sowie im blender im N-Panel unter Tool oder im Active Tool im Properties Panel:
1: Ein Mesh im blender soll bearbeitet werden
Für dieses Beispiel habe ich in den Einstellungen nichts geändert.
Das Objekt (Cube) im blender auswählen.
Ein Klick im blender auf "AutoSync" bzw "ManualSync" läßt das Mesh im unity-Editor im 3D-Fenster an der Stelle des MeshSyncServers erscheinen. Nach einem Klick auf das MeshSyncServer-Gameobjekt im Hierarchy-Tab werden die synchronisierten Blender-Objekte als Childs angezeigt.
Jetzt kann dieses Cube-GameObject im blender bearbeitet werden (Position, Rotation und Skalierung) und das wird im unity 3D- und im Game-Fenster aktualisiert. Im blender Edit-Mode kann das Mesh verändert werden, wobei es vorkommen kann, dass die Änderungen erst in unity sichtbar werden, wenn man im blender wieder im Object-Mode ist.
Das im blender geänderte Mesh wird durch einen Klick auf "Export Meshes" (Inspector, MeshSyncServer) in unity im Verzeichnis MeshSyncAssets erzeugt und kann dann in einem MeshFilter eines Unity GameObjects genutzt werden (kein Export aus dem blender und kein Import des .fbx-files in unity notwendig).
Wenn man im blender zusätzliche Objekte einfügt, kann es vorkommen, das diese zwar im unity-3D-Fenster angezeigt werden, aber nicht im Hierarchy-Tab angezeigt werden - dann erneut auf synchronisieren klicken.
Für die Bearbeitung des Meshes in unity muß ProBuilder installiert und im MeshSyncServer-Panel UseProBuilder (erscheint erst nach der ProBuilderinstallation) ausgewählt sein. Zu beachten ist: das Mesh, das von unity aus zum blender gesendet wird, ist trianguliert und Vertex Groups sowie Shape Keys können verloren gehen.
2: Ein Objekt aus dem unity-Editor soll im blender bearbeitet werden
Meines Wissens nach gibt es noch keine Möglichkeit, ein Objekt direkt aus dem Unity-Editor über den MeshSyncServer in den blender zu bringen. Man muß dieses zuerst als .fbx exportieren und dann im blender importieren.
Danach funktioniert alles wie unter 1.
Weitere Informationen:
unity Manual:
https://docs.unity3d.com/Packages/com.un...index.html
github:
https://github.com/unity3d-jp/MeshSync