Interaktiv 3d-presentasjon med Blender

Har du noen gang ønsket å kunne vise feriebildene dine i et virtuelt galleri, hvor det er mulig å vandre rundt i rommet fra bilde til bilde? Blender har en innebygd spill motor som gjør det enkelt
å lage slike interaktive presentasjoner, og de kan til og med eksporteres som kjørbare filer.
Det interaktive galleriet i denne artikkelen ble laget vha. Blender versjon 2.44, som bruker python v.2.5.

Modellering av rommet

Åpne blender, og slett standard-boksen ved å trykke ‘X’ på tastaturet.
Pass på å ikke flytte siktekorset men du modellerer. Når siktekorset er plassert i standardposisjonen
midt i koordinatsystemet, er det lettere å gi riktig form til plate-objektet som er utgangspunktet for galleri-modellen. Dersom du skulle komme til å flytte siktekorset kan du plassere det i standardposisjonen igjen, ved å venstreklikke i midten av koordinatsystemet, trykke ‘Shift’ + ‘S’-tastene, og velge ‘Cursor to grid’.
Trykk ‘space’-tasten (mellomrom-tasten) på tastaturet for å åpne ‘Add’-menyen, og velg ‘Add -> Mesh -> Plane’ for å opprette et nytt plate-objekt midt i koordinat-systemet. Trykk ‘Tab’-tasten på tastaturet for å gå inn i objekt-modus.

Trykk ‘S’-tasten, og skalér opp platen to koordinat-enheter i alle retninger ved å dra med musen. Hold inne Ctrl-tasten mens du drar musen, slik at kantlinjene til platen fester seg til målelinjene i koordinatsystemet. Dette gir større kontroll over skaleringen. Avslutt skaléringen ved å klikke med venstre musetast, mens ‘Ctrl’-tasten holdes nede.
I denne sammenheng er det viktig å nevne at du kan avbryte en skalering eller flytting av vertexer o.l. ved å klikke med høyre musetast.
Platen skaleres deretter i kun én retning. Zoom litt ut av koordinatsystemet ved å rulle ned med musehjulet. På denne måten er du sikker på at du ser hele platen mens den skaleres opp.
Trykk ‘S’-tasten på tastaturet, og deretter på ‘Y’-tasten, for å låse skaleringen i ‘Y’-retningen.
Skalér platen opp tre måleenheter. (Skaleringen skjer likesidet: platen økes med tilsammen 6 enheter).

Vi skal nå gjøre platen om til et rom med vegger. Trykk ‘Tab’-tasten på tastaturet for å gå inn i rediger-modus. Trykk ‘1’-tasten på det numeriske tastaturet for å endre synsvinkel til front.
Trykk ‘E’-tasten på tastaturet for å åpne ‘Extrude’-menyen, og velg ‘Only Egdes’. Dette kopierer
platens kantlinjer, og aktiverer kopiene slik at de kan flyttes. Trykk ‘Z’-tasten for å låse flyttingen vertikalt og flytt de kopierte kantlinjene 4 måleenheter opp ved å dra med musen.
Avslutt flyttingen ved å klikke med venstre musetast. Ta en kikk på rommet ved å rotere 3d-visningen (klikk og holde inne musehjulet mens du beveger musen) (2).

Vi skal ta bort den ene kortveggen, for å få bedre oversikt under arbeidsprosessen. Trykk ‘1’-tasten på det numeriske tastaturet for å gå tilbake til front-synsvinkel. Trykk ‘Ctrl’ + ‘Tab’-tastene for å åpne ‘Select Mode’-menyen, og velg ‘Faces’. Dette endrer valg-modus fra vertices til flater, slik at vi kan velge flatene til objektet istedet for vertixene. Venstreklikk på flaten, og trykk ‘X’-tasten på tastaturet. Velg ‘Faces’ i ‘Erase’-menyen for å slette flaten (2).

Sett inn bilderammer

