CityEngine, Unreal Studio og VR

Den virtuelle virkeligheten er en kraftig visualiseringsmetode, som byr på mange spennende fasetter. Eksempelvis for planleggere kan dette hjelpemiddelet komme til god nytte. Det lar innbyggere, planleggere, utbygger og beslutningstagere få en helt ny innsikt i hvordan resultatet vil utarte seg «i virkeligheten».


Enten om du for eksempel vil se en kabeltrasé under bakken, en bygningsinformasjonsmodell (BIM), en større bymodell eller en reguleringsplan som en VRscene, vil jeg nå beskrive stegene for å oppnå dette.

Arbeidsløypen ser i korte trekk slik ut:

  1. Bearbeide data i CityEngine
  2. Eksportere til Unreal Studio
  3. Bygge VRprosjekt

CityEngine – lage modell

Vi starter med CityEngine og klargjøring av data. For de som ikke er kjent med Esri sitt CityEngine anbefaler jeg alle å lese litt om det her. Kort fortalt er CityEngine et avansert 3Dmodelleringsprogram som lar deg visualiser og rediger 3DGIS-data.

  1. Etter å ha opprettet et nytt prosjekt og en scene (husk å sett riktig koordinatsystem på scenen) er det første vi gjør å importere en terrengflate:
    a. Jeg har her en georeferertterrengflate («dtm.tif») som jeg enkelt kan markere og dra inn i kartvinduet.

b. Velg Terrain Import
c. Hvis du nsker å drapere et flyfoto over terrenget peker du på denne filen under Texture File (husk at utstrekningen på terreng og flyfoto må matche hverandre).
d. Klikk Finish og se at terreng og flyfoto oppnår ønsket kvalitet

1. Det er nå dags å importere andre 3Dobjekter for eksempel 3Dbygg
a. På samme måte som vi importerte terrenget markerer vi en .gdb som vi vet inneholder ønsket bygg og trekker denne inn i kartvinduet.
b. Velg File GDB import

c. Marker elementene du ønsker å importere (se gjerne over at koordinatsystem og datatype er riktig) og klikk Finish.
d. Se at byggene plasseres riktig i forhold til terrenget. Gjør de ikke det er det flere ting som kan ha gått galt, de to vanligste er :
- terreng og flyfoto er ikke i samme utstrekning --> fiks dette foreksempel i ArcGIS Pro
- byggene ligger langt under terrenget --> fiks dette ved å klikke align shapes to terrain, sett heightmap til "ditt terreng"

3. Vi begynner allerede nå å ha en flott 3Dscene, men hvis vi ønsker å legge til for eksempel vegetasjon, tekstur på bygg, biler, plantegninger, BIM, eller andre 3Dobjekter gjør vi dette nå. Jeg har valgt å simulere planlegging av et nytt tiltak i Kolbotn sentrum, dette bygget har jeg generert i fra en regelfil laget i CityEngine (denne prosessen kommer i et annet innlegg). Etter arbeidet med å tilpasse det nye tiltaket reguleringsplaner, terreng og andre bestemmelser er jeg klar for neste steg i arbeidsløype; eksport til ett Unreal Engine vennlig format.

CityEngine – Eksportere til Unreal

Før vi begynner å snakke om hvordan vi eksporterer data til Unreal, er vi nødt til å ha litt kjennskap om Datasmith. Datasmith er en «Plug inn / verktøy / arbeidsprosess» for Unreal Engine, skreddersydd for DAK/CAD data. Den tar tak 20 + filformater og klargjør disse for Unreal Engine. Esri har bygget en egen datasmith eksporteringsfunksjon i CityEngine og det er denne vi nå skal bruke.

1. Eksportere 3D objekter som bygg, vegetasjon, plan, tiltak osv. Egentlig alt utenom terreng.

a. Selekter alle objektene i scenen
b. Klikk file à Export models à Unreal Engine
c. I Unreal Engine eksportvinduet er det viktig å klikke «Center» knappen for å plassere modellen riktig.
d. Velg «Globally» under Mesh Mergin
e. Velg «Disabled» under Instancing
f. Klikk Finish

  1. Eksport av terreng:
    1. Velg terrenget som skal eksporteres i Navigatorvinduet og velg file à export models à Autodesx FBX
    2. Klikk Center for å gi terrenget riktig plassering.
    3. Klikk finish

Vi har nå laget en .UDATASMITH fil og en .fbx fil, hvis du ikke har pekt om på stiene ligger de i «models» mappen i CityEngine – prosjektet. La oss hoppe over til Unreal Engine og fortsette byggingen av VRscenen.

Unreal Engine

