Wie kann verhindert werden, dass mehrere Wiedergabetöne Ihr Gehör zerstören?

8

Das Problem ist, dass wenn ich fast gleichzeitig 100 Sounds spiele, ich nur Geräusche höre. Es ist nicht sehr attraktiv, es 30 Minuten lang zu hören.

Ich habe versucht, dies zu beheben, indem nur 1 Sound von jedem Soundtyp gleichzeitig abgespielt werden konnte. Aber es klingt immer noch sehr hässlich; Schließlich hört mein Gehirn immer nur das Ende der Schussgeräusche (oder den Anfang davon?), und das geht mir sehr schnell auf die Nerven. Irgendwann würde ich mich einfach dazu entschließen, die Sounds komplett auszuschalten. Gibt es überhaupt einen Grund, Sounds in einem solchen Spiel zu verwenden?

Wie geht unsere liebe Realität mit diesem Problem um? Wenn es da draußen einen Krieg gibt, wie hört es sich dann an, wenn Hunderte von Männern fast gleichzeitig schießen?

Bearbeiten: So klingt das Spiel aktuell; Es werden nicht einmal 100 Sounds gleichzeitig abgespielt, vielleicht 20? http://www.speedyshare.com/VTBDw/headache.mp3 Am Anfang klingt es OK, aber dann wird es unerträglich! In diesem Audioclip darf nur 1 Ton gleichzeitig abgespielt werden, sodass der vorherige Ton gestoppt wird, wenn ein neuer Ton abgespielt wird.

Edit2: Und hier sind die gleichen Kopfschmerzen, aber 32 simultane Sounds dürfen gleichzeitig abgespielt werden: http://www.speedyshare.com/TuWAR/headache-worse.mp3 Eine ziemliche Qual, oder?

Anfänger
quelle
3
Ist das eigentlich eine Frage zur Spieleentwicklung? Es wäre ärgerlich, 100 Sounds gleichzeitig zu spielen, da stimme ich zu. Wenn die Sounds, die Sie Ihrem Spiel hinzufügen, ärgerlich sind (und dies auch nicht sein sollten), müssen Sie verschiedene Sounds auswählen oder auswählen, welche Sie sorgfältiger spielen möchten. In der Realität kommt Schall aus verschiedenen Quellen mit unterschiedlichen Frequenzen und Amplituden. 100 Männer, die fast gleichzeitig schießen, klingen sehr laut.
MichaelHouse
2
@Rookie du schneidest wahrscheinlich das Audio ziemlich schlecht. Die Realität hat nicht das Problem einer maximalen Amplitude. Außerdem ist die Realität viel komplexer, sie ist nicht diskret, so dass "zur gleichen Zeit" eine andere Bedeutung hat (wie "der gleiche Klang"). Sie können das Schlimmste etwas verhindern, indem Sie das Audio ähnlich wie bei der HDR-Beleuchtung mischen und ein flexibles Fenster über einen großen Bereich einstellen. Variieren Sie außerdem den "gleichen Sound", indem Sie aus einem zufälligen Pool ähnlicher Sounds auswählen und Geschwindigkeit / Tonhöhe und Timing ganz leicht variieren.
PeterT
2
Können Sie das eigentliche Problem genauer definieren? Es ist klar, dass "Ihr Gehör zerstören" nicht das ist, was tatsächlich passiert. Außerdem ist "geht mir auf die Nerven" keine sehr gute Beschreibung, da dies leicht von Person zu Person variieren kann.
MichaelHouse
@ Byte56, eine nicht störende Klangerzeugungsmethode könnte auch eine Lösung für mein Problem sein. Also, wenn Sie wissen wie, sagen Sie es mir. Bisher bereiten mir alle Geräusche Kopfschmerzen. Das einzige, woran ich denken kann, ist, sehr bassige Klänge zu machen, dann müsste ich vielleicht nicht meine Ohren bedecken, wenn ich mein Spiel spiele.
Rookie
@PeterT, was meinst du mit dem Abschneiden des Audios? Wie kann man es richtig abschneiden? Ich bezweifle, dass zufällige Soundeffekte mir weniger Kopfschmerzen bereiten. Besonders wenn der Ton ein einfacher Laserton (Sinuswelle) ist. Das Problem ist, dass wenn ich 100 Türme pro halbe Sekunde schieße, sie anfangen, verrückte Geräusche zu erzeugen. Egal welche Art von Klang sie geben. Am Anfang klingt es erträglich, aber nach einem bestimmten Punkt ist es nur noch ein Geräusch, egal wie unglaublich gut der Klang gemacht wurde.
Rookie

