WwiseとREAPERの連携(パート1)WAAPI Transfer

オーディオプログラミング / サウンドデザイン

WAAPI Transferは新しいツールではありませんが、あまり話題にあがりません。このツールは、REAPERからオーディオアセットをWwiseプロジェクトに直接エクスポートするための、オープンソース拡張プラグインです。NuendoのGame Audio Connectプラグインに似た機能を提供します。まだ開発途上で、確かにユーザーエクスペリエンスに改善の余地はありますが、だからといって見捨てるべきではなく、REAPERとWwiseを使うサウンドデザイナーにとっては素晴らしいツールです。このツールで何ができるのかを説明したいと思います。

お断り: WAAPI Transferは執筆時にREAPERとWwiseをつなげる最善のオープンソース方式です。今後、もっと良いものが発表されないとは限りません。REAPERユーザーのコミュニティは大きく、とても行動的だからです。私も含め大勢のユーザーが日々新しいアイディアを試し、カスタムスクリプトやプラグインを開発しています。さて、これを念頭に、カール・デービス(Karl Davis)別名KarlTechnoのWAAPI Transferを紹介します。

警告: あいにくWAAPI Transferが対応するのはPCのみです。

WAAPI Transferの機能

  • 多数のオーディオアセットをWwiseに直接エクスポート

  • アイテム、リージョン、ステム、マスターミックスのエクスポート

  • サウンドエフェクト、サウンドボイス、ミュージックトラックのエクスポート

  • 複数のプロジェクトから同時にエクスポート

  • オープンソース(無料)

制限事項

  • MIDI非対応

  • Interactive Music Hierarchyの対応が弱い

  • 小さいバグがある

  • 初歩的なUI/UX


WAAPI Transferのインストール

注: このプラグインが使えるのはWAAPI (2017.1+) 対応バージョンのWwiseです

  • Wwise を開き、 Project->User Preferences を選びます

  • Enable Wwise Authoring APIをチェックし、OKをクリックします

 

Picture1
  • Wwise を閉じます

  • Waapi Transfer Github ページ を開き、プラグインの最新版(執筆時はv0.1.9-beta)を、あなたのREAPERインストールに合うアーキテクチャ(x86、x64)でダウンロードします

  • REAPERを開きます

  • Options->Show REAPER resources path を選びます

  • UserPluginsフォルダを開きます

  • あなたのWAAPI Transfer .dllファイル を、その中に入れます

  • REAPERを再起動します

  • Wwiseを開きます


これで、プラグインを使う準備が整いました。REAPERのExtensionsメニューに、 WAAPI TransferWAAPI Recall の2つのオプションが追加されているはずです。

WAAPI Transferの基本

 

Picture2
  1. About 情報 - ここでバージョン情報を確認できます

  2. オーディオアセットのリスト - これからWwiseにインポートするオーディオファイル一覧

  3. Wwiseオブジェクトのリスト - これからオーディオファイルを入れるWwiseオブジェクトの一覧

  4. レンダー設定 - ここですべてのアセットプロパティをカスタマイズすることができ、レンダリングをスタートできます

  5. Wwiseオブジェクトマネージャ -  Wwiseプロジェクトにオブジェクトを追加したり削除したりできます

 

アセットを準備する

WAAPI Transferではサウンドを入れるオブジェクトをWwiseですべて作成してから、REAPERのサウンドをインポートします。次にあなたのすべてのサウンドに、該当するWwiseオブジェクトを個別にアサインします。準備が終わればクリック1つでサウンドをエクスポートできます。WAAPI Transferに、REAPERのRenderキューに入っているものを検知する仕組みがあります。エクスポートできるのは、アイテムリージョンステム 、マスターミックスです。知っているかもしれませんが、Renderのキューを使いエクスポートする機能はメリットと共にデメリットがあります。これから説明しますが、気づきにくいので注意してください。

Renderキューを使ってエクスポートする最大のメリットは、複数のプロジェクトをロードしてアセットをRenderキューのリストに追加してから、プロジェクトを閉じることができることです。REAPERを閉じてからもう一度起動しても、Renderキューは保存されています。つまり、自分のゲームオーディオプロジェクトをすべて見ながら、プロジェクトごとに何をエクスポートしたいのかを具体的に選べます。選び終わったら、それらのアセットを一括してエクスポートできます。

