見出し画像

第7回/シーケンススタート&エンドを設定する

こんにちは。
G2 Studios サウンドチームのサキサキです。
Atom Craftの解説も早いもので第7回となりました。

連載するにも順序が大切。
記事の完成間近になって「あ!手前であの機能を説明しておけば良かった!」と気づいた時の衝撃(=やってしまった感)は何度経験しても慣れません…。
シリーズが終わるまで、順を追って丁寧に記事を作成しなければ!と気を引き締めているところです。
そんな中、今回は「シーケンススタート」「シーケンスエンド」と呼ばれる機能をご紹介いたします。
(もともと紹介を予定していた機能ですので、決して間に合わせで選んだわけではありません(笑))

それでは、進めていきましょう。


■作業環境

本記事は以下の環境下での作業内容を記載いたします。

CRI SDK :criware_sdk_unity_v3_07_01_smartphone_ja

■シーケンススタート&エンドとは

「シーケンススタート」はタイムライン上に任意のシーケンス(再生)開始位置をマーカーを使って設置する機能です。
このマーカーのことを「シーケンススタートマーカー」と呼びます。
タイムライン上にマーカーが設置されていない場合には音の再生開始はタイムラインの最初からとなりますが、マーカーが設置されている場合にはその設置位置からとなります。
同一タイムライン上には複数のマーカーを設置でき、この場合、リクエスト毎にランダムに位置を変えて再生を開始します。

「シーケンスエンドマーカー」はタイムライン上に任意のシーケンス(再生)終了位置をマーカーを使って設置する機能です。
このマーカーのことを「シーケンスエンドマーカー」と呼びます。
タイムライン上にマーカーが設置されていない場合には音の再生終了はウェーブフォームリージョンの終端となりますが、マーカーが設置されている場合にはウェーブフォームリージョンの有無にかかわらずその設置位置となります。
シーケンススタートマーカーとは異なり、タイムライン上に1つだけマーカーを設置できます。

シーケンススタートマーカーとシーケンスエンドマーカーは一対で設置する必要はなく、どちらか片方がなくても問題なく機能します。
 

■シーケンススタート&エンドの用途

シーケンススタート&エンドの用途については以下のようなものが挙げられます。

<シーケンススタート&エンドの用途>
・波形の尺が想定よりも長い場合に、再生開始と再生終了の位置を指定する
 ことで必要な部分だけを再生する
・同じマテリアルを参照して、再生開始と再生終了の位置が異なる別の
 データを作成する
(※同一キューシート内からのマテリアル参照であれば、データ書き出しの
  際にファイルサイズを大きく節約することができます)
・シーケンススタートマーカーの複数設置によりリクエスト毎に異なる位置
 から再生をさせることで、単一キューの呼び出しにも複数の演出バリエー
 ションを持たせる

ここで特筆すべきは、単一での利用はもちろん、Atom Craftの特性を活かした機能連携に発展させ易いという点です。
これまでにご紹介した「スイッチタイプキュー」や「ランダム再生」とも相性が良さそうですね!

 

■Atom Craftでシーケンススタート&エンドを設定する

それでは、実際にAtom Craft上で設定をしてみましょう。
ゴール条件は以下の通りとします。

<ゴール条件>
タイムライン上に「シーケンススタートマーカー」「シーケンスエンドマーカー」を設置し、もともとのウェーブフォームリージョンの長さよりも短い音を再生する。

AtomCraftを起動し、作業を始めるための準備を行います。
※キューシートやキューの作成など、基本的なサウンドデータの作成方法についてはこちら

サンプル音源「Se_TropicalForest.wav」をAtom Craft内にインポートしておきます。
※こちらは私が作成したものですので、商用でも何でも自由にご利用いただいて大丈夫です

<手順①>
マテリアルツリーにある該当マテリアルを「ワークユニットツリー」ビューに向けてDrag&Dropし、キューシート&キューを新規で作成します。

<手順②>
作成されたキューを選択し、「タイムライン」ビューにウェーブフォームリージョンを表示した状態で任意の箇所を右クリック。
表示されたメニューから「新規オブジェクト >マーカーの作成」を選択すると、「マーカーの追加」ダイアログが開きます。
(※「ワークユニットツリー」ビュー上にある該当キューを右クリックして表示されたメニューからも同様に作業できます。)

<手順③>
ダイアログにある「タイプ」項目の入力枠を押下してプルダウンを表示。
その中から「シーケンススタート」を選択します。

