123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616 |
- #pragma once
- #include "AkAudioDevice.h"
- #include "AkInclude.h"
- #include "AkGameplayTypes.h"
- #include "AkUnrealHelper.h"
- #include "Kismet/BlueprintFunctionLibrary.h"
- #include "AkGameplayStatics.generated.h"
- static_assert(sizeof(AkPlayingID) == sizeof(int32), "AkPlayingID is not 32 bits anymore. Change return value of PostEvent functions and callback info structures members!");
- UCLASS()
- class AKAUDIO_API UAkGameplayStatics : public UBlueprintFunctionLibrary
- {
- GENERATED_BODY()
- public:
- UAkGameplayStatics(const class FObjectInitializer& ObjectInitializer);
-
- UFUNCTION(BlueprintCallable, Category="Audiokinetic")
- static class UAkComponent * GetAkComponent( class USceneComponent* AttachToComponent, bool& ComponentCreated, FName AttachPointName = NAME_None, FVector Location = FVector(ForceInit), EAttachLocation::Type LocationType = EAttachLocation::KeepRelativeOffset );
- UFUNCTION(BlueprintCallable, Category="Audiokinetic")
- static bool IsEditor();
- UFUNCTION(BlueprintCallable, Category = "Audiokinetic")
- static bool IsGame(UObject* WorldContextObject);
-
- UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category="Audiokinetic|Actor", meta=(AdvancedDisplay="2", AutoCreateRefTerm = "PostEventCallback"))
- static int32 PostEvent( class UAkAudioEvent* AkEvent,
- class AActor* Actor,
- UPARAM(meta = (Bitmask, BitmaskEnum = "/Script/AkAudio.EAkCallbackType")) int32 CallbackMask,
- const FOnAkPostEventCallback& PostEventCallback,
- bool bStopWhenAttachedToDestroyed = false,
- FString EventName = FString(""));
-
- UFUNCTION(BlueprintCallable, Category = "Audiokinetic|Actor", meta = (Latent, LatentInfo = "LatentInfo", AdvancedDisplay = "2"))
- static int32 PostAndWaitForEndOfEvent(class UAkAudioEvent* AkEvent,
- class AActor* Actor,
- bool bStopWhenAttachedToDestroyed,
- FLatentActionInfo LatentInfo);
-
- UFUNCTION(BlueprintCallable, Category = "Audiokinetic|Actor", meta = (Latent, LatentInfo = "LatentInfo", AdvancedDisplay = "3", bStopWhenAttachedToDestroyed = "false", AutoCreateRefTerm = "ExternalSources", DeprecatedFunction, DeprecationMessage = "Use \"UAkAudioEvent::PostOnActorAndWait\"."))
- static void PostAndWaitForEndOfEventAsync(class UAkAudioEvent* AkEvent,
- class AActor* Actor,
- int32& PlayingID,
- bool bStopWhenAttachedToDestroyed,
- FLatentActionInfo LatentInfo
- );
-
- UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category="Audiokinetic|Actor", meta=(DeprecatedFunction, DeprecationMessage = "Use the \"Event Name\" field of PostEvent"))
- static void PostEventByName( const FString& EventName,
- class AActor* Actor,
- bool bStopWhenAttachedToDestroyed = false);
-
- UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category="Audiokinetic", meta=(WorldContext="WorldContextObject", AdvancedDisplay = "3"))
- static int32 PostEventAtLocation(UAkAudioEvent* AkEvent, FVector Location, FRotator Orientation,
- const FString& EventName, UObject* WorldContextObject);
-
- UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category="Audiokinetic", meta=(WorldContext="WorldContextObject", DeprecatedFunction, DeprecationMessage = "Use \"UAkAudioEvent::PostAtLocation\"."))
- static void PostEventAtLocationByName(const FString& EventName, FVector Location, FRotator Orientation, UObject* WorldContextObject );
-
- UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category = "Audiokinetic|Actor", meta=(DeprecatedFunction, DeprecationMessage = "Use \"UAkAudioEvent::ExecuteAction\"."))
- static void ExecuteActionOnEvent(class UAkAudioEvent* AkEvent, AkActionOnEventType ActionType, class AActor* Actor, int32 TransitionDuration = 0, EAkCurveInterpolation FadeCurve = EAkCurveInterpolation::Linear, int32 PlayingID = 0);
-
- UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category = "Audiokinetic|Actor", meta=(DeprecatedFunction, DeprecationMessage = "Use \"UAkAudioEvent::ExecuteAction\"."))
- static void ExecuteActionOnPlayingID(AkActionOnEventType ActionType, int32 PlayingID, int32 TransitionDuration = 0, EAkCurveInterpolation FadeCurve = EAkCurveInterpolation::Linear);
-
- UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category="Audiokinetic", meta=(WorldContext="WorldContextObject", AdvancedDisplay = "6"))
- static class UAkComponent* SpawnAkComponentAtLocation(UObject* WorldContextObject, class UAkAudioEvent* AkEvent, FVector Location, FRotator Orientation, bool AutoPost, const FString& EventName, bool AutoDestroy = true);
-
- UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category = "Audiokinetic", meta = (AdvancedDisplay = "4"))
- static void SetRTPCValue(class UAkRtpc const* RTPCValue, float Value, int32 InterpolationTimeMs, class AActor* Actor, FName RTPC);
-
- UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category = "Audiokinetic", meta = (AdvancedDisplay = "7"))
- static void GetRTPCValue(class UAkRtpc const* RTPCValue, int32 PlayingID, ERTPCValueType InputValueType, float& Value, ERTPCValueType& OutputValueType, class AActor* Actor, FName RTPC);
-
- UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category = "Audiokinetic", meta = (AdvancedDisplay = "8"))
- static void ResetRTPCValue(class UAkRtpc const* RTPCValue, int32 InterpolationTimeMs, class AActor* Actor, FName RTPC);
-
- UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category="Audiokinetic", meta = (AdvancedDisplay = "1"))
- static void SetState(class UAkStateValue const* StateValue, FName StateGroup, FName State);
-
- UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category="Audiokinetic|Actor", meta = (AdvancedDisplay = "2"))
- static void PostTrigger(class UAkTrigger const* TriggerValue, class AActor* Actor, FName Trigger);
-
-
- UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category="Audiokinetic|Actor", meta = (AdvancedDisplay = "2"))
- static void SetSwitch(class UAkSwitchValue const* SwitchValue, class AActor* Actor, FName SwitchGroup, FName SwitchState);
-
- UFUNCTION(BlueprintCallable, Category = "Audiokinetic")
- static void SetMultiplePositions(UAkComponent* GameObjectAkComponent, TArray<FTransform> Positions,
- AkMultiPositionType MultiPositionType = AkMultiPositionType::MultiDirections);
-
- UFUNCTION(BlueprintCallable, Category = "Audiokinetic")
- static void SetMultipleChannelEmitterPositions(UAkComponent* GameObjectAkComponent,
- TArray<AkChannelConfiguration> ChannelMasks,
- TArray<FTransform> Positions,
- AkMultiPositionType MultiPositionType = AkMultiPositionType::MultiDirections
- );
-
- UFUNCTION(BlueprintCallable, Category = "Audiokinetic")
- static void SetMultipleChannelMaskEmitterPositions(UAkComponent* GameObjectAkComponent,
- TArray<FAkChannelMask> ChannelMasks,
- TArray<FTransform> Positions,
- AkMultiPositionType MultiPositionType = AkMultiPositionType::MultiDirections
- );
-
- UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category="Audiokinetic|Actor")
- static void UseReverbVolumes(bool inUseReverbVolumes, class AActor* Actor);
- UFUNCTION(BlueprintCallable, Category = "Audiokinetic|Actor", meta = (AdvancedDisplay = "6", DeprecatedFunction, DeprecationMessage = "This function is deprecated and will be removed in future releases."))
- static void UseEarlyReflections(class AActor* Actor,
- class UAkAuxBus* AuxBus,
- int Order = 1,
- float BusSendGain = 1.f,
- float MaxPathLength = 100000.f,
- bool SpotReflectors = false,
- const FString& AuxBusName = FString(""));
-
- UFUNCTION(BlueprintCallable, Category = "Audiokinetic|Spatial Audio")
- static void SetReflectionsOrder(int Order, bool RefreshPaths);
-
- UFUNCTION(BlueprintCallable, Category = "Audiokinetic|Spatial Audio")
- static void SetPortalObstructionAndOcclusion(UAkPortalComponent* PortalComponent, float ObstructionValue, float OcclusionValue);
-
- UFUNCTION(BlueprintCallable, Category = "Audiokinetic|Spatial Audio")
- static void SetGameObjectToPortalObstruction(UAkComponent* GameObjectAkComponent, UAkPortalComponent* PortalComponent, float ObstructionValue);
-
- UFUNCTION(BlueprintCallable, Category = "Audiokinetic|Spatial Audio")
- static void SetPortalToPortalObstruction(UAkPortalComponent* PortalComponent0, UAkPortalComponent* PortalComponent1, float ObstructionValue);
-
- UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category = "Audiokinetic|Actor")
- static void SetOutputBusVolume(float BusVolume, class AActor* Actor);
-
- UFUNCTION(BlueprintCallable, Category = "Audiokinetic")
- static void SetBusConfig(const FString& BusName, AkChannelConfiguration ChannelConfiguration);
-
- UFUNCTION(BlueprintCallable, Category = "Audiokinetic")
- static void SetPanningRule(PanningRule PanRule);
-
-
- UFUNCTION(BlueprintCallable, meta = (AutoCreateRefTerm = "in_ListenerIDs"), Category = "Audiokinetic")
- static void AddOutput(const FAkOutputSettings& in_Settings, FAkOutputDeviceID& out_DeviceID, UPARAM(ref) TArray<UAkComponent*>& in_ListenerIDs);
-
- UFUNCTION(BlueprintCallable, Category = "Audiokinetic")
- static void RemoveOutput(FAkOutputDeviceID in_OutputDeviceId);
-
- UFUNCTION(BlueprintCallable, Category = "Audiokinetic")
- static void ReplaceMainOutput(const FAkOutputSettings& MainOutputSettings);
-
- UFUNCTION(BlueprintCallable, Category = "Audiokinetic")
- static void GetSpeakerAngles(TArray<float>& SpeakerAngles, float& HeightAngle, const FString& DeviceShareSet = "");
-
- UFUNCTION(BlueprintCallable, Category = "Audiokinetic")
- static void SetSpeakerAngles(const TArray<float>& SpeakerAngles, float HeightAngle, const FString& DeviceShareSet = "");
-
- UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category="Audiokinetic|Actor")
- static void SetOcclusionRefreshInterval(float RefreshInterval, class AActor* Actor );
-
- UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category="Audiokinetic|Actor")
- static void StopActor(class AActor* Actor);
-
- UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category="Audiokinetic")
- static void StopAll();
-
- UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category = "Audiokinetic")
- static void CancelEventCallback(const FOnAkPostEventCallback& PostEventCallback);
-
- UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category="Audiokinetic|AkAmbientSound", meta=(WorldContext = "WorldContextObject"))
- static void StartAllAmbientSounds(UObject* WorldContextObject);
-
-
- UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category="Audiokinetic|AkAmbientSound", meta=(WorldContext = "WorldContextObject"))
- static void StopAllAmbientSounds(UObject* WorldContextObject);
-
-
- UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category = "Audiokinetic|SoundBanks", meta = (DeprecatedFunction, DeprecationMessage = "Use the \"ClearSoundBanksAndMedia\" instead."))
- static void ClearBanks();
-
- UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category = "Audiokinetic|SoundBanks")
- static void ClearSoundBanksAndMedia();
-
- UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category = "Audiokinetic|SoundBanks")
- static void LoadInitBank();
-
- UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category = "Audiokinetic|SoundBanks")
- static void UnloadInitBank();
-
- UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category = "Audiokinetic|SoundBanks", meta = (DeprecatedFunction, DeprecationMessage = "To manually load and unload the bank and media resources for your Wwise Assets, use the Wwise Asset LoadData and UnloadData Blueprint functions."))
- static void LoadBankByName(const FString& BankName);
-
- UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category = "Audiokinetic|SoundBanks", meta = (DeprecatedFunction, DeprecationMessage = "To manually load and unload the bank and media resources for your Wwise Assets, use the Wwise Asset LoadData and UnloadData Blueprint functions."))
- static void UnloadBankByName(const FString& BankName);
-
- UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category="Audiokinetic|Debug")
- static void StartOutputCapture(const FString& Filename);
-
- UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category="Audiokinetic|Debug")
- static void AddOutputCaptureMarker(const FString& MarkerText);
-
- UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category="Audiokinetic|Debug")
- static void StopOutputCapture();
-
-
- UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category="Audiokinetic|Debug")
- static void StartProfilerCapture(const FString& Filename);
-
- UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category="Audiokinetic|Debug")
- static void StopProfilerCapture();
- UFUNCTION(BlueprintCallable, Category = "Audiokinetic|Culture")
- static FString GetCurrentAudioCulture();
- UFUNCTION(BlueprintCallable, Category = "Audiokinetic|Culture")
- static TArray<FString> GetAvailableAudioCultures();
- UFUNCTION(BlueprintCallable, Category = "Audiokinetic|Culture", meta = (WorldContext = "WorldContextObject", Latent, LatentInfo = "LatentInfo"))
- static void SetCurrentAudioCulture(const FString& AudioCulture, FLatentActionInfo LatentInfo, UObject* WorldContextObject);
- UFUNCTION(BlueprintCallable, Category = "Audiokinetic|Culture")
- static void SetCurrentAudioCultureAsync(const FString& AudioCulture, const FOnSetCurrentAudioCultureCallback& Completed);
- UFUNCTION(BlueprintCallable, Category = "Audiokinetic")
- static UObject* GetAkAudioTypeUserData(const UAkAudioType* Instance, const UClass* Type);
-
- UFUNCTION(BlueprintCallable, Category = "Audiokinetic")
- static bool SetOutputDeviceEffect(const FAkOutputDeviceID InDeviceID, const int32 InEffectIndex, const UAkEffectShareSet* InEffectShareSet);
-
- UFUNCTION(BlueprintCallable, Category = "Audiokinetic")
- static bool SetBusEffectByName(const FString InBusName, const int32 InEffectIndex, const UAkEffectShareSet* InEffectShareSet);
-
- UFUNCTION(BlueprintCallable, Category = "Audiokinetic")
- static bool SetBusEffectByID(const FAkUniqueID InBusID, const int32 InEffectIndex, const UAkEffectShareSet* InEffectShareSet);
-
- UFUNCTION(BlueprintCallable, Category = "Audiokinetic")
- static bool SetAuxBusEffect(const UAkAuxBus* InAuxBus, const int32 InEffectIndex, const UAkEffectShareSet* InEffectShareSet);
-
- UFUNCTION(BlueprintCallable, Category = "Audiokinetic")
- static bool SetActorMixerEffect(const FAkUniqueID InAudioNodeID, const int32 InEffectIndex, const UAkEffectShareSet* InEffectShareSet);
-
- UFUNCTION(BlueprintCallable, Category = "Audiokinetic|Actor")
- static void SetDistanceProbe(AActor* Listener, AActor* DistanceProbe);
- static bool m_bSoundEngineRecording;
- };
|