ただ欠点として、REAPERのAdd to render queueボタンをクリックすると、そのたびに、Renderキューに新しい項目が追加されてしまいます。さて、問題を理解するにはRenderキューの基本ロジックの知識が必要です。あなたのRenderキューに新しいRender項目が追加されると、プロジェクトのtempコピーからレンダリングされ、そのコピーに入っているアセットはあなたが選択したものだけですが、プラグインは、すべて入っています。1つのプロジェクトから複数のキュー項目を作成した場合でも、Renderリストの項目ごとに、このtempコピーがオンザフライで作成されてロードされるので、プロジェクトの処理負荷が高いと、REAPERがレンダリングを終えるまで時間がかかることがあります。

 

Picture3

例えば、上図ではキューに3つの項目が入っています。レンダーの項目として、Gunshotが1つ、Footstepが1つ、そしてExplosionsが1つあります。これらは3つとも同じMyProject.rppからきていますが、項目ごとに、固有のtempプロジェクトが作成されます。そこで、レンダー時間を短縮するためにお勧めするのは、1つのプロジェクトからすべてのアセットを一度に選択し、それをRenderキューに追加する方法です。サブプロジェクトやフリージングを使ってプロジェクトのアクティブプラグイン数を抑えることもできます。プロセッサやRAMに負荷がかかるプラグインが多数あり、キューに様々なプロジェクトからくる項目が複数あると、最終的なレンダー時間がどんどん長くなっていくので、この点は前もって計画的に進めるべきだということを充分意識してください。

SFXやVOICEアセットをWwiseにエクスポートする

標準的な手順

対象となるオブジェクトを漏れなくWwiseからもってきて、そこに、REAPERからエクスポートしたいアセットを残さずすべてアサインする、というのが基本的な考え方です。具体的には、以下の手順をとってください:

  • REAPERで、Renderキューリストに、あなたのサウンドを入れます

  • WAAPI Transferを開くために、Extensions - > WAAPI Transferをクリックします(キーボードショートカットもあります)

  • Connected on port 8080… という情報表示が提示されたことを確認してください。表示されない場合はWAAPI Re-connectをクリックしてください

    • 注: Port値はWwiseのUser Preferencesで変更できますが、私はお勧めしません。このポート(8080)をREAPERでほかのOSCに使っている場合は接続がうまくいかないかもしれません

  • アサイン先のオブジェクトを、あなたのWwise プロジェクトから選びます

 

Picture4
  • WAAPI TransferでAdd Selected Wwise Objectsをクリックします

 

Picture5
  • うまく処理できれば、新しいリストが作成されて表示されます

 

Picture6
  • このリストのWwiseオブジェクトを1つ選びます(例えばGunshot)

  • 次に、このオブジェクトに入れるオーディオアセット(Gunshot 001、Gunshot 002、Gunshot 003)をすべて選択します

  • Set Wwise Import Locationをクリックします

  • リストのサウンドをすべてWwiseオブジェクトにアサインし終わるまで、この手順を繰り返します

 

そうすると、あなたのウィンドウは下図のようになるはずです。

Picture7

注: リストのオブジェクトを特定の条件(Filename、Wwise Parent など)でアルファベット順にソートする機能は、まだありません。Renderキューにファイルを追加した順番はこのプラグイン内で変更できないことを、忘れないでください。


プロパティ設定

リストのサウンドアセットは、どれもプロパティがいくつかあり、具体的には、FilenameWwise Parent、Import Type、Language、Import Operation、Originals Subpathです。 各サウンドアセットの設定は、個別にカスタマイズしたり、複数のアセットを対象にプロパティを変更したりできます。それではプロパティの内容を1つずつ確認していきます:

  • File - アセットをエクスポートすると作成されるオーディオファイルの、ファイル名

  • Wwise parent - アセットを中に入れるためのWwiseオブジェクト

              サポートされるオブジェクトタイプ:

    • Actor-Mixer Hierarchy

    • Actor-Mixer Workunit

    • Virtual folder (Actor-Mixer Hierarchy)

    • Random container

    • Switch container

    • Sequence container

    • Blend container

    • Music Segment

              サポートされないWwise parent オブジェクト:

    • Music Playlist container

    • Music Switch container

  • Import Type

    • SFX -Sound SFX オブジェクトはこれに設定します

    • Dialog -Sound Voiceオブジェクトはこれに設定します

  • Language

    • Sound Voice オブジェクトのランゲージを指定するもので、SFXでは無視されます

  • Import Operation

    • CreateNew - 新しいサウンドファイルと、新しいWwiseサウンドオブジェクトを作成します

    • UseExisting - このオプションで既存のサウンドファイルが置き換えられますが、Volume、Attenuation、EffectなどWwiseオブジェクトプロパティは、すべて維持されます

    • ReplaceExisting - このオプションで既存のWwiseオブジェクトが完全に置き換えられ、そのオブジェクトのオーディオファイルやすべての設定も置き換えられます(個人的に不要なオプションだと思っていて、おそらくあなたも使う必要を感じないでしょう)

  • Originals subpath - WwiseのOriginalsパスの中から、特定のサブフォルダを定義することができます。私は変えたことがありませんが、中には変えたいと思う人もいるかもしれません

 

