Dreams Universe™のオーディオ技術

Dreams Universe™のオーディオエンジン

Dreams Universe™には、作品のオーディオのパフォーマンスを分かりやすく伝える便利なツールがあります。普通はそこまで気にするものではありませんが、エンジンをもっと活用したいという方にはおススメです!ツールでは、サウンドのカット、歪み、ディレイが起きる原因のいくつかを特定できます。

まずは、Dreams Universe™のオーディオエンジン技術についてご説明しましょう。Dreams Universe™では、シーン内のサウンドのガジェットからサウンドが出ます。サウンドのガジェットがロジックでトリガーされると、そのサウンドのインスタンスが作成されます。ちなみに、ガジェットは複数のインスタンスを同時に作成できます。例えば、前のインスタンスの再生が終わる前にもう一度トリガーされたときなどですね。

そこから、それぞれのサウンドのインスタンスがたくさんのボイスを作成します。ほとんどの場合、サウンドエフェクトがトリガーするのは、ボイスが1つあるインスタンス1つ。ちなみに、ボイスとはオーディオのサンプルデータを再生するものを指します。インストルメントのクリップは、サウンドのインスタンスを1つ作成します。このインスタンスからは、クリップ内の音符ごとに1つずつ、複数のボイスが作成されます。ここまでの流れと、そのユニットの中身の例がこちらです。

サウンドができるまでの流れと、ユニットの中身の図表

サウンドができるまでの流れと、ユニットの中身の図表

もっと詳しく言うと、Dreams Universe™ではグラニュラーエンジンを使っており、各ボイスが実際に再生しているのは、グレインという塊にあるオーディオです。これはDreams Universe™のグラフィックでいうフレックに近いですね!

オーディオアナライザー

このツールでは、作品にどれくらいのリソースを使っているのかをいつでもチェックできます。このオーディオアナライザーの動画もぜひ参考にしてみてください。

オーディオ分析ツールを実際に使用した解説動画

オーディオ分析を実行して作品を再生すると、ツールが情報を集めて、再生しながらいろいろな数値を表示してくれます。ツールを終了すると、下のような分析まとめが表示されます。これは再生したデータをグラフ化し、どの部分の負荷が高いのかを確認できるレポートです。グラフをざっと見ながら気になる時点に移動すれば、グラフの右側にある画像でその時点の状況を確認できます。

オーディオの分析まとめ画面。皆さんの考えが分かります。「カッコいいグラフ!」でしょう?

オーディオの分析まとめ画面。皆さんの考えが分かります。「カッコいいグラフ!」でしょう?

ここで一番重要なデータはオーディオのコストです。これは、ボイス、インスタンス、グレイン、そして、リバーブ、ディレイ、コンプレッサーを含むすべてのエフェクトのコストをまとめたもの。これが最大値に近付くと、100%にならないようにエンジンがボイスをカットするようになります。そうなったときは、ほぼ必ず警告メッセージが表示されます。コストが100%になると、Dreams Universe™ではオーディオが正しくアウトプットされなくなってしまうので、エンジンがそれを全力で食い止めます。

インスタンスとボイスには上限があり、上限に達してしまうと、新しいサウンドを再生できなくなったり、すでに再生されているサウンドがカットされることがあります。インスタンスの上限は128個です。ボイスはちょっと複雑ですが、こちらも128個が上限になるようにグラフを作っています。理論上はもっと多くのボイスを再生できますが、Dreams Universe™を動かしているシステムによっては、そうしたときのパフォーマンスへの影響が深刻なものになってしまいます。

再生するボイスとインスタンスの数が多いほど、オーディオのコストも増えます。グラフを見ると、どこを最適化すればいいのか分かるようになっています。