Antworten:

5

In Wirklichkeit ist unser Gehör anpassungsfähig. So wie sich unser Sehvermögen an unterschiedliche Lichtverhältnisse anpasst, indem es mehr oder weniger empfindlich wird, passt sich unser Gehör an unterschiedliche Geräuschkodierungen an. Leider funktioniert dies bei der Computer-Audioausgabe nicht so gut.

Aber du könntest es simulieren. Wenn das Spiel besonders laut wird, reduzieren Sie die Gesamtlautstärke auf ein erträgliches Maß.

Es gibt einen Namen für einen solchen Audiofilter: Er wird als Dynamikbereichskomprimierung bezeichnet . Eine erweiterte Audio-API bietet sie möglicherweise sogar sofort an.

Wenn Ereignisse technisch auf einmal eintreten, sollten Sie dennoch versuchen, ihre Soundeffekte um einige Mikrosekunden auszugleichen. Wenn 10 Gegner ihre Waffen im selben Spiellogik-Rahmen abfeuern, sollten die 10 Schussgeräusche nicht perfekt zusammenspielen. Dies klingt nach einem sehr lauten Schuss, nicht nach mehreren, die gleichzeitig stattfinden. Sie klingen realistischer, wenn sie leicht versetzt sind ( Chorus-Effekt ).

Philipp
quelle
Randomisieren Sie auch die Tonhöhe (eher die Wiedergabegeschwindigkeit) um einen winzigen Betrag.
Kevin Reid
3
  • Lassen Sie mindestens -3 dB Headroom für Ihre Sounds. In Ihrem Fall kann es -6dB oder mehr sein. Auf diese Weise werden Sie die digitalen Verzerrungen beseitigen, die durch das Erreichen der maximalen Kapazität für die digitale Darstellung eines Klangs verursacht werden.
  • Wenden Sie eine gute Randomisierung an oder verwenden Sie eine ausreichend große Anzahl von Aufnahmen mit demselben Sound.
  • Stellen Sie die Frage: "Sagen das Spielen so vieler Klänge etwas Sinnvolles?". Integrieren Sie ein System, das Prioritätsindizes an Sounds anfügt und die maximale Anzahl von Sounds gleichzeitig abspielt. Die meisten Hintergrundgeräusche werden Teil von Hintergrundgeräuschen, wenn vorne erhebliche Geräusche zu hören sind. Einige Game-Engines erledigen das für Sie.
  • Anstatt jedem Objekt einen Sound zuzuweisen, lassen Sie nur wichtige Objekte ihre eigenen Sounds haben und entwerfen Sie eine lange Umgebungs-Soundschleife für andere Sounds. Auch hier sind Hintergrundgeräusche ein Teil des Hintergrunds. Sie müssen nicht für alles eine Sounddatei anhängen.

Es ist auch eine Belastung und Verschwendung der CPU, Sounds abzuspielen, die Sie nicht hören oder mit dem Quellobjekt verknüpfen. Setzen Sie Ihre Ressourcen mit Bedacht ein.

Guney Ozsan
quelle
2

Ihre Audiodateien sind verschwunden, aber dämpfen Sie nur die weiter entfernten Sounds erheblich.

Verwenden Sie daher eine INVERSE CURVE oder eine EXPONENTIAL CURVE, um die Geräuschlautstärke zu dämpfen.

Geben Sie hier die Bildbeschreibung ein

Wenn das nicht ausreicht, können Sie sogar eine Exponentialkurve verwenden:

Geben Sie hier die Bildbeschreibung ein