Changing the properties

どのプロパティ設定を変更するのも、Import Settings ボタンをクリックして、ダイアログウィンドウで、オプションを選択します。

 

Picture8

LanguageImport Operationは、ドロップダウンメニューがあります。なお、順番として、まずリストにあるプロパティを選択してから下のSet…ボタンをクリックしてください。少し不自然ですが、すぐ慣れます。リストで選択した項目だけに、新しいプロパティ値が適用されるので、選択内容を間違えないようにしください。

Import Operationと Import Typeのプロパティをもっと簡単に変更するには、リストの項目を選択してから右クリックし、コンテキストメニューから選びます。 

 

Picture9

 

レンダリング

アセットリストの中の設定がすべて終わったら、次に、いくつかの点を検討します。

プロジェクトのレンダーパスが仮にD:\BouncedSounds だったとします。ファイルを Wwise にインポートしたあとの処理を選べます。WAAPI Transferのデフォルトは、ファイルをこの場所から、Wwise のOriginals フォルダにコピーします。私はいつも、ファイルを「コピー」ではなく、「移動」するようにしていますが、それはゲームのオーディオファイルのオリジナルをWwise Project以外に保存する必要が、私はないからです。もしあなたも同じ考えなら、 Copy Files to WwiseOriginals というオプションのチェックを外します。

 

Picture10

WwiseのProfiler がアクティブな状態だとWwise に新しいアセットをインポートできないので、必ず無効にしてください。

次にRENDER AND IMPORT ALLというボタンをクリックすれば、あとは自動的にやってくれます。レンダリングが完了すると、あなたのWwiseプロジェクトに、新しいオブジェクトが表示されます。何回か繰り返すうちに考えずにできるようになります。実は、わりと単純で簡単です。

注: あなたのWwiseプロジェクトでソースコントロールを使っていると、小さいのにとてもやっかいな問題が発生します。一度に大量のオーディオファイルをエクスポートしようとすると、インポートするファイル10個ごとにダイアログボックスが1回、表示されます。そして、これらの新しいファイルを、ソースコントロールのレポジトリに追加するのかどうか、確認されます。

 

Picture11

私の知る限り、このダイアログボックスが表示されないようにするにはソースコントロールを完全にオフにするしかありません。もしWwise内でソースコントロールを重宝しているのなら、ここでYESボタンをしつこくクリックするしかありません。

 

MUSICアセットをWwiseにエクスポートする 

前述の通り、Interactive Music Hierarchyのオブジェクトの操作のサポートが限られています。このプラグインの対象はコンポーザーではなく、主にサウンドデザイナーだからです。とはいえ、音楽のエクスポートも多少できます。

例えばあなたのサウンドをMusic Segmentオブジェクトにエクスポートすれば、サウンドファイル1つに対して、1つのMusic Trackが入ります。

Picture12

あなたがImport Type として何を選択したかに関わらず、WAAPI Transferは、それをMusicとして自動検知します。

Picture13

ところが、もしInteractive Music Hierarchyの中にあるVirtual Folder にサウンドをエクスポートしようとすると、WAAPI TransferはImport Typeを検知しません。

Picture14

Virtual Folderにサウンドをエクスポートすると、そのあとにエラーウィンドウが表示されます。

Picture15

妙なことに、処理自体は成功します。複数のMusic Segmentが作成され、それぞれにMusic Trackが1つずつ入ります。

Picture16

問題はREAPERのRenderキューに、この項目が失敗した操作として残り、プロジェクトのレンダーパスにあるあなたのオリジナルのファイルが削除されないことです。あなたが、このような処理にWAAPI Transferを使う予定であれば、重要な点なので見落とさないでください。