Vi har til nå sett at CityEngine primært er et modellerings- og rapporteringsprogram. Det er med andre ord ikke optimalisert for svært høy grafikkrendering, slik vi er vant med å se i dagens spill- og filmbransje. Denne kvaliteten på 3Dscener er nesten en selvfølge i dag, hvis den skal presenteres for et bredt publikum. Det er nettopp her Unreal Studio og da grafikkmotoren Unreal Engine er en viktig komponent.

“CityEngine allows us to model HOK’s massive urban planning projects. In the past, creating interactive high-end visualizations of several hundred thousand buildings was a challenge. Now, with the new CityEngine 2018.1, we can export directly to Unreal Engine. This enables us to craft fluid, data rich, real-time rendered experiences for our clients and stakeholders.”
Christopher Zoog Design Technology Specialist, HOK

Hvis du ikke allerede har gjort det må vi laste ned og installere Unreal. Dette gjøres på følgende måte:

  1. Bli med og få tilgang her
  2. Når du har laget ny bruker og logget inn, laster vi ned programvaren ved å klikke på downloadlinken øverst i høyre hjørne
  3. Se igjennom vilkår og klikk fortsett
  4. Velg Download Unreal Studio og følg instruksene.

Du har nå tilgang på «Epic Games Luncher» som fungerer som en slags portal, hvor du administrerer prosjekter, tilleggskomponenter, ulike Unreal Engines (som er selve motoren til scenene du lager) og andre elementer som for eksempel ulike prosjektmaler.

Vi trenger nå å installere en Unreal Engine og Unreal Datasmith, dette gjøres fra Epic Games Luncher.

  1. Hvis du ikke har Unreal Engine versjon 4.20.x installert, klikker du på plusstegnet ved Engine Version og velger ønsket versjon.
  2. Installere datasmith til riktig Engine ved å klikke på «Install to Engine» under Unreal Studio Beta området.

Ting begynner å bli klart, vi trenger nå en prosjektmal fra Esri, denne kan man hente fra Marketplace

  1. Søk etter «CityEngine» og du finner alle malen knyttet til dette søkeordet. Velg CityEngine VR Experience
  2. Gå tilbake til Library og se at malen er lagt til i din vault
  3. Klikk "Create Project" --> Gi prosjektet en navn og en mappe --> Velg Engine-versjon og klikk Create.

Du har nå et nytt prosjekt, velg dette – høyreklikk og klikk Open. Et «tomt» prosjekt startes basert på malen vi nettopp har installert og det er dags for å hente inn våre data

  1. Vi starter med å klikke på Import Datasmith på den øverste verktøyraden og finner frem til filen vi eksporterte som .USMITH fra CityEngine
  2. Klikk deg videre på de neste dialogboksene med standard innstilinger

3. Se at alle byggene og de andre 3dObjektene nå er på plass. Et «protip» er nå å øke hastigheten på zoomingen via musehjulet

- Klikk edit à Editor Preferences à Viewports (under Level Editor) Sett ønsket hastighet:

NB. Vi ser at modellen vår har havnet ut av det virtuelle kontoret, som prosjketmalen gav oss. Dette er egentlig ikke tilfelle, modellen klarer bare ikke å skalere automatisk uten at vi spiller av scenen.

4. Klikk på den lille pilen ved «playknappen» og velg Simulate for å starte avspillingen. Bli vant med navigeringen i scenen (her er litt info om hvordan man navigerer i scenen)

3Dobjektene er nå på plass, la oss legge til terreng

  1. Klikk import fra «Content Browser» vinduet og åpne terrenget vi lagret tidligere (filformat . fbx)
  2. Velg «Convert Scene Unit»
  3. Klikk import og du har terrenget som en mesh liggende i «innholdet»
  4. Vi trenger nå å angi riktig «materiale» som tekstur på terrenget, altså flybildet vi draperte over terrenget i CityEngine

a. Finn frem til M_CE_Opaque (se bilde), høyreklikk på denne og velg Create material instance

b. Vi skal nå legge til vårt flyfoto i «ColorMap» verdien. Finn frem til flyfoto fra CityEngine og importer dette i «Content Browseren» i Unreal. Filformatet .tif er ikke støttet, så hvis du har bildet som .tif er du nødt å lagre dette som en .jpg eller .png, evt. annet format som er støttet.

c. Når bildet/texturen er importert i "innholdet" er det bare å dra og slippe elementet i "ColorMap" verdien
d. Sett color til hvit og helt gjennomsiktig
e. Klikk save og vi har laget et nytt material
f. Trekk terrenget (mesh) inn i scenen
g. Sett alle aksene til 0 under location
h. Dra i den blå pilen i scenen for å justere Z-verdien til terrenget slik at det legges riktig i forhold til byggene og annen infrastruktur
i. Legg så til materialet vi laget under "Materials" og se at terreng, flyfoto og bygg er plassert riktig

Og da har vi en scene klar for VR! Ta på brillene og klikk VRpreview, en undermeny av playknappen