注意してほしいのは、すべてのボイスが同じように作成されるとはかぎらないことです。グラニュラーエンジンを使っているため、一部のボイスは他よりも多くのグレインと重なって再生されることがあり、それによってコストがかさみます。グレインのコストの数値は、シーン内で再生されるすべてのサウンドのコストの平均です。ほとんどのボイスのグレインのコストは平均となる1倍ですが、サウンドのガジェットの手直しメニューにあるグラニュラー・シンセシスグラニュラー・ランダム化を使って再生すれば、コストをもっと上げられます。下にある図は、コストの高い/低いグレインのオーバーラップ設定の例です。

グレインのオーバーラップ設定の影響を表した図

グレインのオーバーラップ設定の影響を表した図

グレインのオーバーラップ設定は、サウンドの手直しメニューにある「グラニュラー シンセシス」ページから行えます。ちなみに、このメニューにある「グラニュラー ランダム化」ページにはさまざまなスライダーがありますが、これもグレインのコストに影響します。

「グラニュラー シンセシス」ページで見られるグレインのオーバーラップ設定

「グラニュラー シンセシス」ページで見られるグレインのオーバーラップ設定

ボイスについても、オシレーター、ディストーション、ダイナミック・コンプレッサーなどのサウンド機能を有効にしていると、コストが高くなります。最もコストの低いボイスは、シンプルなサウンドエフェクトで、ワクワクするような設定が使われていないものです。

さて、ここまで解説した内容で、作品をどのように最適化できるでしょうか?真っ先に思いつきそうなのは、サウンドのポリフォニックの限度数を下げることです。これは、サウンドで作成できるボイスの数の上限です。丁寧に設定すれば、前と変わらないように感じることもありますよ。ここで、ポリフォニックの上限を下げると効果的なシチュエーションの例を挙げてみましょう。

  • リリースエンベロープの長いピアノやシンセサイザーなど、非常に長い音を何度も重ねて演奏するミュージッククリップ。
  • 短い間隔で繰り返しトリガーすることで再生する爆発音や武器のサウンド。

通常、ポリフォニックの上限数はデフォルトで20に設定されています。つまり、ほとんどのサウンドが、非常に速く繰り返しトリガーされた場合など、20個までなら自由にインスタンスを再生できることを意味します。

サウンドの手直しメニューの「オプション」ページにある「ポリフォニックの限度数」スライダー

サウンドの手直しメニューの「オプション」ページにある「ポリフォニックの限度数」スライダー

それとは別に、グレインが大きくオーバーラップしているサウンドをチェックして、その数を減らす方法もあります。ただし、そうするとグレインで生まれるハーモニーが損なわれることもあるので注意しましょう。

また、「サウンドFX」ページで一部(もしくは全部)のサウンドFXをオフにするという手もあります。こうすると、大半のサウンドのコストを抑えられます。

そして、他にどうしようもないときの最終手段として、シーンをチェックして削除できそうなサウンドを探す方法もあります。

オーディオのシーンメーターとサウンドのレディネス

では、オーディオのシーンメーターについて説明しましょう!…その前に、もう一度エンジンのお話を。

Dreams Universe™のオーディオはサンプルに入っていて、このサンプルはスライスに分けられます。サンプルはマイクの録音から作られ、スライスはサウンドのスライス マッパーで確認できます。

固有のサンプルの総数には上限があり、シーンメーターの「サウンドの上限」でチェックできます。さらに、サンプルが使用するメモリの総量にも上限があります。

たとえば、とても短い録音でも数が多すぎるとサンプルが足りなくなったり、録音数が少なくてもそれらが長すぎるとメモリが足りなくなったりすることがあります。加えて、インポートまたは録音したカスタムサウンドの数にも上限があります。この下では、Dreams Universe™のオーディオシステム全体の土台になっているものを説明しています。覚えておくと便利なので、ぜひ読んでみてください。

すべてのMmのオーディオコンテンツ(コレクションのインストルメントやSFXなど)は、ダウンロードコストが0。

