Step Sixteen | UnityとWwiseでステップシーケンサーを作成

ゲームオーディオ

はじめに

Rogue Wavesのサウンドデザイナー、マットです。Rogue Wavesはゲームオーディオやポストプロダクション向けを中心に、サウンドエフェクト・ライブラリを手がけています。実は最近手を広げ、UnityとWwiseを使ったStep Sixteenというステップシーケンサーアプリケーションをリリースしました。 

私は長年に渡り、多くのステップシーケンサーのプロトタイプをつくってきました。Arduinoを使ったハードウェアシーケンサーのほか、Pulp、Processing、Unityなどで作成したシーケンサーもあります。Step Sixteenはこれらのプロトタイプの集大成であり、私がこれまでに学んだすべてを組み合わせました。同時に自分のC#、Unity、Wwiseのスキルを向上させるすばらしい機会でした。

 

Step Sixteen

Step Sixteenは音楽制作用の16ステップシーケンサーのアプリで、TR-909やMachinedrumのような代表的なハードウェアドラムマシンの影響を受けています。

ユーザはドラムマシンのようにStep Sixteenを使って自分のビートをつくり出しますが、私たちはそれに併走するシンセを追加したため、ベースライン、アルペジオ、コード、メロディーなどが一緒に再生されます。すべてが同じアプリ内にあるため、本格的なDAWの習得に深入りすることなく、簡単にすばやく曲づくりを開始できます。ドラムやシンセサイザーの音をチャンネルスライダーで個別にかたちづくり、複数のコントロールで演奏をグローバルに操作し、ミックスの全体像を形成することができます。

Step Sixteen_img1

 

Wwise

私たちがStep Sixteenで計画したさまざまな機能を達成するために汎用性の高いオーディオエンジンが必須であり、Wwiseこそ完璧なチョイスでした。

Wwiseは楽器を主体としたアプリをつくるための、すばらしいオーディオの骨組みを提供してくれました。RTPC、Modulator Envelope、Switch Container、内臓エフェクトなどを追加する機能は、私たちが目指すシーケンサー作成において不可欠でした。 

Switch_Containers

 

クロック

プロジェクトの初期段階で直面した大きな課題のひとつが、シーケンサーを駆動する安定したクロックの実現でした。Unityでタイミングをとる方法をいろいろと試しましたが、どれも不安定であることが判明しました。最終的にタイミングをとるために、Wwiseのインタラクティブミュージックシステムを利用した方がよいだろうという結論に達しました。

私はWwiseでMusic Playlist Containerを作成し(Gridの分割は16とし、Tempoは100 BPMに設定)、何も入っていないダミーのMusic Segmentを入れました。このMusic Playlist Containerを使い、ダミーのMusic Segmentを無限にループ再生します。

残念ながらWwiseのMusic Playlist Containerは、BPM値にRTPCを追加することができません。ただしRTPCでPlayback Speedを制御するという迂回策があります。はじめにMusic Playlist Containerの実BPMを100に設定します。WwiseのPlayback Speedの範囲が0.25~4であるため、Playback Speedの0.5は、50BPMに相当します。

UnityでbpmPercentageTime変数を作成し、アプリのBPMスライダー値を100で割った値に等しくしました。例えばアプリのBPM表示が120であれば、WwiseのPlayback Speedは1.2に設定されます。

bpmPercentageTime = bpmSlider.value / 100.0f;
AkSoundEngine.SetRTPCValue("Playback_BPM", bpmPercentageTime);

Infinite_Loop

 

コールバック

16ステップシーケンサーをつくるため、16分音符ごとに発生するコールバックを作成する必要がありました。そこでMusicSyncGridコールバックタイプを使い、Music Playlist ContainerのGridのFrequencyを16に設定しました。これによりUnityがMusic Playlist Containerの第16インターバルごとに何かを行うよう、指示を出せます。

Unityのコールバック関数の中に、各バー後にリセットされるカウンターをつくりました。これによりシーケンスの各ステップや、音をいつ再生するのかを把握できます。

当初はコールバック関数で即座にサウンドをポストすることを試みました。ところがタイミングの問題が発生し、代わりにNext Gridに設定したスティンガーをトリガーさせることにしました。これでサウンドを事前にスケジューリングし、正しく再生できました。

Trigger_Stingers

 

RTPC

Step Sixteenで音のかたちをつくるさまざまなスライダーをユーザが自由に操作できるよう、数多くのRTPCを作成する結果となりました。16のチャンネルだけでもそれぞれ19のRTPCが必要となり、合計304個となりました。

さらにディレイタイム、グローバルスライダー、再生BPM、テープストップなどの追加RTPCがあります。

Synth_RTPCs

 

エフェクト

Wwiseの内蔵エフェクトは個別のサウンドや全体のミックスをつくる上で、幅広い汎用性を提供してくれました。ディレイ、リバーブ、フランジャー、ディストーション、パラメトリックEQ、ピッチシフターなどを活用しました。

私自身、Teenage EngineeringのOP-1のテープストップエフェクトボタンをいつも楽しく使っていたいため、Step Sixteenにも同じようなエフェクトボタンを設けたいと思いました。そこでMaster Audio BusでWwise Pitch Shifterプラグインを使い、実現させました。具体的にはPitch Shift値を、RTPCとUnityのタイマーでランプダウンすることにより達成しました。

