Blender Game Engine (også kalt BlenderGE) er Blenders innebygde spillmotor. Det fine med denne er at man styrer alt fra Blender, og man trenger ikke kunne kodespråk som C/C++ eller Python. Om man vil utvide funksjonaliteten til BlenderGE, kan man bruke Python, men det er ikke nødvendig, om man bare ønsker å lage enkle spill. I denne delen av guiden skal vi lage et spill hvor målet er å styre en kule gjennom en portal, for å komme til neste nivå. Jeg vil vise hvordan man lager to nivåer, så kan du, om ønskelig, lage flere.
Før vi kan begynne å lage selve spillet, må vi lage kula og nivå 1. Slett først standardkuben, og legg til en Icosphere (under Mesh), med subdivision 2 og radius 1. Dette er spilleren. Gå nå til Editing-panelet
, se under “Link and Materials”, og endre begge stedene det står Sphere (ME: og OB:) til “spiller” (små bokstaver, uten ” og ”).
Nå som spilleren er i boks, må vi lage nivå 1. Legg til en “Grid”, og gå inn i Edit mode (
). Hvis du zoomer inn, ser du at Griden inneholder mange små firkanter. Skaler griden opp med denne
, slik at ballen dekker ca. 9 firkanter (3×3) (husk å skalere både opp og til siden, altså på X- og Y-aksen).
Avmarker alt (A), og zoom ut, slik at du ser hele banen/flaten. Trykk så to ganger på B. Da vil du se en sirkel. Bruk rull på scrollehjulet, slik at sirkelen bli ca. dobbelt så stor som ballen/spilleren. Nå kan du tegne på der du vil banen skal være, fra start til mål (ikke la star møte mål, la det gå fra A til B). Når du er fornøyd, velger du denne igjen
, går i front-view (NumPad1), og drar ned det du har markert/tegnet på.
Banen og spilleren er klar. Du kan gjerne legge
på farger og materialer selv, om du ønsker det.
For å gjøre de harde kantene på både banen og spilleren litt jevnere, kan vi smoothe dem. Marker ballen, gå til Editing-panelet
, og trykk på “Set Smooth”, under “Link and Materials”. Det samme kan du gjøre med banen, hvis du ønsker det.
Forhåndsarbeidet er unnagjort. Nå kan vi for alvor begynne på spillet.
Nå kan vi snart ta fatt i BlenderGE, men først må du flytte spilleren til ønsket startposisjon (i en av endene av banen), med denne
. Dra i pilene (X, Y og Z) for å flytte den.
Gå nå inn i Logic-panelet
. Herfra styrer vi det meste av spillet. Først og fremst, la oss teste spillet sålangt. Trykk på “Game” i menyen på toppen (ved File, Add, Timeline osv.), og velg “Start Game”. Ingenting skjer, som forventet. Trykk på Escape for å gå tilbake til Blender. Først av alt må vi få inn litt fysikk. Høyreklikk på spilleren/ballen, dersom du ikke allerede har markert den, og trykk deretter på dropdown-menyen hvor det står “Static” (øverst til venstre i
). Velg så “Dynamic”. Starter du spillet igjen nå, vil du se at ballen faller ned, og lander på banen.
Nå er det tid for å få ballen til å kjøre. Det er veldig mange måter å gjøre dette på, men jeg har valgt den enkleste. Alt du trenger å gjøre står her (Forklaring under bilde):
Dette ser kanskje forvirrende ut, men jeg skal prøve å forklare. Sensorer er delen av BlenderGE som registrerer input og/eller henter informasjon. La oss ta “Keyboard” som eksempel. Denne sensoren venter på at brukeren skal trykke en gitt knapp (her: opp, venstre og høyre piltast). “Always” vil alltid reagere, mens de andre sensorene reagerer på andre måter. “Controllers”, eller kontrollere er et midtledd, “AND”-kontrolleren vil sende signalene fra sensorene videre umiddelbart, mens for eksempel “Python”-kontrollen vil sende sensorsignalene gjennom et Pythonscript først. “Actuators” er den delen av BlenderGE som utfører en handling. F.eks. Motion, som blir brukt her. Den setter noe i bevegelse. Man har også Camera, som gjør at et objekt følger etter et annet, Sound, som spiller av en lyd og lignende. For å legge til alt dette, trykker du på “Add”-knappene. For å koble sammen leddene (sensorene, kontrollerne og actuatorne), drar du fra gullknott til gullknott, og det dannes “ledninger” mellom dem. Kopierer du oppsettet over, skal det gå an å kjøre ballen, men det er mulig du må endre litt på tallene jeg har brukt på actuatorne, fordi du kanskje har en større eller mindre bane enn meg. For å prøve spillet, trykker du på Game > Start Game.
Slik spillet er nå, er det ganske meningsløst. Man kjører ei kule rundt på en bane. Nå skal vi legge inn en portal som tar spilleren til neste bane. Jeg kommer til å la portalen være en boks, men du kan modellere den akkurat slik du vil.
Legg til en boks, og flytt den til ønsket målpunkt. Gå så til Editing-panelet
, og endre boksens navn til “portal” (OB, og ME. uten ” og ”). Gå deretter til Logic-panelet
. Du vil nå se at alle sensorene, kontrollerneog actuatorne er borte. Det er fordi de hører til spilleren, og kun vises dersom spilleren er markert. Legg til en sensor, kontroller og actuator på portalen. Koble sammen alle tre, og sett sensoren til “Collision”. Vi bruker Collision fordi vi ønsker å sende spilleren videre først når han/hun treffer portalen. I “Property”, skriver du “spiller”. Dvs. at når et objekt med propertien “spiller”, treffer portalen, vil noe skje.
Marker så spilleren. Nå må vi legge til propertien “spiller” på spilleren. Trykk “Add Property”, og i “Name”-feltet skriver du “spiller” (igjen uten ” og ”).
Gå tilbake til portalen igjen. Vi har ikke endret Actuatoren, ingenting vil skje når spilleren treffer den. Endre actuatoren til Scene, og velg “Set Scene” i dropdownmenyen. Skriver du noe i SCE-feltet nå, vil det bare forsvinne igjen. Dette er fordi vi kun kan sende spilleren til en scene som eksisterer, noe som foreløpig bare er scenen “Scene” (se på menyen på toppen, SCE: Scene står til venstre for det fargede feltet med “www.blender.org” på). Trykk på pila til venstre, og velg “Add Scene”. Velg “Full copy”, når Scenemenyen kommer opp. Nå vil du se at den nye Scenen heter “Scene.001”. Trykk på scenenavnet på toppen, og skriv inn “niva2” eller noe i den duren. Deretter går du ned på Scene-Actuatoren, og under “SCE”, skriver du “niva2”.
Siden du valgte “Full Copy”, fikk du altså en full kopi av scene 1 over på denne scenen. Vi gjorde dette siden vi ville få med oss portalen og spilleren til dette nivået. Hadde vi valgt “Empty Scene” måtte vi enten kopiert dem over manuelt, eller laget dem på nytt. Nå må du lage nivå 2 slik du ønsker det, på samme måte som vi lagde nivå 1. Du kan enten slette den nåværende banen på Nivå 2, og legge inn en ny “grid”, eller du kan gå inn og endre den gamle. Hvis du ønsker kan du repetere disse siste stegene for å lage flere nivåer. Du kan da ganske enkelt markere portalen på hvert nivå, og under Scene-actuatoren, skrive inn navnet på neste nivå (scene).
På skjermbildet over spilles nivå 2 på mitt spill. Når man klarer dette nivået, blir man tatt tilbake til nivå 1 igjen, så 2 og 1. Dette fordi jeg ikke har laget flere enn 2 nivåer, og på nivå 2 satte Scene-actuatoren til Scene 1 igjen. Står du fast på noen av stegene kan du spørre i diskusjonen under, eller få hjelp ved å laste ned kildefila til det ferdige spillet.
Discussion