Update Juli 2017
Wenn Sie Unity oder eine andere große Engine mit einem Asset-Management-System verwenden, fordern Sie Ogg Vorbis nicht bei Ihren Sounddesignern und Komponisten an. Holen Sie sich WAVs oder AIFFs.
Unity und Unreal sind so strukturiert, dass sie mit qualitativ hochwertigen Bounces arbeiten und dann die Komprimierungseinstellungen pro Plattform anwenden. Wenn Sie das Quell-Asset als Ogg oder Mp3 haben, komprimieren Sie das Audio doppelt und fügen zusätzliche Artefakte hinzu, ohne dass dies von Vorteil ist.
Wenn du siehst, dass Ogg oder MP3 deine Build-Größe reduzieren, ist das kein guter Grund. Dies bedeutet wahrscheinlich, dass Sie vor dem Exportieren andere Komprimierungseinstellungen verwenden als in Unity / Unreal. Gibt es Hinrichtungen? Ja, aber Sie würden diese Antwort nicht nachschlagen, wenn Sie wüssten, wann diese Ausnahmen zutreffen.
Wenn Sie vorkomprimieren, um die Größe Ihres Repos zu verringern, verwenden Sie LFS, verwenden Sie ein zentrales Versionskontrollsystem oder grinsen und ertragen Sie es.
TL; DR
- Ja , MP3 320k klingt großartig. ABER . . .
- Verwenden Sie keine MP3-Dateien, sondern Ogg Vorbis mit 44,1 kHz und Qualität 6 für Musik. Verwenden Sie für Soundeffekte nur 16 / 44.1 WAV, es sei denn, Sie haben wirklich das Gefühl, dass Sie das Fett entfernen müssen.
- Wenn Sie MP3 verwenden müssen, z. B. in Flash, versuchen Sie, 192k-256k (VBR 1 oder 2) zu verwenden, müssen Sie sich jedoch möglicherweise mit 128k zufrieden geben. Gehe nicht tiefer als 128k (VBR 6).
Die wahre Antwort
Die Leute werden sagen, dass MP3 320kbps verlustfrei ist, während Experten sagen, dass MP3 Mist ist, aber am Ende wird niemand einen Unterschied im Ergebnis hören ... es sei denn, sie sind seit über 20 Jahren in der Musikindustrie.
In MP3 codiertes Audio ist unabhängig von der Codierungsqualität immer verlustbehaftet. Es ist ein wahrnehmbarer Codec und codiert daher die Eigenschaften des Klangs über die Zeit in ~ 1152 Sample-Chunks in komprimierter Form, aus denen unkomprimierte Samples vom Decoder extrapoliert werden können. Ihr Ziel ist es, das Original-Audio nicht genau wiederzugeben, sondern nur ein Audio bereitzustellen, das "gut genug" ist.
Wie Sie sagten, klingt 320 kbit / s jedoch sehr gut. Es wird allgemein als genauso gut oder besser angesehen als die CD-Qualität. Es ist jedoch immer noch nicht möglich, die ursprünglichen Samples eines unkomprimierten WAV, das als MP3 mit 320 kbit / s codiert ist, perfekt wiederherzustellen.
Generell ist Ogg Vorbis ein besseres Format als MP3. Es ist allgemein üblich, eine bessere Qualität für Dateien gleicher Größe zu erzielen, und MP3 kann im Gegensatz zu MP3 problemlos nahtlos geloopt werden. Diese 1152-Sample-Chunks, die MP3 zum Codieren von Audio verwendet, lassen zu Beginn und am Ende eines Sounds häufig Stille. Nicht so wichtig für grundlegende Soundeffekte, aber ein massives Problem für Musik-Loops.
Die Flash-IDE umgeht dies während des SWF-Exports und entfernt die Stille manuell. Personen, die Streaming-Audio (oder reines mxmlc) verwenden, können Loops über das SampleDataEvent erstellen und Samples manuell ablegen oder die MP3-Datei vorverarbeiten (siehe Blog von Andre Michelle und das Dienstprogramm CompuPhase mp3loop ).
Außerdem müssen Sie für die technische Verwendung eines MP3-Decoders eine Patentlizenz erwerben (da das MP3-Patent Eigentum von Technicolor, Fraunhofer und anderen ist). Offensichtlich haben Unmengen von Leuten Freeware-Spiele veröffentlicht, die MP3 verwendet haben, aber es ist das Beste, sich damit nicht herumzuschlagen.
Was wäre das beste Format für Videospiele und welche Eigenschaften sollten ausreichen (Hertz, Bitrate usw.), vorausgesetzt, 320 kbit / s MP3 sind "schwer"?
Vielleicht ein oder zwei Beispiele, wie einige AAA-Titel mit ihren Sounds arbeiten.
Das hängt davon ab: Was sind Ihre Zielplattformen, welche anderen Technologien verwenden Sie, wie verbreiten Sie Ihr Spiel und welchen Stil möchten Sie? Ich werde dies in einige Kategorien aufteilen, basierend auf Plattform, Technologie und Ästhetik.
High-End-PC- und Konsolentitel
AAA-Spiele stehen für erstklassige Produktionsqualität. Sie zeichnen also unkomprimierte Assets mit 24 Bit / 48 kHz auf und produzieren sie (auch der Standard für die Postproduktion von Filmen). Titel mit etwas geringeren Ambitionen als Battlefield 3 könnten in 16 / 44.1 aufgenommen und produziert werden, was der offizielle Standard für Audio in CD-Qualität ist.
Natürlich kann man mit einem Spiel keine 24/48 unkomprimierten WAVs ausliefern, es wäre zu groß. Letztendlich muss also eine Art Komprimierung stattfinden. Grundsätzlich gilt: Wenn es sich um einen schnellen Soundeffekt handelt, der einem Pistolen-Sound ähnelt (wie das Zischen der Portal 2-Pistole in Sprunths Antwort), ist es in Ordnung, ihn als WAV zu belassen und möglicherweise die Samplerate abhängig von der Frequenz zu verringern (siehe Nyquist-Theorem , Töne, die aus niederfrequenten Inhalten bestehen, können mit niedrigeren Abtastraten codiert werden. Bei Musik führt kein Weg an einer Komprimierung vorbei. Ogg Vorbis in CD-Qualität ist der richtige Weg (44,1 kHz, Qualität 5-6 oder höher).
Bei AAA-Spielen wird häufig ein zwischengeschaltetes Tool für die Komprimierung verwendet, entweder ein internes Tool oder Audio-Middleware wie FMOD oder Wwise. In FMOD und Wwise funktioniert dies so, dass Sie die meisten Dateien als 16 / 44.1- oder 24/48-WAV-Dateien importieren (oder, wenn der Sound nur aus niederfrequenten Inhalten besteht, mit einer niedrigeren Abtastrate importiert werden kann). Geben Sie dann FMOD ein ein Komprimierungsfaktor für jedes Asset, der eine Codierung wie ADPCM, MP3 oder Ogg Vorbis auswählt.
FMOD hat kürzlich die Unterstützung für die Codierung von Assets in den Soundbanks, die Sie aus FMOD Designer (.fsb-Dateien) als Ogg Vorbis exportieren, zugunsten eines neuen Codecs von Xiph namens CELT eingestellt . Ogg Vorbis kann die CPU etwas strapazieren, daher wird CELT entwickelt, um eine Alternative zu bieten. Sie können die Dateien direkt laden, sie jedoch nicht mehr für die Codierung aus der Designer-Anwendung verwenden.
Übrigens, hier ist ein cooler Link zu Battlefield Bad Companys Audio , der auch ein bisschen in Surround geht. DICE ist im Bereich der Audiotechnologie in Spielen so ziemlich an der Spitze, daher ist es eine gute Serie zum Lernen.
Bezogen auf Surround ist auch das Problem Mono vs Stereo. Nur für den Fall, dass Sie es nicht wussten, sollten alle Ihre Soundeffekte mono sein, es sei denn, einige von ihnen verwenden tatsächlich Panoramaeffekte. Es ist schwierig, Stereos räumlich in eine 3D-Umgebung umzuwandeln, und Sie können Sounds im Code schwenken, um sie in einer 2D-Umgebung zu platzieren.
Etwas weniger High-End-Titel, Indie-Spiele
Offensichtlich kann dies stark variieren. Ein kurzer Blick zeigt, dass Frozen Synapse ausschließlich Ogg Vorbis-Dateien für Soundeffekte und Musik verwendet. Dungeons of Dredmor hingegen folgen dem Schema von Ogg Vorbis für Musik und 16 / 44.1 WAV für Soundeffekte.
Der Dungeons of Dredmor-Ansatz ist vorzuziehen. Sogar als unkomprimierte WAVs gespeichert, sind die Soundeffekte im Allgemeinen so kurz, dass sie nicht so viel Platz beanspruchen, und Sie sparen eine Menge CPU-Zyklen, die sie nicht dekodieren müssen. Sie möchten in der Lage sein, einen Soundeffekt schnell in den Speicher zu laden und abzuspielen. Wenn Sie Ihre Soundeffekte in Ogg Vorbis kodieren, kann es zu einer geringfügigen Verzögerung kommen, bevor ein Player Ihren Soundeffekt zum ersten Mal hört.
Browsergames, HTML5 und Flash (mit einem Hauch von Mobile)
HTML5-Audio ist ein Chaos. Sie müssen sowohl Ogg- als auch MP3-Versionen Ihrer Sounds bereitstellen. Codieren Sie in höchster Qualität, ohne dass Ihr Benutzer bei der langen Ladezeit wütet. Bei MP3 sollten Sie 128k nicht unterschreiten, bei 128 ist das schon schlimm genug.
Flash akzeptiert nur 16-Bit / 44,1-kHz-MP3, es sei denn, Sie sind verrückt und schreiben Ihren eigenen Decoder für ein anderes Format (wie den experimentellen Ogg Vorbis-Decoder in den Alchemy-Labors). In der Vergangenheit hatte Flash Probleme mit MP3s mit variabler Bitrate, aber ich hatte nie ein Problem. Die Qualitätseinstellung, die Sie für Ihr Flash-Spiel auswählen, hängt davon ab, wie groß Ihre endgültige SWF-Datei sein soll.
Update: Wie Tetrad bereits erwähnt hat , müssen mobile Spiele in Bezug auf Speicher und Speicher berücksichtigt werden. Die Art und Weise, wie Sie Ihre Audiodaten für mobile Spiele codieren, ist der von Flash sehr ähnlich. Sie möchten eine möglichst hohe Qualität beibehalten, müssen jedoch letztendlich ein Speicher- und Speicherbudget bereitstellen. Tracker-Musik ist besonders gut, wenn Sie ein knappes Speicherbudget für Musik haben. Weisen Sie Ihren Komponisten an, seine Beispielpalette zu beschränken, und Sie können eine Tonne mehr Musik in das Spiel einfügen .
"8-Bit" - oder Chiptune-Soundeffekte und Musik
Die meisten Spiele werden genau das tun, was Frozen Synapse und Dungeons of Dredmor tun. Sie können jedoch wahrscheinlich mit einer Verringerung der Abtastrate und der Bittiefe davonkommen. Vielleicht passt es nicht nur zu Ihrer gewünschten Ästhetik, sondern spart Ihnen auch Platz.
Außerdem speichert Trackermusik Samples im Allgemeinen mit niedrigen Sampleraten. Lassen Sie es einfach geschehen.