音声の再生

音声再生手順

音声データの再生には、AtomComponentを使用します。
具体的な処理手順は以下のとおりです。
  1. CriWareApi.h、AtomComponent.hをインクルードする。
  2. AtomComponentを作成する。
  3. 音声データアセットをロードする。
  4. UAtomComponent::SetSound関数でAtomComonentに音声データをセットする。
  5. UAtomComponent::Play関数で再生を開始する。
具体的なコードは以下のとおりです。
/* 音声再生に必要なヘッダをインクルード */
#include "CriWareApi.h"
#include "AtomComponent.h"

void AMyActor::BeginPlay()
{
    Super::BeginPlay();

        :
    /* AtomComponentの作成 */
    UAtomComponent* Player = NewObject<UAtomComponent>(this, UAtomComponent::StaticClass());
    if (Player == nullptr) {
        UE_LOG(MyActor, Error, TEXT("Failed to create AtomComponent."));
        return;
    }

    /* アセットを動的にロード */
    /* 注意)アセットのパスは再生するコンテンツに合わせて変更する必要があります。   */
    /*    (本サンプルではContentフォルダ直下のvoice_aを使用します。)           */
    USoundAtomCue* SoundData = Cast<USoundAtomCue>(
        StaticLoadObject(USoundAtomCue::StaticClass(), NULL, TEXT("/Game/voice_a")));
    if (SoundData == nullptr) {
        UE_LOG(MyActor, Error, TEXT("Failed to load SoundAtomCue."));
        return;
    }

    /* 音声データをセット */
    Player->SetSound(SoundData);

    /* 再生の開始 */
    Player->Play();
        :
}
備考:
音声データ(USoundAtomCue*)をヘッダでUPROPERTYとして宣言することで、エディタやブループリントから音声データを指定する形をとることも可能です。
class MYPROJECT_API AMyActor : public AActor
{
        :
    /* 音声データ */
    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="MyActor")
    class USoundAtomCue* Sound;
        :
};
注意:
音声再生中にUAtomComponent::SetSound関数を呼び出した際、音声が停止する場合があります。
詳しくはFAQの「 SetSoundを行うと音声が止まってしまいます。 」をご覧ください。

CRI Middleware logo Copyright (c) 2012-2018 CRI Middleware Co., Ltd. CRIWARE Unreal Engine 4 プラグインマニュアル SDKVer.2.10版