警告: Music Playlist Containerオブジェクトや、Music Switch Container オブジェクトは、サポートされていないので、WAAPI Transferオブジェクトリストに追加することさえできません。

  

Project recall

Project recallは、選択中のWwiseオブジェクトのオリジナルの.RPPプロジェクトファイルを開くオプションです。Open in Nuendoコマンドのようなものですが、あまり上手に実装されていません。細かい仕組みを説明してもいいのですが、実はもっと効率的に実行してくれるReaOpenというスクリプトを自分で書いてみました。これを別のブログのトピックにしたいと思うので、お楽しみに。


Additional warnings

CTRL+Aの問題

プラグインの中のすべてのリスト項目を選択するためのショートカットは、CTRL+Aです。こういった操作には最も一般的なショートカットです。問題は、プラグインウィンドウが開いていると、WAAPI Transferがアクティブでないときもこのショートカットを横取りしてしまうことです。ほかのプログラムで選択するには、プラグインウィンドウを閉じるしかありません。

ESCキーの問題

EscapeキーでWAAPI Transferウィンドウを閉じることができないのは、ちょっと残念です。


まとめ

確かに、WAAPI Transferには改善の余地があります。おそらく実際に使っている人はほんの一握りで、プラグイン作者にフィードバックを送っている人はさらに少ないと思います。それは、プラグイン自体があまり知られていないからです。隠れた存在なのです。この状況は変えるべきで、REAPERユーザーのみなさんに是非とも試してもらいたいと思います。またREAPERを使ったことがなくても、デモバージョンをダウンロードして、ここで説明したワークフローをタダで試してみてください。このソフトウェアはゲームオーディオコミュニティへの素晴らしい贈り物であり、とりあえず検証して作者にフィードバックを送ってみるべきだと思います。このような類のツールの開発を継続してもらうには一番いい方法です。読者がこのプラグインに少しでも親しみを感じ、勇気を出して使ってみようという気になってくれることを願います。


 

二コラ・ルキッチ(Nikola Lukić)

テクニカルサウンドデザイナー

Mad Head Games

二コラ・ルキッチ(Nikola Lukić)

テクニカルサウンドデザイナー

Mad Head Games

セルビアの首都ベオグラードのMad Head Games社で、テクニカルサウンドデザイナーとして活躍中。サウンドデザインの修士号を取得し、最初はゲームプレイプログラマーとしてゲーム開発に携わる。1年間プログラミングを担当し、次にオーディオの仕事に就く。REAPERと、PythonやLUAなどの言語と出会ってからは、すぐに自分のツールやワークフローを構築し始め、この部門の作業効率の改善に努める。そして今、自分の知識とアイディアを世界と共有したいと思うように。

lkctools.com/

 @lkctools

コメント

Replyを残す

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

ほかの記事

ゲームオーディオのゲーミフィケーション (Part 2)

私が開発した幾つかのゲームでは、多くのオーディオ機能とゲームから出る多くの情報を、サウンドデザインに連携させてクールな音の瞬間を演出することで、このブログのPart...

12.6.2018 - 作者 Bjørn Jacobsen

WAAPIをよりシンプルに

この記事を読み終える頃には、Wwise Authoring API (WAAPI) を使ったことがない方々も興味がわいてくるはずです。...

24.7.2018 - 作者 アダム・T・クロフト(ADAM T. CROFT)

Wwiseを使った屋内音響のシミュレーション

23.7.2019 - 作者 エギル・サンフェルト(Egil Sandfeld)

FINAL FANTASY VII REMAKE のサウンド

4.11.2020 - 作者 SQUARE ENIX

誰でも使えるWAAPI パート1: 概要

こんにちは。ヤン・ワン(別名シー・イェ)です。 私がWAAPI(Wwise Authoring...

23.2.2021 - 作者 トーマス・ワン(汪洋)

ReaWwiseを使用してWAAPIをReaScript(Lua)で実行する

22.3.2023 - 作者 アンドリュー・コスタ

ほかの記事

ゲームオーディオのゲーミフィケーション (Part 2)

私が開発した幾つかのゲームでは、多くのオーディオ機能とゲームから出る多くの情報を、サウンドデザインに連携させてクールな音の瞬間を演出することで、このブログのPart...

WAAPIをよりシンプルに

この記事を読み終える頃には、Wwise Authoring API (WAAPI) を使ったことがない方々も興味がわいてくるはずです。...

Wwiseを使った屋内音響のシミュレーション