第6回/ランダム再生させてみる
こんにちは。
G2 Studios サウンドチームのサキサキです。
今回は、皆さんお待ちかね「ランダム再生」についてご紹介します。
単にランダム再生と言えど、CRI Atom Craftにはいくつかのランダム再生機構があります。
本記事は、その中の一つである「シーケンスタイプ」に分類されるものについて焦点を当てたいと思います。
■作業環境
本記事は以下の環境下での作業内容を記載します。
■シーケンスタイプとは
「シーケンスタイプ」はキューに内包されたトラックの再生方式を指しており、サウンド再生時にちょっとした演出を追加する目的で用いられます。
再生方式には「ポリフォニック」「シーケンシャル」「シャッフル」「ランダム」「ランダムノーリピート」「スイッチ」「コンボシーケンシャル」と呼ばれるものがあります。
「ポリフォニック」「スイッチ」については過去記事(スイッチタイプキューを作ってみる(セレクター編)/第4回)で触れてきました。
今回で3つ目の紹介となりますが、その他のものについても後日記事にて紹介していきますので、楽しみに待っていてください。
■ランダム(シーケンスタイプ「ランダム」)とは
シーケンスタイプの「ランダム」は、キューリクエスト時にそのキューに内包されたトラックから1つをランダムに抽選し再生させる方式です。
内蔵するトラックが1つでもエラーにはならずに再生されます。
■もう1つのランダム
シーケンスタイプには「ランダムノーリピート」と呼ばれるもう一つのランダム方式があります。
こちらのランダムは少しだけ特殊で、「前回再生したトラックとは別のトラックを再生する」といった内容になります。
では、両者の違いを図で見てみましょう。
<2種のランダム比較>
キューアイコンの絵柄が若干変わりますが、構造上は特に何も変わらないことが見て取れます。
実のところ、Atom Craftでデータ作成を行う場合には、キューに対し「ランダム」「ランダムノーリピート」のいずれかを設定するだけで基本的なランダム設定は完了となります。
ここではあまり難しく考えず、「シーケンスタイプのランダムは2種類あり、用途に応じて使い分けることができる」という点だけ押さえておきましょう。
■ランダム再生の用途と意図
ランダム再生の用途は「音の再生内容を単調な(1つに固定した)形にしない」というところにほぼ集約されてきます。
しかし、「何故そうする必要があるのか」という意図については、ユーザー視点や開発視点において様々なものが考えられます。
ランダム再生に限らずですが、あらゆる実装において「意図」はコンテンツの売り上げを伸ばす上で非常に重要なものになってきます。
小さなものからコツコツと!
作業の一つ一つにこういった意図を持たせるようにしましょう。
■Atom Craftでランダム再生させてみる
それでは、実際にAtom Craft上でシーケンスタイプ「ランダム」の設定をしてみましょう。
<手順①>
3つのサンプル音源「Se_Bubble_01.wav」「Se_Bubble_02.wav」「Se_Bubble_03.wav」を予め Atom Craft内にインポートしておきます(※こちらは私が作成したものなので、商用でも何でも自由にご利用いただいて大丈夫です)。
マテリアルツリーから任意のマテリアル(いずれか1つ)をワークユニット上にDrag&Dropし、キューシートとキューを作成します。
(※キューシートとキューの作成など、基本的なサウンドデータの作成方法についてはこちら ⇒CRI Atom Craft でサウンドデータを作ってみる/第1回)
<手順②>
同様に、残り2つのマテリアルをマテリアルツリーからDrag&Drop、今度は先ほど作成されたキューに向けて行います。
ワークユニット上のキュー内に3つのトラックが表示され、併せてタイムライン上にも3つの波形が表示されました。
<手順③>
キューにシーケンスタイプを設定します。
キューを選択しインスペクターを見ると、このタイミングでは「ポリフォニック」が設定されているのがわかります。
該当項目を押下し、開いたプルダウンの中から「ランダム」または「ランダムノーリピート」を選択します。
これでキューはランダム再生するようになりました。
<手順④>
あとは、キューシートとキューの名称がちょっとだけ気になるので修正しておきます。
3種の「泡の音」なので… キューシート&キュー名ともに「Se_Bubble」としておきましょう。
これで完成です。
簡単ですね!
再生させると、意図通りの形に鳴っていることが確認できます。
■ランダムの異なる設定方法
シーケンスタイプの設定はタイムラインやリストエディター上からも行うことができます。
また、ワークユニットツリー上部のアイコン「キュー『ランダム』の作成」を押下することで、最初からシーケンスタイプの設定されたキューを作成するといった方法もあります。
この方法ですと後からシーケンスタイプの設定を行う必要がなく、また、設定そのものの失念を防止することにもなりますのでお勧めです。
ここで紹介した以外にもやり方はありますので、AtomCraftをいじり倒してご自身にあったやり方を模索してみてはいかがでしょうか。
■再生確率の調整
実は、「ランダム」「ランダムノーリピート」には、キューリクエスト時の各トラックの再生確率を任意で調整できる機能があります。
使用頻度は少ないかもしれませんが、折角ですのでこの部分について少しだけ掘り下げておこうと思います。
キューのシーケンスタイプに「ランダム」「ランダムノーリピート」が設定されると、インスペクター上にあるメニュー「ランダム」から値設定ができるようになります。
調整可能なプロパティは「乱数重み」と「再生確率」の2つあり、各トラックごとに設定する形になります。
<ランダム再生における調整可能なプロパティ>
・乱数重み
・再生確率
これらをどういったものに利用するかはさておき、設計の段階でやれることの選択肢が有ると無いでは大きく異なってきますので、個人的には非常にありがたい機能だと思っています。
値の変更はインスペクターの他にリストエディター上でも行えます。
数値入力が苦手な人は、インスペクター右側にある各トラックの割り当て箇所(青く着色された箇所)を押下した状態でカーソルを上下に動かすことでも値変更できますので、是非試してみてください。
■実装における注意点
最後に、実際にサウンドデータを作成する前に注意すべき点をいくつか挙げておきたいと思います。
・運用時における音声ファイルの追加
・ゲーム内における他機能との連動
・メモリ負荷
どうでしょう。
想像以上に奥深いものだと感じたのではないでしょうか。
これらはゲーム全体の実装に影響してきますので、他セクションの担当者とよくすり合わせを行った上で実装するようにしましょう。
■まとめ
シーケンスタイプ「ランダム」「ランダムノーリピート」は非常にシンプルで使い勝手の良い機能ですが、意図なく乱用するのではただのリソースの無駄遣いになりかねません。
ランダム再生の難しさは機能実装そのものよりそこに至るまでの経緯を鑑みるところにあります。
「たかだかランダム再生」と侮らず、使用の意図を明確にしてより効果的な実装を目指しましょう!
今回のnoteは以上となります。
▼サウンド関連のnoteをまとめたマガジンがあります!
▼G2 Studiosの採用情報はこちら
▼最新情報はTwitterでご確認ください!