Verwenden Sie in OpenAL die Funktion alDistanceModelmit einer der folgenden Optionen :

AL_INVERSE_DISTANCE AL_INVERSE_DISTANCE_CLAMPED
AL_LINEAR_DISTANCE AL_LINEAR_DISTANCE_CLAMPED
AL_EXPONENT_DISTANCE AL_EXPONENT_DISTANCE_CLAMPED
AL_NONE

Die Standardeinstellung ist AL_NONE, so dass dies ziemlich laut wäre, wenn viele Sounds gleichzeitig abgespielt würden.

Bobobobo
quelle
Ich habe überhaupt kein Kameraobjekt, das Spiel ist im Grunde ein Brettspiel, bei dem alles auf einmal angezeigt wird, daher sollten alle Sounds die gleiche Lautstärke spielen, egal wo sie sich auf der Karte befinden. Ich denke, ich möchte einfach überhaupt keine Sounds verwenden. Nach einiger Zeit gehen sie mir wirklich auf die Nerven.
Rookie
Wenn das Spiel eine Starcraft-ähnliche Ansicht hat, würde ich immer noch Fade-Sounds sagen, die oft nicht sichtbar sind. Wenn das gesamte Board sichtbar ist, können Sie einfach alle Sounds um ein Vielfaches dämpfen , während Sie die Musik auf voller Lautstärke halten. Dann fügen die Klänge zumindest etwas Ambiente hinzu.
Bobobobo
Wenn ich alle Geräusche "abschwächen" würde, würde das nicht bedeuten, dass ich sie kaum hören würde?
Rookie
1
Ja . Wenn 4 Blocks entfernt ein paar Gesänge stattfinden und Sie es kaum hören können, erhalten Sie das Ambiente (4 Blocks entfernt ist etwas los), ohne sich dadurch gestört fühlen zu müssen . Anstatt alle Geräusche auszuschalten, machen Sie sie einfach leise, damit der Benutzer immer noch das Gefühl hat, dass etwas los ist, ohne von dem Geräusch überwältigt zu werden.
Bobobobo
2

Versuchen Sie, die Gesamtzahl der Dinge zu begrenzen, die zu einem bestimmten Zeitpunkt einen Sound abspielen können. Wenn beispielsweise numberOfSoundsPlayingRightNow> 5 ist, ignorieren Sie den Soundeffekt, der gerade ausgelöst wurde.

Versuchen Sie auch, die Lautstärke für weniger wichtige Soundeffekte zu verringern.

Eine andere Sache, die Sie versuchen sollten, ist zu begrenzen, wie oft ein einzelnes Spielobjekt Ton ausgeben kann, um zu verhindern, dass eine einzelne Objektform immer wieder dieselbe SFX spammt. Zum Beispiel würde ein Objekt vor dem Abspielen prüfen: Wenn lastTimePlayed <1 Sekunde ist, wird der Sound ausgelöst.

Sie können auch in ein Spiel-Audio-Tool wie Wwise schauen, mit dem Sie das Audio des Spiels einfach optimieren können.

Jose Llausas
quelle
1
Wahrscheinlich ist das das einzige, was ich im Moment tun kann, aber ich denke auch, dass es das Problem nicht vollständig lösen wird. Wenn beispielsweise 100 verschiedene Objekte Töne ausgeben, ist es schwierig, diese zu priorisieren. Mit nur wenigen schallemittierenden Objekten ist es immer noch machbar.
Rookie
Wenn zum Beispiel 100 Weltraumsoldaten ihre Laser immer wieder abschießen und jedes Mal, wenn sie für jeden Soldaten schießen, einen Soundeffekt auslösen, klingt dies schrecklich, da sich der Sound überlappt und sehr schlecht klingt. Versuchen Sie stattdessen diesen Ansatz: Wenn mindestens 1 Soldat schießt, schalten Sie einen Loop-Lasersound ein. Dadurch bleibt der Klang schön und klar. Nur weil 100 Soldaten schießen, heißt das nicht, dass der Spieler auf alle hören muss, einige werden es tun.
Jose Llausas