<手順④>
次に、「開始時刻」項目の入力枠に任意の値(※ここでは一旦、「3000」msec)を入力し、ダイアログの下方にある「追加」ボタンを押下。
ダイアログが閉じ、タイムライン上に「START」と書かれた赤色のマーカーが表示されます。
これでシーケンススタートマーカーの設置は完了です。

<手順⑤>
同様の方法でシーケンスエンドマーカーを設置します(※ここでは一旦、開始時刻に「7000」msecと入力します)。
タイムライン上に「END」と書かれた赤色のマーカーが表示されます。

<手順⑥>
キューを再生して意図通りの音が鳴っていたら作業は完了です。
作成されたサウンドデータの鳴り方は添付ファイルをご確認ください。

■マーカーの位置を調整する

設置されたマーカーは下記のいずれかの方法で位置の調整ができます。


  • タイムライン上にあるマーカーの旗部分をDrag&Dropの要領で左右に移動させる

  • タイムライン上にあるマーカーの旗部分にカーソルを当て、右クリックで表示されたメニューの中から「マーカーの編集」を選択 
    開いた「マーカーの追加」ダイアログにあるプロパティ「開始時刻」の数値を変更する

  • タイムライン上にあるマーカーの旗部分、または「ワークユニットツリー」ビュー上の該当キュー内に作成されたマーカーを選択後、「インスペクター」ビューに表示されたプロパティ「マーカー時刻」の数値を変更する

  • 「ワークユニットツリー」ビュー上の該当キューシート,キュー,マーカーのいずれかを選択し、リストエディターを展開
    リストエディター上にある該当マーカーとそのプロパティ「マーカー時刻」を表示させた後、数値を変更する


入口が変わることで項目名称に若干の違いが確認されますが、どれも同じものという認識で問題ありません。
 

■実装における注意点

最後に、実装における注意点をいくつか挙げておきたいと思います。


  • 不要な波形部分のトリミング

タイムライン上にマーカーを設置後、明らかに不要な(=再生を必要としない)波形部分がある場合には、該当部分についてのトリミングをお勧めします。

データ書き出しの際には、タイムライン上で表示されている全ての波形が書き出しの対象となります。
塵も積もればなんとやら…常日頃から、再生パフォーマンスやダウンロードサイズを考慮したやさしいデータ作成を心掛けましょう。

  • 再生リクエストによる負荷

シーケンススタートはライブラリ側で制御するシーク再生と同じ動作のため、タイムラインの最初からシーケンススタートマーカーの設置位置までに置かれたウェーブフォームリージョンの発音リクエストも全て処理する形になります。
そのため、シーケンススタートマーカーの位置よりも前にそれらのオブジェクトが置かれていた場合、再生時の処理負荷もその分高くなります。

特に、複数の用途に対して同じサウンドデータを用いる場合にはデータ構造も自ずと複雑になってきますので、細心の注意を払うようにしましょう。

<補足>
図にあるようなスタートマーカー位置以前で発音が終了するリージョンの場合、発音リクエスト処理は行われますが、デコード負荷は掛かりません。
これは、波形の長さとシーク位置を比較して、再生(デコード)が必要か否かを判断しているためです。

  • エンベロープとの連動
    (※「エンベロープ」についての過去記事はこちら

再生対象となるウェーブフォームリージョンにエンベロープが設定されている場合、それぞれのマーカー位置からエンベロープ機能が発動するようになります。

意図した鳴り方になるかどうかを確認し、必要に応じてエンベロープ機能のオン/オフを行いましょう。


■まとめ

シーケンススタート&エンドの機能は単に再生開始と終了の位置を指定するだけの利用に留まらず、他機能と連動させることでより多くの演出バリエーションを生みます。
ゲーム制作はアイデア勝負!
それは、企画内容だけではなく、サウンドデザインについてもまた同じことが言えるかと思います。
Atom Craftの使用に慣れてきたら、他機能と組み合わせて独自の演出方法や拘りを見つけていくのも面白いですね。

今回のnoteは以上となります。

▼サウンド関連のnoteをまとめたマガジンがあります!

▼G2 Studiosの採用情報はこちら

▼最新情報はTwitterでご確認ください!


みんなにも読んでほしいですか?

オススメした記事はフォロワーのタイムラインに表示されます!

X(Twitter)にて最新のお知らせを配信しております。ぜひフォローしてください!