Vi skal nå sette inn et plate-objekt i rommet. Platen skal vise feriebildet ditt på veggen (1). Velg front-synsvinkel. Trykk ‘Tab’-tasten for å gå inn i objekt-modus, og sett inn et plate-objekt (pass på at siktekorset fremdeles står i standardposisjonen). Når platen opprettes i front-synsvinkel blir den stående som en vegg i rommet, og er lett å feste på en av veggene, hvor den skal forestille en bilderamme.
Flytt platen oppover, slik at den plasseres ca. litt under midt på veggen: Trykk ‘G’-tasten og deretter ‘Z’-tasten for å låse flyttingen i vertikal retning, og flytt platen ved å dra med musen. Avslutt flyttingen ved å klikke med venstre musetast.

Platen svever nå i løse luften midt i rommet, og vi skal flytte den bakover helt inntil den bakerste kortveggen. Trykk ‘7’-tasten på det numeriske tastaturet for å se rommer ovenfra. Trykk ‘G’-tasten, etterfulgt av ‘Y’-tasten for å låse flyttingen i lengderetningen av rommet, og flytt platen inntil kortveggen.
Kopier platen ved å trykke ‘Shift’ + ‘D’-tastene, mens platen er aktivt objekt. Når et objekt dupliseres på denne måten aktiviseres kopien automatisk. Trykk ‘Y’-tasten for å låse flyttingen i rommets lengderetning, og flytt kopien ca. 4 måleenheter ut i rommet.

Trykk venstre musetast for å avslutte flyttingen, og trykk ‘R’-tasten for å rotere platen.
Roter platen 90 grader ved å dra nedover med musen, slik at platens forside vendes til venstre.
Hold inne ‘Ctrl’-tasten mens du klikker med venstre musetast for å låse platens posisjon i nøyaktig 90 grader og avslutte roteringen. Det er viktig å holde rede på hva som er platens forside, fordi teksturen til en plate bare vises på forsiden.

Flytt platen inntil høyre langvegg, ved å trykke ‘G’-tasten, etterfulgt av ‘X’-tasten for å låse flyttingen
i bredde retningen av rommet.

Det kan være vanskelig å se de tynne platene mens objektene er vist som solide former. Du kan skifte mellom å vise objektene som strekbokser og solide flater ved å trykke på ‘Z’-tasten. På samme måte kan du skifte mellom perspektiv-visning og flat fremstilling av objektene ved å trykke ‘5’-tasten på det numeriske tastaturet.
Velg begge platene ved å først høyreklikke på den ene platen og deretter høyreklikke på den andre mens du holder inne ‘Shift’-tasten. Trykk ‘G’ og deretter ‘Z’-tasten for å låse flytte retningen vertikalt, og flytt platene nesten ned til gulvet (1).

Sett inn foto-tekstur

Nå skal vi bruke feriefotoene som tekstur på platene. Høyreklikk en av platene, og trykk ‘F5’ for å åpne material-vinduet. Klikk på ‘Add New’-knappen i ‘Links and Pipeline’-panelet, for å opprette et nytt material til bildeplaten.
Deretter trykker du ‘F6’ på tastaturet for å åpne tekstur-vinduet. Klikk på ‘Add New’-knappen i ‘Texture’-panelet for å opprette en ny tekstur til materialet. I listen ‘Texture Type’ velger du ‘Image’ som tekstur-type.

Dette åpner to nye paneler. Last inn fotoet du vil bruke som tekstur ved å klikke på ‘Load’-knappen i
‘Image’-panelet. Dette åpner fil-liste vinduet hvor du kan hente bildet fra harddisken. I eksemplet her ble det brukt jpg-bilder med størrelsen 500 x 400 piksler. I panelet ‘Map Image’ ved siden av, klikker du på ‘Clip’-knappen.
Vi kan nå rendere et bilde 3d-scenen. Roter 3d-visningen slik at du får en synsvinkel hvor du ser platen. Gjør denne synsvinkelen til kamera-synsvinkel ved å trykke ‘Ctrl’ + ‘Alt’ + ‘0’ på det numeriske tastaturet (3). Velg kameraet ved å klikke på den ytterste kamera-rammen, og finjuster posisjonen ved å trykke ‘G’-tasten og bruke musen. Dersom du klikker en gang med musehjulet umiddelbart etter at du har trykket ‘G’-tasten, kan du zoome kameraet ved å bevege musen. Avslutt zoomen ved å klikke med venstre musetast.

