In meinem 2D-Spiel habe ich einige Umgebungsgeräusche wie das Geräusch eines Wasserfalls oder das Summen eines Generators. Es ist jedoch nicht praktikabel, diesen Klang die ganze Zeit mit voller Lautstärke abzuspielen, da in einem großen Pegel die Überlappung vieler solcher Geräusche für das Ohr ziemlich unangenehm wäre.
Ich denke derzeit an ein System, das die Lautstärke bestimmter Sounds in Abhängigkeit von ihrer Entfernung zum Player moduliert. Dies ist jedoch teilweise keine großartige Lösung, da der Player (zum Beispiel) in einem gezoomten Zustand möglicherweise ziemlich weit von der Schallquelle entfernt ist (wie ein Wasserfall), ihn aber dennoch auf dem Bildschirm sehen, aber nicht hören kann (aufgrund) in die Ferne), was ziemlich umständlich ist.
Gibt es eine Lösung für ein solches Problem?
Antworten:
Ich denke, Sie sind auf dem richtigen Weg. Ihr vorgeschlagenes System zur entfernungsbasierten Dämpfung sollte funktionieren, wenn Sie
Verwenden Sie immer die Entfernung im Spiel zum Objekt vom Spieler, die unabhängig von der Zoomstufe fest bleibt (verwenden Sie nicht die Entfernung "auf dem Bildschirm", die sich beim Zoomen ändert) und
Richten Sie Ihr Dämpfungssystem so ein, dass die Geräusche eines Objekts abgespielt werden, sobald die Entfernung zum Player in der Welt so groß ist, dass das Objekt bei maximaler Zoomstufe für den Player fast sichtbar ist.
Auf diese Weise können Spieler Dinge hören, bevor sie sie sehen, was ein Gefühl von Realismus und Entdeckung vermittelt. Es verhindert auch die meisten Szenarien, in denen zu viele Umgebungsgeräusche abgespielt werden.
Natürlich haben Sie immer noch das Potenzial, den Umgebungsschallkanal zu überlasten, wenn Sie zufällig viele schallemittierende Objekte an derselben Stelle auf der Welt haben. Dies kann durch gelöst werden
Entwerfe deine Levels, um das nicht zu tun, oder, wenn das nicht machbar ist,
Objekte mit einer soliden Priorität versehen und nur
n
Objekte mit der höchsten Priorität nehmen, oderModulieren Sie die Lautstärke aller Umgebungsgeräusche durch (mehr oder weniger) "Teilen durch die Anzahl der Geräusche in der Szene", und stellen Sie sicher, dass Sie die Geräusche immer noch gleichmäßig ausblenden, wenn ihre Objekte weiter entfernt sind, um ein "Knallen" zu vermeiden Springe zum Beispiel diskret von fünf auf vier Objekte.
Berechnen Sie für ein bestimmtes Level oder das gesamte Spiel vorab die maximale Anzahl von Objekten, die sich in Reichweite befinden und gleichzeitig Sounds spielen können (tun Sie dies als Teil des Level- oder Spieldatenerstellungsprozesses). Darauf basierend können Sie bestimmen, wie laut ein Objekt so abgespielt werden soll, dass der Worst-Case eine bestimmte Lautstärke nie überschreitet.
Die beiden letztgenannten Optionen behandeln das Problem jedoch nur aus der Lautstärkeperspektive - sie berücksichtigen nicht die Tatsache, dass Sie selbst dann 500 Sounds spielen, wenn Sie 500 Hintergrundgeräusche leise genug spielen, um das Trommelfell eines Spielers nicht zu überfordern sein laut nicht im Volumen Sinne , sondern im Sinne verwirrend.
Um dieses Problem zu lösen, sollten Sie versuchen, die Gesamtzahl der Umgebungsstrahler zu reduzieren oder nur die
n
Sounds mit der höchsten Priorität zu verwenden (als Referenzn
ist es mehr oder weniger das, worauf wir uns für Guild Wars 2 festgelegt haben).quelle