Blekinge tekniska högskola Sektionen för teknokultur, humaniora och samhällsbyggnad VT09 Soundvolume 2.0 En prototyp för ljuddesign i spel Kandidatarbete/slutreflektion Författare : Jonas Hellberg joht06 Digital Ljudproduktion Blekinge Tekniska Högskola Handledare: Patrik Vörén Examinator: Peter Ekdahl 2009-06-05 1
Jag skulle vilja tacka.. Starbreeze och Carl Vikman, för praktikplatsen och för allt som jag har lärt mig under den tid jag var där, Jonathan, för att han lät mig bo i hans lilla etta de första månaderna, Patrik Vörén, för hans handledning, Peter Ekdahl, som hjälpte mig med min resa, och min utbildning; Digital Ljudproduktion för allt jag lärt mig och haft nytta av under min praktik. 2
Abstrakt Efter fyra månader som ljudpraktikant på det svenska spelföretaget Starbreeze i Uppsala, var det dags att ta steget vidare i ytterligare fyra månader. Från ljuddesign till scriptning, idéer och tankar, samt en inblick i hur scriptning fungerar. Detta arbete handlar om framtagandet av en ljuddesign-prototyp åt ett externt företags framtida spelprojekt. En utveckling som från början var tänkt att öka kunskaperna om scriptning, och att skapa ett sammanhängande spelscenario, men som sedan utvecklades till att leda mycket längre. Förklaring: Ljuddesign = Ljudläggning av någon form, i detta fall spel. Scriptning = Enklare programmering, kan vara saker som händer eller saker man kan göra i spelet Nyckelord: Soundvolume 2.0, Starbreeze, ljuddesign, spel, sounddesign, 3D Abstract After four months of internship as a sound designer at the Swedish gamecompany Starbreeze in Uppsala, it was time to take the next step in further four months. From sounddesign to gameplay-design, ideas and thoughts, and a look in to how scriptning works. In this work you will follow the process in the making of a new sound designprototype for an extern company's future game-projects. From the beginning my goal was to learn about scriptning, and make a gameplay-scenario, but this evolved to something much greater than expected. Explanation: Sounddesign = Implementing sounds, making sounds for digital media, in this case games. Scripting = Easier programming, could be stuff that happens or stuff you can do in the game. Keywords: Soundvolume 2.0, Starbreeze, sounddesign, games, audio, 3D 3
Innehållsförteckning Kapitel 1 Arbetsbeskrivning....5 Kapitel 2 Projektplan......6 Kapitel 3 - Processbeskrivning...7 3.1 Utmaningsbanan...9 3.2 Äventyrsbanan...9 3.3 Första scenariot...10 3.4 Andra scenariot...11 3.5 Prefabs-ljudscriptning...11 3.6 Soundvolume 2.0...13 Kapitel 4 Reflektion...14 Källförteckning... 16 Bilagor, Objektbeskrivning...17 4
Kapitel 1 - Arbetsbeskrivning Jag började praktisera som ljuddesigner i september på Starbreeze, ett spelföretag i Uppsala. Under min praktiktid fick jag lära mig lite smått om scriptning (se bilaga) som min handledare såg att jag hade anlag för. så efter min praktik ville jag ta steget vidare och lära mig scripta på riktigt, vilket min handledare tyckte var en bra idé och tillsammans tog vi fram ett mål för mitt examensarbete. Målet var från början att experimentera med att byta ljudmiljöer dynamiskt genom att byta "ljud-spår", och vi ritade fram ett spelscenario där man skulle ta sig igenom från start till mål. Detta scenario bestod av halvfärdiga banor som banbyggarna hade byggt till ett spel under utveckling, som jag sedan byggde om för att det skulle passa in till just mitt scenario. Då jag satte igång med att lära mig scripta upptäckte jag att det inte tog så lång tid att nå dit som jag först trott. Jag fortsatte utveckla scriptandet, vilket ledde till mycket testande då det inte fanns så mycket dokumentation som var uppdaterad. När det sedan var något man undrade över, så frågade man en ledig scriptare om hjälp. Tillsammans med ljud-teamet började jag sedan utforska möjligheterna med att utveckla ljuddesignen med hjälp av scriptning. Jag började experimentera möjlig-heterna med så kallade Prefabs, instanser av ett fördefinierat objekt. Eftersom nuvarande ljudmiljöer var statiska och svåra att förändra, började jag experimentera med att skapa en Prefab med ljud som följer med spelaren vart han går, för att enkelt kunna byta ut ljudmiljö-objektet mot ett annat, samt för att förändra ljudet kring spelaren. Med lite hjälp av en programmerare så lyckades jag till slut med denna prototyp vars användningsområde lämpar sig bäst i ett fritt spel, 5
om man exempelvis vill byta miljö-ljud kring spelaren beroende på vilken tid det är på dygnet med natt- och dagljud i surround. Kapitel 2 - Projektplan 2. Projektplan Jag har tänkt att fördjupa mina kunskaper i scriptning (se bilaga) och utforska möjligheterna med att byta ambienta ljudspår (se bilaga) som verktyg för ljuddesign (se bilaga), för att skapa större dynamik i ljudmiljöer för spel. Jag kommer att arbeta i spel-editorn (se bilaga) Ogier, och som mål att med kunskaperna jag lär mig under arbetets gång, samt med hjälp av kunniga här på Starbreeze; bygga ett scenario för ett ännu inte utannonserat spelprojekt. Sedan ur examinationssynpunkt bygga ett liknande scenario som kan visas publikt för att kunna demonstrera hur det jag gjort fungerar. Slutscenariet kommer att utspela sig i en byggnad med civila människor, och tanken är att fienden ska börja anfalla spelaren och på så sätt förändra ljud och ambienter på ett dynamiskt sätt. Detta gör jag genom att byta ut den normala ljuddesignen mot en mer panik-aktig atmosfär, samt scripta ut AI-fienden (se bilaga) och allt annat som har med scriptning att göra. Kapitel 3 Processbeskrivning I följande stycke kommer jag att redogöra för den process där jag stegvis lär mig mer om scriptning, och till slut når det mål som slutade med en ljuddesign-prototyp. 6
I september förra året började jag praktisera på Starbreeze i Uppsala som ljuddesigner. Under fem månader lärde jag mig allt som hade med ljuddesign i spel att göra. Jag fick lära mig allt ifrån implementering av ljud, inspelning till Reverb (Digital Akustik) och framför allt hur man arbetar i spelbranschen. Under dessa månader lärde jag mig grunderna i hur man scriptar ljud i ett spel, och Carl Vikman (Audio Director och handledare) tyckte jag hade talang för scriptning, så tillsammans började vi diskutera och planera om hur vi kunde utveckla detta för mitt examensarbete. Vi började rita upp ett händelseförlopp som bestod av olika typer av gameplay (se ordförklaringar). Första scenariot skulle vara poliser i en stad med massor av civila. Här skulle spelaren hålla låg profil och inte verka avvikande för att ta sig igenom. I andra scenariot var spelaren tvungen att smyga sig förbi två vakter och inte bli upptäckt bland folkmassorna, för att sedan bli tvungen att slåss hand mot hand mot en motståndare, och få ett skjutvapen. Efter detta tar man sig vidare till ett källarrum där tre motståndare skjuter mot spelaren, och man måste då skjuta ner dessa för att sedan klara detta sista scenario. För att förverkliga detta var jag tvungen att börja lära mig gameplayscriptning. För att få bättre förståelse om hur programmet Ogier (se bilaga) fungerar, så började jag lära mig att bygga en bana. Ljud-teamet ville ha en test-bana där de kunde testa olika avstånd för skjutvapen från motståndare. Detta blev min första bana att bygga. Kollegan bredvid mig var nyanställd banbyggare, och hade som uppgift att bygga flerspelarbanor. Vi hade sen tidigare jobbat tillsammans på en flerspelarbana till Riddick (se bilaga), då jag stod för ljuddesignen. Han visade mig hur allt fungerade, och jag satte igång med att bygga. Det var perfekt att ha någon man alltid kunde fråga jämte sig, och detta gjorde att jag snabbt kom igång och kunde bygga och testa på egen hand. När banan väl var färdig var det dags att börja scripta på den. Då fick jag ta hjälp av en duktig scriptare som hade jobbat på Starbreeze i ca 4 år, 7
och var den som dokumenterade mycket av scriptningsfunktionerna på Starbreeze interna dokumentation. Han visade hur man skapade dynamiska objekt (se bilaga), i detta fall träplankor som jag ville kunna skjuta sönder, och detta genom att animera med hjälp av Engine paths (se bilaga). Det här är en gammal metod för att simulera\animera fysik i spel, och tar inte mycket prestanda om man jämför med riktig fysik. Denna metod används även om man vill skapa dörrar som man vill kunna öppna och stänga, fast man animerar för hand i stället. Sedan var det dags att lära sig om AI-motståndare (se bilaga). AI är något som en gameplay-scriptare jobbar mest med. Man sätter ut dessa i spelvärlden, och det är scriptarens jobb att vägleda dem i spelet. Man använder sig av något som kallas scenepoints (se bilaga); dessa är markörer i spelvärlden som man sätter ut där man vill att AI-gubben ska kunna gå. En vidare utveckling av scenepoints är Tactical-Scenepoints. Dessa används för att visa vart AI-gubben kan ta skydd i en eldstrid. Det finns massor av inställningar och värden man kan ge AI-gubbarna, som exempelvis hur långt de ska kunna se innan de börjar attackera osv. För att lära mig mer om AI och scriptning fick jag idén att bygga en bana med utmaningar. 3.1 Utmaningsbanan Min tanke var att det etappvis skulle komma allt fler fiender så jag började bygga ett stort rum utan tak som gav känslan av en TV-studio och ett stadium. Spelaren placerade jag i mitten, och sedan satte jag ut lite olika nivåskillnader och skydd som motståndarna kunde gömma sig bakom. Scriptmässigt var detta ganska avancerat, och väldigt lärorikt att 8
göra, då jag var tvungen att skapa ett system som kunde hålla koll på hur många fienden som skulle skapas varje omgång, och dessutom hålla koll på när rundan var klar. Sedan skulle fienden slumpmässigt skapas i olika delar av rummet. Det hela blev inte mindre komplicerat då jag skapade ett stort digitalt räkneverk, som visade vilken nivå man var på, samt berättade att spelomgången var slut. Detta löste jag genom att skapa och ta bort varje digital symbol på räkneverket, och sedan kontrollera vilken del som skulle visas vid vilken tidpunkt. Jag upptäckte i detta skede, att det finns mycket man skulle kunna förenkla för scriptningen. Det finns exempelvis ingen scriptfunktion som jämför två script-objekt som håller värdeinformation med varandra, utan man måste ta en längre väg för att uppnå detta. Därefter var jag inspirerad av att skapa en äventyrsbana likt "Indiana Jones" (Lucasfilm, 1981) med skräck-moment. 3.2 Äventyrsbanan Här utövade jag och lärde mig att animera block som rör på sig, samt försöka skrämma spelaren med ljussättning och atmosfär. Jag byggde exempelvis en trasig järnvägsbro som gungade läskigt och med bitar som trillade av när man försökte ta sig över den. Jag tror att skräck i spel måste vara det roligaste man kan scripta eller ljudlägga. Nu kände jag mig redo att bygga första scenariot som jag och Carl hade gått igenom. 3.3 Första scenariot Jag tog en bana som föreställde en stadsmiljö, och gjorde lite ändringar för att den skulle passa mitt scenario bättre. Tanken här var att spelaren skulle gå genom banan med poliser och civila runt omkring sig, och att spelaren inte fick sticka ut från mängden eftersom han är efterlyst av polisen. Jag började med att lägga ut lite polisbilar på banan, som jag sedan animerade att de kom körandes in från olika ställen jag inte ville att 9
spelaren skulle gå. När sedan polisbilarna stannar, så skapar jag fram poliser (AI-gubbar) från bilarna, som börjar gå omkring på banan. Jag började laborera med ett script som kollar vad spelaren gör hela tiden. Man kan helt enkelt skicka ett meddelande till något när spelaren hoppar, duckar, eller springer. I detta meddelande berättar jag för spelmotorn att poliserna ska bli fiender med spelaren, så att de börjar skjuta. Detta script funkade dock inte så bra, då det inte kändes trovärdigt samt att scriptet i sig inte alltid ville fungera. Jag pratade till sist med en programmerare som berättade att sådana här saker scriptar man inte, utan det sker i kod och AI-templates. AI-Templates är ett textdokument med olika typer av AI-karaktärer, där man kan lägga till och ta bort handlingar som AIkaraktären kan göra i spelet. Det fanns redan en funktionalitet som hade använts i spelet Riddick (se bilaga) sedan tidigare, som gjorde att AIgubben gradvis blir arg på spelaren om han hoppar, duckar eller springer. Sedan börjar slutligen spelaren attackera om han kommer tillräckligt nära, så då gjorde jag en egen AI i detta textdokument som funkade bra. Efter detta placerade jag ut civila AI- gubbar som gick runt, samt lade till lite spännande musik. 3.4 Andra Scenariot Andra scenariot utspelar sig på en tågstation fylld med civila. Här var tanken att man ska smyga förbi två vakter som patrullerar runt ett visst mönster. Blir spelaren upptäckt så börjar de attackera spelaren. Här fick jag använda mig av scenepoints dit jag ville att poliserna skulle patrullera. När polisen nådde en viss scenepoint, skickar jag ett meddelande om vilken scenepoint polisen ska ta härnäst. Om man väl blir upptäckt börjar jag spela en upprymd musik, samt byta Ambient spår med skrikande civila. 10
Liksom förra banan så byggde jag om denna bana en del, för att den skulle passa mitt syfte. Jag byggde till en källare där spelaren möter en AI-gubbe som han måste slåss mot obeväpnad. När spelaren besegrar gubben så får spelaren ett vapen som han sedan måste använda mot skjutande poliser längre fram. Här började jag även experimentera med s. k. Prefab Objekt. Prefabs är något du skapar i en annan instans som du sedan kan använda som flera objekt på en bana. 3.5 Prefabs-ljudscriptning Jag skapade lådor som vart förstörbara, samt metalllådor som började bukta in när skott träffade. Dessa objekt placerade jag sedan in på banan där slutstriden skedde. Efter dessa banor av lärdom kände jag mig ganska hemma i programmet jag arbetade i. Då scriptarna på Starbreeze inte använder ljudfunktionerna i Ogier, samt att ljud-teamet inte kan mer än de behöver veta, fick jag rollen att testa och forska vad man kunde göra med ljud i programmet. Dels vilka funktioner som fungerar och inte fungerar, då det ligger mycket gammalt sedan tidigare spel, samt testa nya funktioner som DSP-effekter (se bilaga) och dylikt som man kan nå med scriptmeddelanden. Jag försökte även uppdatera företagets dokumentation så gott jag kunde med mina framsteg. En idé jag hade, var att jag ville kunna byta akustiken i ett rum till ett annat i realtid. Tänk dig själv om du befinner dig i ett smalt rum med ett stort fönster mot utsidan. Öppnar du fönstret så blir ju akustiken annorlunda i det lilla rummet. Detta är något jag inte hört i några andra spel, och det hade förhöjt känslan en hel del. För att testa om detta var möjligt var jag tvungen att laborera med s. k. Soundvolumes. (se bilaga) 11
Soundvolumes är specialobjekt vars funktion är att spela ett punktljud i varje hörn av ett rum, samt att den har akustik som man väljer. Alla banor har standardakustik, så befinner man sig inte i en Soundvolume, så är det denna akustik man hör. Så tricket hade kunnat vara att försöka ta bort objektet när man är inuti, för att få önskad effekt. Första testet gick ut på att försöka skicka ett meddelande till objektet, att det skulle förstöras. Detta fungerade dock inte, så jag började försöka flytta objektet till en annan punkt med hjälp av teleportation. Problemet här var dock att Soundvolumes är statiska och inte har någon position i världen, vilket gjorde även detta omöjligt. Jag hörde från en programmerare att det fanns en funktion som överskrider den akustik som används, och denna metod fungerade ganska bra, om man såg till att stänga av den, annars fungerade inte vanliga Soundvolumes. 3.6 Soundvolume 2.0 Efter detta började jag och Carl prata om hur häftigt det skulle vara att kunna bära med sig en Soundvolume och kunna byta den mot en annan. Jag testade ett sista desperat försök att få bukt om detta objekt, men utan lycka. En dag senare kom Carl förbi och kläckte tanken om vad en Soundvolume egentligen består av. En Soundvolume består av fyra ljudkällor i varje hörn, så man skulle kunna skapa fyra punktljud som fungerar på samma sätt, fast som sitter fast på spelaren. Sagt och gjort, jag började experimentera med detta, och det gav goda resultat. Det bästa sättet var att sätta fast varje punktljud på en 12
Enginepath som man sedan fäste på spelarens huvud. Detta gjorde jag sedan om till ett Prefabobjekt, samt skapade lite olika varianter av ljudmiljöer med slumpmässiga ljud, och även vanliga. Dessa Prefabobjekt la jag sedan in i en testbana. Man kan dock inte skapa eller förstöra Prefabobjekt dynamiskt, utan det enda sättet att byta mellan dessa objekt på spelaren är att teleportera bort det till en annan plats. Dock fanns det ett problem, dessa ljudobjekt som satt fast på spelaren följde spelarens rörelser, så det fanns ingen surroundkänsla. Målet var ju att det skulle kännas som att gå omkring i ett rum eller dylikt där man kan fokusera blicken mot ljudkällan. Jag fick helt enkelt prata med en programmerare om saken. Det visade sig att det var en rätt enkel funktion att fixa. Men man vill inte trycka för hårt med sådana förslag, då programmerare har fullt upp med andra saker som har mycket högre prioritet. Någon dag senare kommer programmeraren fram till mig och berättar att han lagt till funktionen, vilket var väldigt snällt av honom. Med ett litet kryss i en ruta på varje punktljud slutar de nu rotera, och följer statiskt efter spelaren. Denna prototyp fick mycket god respons, och blev en liten merit för min del, och kallas i nuläget Soundvolume 2.0. Om man ser till användningsområden för prototypen så passar den bäst för spel där man kan utforska större landskap, och om man vill kunna byta miljöljud beroende på natt och dag exempelvis. 13
4. Reflektion Efter min tid som praktikant på Starbreeze fick jag lära mig väldigt mycket om just ljuddesign i 3D spel, på ett större spelföretag. Jag känner att jag har lärt mig hur de tänker när de skapar ljudmiljöer i surround. Det kändes naturligt att som fortsättning efter min praktik börja gå in på allvar med att lära mig scripta. Jag visste inte hur långt jag skulle kunna gå, men jag kände att det var roligt, och det var nog det som var mest drivande med det här arbetet. Det känns tillfredsställande att man tagit fram och utvecklat något som kan komma att användas i framtiden, och det har varit en kreativ och lärande process under resans gång. Jag har även under mitt examensarbete fått hjälpa till med en del ljuddesignuppdrag och det har varit skönt med lite olika arbetsuppgifter. Det är intressant att komma som purfärsk spelintresserad kille, med drömmen om att få arbeta med spel, till denna värld av duktiga och kreativa personer. Lära känna folk från andra länder, samt vilka personligheter som arbetar i den här branschen. Alla har ett väldigt stort intresse av spel och spelkultur. Det anordnas spel tävlingar och spelnyheter skickas ut på den gemensamma mailen. Jag tänker tillbaka på när jag kom hit för första gången. Allt var jätte- häftigt, 14
media var på besök och filmade bakom ens rygg, det var stort att få träffa personer man hade läst, sett eller hört talats om. Det var lyx att få gratis massage, det var lyx att få frukost varje morgon. Det kändes konstigt och jobbigt att vara tvungen att byta mellan engelska och svenska när man pratade. Allt det där blir såklart till en vana och vardag till slut. Nu sitter jag här 8 månader senare, har en speltitel i bagaget, nya vänner, massor av erfarenhet. Det känns bittert att man måste lämna detta livet man vant sig vid. Jag känner mig hemma här. 15
Källförteckning Indiana Jones (Lucasfilm, 1981) The Chronicles of Riddick: Escape from Butcher Bay (Starbreeze, 2004) The Chronicles of Riddick: Assault on Dark Athena (Starbreeze, 2009) Starbreeze Studios AB, http://www.starbreeze.com Ogier (Starbreeze) Wikipedia, http://sv.wikipedia.org 16
Bilaga: Ordförklaringar, Objekt och referenser Soundvolume 2.0: På bilden ovan kan man se hur prototypen ser ut ur scriptningsperspektiv, med fyra punktljud bundna till en Enginepath som sitter fast på spelarens huvud. Till vänster ser vi samma prototyp fast i tre olika varianter som spelar olika slags ljud, som man kan byta mellan på spelaren. Här visas även hur det ser ut i spelet ur ett specialläge som visar dolda objekt. 17
Här till vänster ser vi vilka värden man kan ställa in på ett Punktljud. NoParentRotation boxen gör att punktljudet inte roterar när man använder objektet på spelaren. Triggers: En "Trigger" (Utlösare) är en låda man placerar i spelvärlden, som inte syns i själv spelet. När man går i genom triggern så kan man sätta igång en händelse. Ett exempel på en händelse kan vara att ett ljud spelas, en dörr öppnas eller att en AI gubbe skapas i närheten som spelaren måste konfrontera runt nästa hörn. Triggers är den mest använda och enklaste skript-klass-typen i scriptning. På bilden till vänster ser vi vilka egenskaper man kan sätta på en Trigger. "OnEnter" är när spelaren går in i Triggern, och "OnLeave" när spelaren går ur Triggern. Sedan bestämmer man vad som ska utlösa Triggern i boxarna. I det här fallet "Player" (Spelaren), och vi skickar en impuls till objektet; "door01". En dörr som animeras att öppnas när den får sin impuls Engine_script: Ett "Engine script" är en script typ där man kan sätta tids kod till händelser. Denna typ av skript används väldigt ofta, och det finns mycket funktionalitet i detta skript. 18
Sound Object: Ett "Sound object" använder man för att spela ljud i spelvärlden. Man kan bestämma vilken radie ljudet ska höras, om det ska vara ett kontinuerligt spelande ljud, eller slumpmässiga ljud som ska komma från objektet. Exempel på användnings område kan vara att du vill ljudsätta en fläkt som snurrar i spelvärlden. Då placerar du ett "Sound object" på fläkten och bestämmer förslagsvis ett fläktljud som ska spelas kontinuerligt. Soundvolume: En "Soundvolume" är en låda du placerar i spelvärlden, och precis som med alla andra skript syns inte denna för spelaren. Till en Soundvolume kan man sätta ett "Reverb" (Akustiken i rummet), så när spelaren är i denna låda, så påverkas alla ljud som hörs med den akustik man vill använda. I en Soundvolume kan man även sätta fyra ljud som spelas i varje hörn på lådan. Detta för att skapa en viss surround-effekt när man rör sig i rummet. Soundvolumes används väldigt ofta när man ljuddesignar en bana, ett exempel på användningsområde kan vara ett maskin rum, där du sätter fyra brummande maskinljud i varje hörn, och metallisk akustik beroende på rummets storlek. På bilden till vänster kan man se vilka inställningar man kan göra på en Soundvolume. Dom markerade fälten visar fyra ljud som spelar samma ljud, fast i olika hastighet för att skapa en känsla av att man rör sig i rummet. Engine_path: En "Engine_path" är en bana som man kan rita ut och fästa objekt vid, för att få saker att röra på sig. Detta kan användas för att förflytta ett ljud i spelvärlden. 19
Scenepoints: Markörer som finns i olika typer, som används för att navigera AI (Datorstyrda) gubbar så att dom kan bete sig mer smart, eller för att ha mer kontroll över dom. Exempel: Bilden nedan visar en Tactical Scenepoint. Dom används när AI gubben är i strid. Markören på bilden föreställer en "Pil", när AI gubben tar sig till markören, så kommer han blicka åt det håll som pilen pekar. Strecket framför pilen används för att indikera vart det finns skydd i striden. Om en fiende befinner sig i området till höger, så kommer AI gubben söka sig till just denna Scenepointen. Scriptning När man scriptar en bana använder man sig av olika funktioner som finns i Ogier. Scriptning är som att programmera, fast på ett mer grafiskt sätt. Varje objekt eller 20
funktion har olika egenskaper man kan fylla i, samt att man kan skicka medelanden mellan objekt och till spelmotorn. Exempel: Ett objekt skickar igång att köra ett annat objekt som kör igång ett annat som kör igång det sista objektet som en evig loop. Du kan sedan välja att varje objekt ska addera på ett till en summa varje gång den körs igång, samt att när summan når ett visst tal spelar du ett ljud. Här på bilden till vänster körs ett Engine Script igång som skickar en impuls till nästa engine script som skickar till nästa, och till slut tillbaka till den första igen. Det finns många olika slags medelande man kan skicka när man scriptar. På bilden här intill ser du ett impuls medelande. Man väljer sedan till vad man vill skicka meddelandet, samt vilken typ av impuls. När man scriptar med ljud använder man ofta Triggers (Blå), när spelaren går igenom denna box så kan man köra igång att något ska hända. Engine Paths (Röd) kan man använda för att förflytta ett ljud i spel världen. Hörlurarna på bilden är Punktljud, där man kan sätta ett ljud som spelar hela tiden från samma punkt. Soundvolumes (Ljusgrön) används för att ha en viss akustik när spelaren befinner sig 21
i boxen, samt kan spela ljud i alla hörn. Engine scripts (Lila) kan användas för att sätta en viss tid mellan när ljud ska spelas. Till vänster, exempel på Reverb templates (Akustik) man kan välja bland till en Soundvolume. Ljuddesign (sounddesign/audiodesign) = Ljudläggning i någon form, i detta fall spel. Skapa ljudeffekter, skapa ljudmiljöer. Ljuddesign är arbetet med att forma en ändamålsenlig och/eller fördelaktig ljudbild för en viss produkt, miljö eller varumärke. Det handlar alltså om att via hörseln påverka en användares upplevelser. Ljuddesign kan också uppfattas som arbetet med att bestämma hur ett visst ljud ska låta. (Wikipedia. 2009) Ambient = Ljudmiljö, beskriver en plats med ljud. Reverb = Reverb är en effekt inom ljudtekniken som skapar en simulering av ett rums efterklang. Genom att reverb läggs på i efterhand spelas ofta ljudmaterialet som ska reverbereras in i dämpade utrymmen som ger lite efterklang. Användning och påläggning av reverb är en del av ljudmixen. (Wikipedia, 2009) 22