diff --git a/hwanyoung2/Plugins/FMODStudio/Docs/audiolink.html b/hwanyoung2/Plugins/FMODStudio/Docs/audiolink.html new file mode 100644 index 00000000..0777baac --- /dev/null +++ b/hwanyoung2/Plugins/FMODStudio/Docs/audiolink.html @@ -0,0 +1,136 @@ + +
+Unreal Integration 2.02
+ +AudioLink is an API that connects Unreal Audio Engine to external software, allowing Audio to be passed from Unreal to FMOD. By using hardware abstraction, AudioLink bypasses the need for direct hardware access and provides the strengths of both Unreal Audio Engine and FMOD.
+This section will assume a basic understanding of the Unreal AudioLink system and will focus on the FMOD specific information.
+The FMOD for Unreal AudioLink module assumes the Event linked contains a Programmer Instrument, this is what it uses to pass the sound data from Unreal to FMOD.
+
+Generally you will want an Event that has a looping async programmer sound, because we may not know the length of the sounds being played from Unreal (ie. submixes are generally alive from startup to shutdown).
In the FMOD for Unreal Settings, you can choose to enable/disable AudioLink support. This will load/unload the appropriate modules when the editor is reloaded.
+The default FMOD AudioLink Settings can be found in the project settings, under 'Plugins > FMOD AudioLink'. This is used in cases where the property has not been set, so it is unnecessary to pass it every time you create an AudioLink.
+You can create multiple FMOD AudioLink Settings assets for different FMOD Events, allowing you to easily route different sounds to different events allowing for greater customization.
+These settings are used to set up the FMOD Event:
FMOD supports AudioLink through three link types:
+FMODAudioLink
.MetaSounds, Sound Cues, and Sound Waves are classed as 'Sources', to play them through AudioLink you can use the Attenuation Settings or the Submix.
+You can set the Send to Audio Link
flag and the Audio Link Settings property in the submix's Details panel, under 'Audio Link'.
AudioLink Component support is included through the FMOD AudioLink
Component, but is often unnecessary as sources are componentless by design, highly optimized for scale, and provide engine-level support.
The AudioLink Component is then controlled through the API:
+PlayLink
SetLinkSound
StopLink
IsLinkPlaying
In UE5.2 and UE5.3, two events will spawn when using the FMODAudioLinkComponent: one for the component (intended) and one for the sound source (not intended). This appears to be an engine bug.
+Workaround:
+Create a new FMODAudioLinkSettings asset and leave the Link Event
empty, then assign this to the sound source (through the Attenuation Settings).
In the source/component Details panel you will find the option to individually override or assign Attenuation settings:
+Meta Sound | +Sound Cue | +Audio Component | +
---|---|---|
![]() |
+![]() |
+![]() |
+
To send specific sounds to FMOD, use the settings under Attenuation (AudioLink)
:
log LogFMODAudioLink All
to output (a lot) more detailed information to the log. Send to AudioLink
flag on the source or submix.Unreal Integration 2.02
+ +Automatically generated methods for working with FMOD and Unreal Enums.
+Methods:
+Converts a byte to an EFMOD_STUDIO_STOP_MODE.
++
EFMOD_STUDIO_STOP_MODE ByteToEnum(
+ byte Byte
+);
+
See Also: EFMOD_STUDIO_STOP_MODE.
+Returns every value in the EFMOD_STUDIO_STOP_MODE enum.
++
EFMOD_STUDIO_STOP_MODE ForEachEFMOD_STUDIO_STOP_MODE();
+
See Also: EFMOD_STUDIO_STOP_MODE.
+Returns the total number of entries in the EFMOD_STUDIO_STOP_MODE enum.
++
int GetNumberOfEntriesInEFMOD_STUDIO_STOP_MODE();
+
See Also: EFMOD_STUDIO_STOP_MODE.
+Returns the value of an EFMOD_STUDIO_STOP_MODE member.
++
EFMOD_STUDIO_STOP_MODE LiteralEnumEFMOD_STUDIO_STOP_MODE(
+ EFMOD_STUDIO_STOP_MODE Enum
+);
+
See Also: EFMOD_STUDIO_STOP_MODE.
Unreal Integration 2.02
+ +Automatically generated methods for working with FMOD and Unreal Structs.
+Methods
+Adds a node that breaks an 'FMODAttenuationDetails` into its member fields.
+
+
FMODAttenuationDetails BreakFMODAttenuationDetails(
+ FMODAttenuation Details
+);
+
Adds a node that breaks an 'FMODOcclusionDetails' into its member fields.
++
FMODOcclusionDetails BreakFMODOcclusionDetails(
+ FMODOcclusion Details
+)
+
Adds a node that creates an 'FMODAttenuationDetails' from its members.
++
FMODAttenuationDetails MakeFMODAttenuationDetails(
+ bool OverrideAttenuation,
+ float MinimumDistance,
+ float MaximumDistance
+);
+
OverrideAttenuation
is true.OverrideAttenuation
is true.See Also: FMODAttenuationDetails.
+Adds a node that creates an 'FMODEventInstance' from its members.
++
FMODEventInstance MakeFMODEventInstance();
+
See Also: Event Instance.
+Adds a node that creates an 'FMODOcclusionDetails' from its members.
++
FMODAttenuationDetails MakeFMODAttenuationDetails(
+ bool EnableOcclusion,
+ enum OcclusionTraceChannel,
+ bool UseComplexCollisionForOcclusion
+);
+
See Also: FMODOcclusionDetails.
Unreal Integration 2.02
+ +Automatically generated methods for working with FMOD and Unreal Utilities.
+Methods:
+Cast Failed
path will be taken.Cast Failed
path will be taken.Cast Failed
path will be taken.Cast Failed
path will be taken.Cast Failed
path will be taken.Cast Failed
path will be taken.Cast Failed
path will be taken.Cast Failed
path will be taken.Cast Failed
path will be taken.Cast Failed
path will be taken.Cast Failed
path will be taken.Cast Failed
path will be taken.Cast Failed
path will be taken.Cast Failed
path will be taken.Cast Failed
path will be taken.Cast Failed
path will be taken.Cast Failed
path will be taken.Cast Failed
path will be taken.Cast Failed
path will be taken.Cast Failed
path will be taken.Cast Failed
path will be taken.Cast Failed
path will be taken.Access object as a class 'FMODAmbientSound' it may be an instance of. On failure the Cast Failed
path will be taken.
+
FMODAmbientSound CastToFMODAmbientSound(
+ Object Object
+);
+
Access class 'FMODAmbientSound' as one it may inherit from. On failure the Cast Failed
path will be taken.
+
FMODAmbientSound CastToFMODAmbientSoundclass(
+ ObjectClassReference Class
+);
+
Access object as a class 'FMODAnimNotifyPlay' it may be an instance of. On failure the Cast Failed
path will be taken.
+
FMODAnimNotifyPlay CastToFMODAnimNotifyPlay(
+ Object Object
+);
+
Access class 'FMODAnimNotifyPlay' as one it may inherit from. On failure the Cast Failed
path will be taken.
+
FMODAnimNotifyPlay CastToFMODAnimNotifyPlayclass(
+ ObjectClassReference Class
+);
+
Access object as a class 'FMODAsset' it may be an instance of. On failure the Cast Failed
path will be taken.
+
FMODAsset CastToFMODAsset(
+ Object Object
+);
+
Access class 'FMODAsset' as one it may inherit from. On failure the Cast Failed
path will be taken.
+
FMODAsset CastToFMODAssetclass(
+ ObjectClassReference Class
+);
+
Access object as a class 'FMODAudioComponent' it may be an instance of. On failure the Cast Failed
path will be taken.
+
FMODAudioComponent CastToFMODAudioComponent(
+ Object Object
+);
+
Access class 'FMODAudioComponent' as one it may inherit from. On failure the Cast Failed
path will be taken.
+
FMODAudioComponent CastToFMODAudioComponentclass(
+ ObjectClassReference Class
+);
+
Access object as a class 'FMODBank' it may be an instance of. On failure the Cast Failed
path will be taken.
+
FMODBank CastToFMODBank(
+ Object Object
+);
+
Access class 'FMODBank' as one it may inherit from. On failure the Cast Failed
path will be taken.
+
FMODBank CastToFMODBankclass(
+ ObjectClassReference Class
+);
+
Access object as a class 'FMODBus' it may be an instance of. On failure the Cast Failed
path will be taken.
+
FMODBus CastToFMODBus(
+ Object Object
+);
+
Access class 'FMODBus' as one it may inherit from. On failure the Cast Failed
path will be taken.
+
FMODBus CastToFMODBusclass(
+ ObjectClassReference Class
+);
+
Access object as a class 'FMODEvent' it may be an instance of. On failure the Cast Failed
path will be taken.
+
FMODEvent CastToFMODEvent(
+ Object Object
+);
+
Access class 'FMODEvent' as one it may inherit from. On failure the Cast Failed
path will be taken.
+
FMODEvent CastToFMODEventclass(
+ ObjectClassReference Class
+);
+
Access object as a class 'FMODPort' it may be an instance of. On failure the Cast Failed
path will be taken.
+
FMODPort CastToFMODPort(
+ Object Object
+);
+
Access class 'FMODPort' as one it may inherit from. On failure the Cast Failed
path will be taken.
+
FMODPort CastToFMODPortclass(
+ ObjectClassReference Class
+);
+
Access object as a class 'FMODSnapshot' it may be an instance of. On failure the Cast Failed
path will be taken.
+
FMODSnapshot CastToFMODSnapshot(
+ Object Object
+);
+
Access class 'FMODSnapshot' as one it may inherit from. On failure the Cast Failed
path will be taken.
+
FMODSnapshot CastToFMODSnapshotclass(
+ ObjectClassReference Class
+);
+
Access object as a class 'FMODSnapshotReverb' it may be an instance of. On failure the Cast Failed
path will be taken.
+
FMODSnapshotReverb CastToFMODSnapshotReverb(
+ Object Object
+);
+
Access class 'FMODSnapshotReverb' as one it may inherit from. On failure the Cast Failed
path will be taken.
+
FMODSnapshotReverb CastToFMODSnapshotReverbclass(
+ ObjectClassReference Class
+);
+
Access object as a class 'FMODVCA' it may be an instance of. On failure the Cast Failed
path will be taken.
+
FMODVCA CastToFMODVCA(
+ Object Object
+);
+
Access class 'FMODVCA' as one it may inherit from. On failure the Cast Failed
path will be taken.
+
FMODVCA CastToFMODVCAclass(
+ ObjectClassReference Class
+);
+
Unreal Integration 2.02
+ +Niagara is Unreal Engines VFX System and this section explains how to use the FMOD Integration with it.
+In Niagara you are able to play one shot events, play persistent events and update parameters.
+To view the available FMOD Niagara Modules, make sure to enable 'Plugins' in the Source Filtering options:
+UE5 | +UE4 | +
---|---|
![]() |
+![]() |
+
An FMOD Niagara module can be added to one or multiple Unreal Niagara Modules depending on the desired behavior.
+This can be added to the System, Emitter or Particle modules.
+Plays a one shot event at the given location that cannot be controlled after being played.
+UE5 | +UE4 | +
---|---|
![]() |
+![]() |
+
![]() |
+![]() |
+
This can be added to the System, Emitter or Particle modules.
+An FMODEvent reference that can be used with the play and update modules.
+By assigning an Event to the FMOD Event Player, you can use it to play multiple one shots of the same event with the same settings or it can be used with persistance events that require updating over its lifetime.
UE5 | +UE4 | +
---|---|
![]() |
+![]() |
+
![]() |
+Found in UE editor window ![]() |
+
This can be added to the System, Emitter or Particle modules.
+Play an event from a reference that can later be used with UpdatePersistentFMODEvent
.
UE5 | +UE4 | +
---|---|
![]() |
+![]() |
+
This can be added to the System, Emitter or Particle modules.
+Used to update information of an event referenced from FMODEventPlayer.
+You can have multiple of these if you need to control multiple parameters.
FMOD Parameters need to be referenced by index from the FMODEventPlayer
.
UE5 | +UE4 | +
---|---|
![]() |
+![]() |
+
Basic example of how to add a one shot event to an emitter:
+- Add a PlayFMODEvent module to emitter.
+- Assign an FMOD Event.
+- Add your emitter to the scene and press play to hear it in action.
PlayPersistentFMODEvent
module selected, drag your FMODEventPlayer
into the FMOD Event Player
parameter.UE5 | +UE4 | +
---|---|
![]() |
+![]() |
+
FMODEventPlayer
.Continuing on from Playing a persistent event as you will need both the event player and play modules.
+UpdatePersistentFMODEvent
module selected, drag your FMODEventPlayer
into the FMOD Event Player
parameter.UE5 | +UE4 | +
---|---|
![]() |
+![]() |
+
UE5 | +UE4 | +
---|---|
![]() |
+![]() |
+
![]() |
+![]() |
+
![]() |
+![]() |
+