Step Sixteenの2つ目のエフェクトボタンは、LFOボタンです。このボタンはランダムな酔ったようなピッチにしたいと思いました。ピッチにランダムなLFOを割り当て、このLFOの周波数またはレートをランダムLFOでモジュレーションするという方式です。

 

パラメトリックEQ

より多くの音楽フィルタリングを達成するため、パラメトリックEQを活用しました。2つのバンド(ローパス・ハイパスに設定したバンドと、ピーキングに設定したバンド)を使うことにより値を連動して変えることができ、カットオフポイントで共振のブーストのあるローパスフィルタとハイパスフィルタを作成できました。これは電子音楽でよく耳にしますが、音をかたちづくるための内蔵ローパスフィルタやハイパスフィルタより優れた方法です。この方式は音をかたちづくるドラムのローパスフィルタやハイパスフィルタに使い、またフィルタースウィープ実行のためのグローバルのローパスフィルタやハイパスフィルタに使います。

 

ディレイタイムの迂回策

Wwiseの制約の1つが、ディレイプラグインがディレイタイムにRTPCをアサインできない点です。プラグインのxmlファイルを修正するという解決方法がありますが、ディレイタイムを変えた時にポップ音やクリック音を引き起こしてしまうため、採用しませんでした。時間があればディレイタイムの変更時にノイズが発生しないよう、非整数遅延プラグインを独自開発するところですが、今回のプロジェクトではスコープ外でした。

私たちは代わりに異なる固定ディレイタイムの4種類のディレイを用意し、それらの間でフェードさせ、ユーザがディレイタイムを選択できるようにしました。理想的な解決策とは言えませんが、Step Sixteenでポップ音やクリック音なく、ディレイタイムをある程度変化させることができます。

 

まとめ

Step Sixteenの開発は困難でしたが、楽しかったです。Wwiseのコールバック、スティンガー、インタラクティブミュージックシステムなどにより、確実なクロックを達成することができました。内蔵エフェクト、RTPC、モジュレーションエンベロープなどを活用したため、ユーザは自由にサウンドをかたちづくることができます。私たちはStep Sixteenで音楽をつくることが大好きで、Step Sixteenを活用したみなさんの作品を聴くことを楽しみにしています。

Step SixteenをSteamで公開中:https://store.steampowered.com/app/2407480/Step_Sixteen/ 

マット・スウィーニー

クリエイティブディレクター兼サウンドデザイナー

Rogue Waves

マット・スウィーニー

クリエイティブディレクター兼サウンドデザイナー

Rogue Waves

Rogue Wavesのクリエイティブディレクター兼サウンドデザイナー。アイルランドのダブリンを拠点に活躍中。テレビ、映画、アニメーション、ゲームオーディオなどの分野でさまざまな役割を担当してきました。

2021年よりRogue WavesでSFXライブラリやソフトウェアを作成し、ポストプロダクション事務所、ゲーム開発スタジオ、フリーランスのサウンドデザイナーやエディターなどを対象に、強力で便利な高品質のコンテンツを提供してきました。

Instagram

Website

 @RogueWavesSFX

コメント

Replyを残す

メールアドレスが公開されることはありません。

ほかの記事

ミストラリアの不思議でダイナミックなサウンドスケープができるまで

ミストラリアの魔術師(Mages of Mystralia)は、主人公のZiaがSpellcraftの魔法を習得していく明るくてカラフルなアクションアドベンチャーゲームです。私はBorealys...

7.4.2020 - 作者 アントワン・バション(ANTOINE VACHON)

『イモータル・レガシー』のサウンドデザイン - パート2

パート1は、こちらから。 サウンドエフェクトとダイアログ...

14.10.2020 - 作者 エディ・リウ(刘海宜)

Wwise+GMEゲーム音声ソリューション:様々な音声利用方法を解放し、プレイヤーに「リアルサウンド」を提供

13.1.2022 - 作者 Tencent Cloud

『Little Orpheus』における音楽のデザイン判断

『Little Orpheus』は地球の中心に向かう同志の旅路を追ったサイドスクロール型アドベンチャーゲームで、作者は『Everybody's Gone to the Rapture...

25.10.2023 - 作者 ジム・ファウラー

『Scars Above』におけるオーディオ最適化の手段

はじめに 今回は私たちのゲーム『Scars...

14.2.2024 - 作者 ミラン・アンティッチ

Audiokinetic Theater セッションのまとめ | GDC 2024

GDC 2024で開催されたAudiokinetic...

24.9.2024 - 作者 Audiokinetic

ほかの記事

ミストラリアの不思議でダイナミックなサウンドスケープができるまで

ミストラリアの魔術師(Mages of Mystralia)は、主人公のZiaがSpellcraftの魔法を習得していく明るくてカラフルなアクションアドベンチャーゲームです。私はBorealys...

『イモータル・レガシー』のサウンドデザイン - パート2

パート1は、こちらから。 サウンドエフェクトとダイアログ...

Wwise+GMEゲーム音声ソリューション:様々な音声利用方法を解放し、プレイヤーに「リアルサウンド」を提供