3D-Modelle als Unity AssetBundle

Was sind Unity AssetBundles und wie verwenden Sie diese, um eigene 3D-Modelle in 3spin Learning zu nutzen?

Das Unity AssetBundle ist ein proprietäres Format für dreidimensionale Daten zur Verwendung in Unity-basierten Anwendungen. Sie brauchen also die Software Unity, um Ihre 3D-Modelle in AssetBundles umzuwandeln.

Durch die Bearbeitung in Unity haben Sie eine gute Vorschau, wie Ihre 3D-Modelle sich in der 3spin Learning App verhalten, und Sie können unity-spezifische Einstellungen vornehmen, bspw. für Collider und die Sichtbarkeit von Layern.

Nachteilig ist allerdings der relativ aufwändige und technisch anspruchsvolle Prozess und die Notwendigkeit zur Installation der Unity-Software und einiger Zusatzmodule. Des Weiteren exportiert Unity ein eigenes AssetBundle für jede Zielplattform (Microsoft HoloLens, Android-getriebene VR-Brillen wie Quest und Pico, PC-gestützte Systeme) – ein 3D-Asset funktioniert also nur dann zuverlässig, wenn alle drei Dateien fehlerfrei exportiert und auch alle drei Dateien in 3spin Learning hochgeladen werden.

Um Ihnen dennoch den Prozess so einfach wie möglich zu machen, haben wir ein Unity-Package (eine Art Plugin oder Zusatzmodul) entwickelt, welches den eigentlichen Exportvorgang übernimmt.

Dieser Artikel führt Sie durch die notwendigen Schritte von der Installation über die Einrichtung von Unity, den Import Ihrer 3D-Modelle (als .fbx-Datei) bis zum Export als AssetBundle.

Installationsvoraussetzungen

Stellen Sie zunächst sicher, dass Sie auf Ihrem PC folgende Software installiert haben:

  • Das Windows 10 SDK, das sie hier von Microsoft herunterladen können
  • Unity 2021.3.23f1 inklusive folgender "Build Supports":
    • Android Build Support

    • Universal Windows Platform Build Support

    • Windows Build Support (IL2CPP)

Eine Installationsanleitung und alle benötigten Downloads finden Sie auf der Unity Website.

Verwenden Sie keine neuere Unity-Version da dies zu Kompatibilitätsproblemen führen kann!

Unity Projekt einrichten

Ein neues Unity-Projekt erstellen

Öffnen Sie Unity Hub und klicken auf New project.

AssetBundleExporter-create new project 1

Wählen Sie im folgenden Dialogfenster die Editor-Version 2021.3.23f1 und das Template 3d Core aus. Wählen Sie einen geeigneten Namen und einen Speicherort. Bestätigen Sie mit Create project.

AssetBundleExporter-create new project 2

Nun sehen Sie Ihr neues Projekt in der Projektliste, aus der Sie das Projekt anwählen und öffnen können.

AssetBundleExporter-create new project 3

Das AssetBundleExporter Package hinzufügen

  • Laden Sie den AssetBundleExporter hier als ZIP-Archiv herunter
  • Entpacken Sie das Archiv und legen Sie die enthaltenen Dateien auf Ihrem PC ab. Wählen Sie einen Ort, an dem Unity dauerhaft auf die Dateien zugreifen kann, denn ein nachträgliches Verschieben der Dateien kann zu Fehlern führen.
  • Öffnen Sie Ihr Unity-Projekt.
  • Öffnen Sie den Package Manager in Unity.
    AssetBundleExporter-add-package 1
  • Klicken Sie auf das "+" und wählen Sie Add package from disk...
    AssetBundleExporter-add-package 2
  • Wählen Sie aus dem Ordner des entpackten AssetBundleExporters die Datei package.json aus und bestätigen durch Klick auf Open.
    AssetBundleExporter-add-package 3

Hinweis: Der AssetBundleExporter installiert und konfiguriert automatisch die benötigten Zusatzpakete Universal Render Pipeline und Oculus XR (s.u.).

Fertig – nun können Sie beginnen, Ihre 3D-Modelle in Unity zu importieren und als AssetBundle für 3spin Learning zu exportieren.

AssetBundles erstellen

AssetBundleExporter-Fenster aufrufen

Wählen Sie Open AssetBundle Exporter Window aus dem Menü 3spin.

AssetBundleExporter-export_assets-open_exporter_window

Im AssetBundleExporter-Fenster sehen Sie alle AssetBundles in Ihrem Projekt, sowie Funktionen zum Importieren weiterer 3D-Modelle und zum Exportieren der AssetBundles für 3spin Learning.

AssetBundleExporter-Window

.fbx-Dateien importieren

Klicken Sie im Fenster des AssetBundleExporters auf Import *.fbx File.AssetBundleExporter-export_assets-import_fbx 1

Wählen Sie in Ihrem Dateisystem die FBX-Datei, die Sie importieren wollen und klicken Sie Open.
AssetBundleExporter-export_assets-import_fbx 2

Die Datei wird importiert und automatisch als AssetBundle vorbereitet. AssetBundleExporter-export_assets-import_fbx 3

Nach dem Import sehen Sie die Datei als AssetBundle im Fenster des AssetBundleExporters. Sollten Sie an diesem Modell noch Anpassungen vornehmen wollen (bspw. Collider oder Materialien zuweisen), klicken Sie rechts auf "Open" und nehmen Sie die Anpassungen in dieser Ansicht vor. (Andernfalls besteht das Risiko, dass sich Ihre Anpassungen nur auf eine Instanz des Prefabs auswirken, und nicht auf das AssetBundle an sich).

