SoundObject

SoundObjectについて

CRIWARE UE4プラグインでは、SoundObjectをData Assetとして作成することが可能です。
コンテンツブラウザ上でAtomSoundObjectアセットを作成し、AtomSoundアクタに設定することで、サウンドオブジェクト単位で発音数制限を行うことが可能となります。
具体的な操作手順は以下のとおりです。
  1. コンテンツブラウザ上で右クリック。
  2. [miscellaneous]→[Data Asset]を選択。
  3. [AtomSoundObject]クラスを選択し、アセット名を付ける。
  4. 手順(3)で作成したData Assetをダブルクリックし、[Config]の[Enable Category Cue Limit Scope]をオンにする。
  5. マップ上に配置したAtomSoundアクタの[Sound Object]欄に、Data Assetを指定する。
備考:
[Enable Voice Limit Scope]をオンにすることで、ボイスリミットもSoundObject単位で管理するよう設定することが可能です。

ゲーム実行中にサウンドオブジェクトを設定したい場合

ゲーム実行中にサウンドオブジェクトを設定したい場合は、UAtomComponent::SetSoundObject関数を使用します。
引数にはサウンドオブジェクトを指定します。
この関数はC++コード、BluePrintの両方から使用可能です。
criware_ue4_035_use_setsoundobject_bp_j.png

サウンドオブジェクトを動的に作成し、設定する例

例えば次々とスポーンする雑魚キャラにそれぞれ別々のサウンドオブジェクトを設定したい場合、雑魚キャラのスポーンに合わせて動的にサウンドオブジェクトを生成する必要があります。
今回は新規C++クラス(アクターを継承した雑魚キャラクラス)を作成し、そのクラスにAtomComponentを持たせ、そこに動的に生成したサウンドオブジェクトを設定する方法を解説します。
手順は以下の通りです。
  1. "CriWareApi.h", "AtomComponent.h", "AtomSoundObject.h" をインクルード
  2. メンバ変数としてUAtomComponent*型変数を持つ
  3. CreateDefaultSubobject又はNewObject関数を使用してUAtomSoundObjectのオブジェクトを作成
  4. 作成したサウンドオブジェクトのメンバ変数EnableCategoryCueLimitScopeやEnableVoiceLimitScopeを用途に応じてtrueに設定
  5. UAtomComponent*型変数のSetSoundObjectメンバ関数を使用してサウンドオブジェクトを設定
ソースコードは以下のようになります。
MyActor.h
#pragma once

// 1."CriWareApi.h", "AtomComponent.h", "AtomSoundObject.h" をインクルード
#include "CriWareApi.h"
#include "AtomComponent.h"
#include "AtomSoundObject.h"

#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "MyActor.generated.h"

UCLASS()
class SO_PROJECTED_API AMyActor : public AActor
{
    GENERATED_BODY()

public:
    // Sets default values for this actor's properties
    AMyActor();

public:
    // 2.メンバ変数としてUAtomComponent*型変数を持つ
    UAtomComponent * AtomExPlayer;
};
MyActor.cpp
#include "MyActor.h"
// Sets default values
AMyActor::AMyActor()
{
// Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it.
PrimaryActorTick.bCanEverTick = true;
AtomExPlayer = CreateDefaultSubobject<UAtomComponent>(TEXT("UAtomComponent1"));
AtomExPlayer->bEnableMultipleSoundPlayback = true;
AtomExPlayer->SetupAttachment(RootComponent);
// 3.CreateDefaultSubobject又はNewObject関数を使用してUAtomSoundObjectのオブジェクトを作成
UAtomSoundObject * SoundObject = CreateDefaultSubobject<UAtomSoundObject>(TEXT("UAtomSoundObject"));
// 4.作成したサウンドオブジェクトのメンバ変数EnableCategoryCueLimitScopeやEnableVoiceLimitScopeを用途に応じてtrueに設定
SoundObject->EnableCategoryCueLimitScope = true;
// 5.UAtomComponent*型変数のSetSoundObjectメンバ関数を使用してサウンドオブジェクトを設定
AtomExPlayer->SetSoundObject(SoundObject);
}
Next:AtomPlayGate

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