CRI ADX2(Unreal Engine4)
中級編16 カテゴリに分類されたサウンドの再生を制御する

今回のレッスンでは、カテゴリ単位で再生を制御する方法をご紹介します。
このレッスンを習得すると、例えば「SEという名前のカテゴリに属している全てのキューを停止させる」といったことが可能になります。

カテゴリを設定するには?

CRI Atom Craft側で設定します。
詳しくは「CRI Atom Craft 初級編09 カテゴリ設定」をご覧ください。

新しい音素材を導入する

あらかじめカテゴリが設定された音素材をご用意致しましたのでこちらをご利用ください。

tutorial_sample_ue4_lesson16.zip

ダウンロードした「Category_Controll.acb」と「SimpleMusic.acf」をUE4プロジェクトにインポートしてください。
今回はACFファイルの内容を変更しているため、インポートした後にUE4エディタを再起動してください。

音を鳴らす前に

説明上の混乱を避けるため、前回のチュートリアル「中級編15 Blueprintによる基本的な音声制御6連発」でレベルに配置した音とレベルブループリントに配置したノードを取り除いてください。

カテゴリ単位で一時停止・再開

「Category_Controll_VOICE_a_Cue」と「Category_Controll_VOICE_b_Cue」をレベル上に配置します。

この「Category_Controll_VOICE_a_Cue」と「Category_Controll_VOICE_b_Cue」は共に「VOICE」というカテゴリに属しています。

レベルブループリントを開きます。

キーボードの「1」が押されたときに「VOICE」カテゴリの全ての音を一時停止させてみましょう。
「Atom Category」カテゴリにある「Pause by Name」というノードを配置します。
「Category Name」には再生を制御したいカテゴリの名前を指定します。
今回は「VOICE」と指定します。
「Pause」のチェックボックスにチェックを入れます。

次に、キーボードの「2」が押されたときに「VOICE」カテゴリの一時停止を解除させてみましょう。
「Atom Category」カテゴリにある「Pause by Name」ノードをもう一つ配置します。
「Category Name」に「VOICE」と指定します。
「Pause」のチェックボックスのチェックを外します。

音を聴いてみる

レベルブループリントをコンパイルし、ゲームを開始してください。
キャラクターのセリフが二つ再生されていますね。
キーボードの「1」を押すと両方の音声が一時停止することを確認してください。
その後キーボードの「2」を押すと音声の一時停止が解除されることを確認してください。

カテゴリ単位で停止

レベルブループリントを開きます。
「Atom Category」カテゴリにある「Stop by Name」というノードを配置します。
「Category Name」に「VOICE」と指定します。

レベルブループリントをコンパイルし、ゲームを開始してください。
キーボードの「3」を押すとキャラクターのセリフが二つとも停止することを確認してください。

カテゴリ単位で音量を設定する

「Category_Controll_SE_enter18_Cue」をレベル上に配置します。

この「Category_Controll_SE_enter18_Cue」は「SE」というカテゴリに属しています。

レベルブループリントを開きます。

復習も兼ねて、スペースキーを押したときに「Category_Controll_SE_enter18_Cue」の音が鳴るようにしてみましょう。
やり方を忘れてしまった場合は「初級編06 プレイヤーがボタンを押したら音を鳴らす」をご覧ください。

キーボードの「4」が押されたときに「SE」カテゴリの音量を変更してみましょう。
「Atom Category」カテゴリにある「Set Volume by Name」というノードを配置します。
「Category Name」に「SE」と指定します。
「Volume」には音量の倍率を指定します。
今回は音量を0.3倍にしてみましょう。

音を聴いてみる

レベルブループリントをコンパイルし、ゲームを開始してください。
キャラクターのセリフが二つ再生されていますね。
スペースキーを押すと効果音(ピロン♪)が鳴ることを確認してください。
キーボードの「4」を押すと効果音の音量が小さくなることを確認してください。
その後、効果音を何度か鳴らすと、「音量を小さくする効果」が持続していることに気づくことでしょう。
また、SEへの命令がVOICEに影響を与えず、VOICEへの命令がSEに影響を与えないことがわかります。

Tips

今回は使い方の例としてカテゴリの名前を直接書き込みましたが、実際の運用では「カテゴリ名」、「ボリューム値」、「ポーズフラグ」の構造体の管理用テーブル配列を作成して活用すると良いでしょう。

音が鳴らない場合は?


「Output Log」を確認してみてください。
下記のようなエラーが出ている場合、「SimpleMusic.acf」を一度削除し、改めて「SimpleMusic.acf」をインポートして下さい。
author:上田 雄太,小野 正貴