UE4のAngelScript上でwwiseを使ってBGM再生

class AMyLevel : ALevelScriptActor
{

    UPROPERTY()
    UAkAudioBank MainBank = Asset("/Game/WwiseAudio/Main_Bank.Main_Bank");

    UPROPERTY()
    UAkAudioEvent PlayTitleAsset = Asset("/Game/WwiseAudio/Events/Default_Work_Unit/PlayTitle.PlayTitle");

    UFUNCTION(BlueprintCallable)
    void InitBGM()
    {
        AkGameplay::LoadInitBank();
        AkGameplay::LoadBank(MainBank, "", FLatentActionInfo());
    }

    UFUNCTION(BlueprintCallable)
    void PlayTitle()
    {
        AkGameplay::PostEvent(PlayTitleAsset, Gameplay::GetPlayerPawn(0), 0, FOnAkPostEventCallback(), TArray<FAkExternalSourceInfo>());
    }
};

BP側で継承してアウトゲーム部分でBGMを簡易再生するようなシチュエーションを想定。
InitBGMを呼んでPlayTitleを呼べばPostEventされる。
BP側ではデフォルト値で埋めてくれる部分もAS側では手動で埋める必要があることに注意。

Asset()はコンストラクタかdefaultに対してしか使えないっぽい。
関数内で参照を取りたい場合は

Cast<UAkAudioEvent>(LoadAsset(nullptr, "/Game/WwiseAudio/Events/Default_Work_Unit/PlayTitle.PlayTitle"));  

のようにする。

追記

staticが無い代わりにグローバル関数をBlueprintCallableな関数として登録が可能だったので
これでいいかも。

UFUNCTION(BlueprintCallable)
void InitBGM()
{
    UAkAudioBank MainBank = Cast<UAkAudioBank>(LoadObject(nullptr, "/Game/WwiseAudio/Main_Bank.Main_Bank"));
    AkGameplay::LoadInitBank();
    AkGameplay::LoadBank(MainBank, "", FLatentActionInfo());
}

UFUNCTION(BlueprintCallable)
void PlayTitleBGM()
{
    UAkAudioEvent PlayTitleAsset = Cast<UAkAudioEvent>(LoadObject(nullptr, "/Game/WwiseAudio/Events/Default_Work_Unit/PlayTitle.PlayTitle"));
    AkGameplay::PostEvent(PlayTitleAsset, Gameplay::GetPlayerPawn(0), 0, FOnAkPostEventCallback(), TArray<FAkExternalSourceInfo>());
}