Før vi renderer må vi sørge for at det er lys nok i rommet. Høyreklikk på lampen for å gjøre den aktiv, og flytt den et godt stykke oppover (3). (Trykk ‘G’ etterfulgt av ‘Z’-tasten). Nede i tekstur-vinduet klikker du på ‘Lamp Buttons’-knappen, og i ‘Preview’-panelet klikker du så på ‘Hemi’-knappen for å gjøre lampen om til en lyskilde som etterligner vanlig dagslys. Trykk ‘Alt’ + ‘R’-tastene for å åpne ‘Clear Rotation’-menyen, og trykk ‘Enter’-tasten for å nullstille retningen til hemi-lyset slik at lyset sendes i samme vinkel til alle retninger (3). Render et bilde ved å trykke ‘F12’-tasten.
Lim inn fotoet til den andre bildeplaten på samme måte. Det er en stor fordel å bruke fotografier med samme størrelse når du skal sette inn flere bilder! Dette vil spare deg for mye arbeid når teksturene senere skal justeres.

Interaktivitet

Nå kan vi ta i bruk Blenders innebygde spill motor for å gjøre galleriet til en interaktivt opplevelse. Ved å gi kameraet styrefunksjoner skal vi kunne bevege oss i rommet vha. piltastene. Først må vi sette kameraet i en god startposisjon. Sett 3d-visningen i front-synsvinkel, og zoom inn, slik at du er inni rommet (4). Gjør synsvinkelen til kameravinkel. Velg kameraet, og trykk ‘F4’ for å åpne ‘Logic’-vinduet.

I ‘Logic’-vinduet er det 3 knappegrupper: sensors, controllers og actuators (4). I ‘Sensors’ bestemmer du hvilken innputt type som skal sette igang en hendelse (slik som f.eks. en spesiell tast på tastaturet). I ‘Actuators’ bestemmer du hvilken hendelse som skal utføres. ‘Controllers’ lenker sammen innputt typen og hendelsen. Fordi kameraet er det aktive objektet i 3d-visningen, er innputt type og hendelser vist for kameraet i ‘Logic’-vinduet. Klikk på ‘Add’-knappene til ‘Sensors’, ‘Controllers’ og ‘Actuators’ for å legge til en ny innputt type, hendelse og link mellom disse, til kameraobjektet.

Den nye sensoren, linken og hendelsen har flere valg for hvilken type innputt, link metode og hendelse som skal brukes, men først må innputt, link metode og hendelse forbindes med hverandre.
Dette gjøres på en enkel visuell måte. På høyre side av knappegruppen til ‘Sensors’ er det en rund gylden kule. Ved å klikke og dra en linje fra denne kulen til kulen på venstre side av ‘Controllers’-knappegruppen, forbindes innputt typen med link metoden (4). På samme måte forbinder du link metoden med hendelsen.

Nå kan vi velge hvilken metoder som skal brukes. Klikk på listen ‘Always’ i ‘Sensor’-knappegruppen, og velg ‘Keyboard’ som innputt type. Klikk deretter på ‘Key’-knappen, og trykk opp-pil-tasten på tastaturet for å velge denne tasten som innputt-tast (4).

Opp-pil-tasten skal få kameraet til å bevege seg framover. Du legger denne hendelsen til kameraet ved å klikke på den tredje og siste tall-boksen til ‘dLoc’ i knappegruppen til ‘Actuators’, og skrive inn ‘-0.05’ (4). Før vi tester styrefunksjonen skal vi gjøre kameraet til et fysisk objekt slik at det ikke blir mulig å bevege seg gjennom veggene i rommet. Klikk på ‘Actor’-knappen til venstre i ‘Logic’-vinduet, og klikk på knappen ‘Dynamic’. Sett ‘Radius’-verdien til 0.5.

