Das Audio Modulation-Plugin bietet dynamische Steuerung über Fließkomma-Audio-Parametern wie Lautstärke und Tonhöhe, die vom Komponente und Blueprint-System genutzt werden.
Das Audio-Modulation-Plugin ist standardmäßig deaktiviert. Befolgen Sie diese Schritte, um es einzuschalten:
Wählen Síe Bearbeiten > Plugins aus, um das Plugin-Panel zu öffnen.
Nutzen Sie die Suchleiste, um das Plugin zu finden.
Aktivieren Sie das entsprechende Kontrollkästchen.
Starten Sie den Unreal Editor neu.
Asset-Typen
Es gibt fünf verschiedene Asset-Typen, die Funktionalität der Audiomodulation bieten.
| Assettyp | Beschreibung |
|---|---|
Parameter, die Kontext dafür bieten, wie ein Modulationswert normalisiert, angezeigt und mit anderen Werten gemischt wird. | |
Connectors, die einen Modulationsparameter referenzieren. | |
Modulatoren, die mehrere Steuerwerte gleichzeitig anwenden können. | |
Hybride Connector-Modulatoren, die mehrere Steuerbus-Werte auf einen einzigen Output-Wert neu zuweisen. | |
Hybride Connector-Modulatoren, die Werte über die Zeit generieren. |
Sie können diese Assets verwenden, um die Grundlage für Ihre Modulation zu erstellen, bevor Sie diese Pipeline mit einer Modulation Destination an einem Endpunkt verbinden.
Befolgen Sie diese Schritte, um ein Audio-Modulation-Asset zu erstellen:
Klicken Sie im Inhaltsbrowser auf die Schaltfläche Hinzufügen.
Wählen Sie unter Audio > Modulation den gewünschten Asset-Typ aus.
Modulationsparameter
Modulationsparameter bieten Kontext dazu, wie ein Modulationswert normalisiert, angezeigt und mit anderen Werten gemischt wird.
Jeder Modulationsparameter hat über die folgenden Basis Eigenschaften (zusätzlich zu anderen, abhängig von der Klasse):
Standardwert-Parameter: Der Standard-Modulationswert. Das funktioniert als Bypass-Wert, der so eingestellt werden sollte, dass er zu keiner Änderung am Input führt, wenn ein Modulator, der auf diesen Parameter verweist, mit einem anderen gemischt wird. Mathematisch sollte der Wert so gewählt werden, dass die Funktion effektiv auf eine Identität reduziert wird, wenn sie als Input festgelegt wird.
Anzeigename der Einheit: Die Einheit, die auf Referenzen im Unreal Editor angezeigt wird. Diese Informationen dienen nur zu Entwicklungszwecken, da sie aus verpackten Builds entfernt wurden.
Es gibt mehrere eingebaute Modulationsparameter-Klassen, die eine Vielzahl von Anwendungsfällen unterstützen, darunter Lautstärke-Mix und Frequenzhandhabung.
Das Audio-Modulation-Plugin umfasst fertige Modulationsparameter-Assets für die häufigsten Parameter wie Volumes und Tonhöhe.
Um sie im Inhaltsbrowser anzuzeigen, befolgen Sie diese Schritte:
Klicken Sie auf die Schaltfläche Einstellungen.
Aktivieren Sie Engine-Inhalt anzeigen und Plugin-Inhalt anzeigen.
Navigieren Sie zu Alle/Engine/Plugins/Audio-Modulation-Inhalt.
Über Modulationswerte
Modulationswerte werden zwischen zwei Werträumen transformiert:
Einheit: Wert in den Einheiten, der dem Modulationsparameter assoziiert ist. Beispiel Dezibel (dB) für einen Lautstärkemodulation-Parameter. Einheitswerte werden auf normalisierte Werte gemappt.
Normalisiert: Wert zwischen einem normalisierten Bereich von 0,0 bis 1,0 für einheitliches Weitergeben und Mischen.
Modulationswerte werden gemischt, wenn mehrere Modulatoren mit einem einzigen Modulationsziel verlinkt sind. Die Art, wie sie kombiniert werden, hängt vom assoziierten Modulationsparameter ab. Hier sind ein paar Beispiele dafür, wie einige der eingebauten Modulationsparameter-Typen das Mischen handhaben:
Lautstärke: Die Lautsätrkeverringerungen addieren sich. Wenn Beispiel zwei Steuerbusse –6 dB bzw. –12 dB Werte aufweisen, wird die Lautstärke des Modulationsziels auf –18 dB gesetzt.
Hochpassfilter-Frequenz: Der Wert wird ausgewählt. Wenn beispielsweise zwei Steuerelemente jeweils 1000 Hz und 500 Hz-Werte aufweisen, wird die Hochpassfilterfrequenz des Modulationsziels auf 1000 Hz eingestellt.
Tiefpassfilter-Frequenz: Der Wert wird ausgewählt. Wenn beispielsweise zwei Steuerelemente den Wert von 1000 Hz bzw. 500 Hz aufweisen, wird die Tiefpassfilterfrequenz des Modulationsziels auf 500 Hz eingestellt.
Erstelle benutzerdefinierte Modulationsparameter-Klassen
Sie können Ihre eigene Modulationsparameter-Klasse erstellen, indem Sie von der USoundModulationParameter-Basis-Klasse erben und die folgenden Funktionen implementieren:
GetMixFunction: Wird erwartet, eine Funktion zurückzugeben, die einen Input und Output Wert mischt.
GetUnitConversionFunction: Wird erwartet, eine Funktion zurückzugeben, die einen Wert in einen Einheitenraum transformiert.
GetNormalizedConversionFunction: Wird erwartet, eine Funktion zurückzugeben, die einen Wert in den normalisierten Raum transformiert.
Weitere Informationen finden Sie in der Audio Modulation C++ API Reference.
Steuerbusse
Steuerbusse sind Connectors, die auf einen Modulationsparameter referenzieren. Sie können sein:
Wird von Steuerbus-Mixes und Modulationsgeneratoren zur Modulation verwendet.
Referenziert und neu zugeordnet durch Parameter-Patches.
Es ist im Allgemeinen eine gute Idee, einen Steuerelementbus für jede Kategorie von Klängen zu erstellen, die Sie modulieren möchten. Die Kategorie kann allgemein sein, wie Soundeffekte (CB_SFX), oder spezifisch, wie Angriffssounds(CB_Attacks). In diesem Beispiel könnte ein Schwertschwingen-Sound beide Steuerbusse in seiner Modulation Pipeline haben.
Steuerbus-Eigenschaften
| Eigenschaft | Beschreibung |
|---|---|
Bypass | Wenn aktiviert, sendet der Steuerbus den Standardwert des Parameters an alle angeschlossenen Modulationsziele. Der Steuerbus bleibt in beiden Fällen aktiv. |
Parameter | Der zu verwendende Modulationsparameter. Der Standardwert des jeweiligen Modulationsparameters wird als Standardwert für diesen Steuerbus verwendet. |
Adresse überschreiben | Wenn aktiviert, können Sie die Adressen-Eigenschaft ändern. |
Adresse | Der Name der internen Referenz (wird von einigen Blueprint-Funktionen verwendet). Als Standard dient der Asset-Name, kann aber durch Aktivieren von Adresse überschreiben geändert werden. |
Generators | Ein Array von Modulation Generatoren, die den Bus algorithmisch steuern. |
Steuerbus-Mixe
Steuerbus-Mixe sind Modulatoren, die Ihnen dabei helfen:
Mehrere Steuerbuswerte gleichzeitig beeinflussen.
Modulieren Sie mit Steuerbussen, die mit anderen Steuerbus-Mixes gemeinsam genutzt werden.
Verwende Mix-Profile, um Audio in Echtzeit zu testen und zu tweaken.
Steuerbus-Mix Eigenschaften
| Eigenschaft | Beschreibung |
|---|---|
Mix aktivieren | [Button] Aktiviert den Mix beim angegebenen Profil- Index in allen aktiven Welten. |
Alle Mixes deaktivieren | [Button] Deaktiviert alle Mixe in allen aktiven Welten. |
Mix deaktivieren | [Button] Deaktiviert den Mix am angegebenen Index in allen aktiven Welten. |
Mix aus Profil laden | [Button] Lädt den Mix beim angegebenen Profilindex. Dies überschreibt alle Einstellungen, die Sie aktuell im Mix haben. Mix-Profile werden aus |
Mix zum Profil speichern | [Button] Speichert den Mix im angegebenen Profil-Index. Dies überschreibt alle am Index vorhandenen Einstellungen. Mix-Profile werden in |
Solo-Mix | [Button] Deaktiviert alle anderen Mixe und aktiviert den Mix am angegebenen Profil-Index in allen aktiven Welten. Nur für im Editor Testen. |
Profilindex | Der Index (Ganzzahl) des Mix-Profils, das von den Mix-Profil-Schaltflächen angesteuert wird. Jedes Mix-Profil hat ein Array von Mixstufen, die bestimmen, wie angehängte Modulationsziele moduliert werden. |
Mischstufen | Ein Array von Steuerbus-Referenzen und assoziierten Mix-Informationen. |
Mixstufen > Bus | Der Steuerbus, durch den der Wert gesendet wird. |
Mixstufen > Wert | Der Wert, der über den Steuerbus geschickt werden soll. Sie können den Wert in Einheiten oder den normalisierten Wert direkt setzen. |
Mixstufen> Angriffszeit | Die Dauer (in Sekunden), die für den Übergang vom Standardwert des Modulationsparameters zum angegebenen Wert benötigt wird, wenn der Mix aktiviert wird. |
Mixstufen > Freigabezeit | Die Dauer (in Sekunden), die für den Übergang vom angegebenen Wert zum Standardwert des Modulationsparameters benötigt wird, wenn der Mix deaktiviert ist. |
Dauer | Bei einem Wert von größer als oder gleich 0 startet der Mix einen Timer, wenn er aktiviert wird. Wenn der Timer den eingestellten Wert für die Dauer erreicht, deaktiviert sich der Mix selbst. |
Bei Aktivierung neu auslösen | Steuert das Verhalten, wenn Sie einen Mix aktivieren, der bereits aktiviert wurde. Wenn dies auf False gesetzt ist, passiert nichts (außer, dass der Dauer-Timer zurückgesetzt wird). When dies auf True gesetzt ist, setzt der Mix alle Bühnen auf ihre Standardwerte zurück und aktiviert sie, wodurch die Angriffe erneut durchlaufen werden. Das verhält sich ähnlich wie das Retriggern einer Hüllkurve. |
Die Mix-Profil-Schaltflächen im Steuerbus-Mix Details-Panel sind hilfreich zum Anpassen und Testen Ihres Miyxes im Play in Editor (PIE) in Echtzeit. Ihre finale Implementierung der Mix-Steuerung sollte jedoch in Blueprint erfolgen.
Die Eigenschaften von Steuerbus-Mixes wurden aktualisiert, und einige Funktionen, die Steuerbus-Mixes umfassen, haben Inputs für die neuen Variablen Dauer und Aktivieren von Retrigger ein:
Parameter-Patches
Parameter-Patches sind hybride Connector-Modulatoren, die vor allem auf zwei Arten hilfreich sind:
Sie Transformieren einen oder mehr Steuerbus-Werte in einen einzigen Output-Wert.
Sie können damit die Steuerbus-Wertkurven personalisieren. Das ist besonders hilfreich für die Neuzuweisung von Werten und die Erstellung verschiedener Ein-/Ausblendeffekte.
Die Zuweisung eines Parameter-Patchs mit mehreren Steuerelementen zu einem Modulationsziel funktioniert ähnlich, wie wenn Sie jedes dieser Steuerelemente einzeln zum Modulationsziel einstellen.
Parameterpatch-Eigenschaften
| Eigenschaft | Beschreibung |
|---|---|
Bypass | Wenn aktiviert, sendet der Patch den Standardwert des Parameters an alle angeschlossenen Modulationsziele. Das Parameter-Patch bleibt in beiden Fällen aktiv. |
Parameter | Der Modulationsparameter, der bestimmt, wie sich die Steuerbusse (in Inputs) mischen. |
Inputs | Ein Array von Steuerbus-Referenzen und assoziierten Transformieren. Der Output jedes dieser Inputs wird mit der Funktion des Modulationsparameter-Patchs gemischt. Befinden sich keine Steuerbusse im Array, sendet der Patch den Standardwert des Parameters an die angehängten Modulationsziele. |
Inputs > Sample-And-Hold | Wenn aktiviert, speichert der Steuerbus den Wert, wenn das Parameter-Patch initialisiert wird, und hält ihn für die Lebenszeit des Patches. |
Inputs > Kurventyp | Die Kurve, die beim Remapping der normalisierten Werte des Steuerbusses [0.0 - 1.0] anwenden soll. Optionen umfassen:
|
Inputs > Bus | Der Eingabe-Steuer-Bus. |
Modulation-Generatoren
Modulationsgeneratoren sind hybride Connector-Modulatoren, die Werte über die Zeit erzeugen. Sie können mit ihnen modulieren, indem Sie sie auf Steuerbus- oder Modulation Destination-Eigenschaften einstellen.
Das Plugin bietet Implementierungen für folgende Typen:
Tief-Frequenz Oszillator (LFO): Generiert Werte basierend auf den Schwingungen einer bestimmten Wellenform, etwa Sinus oder Rechteck.
Hüllkurvenfolger: Generiert Werte basierend auf der Amplitude eines bestimmten Audio-Busses.
AD-Hüllkurve: Generiert Werte basierend auf einer bestimmten Angriffs- und Abklingzeit-Hüllkurve.
Erstellen Sie benutzerdefinierte Modulation Generatoren
Sie können Ihre eigenen Modulationsgeneratoren mithilfe der Codegenerierungsvorlagen erstellen, die für die Klasse USoundModulationGenerator bereitgestellt werden. Diese Klasse generiert den Standardcode, der für die Erstellung und Registrierung eines Generators erforderlich ist.
Befolgen Sie diese Schritte, um eine USoundModulationGenerator-Klasse zu erstellen:
Wählen Sie Werkzeuge > Neue C++-Klasse.
Wählen Sie im Fenster Parent-Klasse auswählen die Option Alles auswählen aus.
Wählen Sie unter SoundModulatorBase SoundModulatorGenerator aus.
Sie müssen folgende Funktionen implementieren:
GetValue: Wird erwartet, einen zwischengespeicherten, normalisierten Wert ohne Einheiten zwischen 0.0 und 1.0 zurückzugeben. Der Wert wird an die Modulationsziele weitergegeben.Update: Implementiert Erwartet die Berechnung des zwischengespeicherten Werts des nächsten Frames.
Sie können optional die folgenden Funktionen implementieren:
IsBypassed: Wird erwartet, einen booleschen Wert zurückzugeben, der basierend darauf, ob der Generatorwert in die Zielberechnungen aufgenommen werden sollte. Standardmäßig leitet er den Wert der erstelltenBypass-Eigenschaft USoundModulationGeneratoran die Unreal Audio Engine weiter.GetDebugValues: Erwartet ein Array von Strings pro Generatorinstanz, die zur Laufzeit mit derau.Debug.SoundModulators-Familie von Debugbefehlen in nicht ausgelieferten Builds angezeigt werden.GetDebugCategories: Erwartet ein statisches Array von Feldnamen, die den von diesen Instanzwerten bereitgestellten Werten entsprechen.
Weitere Informationen finden Sie in der Audio Modulation C++ API Reference.
Modulationsziele
Ein Modulationsziel ist ein Endpunkt, der mit einem Audio-Objekt verbunden ist, das einen Basis Float (in den vorgegebenen Einheiten) bereitstellt, der von Audio-Modulations-Assets moduliert wird.
Die folgenden Objekte haben Modulation Ziele:
Klangwellen
Metasound-Quellen
Audio-Komponenten
Synth-Komponenten
Sound-Klassen
Submixe
Quell-Effekte (nur BitCrusher und Chorus)
Sie finden die Modulationsziele für jedes unterstützte Audioobjekt im Details-Panel unter Modulation. Jedes Objekt listet seine unterstützten Modulation Zieltypen auf, die bestimmen, welche Eigenschaft, wie Lautstärke oder Tonhöhe, moduliert wird.
Um ein Modulationsziel zu verwenden, müssen Sie das assoziierte Kontrollkästchen Modulate einschalten und dann den gewünschten Connector (Steuerbus, Modulation-Generator oder Parameter-Patch) zum Array hinzufügen.
Routing-Optionen für Modulationsziele
Einige Modulationsziele, etwa solche von Audio-Komponenten, bieten vererbungsbasierte Routing-Optionen. Ein Child-Objekt kann Modulation Routing von einem Parent-Objekt erben. Im Speziellen können Audio-Komponenten vom angehängten Sound-Asset erben, und Sounds können von der angehängten Sound-Klasse erben.
| Routing-Option | Beschreibung |
|---|---|
Ausschalten | Deaktiviert die Modulation. |
Übernehmen | Übernimmt das Modulation vom Parent -Objekt. Das ist die Standardoption, da Sound-Klassen am häufigsten zum Einrichten von Modulation verwendet werden. |
Überschreiben | Überschreibt das Modulation des Parent Objekts mit den angegebenen Einstellungen. |
Vereinigung | Verwendet sowohl das übernommene Modulation vom Parent Objekt als auch die angegebenen Einstellungen. Wenn der gleiche Modulator in beiden Sets ist, wird er nur einmal berechnet. |
MetaSounds-Integration
Das Audio Modulation Plugin bietet die folgenden Metasound Knoten:
Modulatorwert holen: Gibt den entsprechenden Wert zurück, entweder normalisiert oder im Raum.
Mix-Modulatoren: Gibt einen gemischten Parameter aus zwei bestimmten Modulatoren zurück, entweder normalisiert oder im Raum.
Weitere Informationen zum Metasound-System finden Sie in der MetaSounds documentation.
Audio-Modulation und Gleichzeitigkeit
Es gibt eine CVar, die Volumenmodulation bei Quellen ermöglicht, um die Option Leiseste stoppen bei Gleichzeitigkeit zu beeinflussen. Es heißt:
au.Concurrency.IncludeVolumeModulation
Sie finden das Menü, indem Sie auf das Gleichzeitigkeit-Asset im Gleichzeitigkeit-Tab unter Auflösungsregel doppelklicken.
Wenn dies auf 0 gesetzt ist, wird die Modulation nicht in die Gleichzeitigkeit aufgenommen.
Wenn dies auf 1 gesetzt ist, wird das Volumen bei One-Shots moduliert, aber keine Tonschleifen.
Wenn dies auf 2 gesetzt ist, ist die Modulation für alle Klänge enthalten
Blueprint-API – Übersicht
Mit Blueprint können Sie Ihre Modulation dynamisch erstellen, steuern und damit andere Systeme wie das Gameplay oder visuelle Effekte steuern.
Die meisten Blueprint-Funktionen zur Audiomodulation finden Sie unter Audio > Modulation. In der folgenden Tabelle finden Sie einen Überblick auf hoher Ebene der Funktionen.
| Funktion | Varianten | Beschreibung |
|---|---|---|
Aktivieren … | Steuerbus-Mix | Aktiviert das angegebene Objekt. |
Löschen … | Alle Globalen Steuerbus-Mix-Werte, Globaler Steuerbus-Mix-Wert, Modulator | Setzt die bereitgestellten Bus-Parameter auf ihre Standardwerte zurück oder hebt die Verknüpfung auf. |
Erstellen … | AD-Hüllkurvengenerator, Steuerbus, Steuerbus-Mix, Steuerbus-Mix-Stufe, Hüllkurvenfolger-Generator, LFO-Generator, Modulator, Modulationsziel | Erstellt ein Objekt mit den bereitgestellten Standardwerten. Für die Modulation Ziel zählen die Steuerbusse und Generatoren ihre Referenzen, also wird dieses Objekt zu einer der Referenzen. Steuerbusse und Generatoren sind nur aktiv, wenn die Referenzanzahl größer als 0 ist. |
Deaktivieren … | Alle Steuerbus-Mixe, Steuerbus-Mix | Deaktiviert das bereitgestellte Objekt. |
Modulator holen | N/A | Holt den Modulator des angegebenen Modulationszieles ab. |
Modulatorwert holen | N/A | Holt den normierten Wert des angegebenen Modulators. |
Modulatoren vom Ziel holen | N/A | Ruft die Liste der Modulatoren ab, die aktuell auf ein Modulationsziel angewendet werden. |
Überwachten Modulatorwert holen | N/A | Holt den Wert des überwachten Modulatorwerts des angegebenen Modulation Destination-Objekts. |
Ist Steuerbus-Mix aktiv | N/A | Prüft, ob der jeweilige Steuerbus-Mix aktiv ist. |
Steuerbus-Mix aus Profil laden | N/A | Lädt den Steuerbus-Mix aus einem Profil in die UObject-Mixdefinition, deserialisiert aus einer |
Steuerbus-Mix im Profil speichern | N/A | Speichert eine Steuerbus.Mix in einem Profil, serialisiert in einer |
Festlegen … | Steuerbus-Mix, Steuerbus-Mix nch Filter, Globaler Steuerbus-Mix-Wert, Überwachter Modulator | Setzt Eigenschaften für das angegebene Objekt. Mit Steuerbus-Mix nach Filter erstellen können Sie Adressen im OSC-Stil nutzen. |
Aktualisieren … | Steuerbus-Mix, Modulator | Übernimmt Aktualisierungen vom bereitgestellten Objekt an den Audio-Thread. |
Modulationsrouting hinzufügen | N/A | Fügt die angegebene Gruppe von Modulatoren zur Audio-Komponente hinzu. Dies führt eine logische Vereinigung durch, so dass Duplikate von Modulatoren nicht hinzugefügt werden. Um bestehende Einstellungen vollständig zu überschreiben, verwenden Sie Modulationsweiterleitung einstellen.. |
Modulationsweiterleitung entfernen | N/A | Entfernt die angegebene Gruppe von Modulatoren aus der Audio-Komponente. Dies führt eine logische Subtraktion der Sets durch, sodass Modulatoren, die nicht im gegebenen Set sind, verbleiben. |
Es gibt auch hilfreiche Funktionen außerhalb der Gruppe Audio > Modulation. Die Funktionen Modulatoren holen und Modulationsweiterleitung einstellen bieten Überladungen für Audio-Komponente und Synth-Komponente und können verwendet werden, um die Modulationsziele einer Komponente zu holen oder festzulegen.
Weitere Informationen dazu finden Sie in der Audio-Modulations-Blueprint-API-Referenz.
Über UObjects und Proxys
Bei der Arbeit mit Audiomodulations-Komponenten und -Assets bearbeiten Sie üblicherweise UObject-Werte. Allerdings verwendet Audiomodulation aus zwei Gründen UObjects nicht direkt für die Verarbeitung.
UObjects werden im Game-Thread ausgeführt.
UObjects können zu Zeiten beseitigt werden, die außerhalb der Kontrolle des Audio-Modulationssystems liegen.
Als Ergebnis werden die gesetzten Werte in UObjects an Objekte im Audio-Modulationssystem im Audio-Rendering-Thread gesendet. Das müssen Sie beachten, da einige Blueprint-Funktionen das UObject bearbeiten und andere das Proxy-Objekt im Audio-Modulationssystem modifizieren.
Wenn eine Funktion nur den UObject Wert modifiziert, müssen Sie eine Update Blueprint Funktion aufrufen, um diese Änderungen an den Proxy zu senden. Wenn Sie außerdem eine Funktion aufrufen, die den UObject Wert nicht modifiziert, und dann eine Funktion zur Aktualisierung des Proxys aufrufen, überschreibt der UObject Wert den Proxy.
Obwohl Audiomodulation auf dem Audio-Rendern-Thread ausgeführt wird, läuft sie mit Block-Rate statt mit Sample-Rate.