Projekt Micarpet Projektbericht - artecLab - Universität Bremen
Projekt Micarpet Projektbericht - artecLab - Universität Bremen
Projekt Micarpet Projektbericht - artecLab - Universität Bremen
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
<strong>Projekt</strong> MiCarpet <strong>Projekt</strong>bericht<br />
deren Bewegung in der Welt auf diese Weise simuliert wird. Auch war zu diesem Zeitpunkt bereits die<br />
Entscheidung gefallen, auf der Basis der OGRE-Engine zu arbeiten. Die Fmod-Audio-Engine war sehr<br />
gut für die Zusammenarbeit mit OGRE ausgelegt, und stellte entsprechende Schnittstellen bereit, damit<br />
„die Welt“ mit den „Sounds“ kommunizieren konnte, und beispielsweise im Falle einer Kollision (in der<br />
Welt) ein Geräusch (von der Sound-Engine) abgespielt werden konnte. Darüber hinaus gibt es eine durch<br />
Foren kommunizierende Community um Fmod, die auch vielfach mit Rat beiseite stand; auch die API<br />
war sehr gut und umfangreich erklärt; diese praktischen Gründe festigten unseren Beschluss, Fmod als<br />
Bibliothek zu verwenden.<br />
15.2.2 Benutzung von FMod<br />
Um mit der fmod-Engine einen 3D-Sound in der Welt zu platzieren, lädt man zunächst die entsprechende<br />
Wave-Datei mittels der Funktion<br />
FSOUND_SAMPLE_LOAD.<br />
In diesem Schritt hat man auch die Möglichkeit anzugeben, ob das Sample dreidimensional im Raum<br />
platziert werden soll oder ob es, wie im Falle der Hintergrundmusik beispielsweise, in Stereo aus den<br />
Lautsprechern ausgegeben werden soll.<br />
In der Hauptschleife des Programms werden nun im Update unter anderem die Geräuschquellen bewegt;<br />
dies geschieht für fmod mit der Funktion<br />
FSOUND_3D_SetAttributes.<br />
Hier wird fmod mitgeteilt, an welcher Position sich das betreffende Objekt befinden soll; die Position,<br />
an die das Objekt bewegt wird, stammt aus der Engine.<br />
Jetzt muss noch der Spieler selbst bewegt werden (sofern die Engine das vorsieht). Hier dient die Funktion<br />
FSOUND_3D_Listener_SetAttributes.<br />
Die Funktion nimmt als Parameter unter anderem die Position und Geschwindigkeit des Spielers sowie<br />
die Ausrichtung in der Welt.<br />
Im Anschluss muss noch die Methode<br />
FSOUND_UPDATE<br />
aufgerufen werden, damit der Zustand der Audio-Engine intern aktualisiert wird.<br />
Damit dieses System der dreidimensionalen Positionierung so funktioniert, musste die Soundgruppe eng<br />
mit der Enginegruppe zusammenarbeiten, da viele Aufrufe von Methoden, welche von der Soundgruppe<br />
implementiert wurden, von der Enginegruppe aufgerufen werden und umgekehrt.<br />
Die Dreidimensionalität des Sounds wird über zwei Boxenpaare ausgegeben. Es handelt sich hierbei<br />
um zwei 2.1-Systeme, die jeweils mit einem Subwoofer ausgestattet sind; dies war eine verhältnismäßig<br />
kostengünstige Lösung im Vergleich zu einem 5.1-System (siehe nächsten Abschnitt).<br />
15.3 Soundbibliothek<br />
15.3.1 Auswahl und Bearbeitung von Soundsamples<br />
Schon zu Beginn des ersten Semesters stand fest, dass der MiCarpet-Cave mit 3D-Sound ausgestattet<br />
werden soll. Aus diesem Grund wurde schon im Verlauf der weiteren Semester darauf geachtet, von<br />
verschiedensten Quellen Sounds zu sammeln. Zu beachten, welches Datenformat die jeweiligen Sound-/<br />
6. Januar 2005 Seite 205