オーディオのデータは通常、ストレージやダウンロードにとても時間がかかりますが、Dreams Universe™には標準的なサンプルのセットが備わっているため、そのおかげでコミュニティの作品はロード時間がとっても短くなっています。自分や他のクリエイターがアップロードしたオーディオコンテンツを使用する場合、次のステージに進む間にロードが挟まるようになったり、シームレスにならないなど、作品のロード時間に影響を及ぼします。これは、長いオーディオのサンプル(フルバージョンの曲など)をインポートしていると、さらに悪化します。

そのため、Mmのインストルメントやその派生コンテンツを使ってDreams Universe™で作られた音源を使った方がいいのです。Mmのサンプルライブラリを使用すれば、その内蔵エフェクトを使って十分バリエーション豊かなサウンドが作れますよ。少なくとも、作品の読み込みを速くしたいのであれば、オーディオのインポートをできるだけ切り詰めて再利用することをオススメします。

サウンドのスライス マッパーでサンプルをトリミングしても、これらのコストはカットできないということは覚えておきましょう。サンプルは録音後に変更することはできないため、インポートする際は、できるだけ使いたい音に近付けてからインポートすることが大事です。スライスしてサウンドにする予定のファイルをDreams Universe™にインポートする場合は、無音部分や不必要な音をできるだけ編集で取り除いておきましょう。ひとつでも上限を超えていると、作品を公開したり保存することはできません。

ここで、2種類のサウンドとそのコストの例を見てみましょう。左側のサウンドは、2種類のサンプルから2つのスライスを使っています。右側のサウンドは、1つだけのサンプルから2つのスライスを使っています。右側のコストの方が低くなっていますが、インポートする前に使わない部分をトリミングすることで、もっとコストを下げられます。左側のサウンドは、コストがかなりかさんでしまいます!Mmとしては、1つのサンプルから取り出したスライスでSFXやインストルメントを作って、全体的なコストを限界まで節約することをおススメします。

インポートしたサウンド2種類のコストの違い

インポートしたサウンド2種類のコストの違い

そして、前までは警告や説明がなかった、とても重要な上限があります。それはサウンドのレディネス

サウンドをトリガーして再生するときは、そのオーディオデータを“読み込む”必要があります。オーディオデータが準備できていないと、サウンドがトリガーされたときにディレイが起きます。こうなると、音楽やボイスの録音など、アニメーションとタイミングを合わせるようなケースでは大問題になってしまいます。

ですが、すべてのサウンドのスライスをあらかじめ読み込むようにすると、ゲームでそれ以外のアレンジをするためのメモリがなくなってしまいます。オーディオ大好きなMmですが、エンジンには読み込みをセーブさせています。このシステムをピンニングといい、各サウンドは、少なくとも1つのスライスをいつも再生できるようにします。これは便利なシステムですが、作品で別々のオーディオを読み込むサウンドの数が多すぎてもメモリが不足します。こうなると、サウンドの鳴りはじめが遅延するトラブルがまた起きてしまいます。

前のDreams Universe™では、この現象が起きても説明されることがありませんでした。でも今では警告が表示され、また、特別なツールを使って、どのサウンドが原因なのかを特定できるようになっています。

あなたの作品、特に他のクリエイターが自作ステージにスタンプするための作品については、このシーンメーターのコストを最小限に抑えるよう頑張ってみてください。あなたのエレメントをスタンプしたせいでボイスが遅延してしまうなんて悲しいですからね!それでも遅延が起きるときは、他の要素をカットして最適化することもできます。次は、その方法について説明します。

サウンドモードでは、サウンドのレディネスのコストが上がると、シーンメーターのバーが表示されます。このシーンメーターは、サウンドモードの「表示/非表示」メニューから常時表示させることができます。それでも、サウンドのレディネスが上限に達しないかぎり、そのメーターを気にする必要はありません。バーをクリックすると、サウンドのレディネスのシーンメーターが見られます。そこで「もっと詳しく」を選べば、シーン内で最もコストが高いサウンドが上から20番目までまとめられたリストが表示されます。ただし、あくまでサウンドのレディネスのコストなので注意しましょう!