Andere Dateiformate importieren und als AssetBundle für den Export vorbereiten.

Wenn Sie ein 3D-Modell aus einem anderen Dateiformat als AssetBundle exportieren wollen, bereiten Sie es in diesen drei Schritten vor:

  1. 3D-Modell importieren.
  2. Ein Prefab daraus erzeugen.
  3. Es als AssetBundle markieren.

Der Prozess im Detail:

Öffnen Sie in Unity das Project-Fenster und wählen den Ordner Assets.
AssetBundleExporter-export_assets-import_non-fbx 1

Lokalisieren Sie die zu importierende Datei in Ihrem Dateisystem und ziehen Sie diese in den Ordner Assets oder einen darin von Ihnen erstellten Unterordner.
AssetBundleExporter-export_assets-import_non-fbx 2

Markieren Sie das Asset und ziehen es vom Bereich Assets in die Hierarchie Ihrer Szene.
AssetBundleExporter-export_assets-import_non-fbx 4

Ziehen Sie es von dort wieder zurück in das Projekt-Fenster.
AssetBundleExporter-export_assets-import_non-fbx 5

... und geben Sie im folgenden Dialogfenster an, dass Sie ein Prefab erzeugen wollen (und keine Variante).
AssetBundleExporter-export_assets-import_non-fbx 6

Wechseln Sie nun (mit markiertem Prefab-Asset) in das Inspector-Fenster.
AssetBundleExporter-export_assets-import_non-fbx 7

Wählen Sie im Pull-down-Menü AssetBundle am unteren Fensterrand die Option New... und geben Sie einen eindeutigen Namen für das AssetBundle ein.
AssetBundleExporter-export_assets-import_non-fbx 8

Fertig – Ihr 3D-Modell steht nun als AssetBundle im Fenster des AssetBundleExporters zum Export bereit.

AssetBundles exportieren

Sie können die AssetBundles Ihres Projektes entweder alle auf einmal oder nur ausgewählte exportieren.

AssetBundleExporter-Window

Um alle AssetBundles zu exportieren, klicken Sie auf Export all.

Um einzelne AssetBundles zu exportieren, markieren Sie die gewünschten Objekte in der Liste und klicken anschließend auf Export selected.

AssetBundleExporter-export_AssetBundles 1

Falls ein manuell als AssetBundle deklariertes Objekt in der Liste des AssetBundleExporter Fensters nicht auftaucht, klicken Sie auf Reload Asset Bundles, um nach neuen Bundles zu suchen.

Fehlerbehebung

Sollten Probleme beim Export von Assets auftreten (bspw. Assets sind nicht sichtbar), oder sollten Sie eine Fehlermeldung des Exporters oder von Unity erhalten, können Sie Folgendes tun:

Unity neu starten

Da beim Erstellen von Assets zahlreiche Abhängigkeiten in Unity importiert werden müssen, kann es zu sogenannten Timeout-Fehlern kommen, d.h. Unity beendet eine Aufgabe, wenn sie nicht in einer bestimmen Zeit abgearbeitet werden kann.

Ein Neustart von Unity behebt solche Probleme in der Regel.

Einstellungen prüfen

Sollte ein Neustart von Unity nicht helfen, überprüfen Sie die Einstellungen der benötigten Zusatzpakete Universal Render Pipeline und Oculus XR.

Rufen Sie das Einstellungs-Fenster auf, indem Sie im Menü Edit den Punkt Project Settings anwählen.

Einstellungen prüfen: Universal Render Pipeline

Eine Render Pipeline stellt die Inhalte einer Szene auf einem Display dar. 3spin Learning verwendet die Universal Render Pipeline ("URP"), die insbesondere für mobile Geräte optimiert ist.

Beim Hinzufügen des AssetBundleExporters wird die URP automatisch eingerichtet. Anhand der folgenden Screenshots können Sie die Einstellungen überprüfen.

Klicken Sie dazu in der linken Seitenleiste auf den Punkt Graphics:

AssetBundleExporter-Settings-URP 1

Prüfen Sie hier, ob in dem Menüpunkt "Scriptable Render Pipeline Settings" ein Asset hinterlegt ist, hinter dem in Klammern "Universal Render Pipeline Asset" steht. Steht dort gar nichts, starten Sie bitte Unity neu und prüfen Sie die Einstellung erneut.

Prüfen Sie anschließend die Einstellungen im Unterpunkt URP Global Settings.
AssetBundleExporter-Settings-URP 2

Hier sollte ganz oben ebenfalls ein Asset referenziert sein. Dieses sollte den Typ "Universal Render Pipeline Global Settings" haben – sichtbar in der Klammer hinter dem Namen.

Sollten an irgendeiner Stelle diese Assets nicht verknüpft sein und ein Unity-Neustart nicht helfen, befolgen Sie die Anleitung von Unity (ab "Configuring URP").

Einstellungen prüfen: Oculus XR

Das Oculus XR Plug-in wird zur Unterstützung von Oculus-Devices wie der Quest benötigt. Wählen Sie in den Project Settings den Punkt XR Plug-in Management und vergleichen die Einstellungen mit diesem Screenshot:
AssetBundleExporter-Settings-OculusXR 1

Prüfen SIe abschließend auch die Einstellungen im untergeordneten Punkt Oculus:
AssetBundleExporter-Settings-OculusXR 2