Hur man skapar 3D-data för klar.land

·

·

Här förklarar vi vilka möjligheter som för närvarande finns på klar.land för att visa 3D-data och hur dessa data ska bearbetas för att uppnå ett tillfredsställande resultat.

Programm

Vi rekommenderar programmet Blender för generering av 3D-data.

En glb-fil exporteras från blender, som måste innehålla de bakade texturerna och alla animationer och material komprimerade så bra som möjligt.

Den bästa prestandan för 3D-visningen i webbläsaren uppnås genom största möjliga komprimering och reducering av komponenterna/vertikalerna. Detta bidrar i slutändan till en positiv användarupplevelse.

Dataformat

klar.land bearbetar data i dataformatet glb/gltf med objektnamn som är särskilt angivna i dessa och som utgör grunden för interaktionen. Beteckningarna anges längre fram i denna bruksanvisning.

Ladda upp data

Via admin-menyn kan personer med lämpliga åtkomsträttigheter skapa en ny så kallad ”stage” för att ladda upp 3D-data.

För detta ändamål kan glb-filen laddas upp i det angivna fältet helt enkelt genom att dra och släppa. Laddningsfältet visar hur långt uppladdningen har kommit. Så länge detta pågår och uppladdningen ännu inte är slutförd får webbläsarfönstret inte stängas.

I textfältet ”JSON” definieras de enskilda interaktionskommandona för glb/gltf-filen och 3D-miljön. De olika möjligheterna att ställa in och finjustera ”Stage” finns i JSON-instruktionerna.

Material

1. För utbytbara material ska ett objekt som heter ”MaterialHolder” skapas, som innehåller alla material som kan bytas mellan.

Kamera

Den första kameran (den vy som visas när scenen laddas) måste heta Defaultcam.

2. Alla andra kameranamn måste sluta på cam.

Belysning

1. Namnet på en arealight måste börja med Arealight och

2. Pointlights med Pointlight.

Föremål

Objektnamnen måste också tilldelas motsvarande maskor.

Om flera objekt har samma namn, t.ex. flera ägg, skall namnen vara ”Ägg_1, Ägg_2, Ägg_3” osv.

3. Objekt bör ges en skala på 1 innan de exporteras.

För objekt med videotexturer rekommenderas att skapa enkla plan (rektanglar) med standard UV-mappning. Dessa måste ha olika material om olika objekt ska visas med olika videor vardera. Objekt med samma material får också samma video.

Material/Texturer

1. För glasmaterial måste namnet börja med Glass.

2. Bakade kartor över omgivande ocklusion skulle vara viktigt för prestandan, eftersom dynamisk skuggberäkning är beräkningsintensiv.

3. En särskild, icke-standardiserad nod i Blender används för Baked Ambient Occlusion Maps. Det är bäst att extrahera detta från en befintlig blend-fil. Om du inte har en lämplig blandfil, vänligen kontakta oss.

Navigering i scenen

Om man vill navigera över golvet (dvs. klicka var som helst på golvet) ska golvobjektet heta ”_floor” och objektets pivot ska vara centrerad. Observera: I Blender-hierarkin får endast mesh-objektet heta ”_floor”.

Som ett alternativ till _floor-objektet kan du också namnge ett objekt som ”_navMesh”. Detta görs automatiskt osynligt och via parametern ”userScale” i Json-koden kan du ange önskad höjd i meter över _navMesh. Jämfört med _floor-objektet har man alltså fler möjligheter till anpassning.

För lägenheter/rum eller liknande rekommenderas att använda markspottar. Dessa förhindrar bland annat navigering in i väggar. För att göra detta skapar du helt enkelt flera plan (=rektanglar) utan material precis ovanför golvobjektet med namnet ”_floor”, som innehåller strängen ”groundspot” i sina namn. Dessutom måste Json-koden innehålla följande:

{
  "Stage3dData": [
    {
	  "navigationmode":2,
	  .....
    }
  ]
}
Navigering via jordspett

Animationer

Animationsnamn måste börja med motsvarande objektnamn.

Till exempel

Egg_1 flyger på matbordet

Ägg_2 i kruka

VIKTIGT: Se till att namngivningen av animationer och objekt är konsekvent! Både under skapandet och under efterbearbetning/förändringar!

Duplicera inte animationer!

Information i en separat lista för animationerna:

1. Animationsnamn (valfritt namn på animationen)

2. Animationsgrupp (om flera objekt blir klickbara efter att man klickat på ett objekt, måste de alla ges samma gruppnamn).

3. Animationslager (knappen klickas och kameran flyger till kamerapunkten => lager 0, objektet klickas och spelar upp animation => lager 1, underobjektet klickas och spelar upp)

4. Animationsstatus (om en annan animation ska spelas upp när ett objekt klickas på igen än när det klickades på första gången, måste den första animationen tilldelas status 0 och den andra status 1 (t.ex. första klicket => dörren öppnas, andra klicket => dörren stängs)).

5. Objekt som triggar animationen (objekt som ska trigga animationen när man klickar på det)

6. Animeringskamera (kamera som växlas till när triggerobjektet klickas).

7. Animationer med tidkod (de exakta namnen på animationerna som anges i 3D-programmet, inklusive tidkoderna för när de ska spelas).

(för mer information om animationer och deras namngivning, se JSON-instruktionerna).