Test styrefunksjonen. Trykk ‘Alt’ + ‘Z’ for å vise objektene teksturert, og trykk ‘P’-tasten for å starte spill motoren. Når du trykker opp-pil-tasten vil kameraet bevege seg fremover og inn i rommet. Bildene på veggene vil være delt opp i fire mindre bilder, men dette skal vi rette på senere! Trykk ‘Esc’-tasten for å slå av spill motoren igjen.
Vi skal også legge til innputt typer og hendelser for å rygge kameraet og rotere det.

Hver gang du legger til nye innputt typer, linker og hendelser åpnes det egne knappegrupper for disse.
For å gjøre ‘Logic’-vinduet mer oversiktlig kan du minimere knappegruppene ved å klikke på de oransje pilene under ‘Add’-knappene. I tillegg kan du maksimere og minimere ‘Logic’-vinduet ved å trykke ‘Ctrl’ + pil-opp-tasten, mens musepekeren er i ‘Logic’-vinduet.

Klikk på ‘Add’-knappene til ‘Sensors’, ‘Controllers’ og ‘Actuators’ igjen for å legge til en ny innputt type, link metode og hendelse. Velg ‘Keyboard’ og ‘Down Arrow’ som innputt type, og skriv inn ‘0.05’ i den tredje og siste tall-boksen til ‘dLoc’ i ‘Actuators’-knappegruppen. Husk på å forbinde innputt type, link metode og hendelse!

På samme måte legger du også til styrefunksjon for rotasjon. Velg ‘Keyboard’ og ‘Rightarrow’ som innputt type, og klikk på den andre og midterste tall-boksen til ‘dRot’ i ‘Actuators’-knappegruppen, og skriv inn ‘-0.03’. Dette får kameraet til å rotere til høyre når du trykker høyre pil-tast. For rotasjon til venstre legger du til en ny innputt type, link metode og hendelse med ‘Keyboard’ og ‘Leftarrow’ som innputt type, og verdien ‘0.03’ i den midterste tall-boksen til ‘dRot’ i ‘Actuators’-knappegruppen.

Justere teksturer

Til slutt skalerer du teksturen på bilde-platene, slik at fotoene blir riktig framstilt.
Velg en av bilde-platene i rommet, og trykk ‘F5’ for å åpne material-vinduet. Klikk på ‘Matrial buttons’-knappen (den røde kulen).
Åpne panelet ‘Map Input’, og skalér opp tekstur størrelsen ved å halvere verdiene til ‘sizeX’ og ‘sizeY’.
Juster deretter plasseringen av teksturen ved å øke verdien ‘ofsX’ til ‘1’, og senke verdien ‘ofsY’ til ‘-1’.

Dette flytter teksturen opp og til høyre på platen.
Juster teksturen til den andre bildeplaten på samme måte. Fordi platene har samme dimensjon, og har teksturer med samme størrelse, så kan du bruke de samme skalering -og offset verdiene.

Eksporter kjørbar fil

Velg først ‘File -> Pack data’ slik at fotoene eksporteres sammen med den kjørbare filen. Den kjørbare filen (en kopi av Blenderplayer som er programmert til å spille av den innbakte .blend-filen din) åpnes som et 3d-vindu. Sett størrelsen på vinduet ved å trykke ‘F10’-tasten for å åpne ‘Scene’-vinduet. I ‘Format’-panelet klikker du på knappen ‘Game framing settings’, og skriver inn bredden (x) og høyden (y) som 3d-vinduet skal ha. Velg ‘File -> Save Runtime…’ for å lagre galleriet som en kjørbar fil. Vær oppmerksom på at når du tester det virtuelle galleriet internt i Blender oppstår det forvrengninger som ikke vil være tilstede i den kjørbare fila.
Om du ønsker kan du også pynte galleriet med teksturer og innbo, eller legge til vertikal rotasjon.

Reklamer
%d bloggere like this: