Wwiseのクエリ機能を使いこなすには

Wwiseの使い方やツール

Query EditorはWwiseにある強力なツールですが、私の経験ではほとんどの人がその存在さえ知らないか、使っていません。Query Editorでは、プロジェクトを検索して簡単に一括編集やアイテムのタグ付けができるほか、バグのトラブルシューティングも可能です。今回はQuery Editorをまだ使い始めていないユーザー向けにその「謎」を解き明かすので、早くツールに慣れてWwiseのパワーユーザーになってください!

ProjectExplorer_01-1.png

Wwise Project ExplorerのQueriesタブ

Project Explorerにクエリ機能専用のタブがありますが、Wwiseプロジェクトの他のタブと同様に、このタブもプロジェクトの1つのフォルダを表しています。必要に応じてWork Unitを追加してクエリを作成できるほか、既にあるものをコピーしてから編集してクエリを変えて、システム内をドリルダウンして目的のものを見つけられます。クエリを簡単なレポートのようにとらえてみることもできます。何かを探り出そうとしている時や、特定の設定値やRTPCが設定されたオブジェクトを洗い出したい時などに、該当オブジェクト全ての一覧表をクエリで生成できるのです。

Query Editorの仕組み

2._Query_Editor_01.png

Query Editor画面

クエリシステムの中枢にあるのが、Query Editor画面です。Wwiseでクエリを開くと、Query Editorが表示されます。今からQuery Editorを詳しく見ていきますが、自由にアクセスできる設定項目や、その更に下にある項目の数からしても、かなり複雑なツールですので、一般的な設定がどこにあるのかに慣れるまで、ある程度の時間をかけてインターフェースに親しむことを強くお勧めします。

3_QueryEditor_top.png

Query Editorのトップ。楽しさは、ここからスタート!

 

Query Editorのトップに現在のクエリの名前が表示され、続いてその中の情報が下に順に出ます。最初に、このシステムで探し出したいオブジェクトの種類をObject Typeで選択します。オブジェクトタイプとは、Sound、Random Container、Music Segmentなど、Wwiseで使われるあらゆる構成のことです。Object Typeのドロップダウンメニューを開くと、選択可能なオプションが表示されます。クエリ結果は、ここで選択したオブジェクトタイプに限定して表示されます。プロジェクトの全ての構成を対象とした検索を実行したい場合は、ここでAll Objectsを選択します。

次に、検索を開始する場所を選ぶことができます。"Start From"ボックスの隣にある"..."をクリックすると、ウィンドウが開き、Actor Mixer HierarchyInteractive Music Hierarchyの中の場所を選択したり、プロジェクト全体を選択したりできます。どの場所を選択しても、クエリはその位置から再帰検索を実行します。例えば、Actor Mixer Hierarchy を選択すると、全Work Unitの中にある全構成を対象に検索しますが、1つのWork Unit だけを選択すると、そのWork Unit の中身だけが対象となります。

また、マルチプラットフォームのプロジェクトであれば、PlatformボックスでAll を選択して全プラットフォームを検索したり、必要に応じて特定のプラットフォームに限定したりできます。

Browser ウィンドウ

4_QueryEditor_browser.png

Browser ウィンドウ

Query Editor の中にあるBrowser ウィンドウが、このシステムの「脂がのった」部分です(ベジタリアンであれば「肉の代用食材」とでも考えてください)。Browserに複数のカテゴリが展開されていない状態で表示されるので、検索でこれから探すロジックやパラメータを順に選択していきます。これぞQuery Editor の最もパワフルな部分なのですが、残念ながら、やや鋭敏さに欠けるところでもあります。必ずしも直感的に使えるわけではなく、例えば探しているパラメータが予期せぬカテゴリの奥に埋もれていたり、一般名称のカテゴリのドロップダウンを展開して初めて出てきたりすることがあります。ただしWwise 2015.1 以降を使っていれば、スクロールバーの上のとても小さい虫メガネマークをクリックすれば、ブラウザ自体の中の検索とフィルタリングができます。検索用のテキストフィールドに入力すれば、それに従いブラウザに表示される内容がフィルタリングされます。是非とも一度、時間を割いてこのブラウザにある全てのカテゴリに目を通して、1つ1つを展開しながら全オプションを漏らさずクリックして中に何が入っているのかを確認してみてください。内容を大まかにつかんでおくだけで、後々、設定を十分に使いこなした強力なクエリを構築することができるでしょう。

Criteriaウィンドウ

5_QueryEditor_criteria.png

Query EditorCriteria設定

Browser ウィンドウでアイテムを選ぶと、それが右のCriteria(条件)ウィンドウに表示されます。Criteria ウィンドウには、Browserウィンドウの一般的なカテゴリを細かく検索できるように、単純なドロップダウンやチェックボックス、条件文など、様々なツールが用意されています。上図の例では、あるRTPC を使っているオブジェクトを探しています。なお、Criteriaウィンドウ のName欄を見ると、この要素が具体的にBrowserウィンドウのどこにあるのかが分かります(Game Parameter -> RTPC -> Game Parameter Usage)。これもまた、奥が深いだけに複雑さが増している部分であり、どのような選択肢や設定があるのかを早く習得するには、色々とクリックしながら確認するのがいいと思います。

Criteriaウィンドウの上にOperatorのドロップダウンがあります。Queryで複数のクライテリア(条件)を設定する時に、Operator で"And" を選択すると全ての条件に合う検索結果が、"Or"を選択すると1つ以上の条件に合う検索結果が、表示されます。

Resultsウィンドウ

6_QueryEditor_results.png

Resultsに表示された検索結果

条件を全て設定できたら、あとはWwiseに検索を委ねるだけです。Query Editorの上部にあるRun Queryボタンをクリックすると、設定した対象範囲内にObject TypeやCriteriaに合致するオブジェクトがあれば、下のResultsウィンドウに結果が表示されます。結果の一覧から複数の項目を選択して一括編集したり、個々のオブジェクトに着目して微調整やトラブルシューティングをしたりできます。

要は、CriteriaやOperatorの設定を組み合わせることで、Wwiseに対するシンプルな論理質問を作成できるわけです。プロジェクトに入っているサウンドについて具体的な情報を求めている時など、まず質問文として書き出してみて、それに基づいてクエリを構成するという手順も有効で、例えば「アクターミキサーWeaponsの中にあるシーケンスコンテナのうち、Continuousに設定されていて、トリガーレートが0.25秒未満のものはどれか?」などと目的を整理してみます。この質問に合うクエリを設定するには、Query Editorで、Object TypeをSequence Containerにして、Start FromをActor-Mixer HierarchyのWeaponsにして、PropertyでContinuous playbackを選択して、Trigger rateを"< .25"にします。あとはOperatorがAndとなっていることを確認すれば、答えが出ます!

事例の紹介

このように手順を分けて説明しても、Query Editorに対する抵抗感が残るかもしれません。幸運なことに、Wwiseに最初からFactory Presetsとして便利なクエリが沢山入っています。これらを使ってプロジェクト内の要素を探り出せるだけでなく、それを土台に新たなクエリを作り上げることもできます。それでは、いくつかのFactory Queriesを見ながら、Query Editorの仕組みを説明します:

7_Factory_UnlinkedProperties_FIXED.png

プロジェクトでUnlinkオブジェクトを探し出すための、WwiseFactory Query

マルチプラットフォームの開発を経験したことがあれば、プラットフォームによってはオブジェクトの設定をWwiseの"global"(全体)設定からアンリンクして(紐づけを外して)、そのプラットフォームだけに限定した設定値を入れる手間が必要だということを、よくご存じでしょう。(ちなみに知らない人向けに説明すると、設定スライダーの紐づけを外せば、プラットフォーム毎に異なる値を適用できます。例えば、開発中のゲームのPCバージョンにAndroidバージョンと違うミックスやバリエーションが欲しければ、Wwise上でアンリンクして設定を変えます。)このようなプロジェクトでは、オブジェクトの大半をリンクさせておいて、一部のオブジェクトだけをアンリンクすることがよくあります。では、プロジェクト内でアンリンクされている全てのオブジェクトを見て、プラットフォームによってどれだけ差があるかを確認したければ、どうしますか。上図はAudiokineticが提供するObjects with Unlinked Propertiesという既定のクエリですが、その名の通り、プロパティがリンクされていない(Is linkedにチェックが入っていない)オブジェクトが全て表示されます。このQuery Editor のCriteria 部分を見ると、Operator がOr に設定されているので、基本的にVolume、Pitch、High-pass filter、Low-pass filterのいずれかがリンクされていないオブジェクトを探すためのクエリであることが分かります。クエリを実行すると、このプロジェクトでこれらの設定の1つがアンリンクされているオブジェクトが全て、結果として返されます。Factory Queriesをドリルダウンしていくと、様々な設定項目がどこにあるのか、そして調整可能なパラメータは何なのかが、よく分かり、効率的に感覚もつかめると思います。それでは、自分でクエリを設定してみる前に、既定のクエリをもう2つ見てみましょう。

私は今までのプロジェクトで、サウンドが急に聞こえてこなくなったというバグの経験が、思い出したくないほどあります。いつもはプロファイラ機能を使って何が起きているのかを探るわけです(これはまた別のブログで)。問題の原因は、往々にしてフィルターの追加的な性格にあると思います。あるサウンドにLow-passフィルターが設定され、それに対してアクティブなStateが1つ2つ増えると、フィルターが微妙に変化してしまいます。このように、フィルターが本質的に膨張しかねないものであるがゆえに、1つ1つの変更点が些細なものでも、蓄積すると聞こえなくなるほどサウンドがあやふやになってしまうことがあります。極端な値が出現する理由を求める時によくするのが、まずプロファイラのVoicesタブでLPF値に何らかのパターンや異常に高い値がないかを確認して、あれば、特定のLPF値または一定値以上のLPF値のどちらかを探すクエリを実行します。下図は、LPF値が45を超える全てのオブジェクトを検索したクエリと、結果として出されたオブジェクトのリストの一部です。なお、検索条件を絞りやすいように、CriteriaのConditionの設定として「超える」「未満」「等しい」などを選べます。

8_SpecficExampleWithReturns.png

Actor-Mixer Hierarchy LPF45を超える全てのオブジェクトを探すクエリ

それでは次に、あるプロジェクトでNotesフィールドを使って、プロジェクトの状況を未来の自分のために残しておいた場合を考えます。例えば、プレースホルダー(場所取り)用のサウンドを入れる時に、Notesフィールドにメモとして"placeholder"と記してきたとします。Query Editor画面から、Notesに"placeholder"と入力された全てのサウンドを見つけるレポートを簡単に作成できます。BrowserのGeneralの中を見ると、Noteという項目があります。Criteria部分で"placeholder"と入力して、プロジェクトに対してクエリを実行すれば、お見事!全てのプレースホルダーのサウンドが、Resultsウィンドウに出てきます。このウィンドウからクリップボードにコピーして参考用のリストを作成したり、一括編集してNotesの内容を削除したり変更したりできます。

9_SearchForNote_02.png

Notesフィールドに特定の文字列があるオブジェクトを検索する、クエリ例

 

クエリ条件の組み合わせ

Query Editorの基本が分かってきたかと思います。それでは、1つ自分でもつくってみましょう!さて、Interactive Music Hierarchyにミュージックを追加する時にMusic Segmentのデフォルト設定はストリーミングとなっていないので、マニュアル操作で設定を変えるにはいくつかのコンテナをドリルダウンして、Music Segmentまでたどり着いてから、ストリーミングとしてタグ付けする必要があります。しかし複数のファイルを一括インポートする時などは、面倒な作業です。そこで、ストリーミング設定がされていないMusic Segmentを全て表示するクエリを作成します。検索結果が出れば、結果のリストからストリーミング対象のものを選択して簡単に一括編集できます。

まず、新しいクエリを作成します。Wwiseにあるほかの構成と同様に、Work UnitのQueriesタブで子Queryを作成するだけのことなので、こうします:

10_CreateQuery.png

