Wie Sie 3D-Daten für klar.land erstellen

Hier erklären wir, welche Möglichkeiten es aktuell auf klar.land gibt, um 3D-Daten darzustellen und wie die Daten entsprechend aufbereitet werden sollen, um zufriedenstellende Ergebnisse zu erzielen.

Programm

Wir empfehlen für die 3D-Datengenerierung das Programm blender.

Aus blender wird eine glb-Datei exportiert, welche die gebackenen Texturen und alle Animationen und Materialien bestmöglich komprimiert enthalten muss.

Die beste Performance der 3D-Darstellung im Webbrowser wird durch größtmögliche Komprimierung und Reduktion der Bauteile/Vertices erreicht. Dies dient letzten Endes der positiven Nutzererfahrung.

Datenformat

klar.land verarbeitet Daten im glb/gltf-Datenformat mit darin speziell aufgeführten Objektnamen, welche als Grundlage für die Interaktion dienen. Die Benennung ist in dieser Anleitung weiter unten aufgeführt.

Daten hochladen

Über das Admin-Menü können Personen mit entsprechenden Zugriffsrechten eine neue sogenannte „Stage“ erstellen, um die 3D-Daten hochzuladen.

Dafür kann im vorgesehenen Feld die glb-Datei einfach per Drag&Drop hochgeladen werden. Der Ladebalken gibt den Fortschritt des Hochladens wieder. So lange dieser in Bewegung ist und der Upload noch nicht abgeschlossen, darf das Browserfenster nicht geschlossen werden.

Im Textfeld „JSON“ werden die individuellen Interaktionsbefehle für die glb/gltf-Datei und 3D-Umgebung definiert. Die verschiedenen Möglichkeiten zur Einstellung und Feinjustierung der „Stage“ finden Sie in der JSON-Anleitung.

Material

1. Für änderbare Materialien sollte ein Objekt namens „MaterialHolder“ erstellt werden, welches alle Materialien beinhaltet, zwischen denen gewechselt werden kann.

Kamera

1. Die Initialkamera (die Ansicht, die man beim Laden der Szene sieht) muss Defaultcam heißen.

2. Alle anderen Kameranamen müssen auf cam enden.

Beleuchtung

1. Die Namen von Arealights müssen mit Arealight anfangen und

2. Pointlights mit Pointlight.

Objekte

1. Objektbezeichnungen müssen auch für die dazugehörigen Meshes vergeben werden.

2. Wenn mehrere Objekte den gleichen Namen haben z. B. bei mehreren Eiern, so sollten die Namen dann „Ei_1, Ei_2, Ei_3“ etc. lauten.

3. Objekte sollten vor dem Export eine Skalierung von 1 erhalten.

4. Für Objekte mit Videotexturen empfiehlt es sich, einfache Planes (Rechtecke) mit Standard-UV-Mapping anzulegen. Diese müssen verschiedene Materialien haben, falls verschiedene Objekte mit jeweils anderen Videos gezeigt werden sollen. Objekte mit gleichen Materialien bekommen auch dasselbe Video.

Material/Texturen

1. Bei Glasmaterialien muss der Name mit Glass anfangen.

2. Baked Ambient Occlusion Maps wären für die Performance wichtig, da die dynamische Schattenberechnung rechenintensiv ist.

3. Für die Baked Ambient Occlusion Maps wird ein spezieller, nicht-Standardnode in Blender verwendet. Diesen am besten aus einer bestehenden Blend Datei rausziehen. Sollte Ihnen keine passende Blend Datei vorliegen, sprechen Sie uns bitte an.

Navigation in der Stage

Falls eine Navigation über den Boden (d. h. Klick auf eine beliebige Stelle auf dem Boden) erwünscht ist, sollte das Bodenobjekt „_floor“ heißen und der Pivot des Objekts zentriert sein. Achtung: in der Blender-Hierarchie muss nur das Meshobjekt „_floor“ heißen.

Alternativ zum _floor-Objekt kann man ein Objekt auch als „_navMesh“ benennen. Dieses wird automatisch unsichtbar gemacht und über den „userScale“-Parameter im Json-Code kann man die gewünschte Höhe in Metern über dem _navMesh angeben. Somit hat man gegenüber dem _floor Objekt mehr Anpassungsmöglichkeiten.

Für Apartments/Räume o. ä. empfiehlt es sich, groundspots zu verwenden. Diese verhindern u. a. Navigation in Wände. Dazu einfach knapp über dem als „_floor“ benannten Bodenobjekt mehrere Planes (=Rechtecke) ohne Material anlegen, die im Namen die Zeichenfolge „groundspot“ enthalten. Zusätzlich muss im Json-Code Folgendes enthalten sein:

{
  "Stage3dData": [
    {
	  "navigationmode":2,
	  .....
    }
  ]
}
Navigation über Groundspots

Animationen

Animationsnamen müssen mit dem dazugehörigen Objektnamen anfangen.

Also z. B.

Ei_1 fliegt auf Esstisch

Ei_2 in Topf

WICHTIG: Achten Sie auf Konsistenz in den Benennungen in Animationen und Objekten! Sowohl bei Erstellung als auch bei Nachbearbeitungen/Änderungen!

Animationen nicht doppeln!

Informationen in einer separaten Liste für die Animationen:

1. Animationsname (beliebige Animationsbezeichnung)

2. Animationsgruppe (werden mehrere Objekte klickbar nach dem Klick auf ein Objekt, so müssen alle den gleichen Gruppennamen erhalten.)

3. Animationslayer (Button wird angeklickt und Kamera fliegt zu Kameraspot => Layer 0, Objekt wird angeklickt und spielt animation => layer 1, Unterobjekt wird angeklickt und spielt)

4. Animationsstate (soll beim erneuten Klicken auf ein Objekt eine andere Animation abspielen als beim ersten Klick, so muss die erste Animation den state 0 erhalten und die zweite den state 1 (z. B. erster Klick => Tür geht auf, zweiter Klick => Tür geht zu))

5. Animationstriggerobjekt (Objekt das beim Klick die Animation auslösen soll)

6. Animationskamera (Kamera auf die gewechselt werden soll, wenn das Triggerobjekt angeklickt wurde)

7. Animationen mit Timecode (die genauen Bezeichnungen der Animationen wie im 3D-Programm angegeben, inklusive der Timecodes, wann diese abgespielt werden sollen)

(weitere Infos zu Animationen bzw. deren Benennung finden Sie in der JSON-Anleitung)