サウンドのレディネスのシーンメーターバーと、サウンドのレディネスのシーンメーターサウンドのレディネスのシーンメーターバーと、サウンドのレディネスのシーンメーター

サウンドのレディネスのシーンメーターバーと、サウンドのレディネスのシーンメーター

さらに、サウンドのチャンネルごとのリストもあります。リストの項目を選択すると、シーン内のそのサウンドの場所に移動します(マイクロチップやタイムラインからサウンドを掘り出す必要があるかもしれません)。また、青く光るインジケーターでも、サウンドの場所をしばらく確認できます。

サウンドのレディネスの詳細からサウンドを選んで、シーン内の場所まで移動する方法

サウンドのレディネスの詳細からサウンドを選んで、シーン内の場所まで移動する方法

もうお気づきかもしれませんが、リストにある一部のサウンドは重複しています。重複しているすべてのサウンドがメモリを使用するため、サウンドのレディネスのコストを抑えたいなら重複に対処する必要があります。

次にやるべきことは、特にコストの高いサウンドを削除するか、スライス マッパーでトリミングすることでしょう。トリミングをしてもオーディオのコストは下がりませんが、サンプル丸ごとではなくスライス1つ分のコストだけになるので、サウンドのレディネスのコストは下がります。下の例では、1つの長いサンプルの異なる部分を使った2種類のサウンドを示しています。

トリミングでレディネスのコストを抑える方法を説明した図

トリミングでレディネスのコストを抑える方法を説明した図

このコストは、サンプルの中で両方のスライスが使用する部分から発生します。つまり、共有している部分が2回カウントされることはありません!

サウンドのレディネスについての問題はたいてい、不必要に長いサウンドが原因です。たとえば、ここに「Forest Day」というバックグラウンドBGMがありますね。これは総コストの5.24%を使っていて、シーン内にもある丸ごと1曲とほぼ同じくらいのコストです!このケースではコストにまだ余裕がありますが、必要であれば、スライス マッパーで「Forest Day」をトリミングすることもできます。

サウンドのレディネスのシーンメーター。コストの高いバックグラウンドBGMがあっても、トリミングすればコストカットできますサウンドのレディネスのシーンメーター。コストの高いバックグラウンドBGMがあっても、トリミングすればコストカットできます

サウンドのレディネスのシーンメーター。コストの高いバックグラウンドBGMがあっても、トリミングすればコストカットできます

ここでもう1つヒントを。録音済みの長い音楽のようなオーディオをインポートすると、サウンドのレディネスのコストがあっという間に、そして非効率的に上限に達してしまいます。だからこそ、Dreams Universe™で作られた音楽を使う方が、オーディオをスムーズに再生できるというわけなんです。

説明はこんなところでしょうか。ここまで説明した機能をぜひ活用してみてください。ただし、以下のようにギリギリのケースや注意点、トリッキーな部分があることも覚えておいてください。

  • 各サウンドは1つのスライスしか用意しないので(ただし、下を要確認!)スライスが複数ある場合は、どれがそのスライスなのか少し調べる必要があるかもしれません。
  • 列マッピングがオンになっているインストルメントは除きます!この場合は、ノートで一杯のピアノロールの列ごとに1つずつスライスが用意されます。なので、コストがとっても高くなることがあります!
  • サンプルのほぼ同じ部分を使うサウンドは、たとえそれが共通しているとしても、使用するサンプルの部分に関係なくコストとして登録されます。これは、用意する必要のある数が分かるようにするためです。ただし、上でも言いましたが、オーディオの共通する部分が総コストに2重に含まれることはありません。基本的には、ほぼ同じオーディオデータを使っていても、トリミングの仕方が違うと、リスト内では別の項目になります。
  • 現在、どのスライスを用意するか選ぶ方法はありませんが、もしかしたら今後のアップデートで変わるかもしれません!

Dreams Universe™のユーザーガイドはただいま作成中。これからプレイのヒントに関するコンテンツを増やしていく予定なのでチェックをお忘れなく!