14.11.2012 Aufrufe

Projekt Micarpet Projektbericht - artecLab - Universität Bremen

Projekt Micarpet Projektbericht - artecLab - Universität Bremen

Projekt Micarpet Projektbericht - artecLab - Universität Bremen

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!