次に、新規クエリの肉付けをします。今回はミュージックオブジェクトの中でもStreamingフラグを設定できるMusic Trackだけが関係するので、まずObject TypeとしてMusic Trackを選択します。検索の開始地点であるStart Fromは、Interactive Music Hierarchyの中のDefault Work Unitとします。BrowserでPropertyを展開してValueをダブルクリックすると、それがCriteriaの項目として追加されます。ドロップダウンで"Is Streaming Enabled"(ストリーミングを有効にする)を選択して、"Is checked"(設定済み)のチェックボックスを未チェックのままにすることで、ストリーミングが有効になっていないものが検索されます。これでDefault Work Unitに入っている、ストリーミング設定されていない全てのMusic Trackが、検索結果として出されます。Run Queryをクリックすると、ストリーミング設定されていないMusic Trackの一覧表がQuery Editor下部のResultsウィンドウに表示されるはずです。次に一覧表から、ストリーミング用に設定したいMusic Trackを全て選択してから、Ctrl+MでMulti-Editorウィンドウを呼び出して、"Is Streaming Enabled"のチェックボックスをチェックするだけです。これで終わりです!

11_New_MusicNotStreaming_query.png

簡単ですが、以上がQuery Editorの使い方と、トラブルシューティングへの応用方法やワークフローのスピードアップの仕方でした。とても奥の深いツールなので、十分に機能を理解するには、ある程度の時間をかけて遊んでみる必要があります。プロジェクトの中身に関する情報を見つけるために、ぜひともQuery Editorを使ってください。まずWwiseに作り込まれているFactory Queriesからスタートして、さらに自分で試行錯誤したり、ユーザーコミュニティで情報を共有しながらディスカッションに参加したりしてみてください。この記事では主だった機能をさっとご紹介しただけですが、どこまで踏み込んだクエリを組むことができるかは、あなたの想像力次第です。

  Subscribe

 

 

ブラドリー・メイヤー(BRADLEY MEYER)
Sucker Punch Productions - オーディオディレクター

オーディオディレクター及びサウンドデザイナーとして、ゲームサウンドデザイン、システムデザイン、スクリプト制作、インテグレーション、声優指導などの経歴18年以上。

Linkedin      @AuralSurgeon

 

この記事は、最初に Designing Soundに掲載されたものです。

Bradley Meyer

Audio Director

Sucker Punch Productions

Bradley Meyer

Audio Director

Sucker Punch Productions

Audio Director and sound designer with 18+ years of experience in game sound design, systems design, scripting and integration, voiceover direction, and more.

 @AuralSurgeon

コメント

Replyを残す

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

ほかの記事

サウンドデザイナーの力を、Unity3Dで拡張

私たちは最近、MIGSでEmpowering Your Sound...

27.3.2018 - 作者 ビアトリクス・マーシュ(BEATRIX MOERSCH)

SoundSeed Grainのメイキング

Wwise用の汎用グラニュラーシンセサイザーがあれば、それで幅広い種類の音を出すことができ、ゲームでも様々な使い方が予想されるので、私たちはずいぶん前から開発してみたいと思っていました。...

14.6.2019 - 作者 ルイス・ハビエル・ブッフォーニ(Louis-Xavier Buffoni)

Impacterクロスシンセシスのバリエーションを可視化

2.9.2021 - 作者 ライアン・ダン(RYAN DONE)

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

13.1.2022 - 作者 Tencent Cloud

Wwise 2022.1におけるSDKランタイムパフォーマンスの改善

この記事ではWwise...

1.3.2023 - 作者 デビッド・クルックス

Wwise Spatial Audio 2023.1の新機能 | 位相ずれの軽減

25.1.2024 - 作者 アレン・リー

ほかの記事

サウンドデザイナーの力を、Unity3Dで拡張

私たちは最近、MIGSでEmpowering Your Sound...

SoundSeed Grainのメイキング

Wwise用の汎用グラニュラーシンセサイザーがあれば、それで幅広い種類の音を出すことができ、ゲームでも様々な使い方が予想されるので、私たちはずいぶん前から開発してみたいと思っていました。...

Impacterクロスシンセシスのバリエーションを可視化