音声再生手順
- 音声データの再生には、AtomComponentを使用します。
具体的な処理手順は以下のとおりです。
- CriWareApi.h、AtomComponent.hをインクルードする。
- AtomComponentを作成する。
- AtomComponentを登録する。
- 音声データアセットをロードする。
- UAtomComponent::SetSound関数でAtomComponentに音声データをセットする。
- UAtomComponent::Play関数で再生を開始する。
- 具体的なコードは以下のとおりです。
#include "CriWareApi.h"
#include "AtomComponent.h"
void AMyActor::BeginPlay()
{
Super::BeginPlay();
:
UAtomComponent* Player = NewObject<UAtomComponent>(this, UAtomComponent::StaticClass());
if (Player == nullptr) {
UE_LOG(MyActor, Error, TEXT("Failed to create AtomComponent."));
return;
}
Player->RegisterComponent();
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を行うと音声が止まってしまいます。 」をご覧ください。
- 注意
- C++コードから動的にロードするアセットは、Unreal Engineの仕様によりパッケージに含まれない可能性があるためご注意ください。
詳細は「 パッケージ化設定(レベルに非依存のアセット) 」をご覧ください。