HeavyのWwise対応に関する最新情報

オーディオプログラミング

目次

 

イントロ

Heavy(hvcc)はPure DataパッチをVSTやDaisyファームウェアなどのさまざまなコンパイルフォーマットに変換するツールです。このプロジェクトはEnzien Audioが立ち上げ、現在はWasted Audioが開発をすすめています。

しばらく前よりWwiseへの対応を刷新する必要性を感じ、私が最近ようやく実現させました。WwiseジェネレータをAudiokineticの新しいPlugin APIにアップグレードしたほか、対応するチャンネル構成を増やし(5.1、7.1、7.1.4)、イベントをプラグイン内からポストする機能を追加しました。この記事で、新しい機能についてセットアップ事例を交えながら説明します。

ソースコードの生成方法も変えました。直接Visual Studioプロジェクトを生成するのではなく、AudiokineticのDevelopment Toolsに求められるフォーマットでプロジェクトが作成されるようになりました。エンドユーザにとってこの方が効率的である上、プラグインがAudiokinetic Launcherからインストール可能なバンドルとしてパッケージングされるため、とても簡単に配信できます。

今回はplugdataというすばらしいPure Dataフォークをすべての事例で使用しており、その「コンパイルモード」はHeavyが対応していないオブジェクトを使った場合に警告を出します。私は将来的に、プラグデータから直接Wwiseプラグインを構築する機能も検討したいと思います。

 

Hvccのインストール方法と使い方

以下のように、HvccはコマンドラインからインストールすることのできるPythonツールです:

pip install hvcc

これにより端末にhvccコマンドがインストールされます。例えば以下はドキュメントをプリントします:

hvcc -h

依存関係が適切であるVisual Studioも、インストールする必要があります。バージョンは2019と2022のどちらでも可能ですが、後者はWwiseのバージョン2022.1.5以降のみに対応しています。具体的にどのコンポーネントをインストールする必要があるのかは、ドキュメントに記載しているため、ここでは参考までに私のVS2019実装のスクリーンショットを掲載します:

wwise_hvcc_vs2019

図1:私のコンピュータにインストール済みのVisual Studioパッケージ。「.NET」や「UWP」パッケージは無視してよいと思います。

 

新しい機能の概要

 

より多くのチャンネル構成に対応

構築できるプラグインは、これまでモノラルとステレオに限られていました。変更後はソースプラグインとエフェクトプラグインのどちら向けにも、5.1、7.1、7.1.4の各構成を構築できるようになりました。どの構成で構築するかは、[adc~]オブジェクトや、[dac~]オブジェクトにおいて宣言したチャンネル数で決まります。

wwise_hvcc_multichannel

図2:左は5.1chのボリュームコントロールエフェクト。 右は7.1chの55Hzオシレーターとボリュームコントロール。

出力デバイスが変更された時、残念ながらHeavyプラグインがオンザフライでチャンネル構成を変更できないため、バスで使用するためには求められる構成をバスにおいて設定する必要があります。Wwiseが必要に応じて信号をダウンミックス、またはアップミックスします。非対応の構成のバスでプラグインを初期化した場合、エラーがプリントされます。

wwise_hvcc_bus_config

図3:マルチチャンネルエフェクトのプラグインのあるバスでは、必ずバスで構成(Configuration)を明示的に設定。

任意イベントのポストと、RTPCの設定

これまでRTPCを出力してきたように、今回のアップデートで任意のWwiseイベントをHeavyプラグイン内よりセンドオブジェクト経由でトリガーできるようになりました。制御専用のプラグインも作成可能ですが、実際には無音を出力するモノラルソースプラグインとしてコンパイルされます。このようなプラグインで、入ってきたパラメータの統計値を計算して新しいRTPCを設定したり、入ってきたRTPCをイベントに変えて反応型オーディオシステムを実現したりすることもできます。下図はこの目的を考慮して名付けたセンドオブジェクトです。

注:Wwise Authoringの起動時、イベントやそのデータは読み込まれません。Authoring内で実行中のプラグインからイベントをポストした場合、 Event ID not found(Event IDが見つかりません)のエラーが出ます。迂回策としてこのイベントをEventsタブで1度再生することにより、強制的に関連データをWwiseに読み込ませることができます。

wwise_hvcc_control_only

図4: 制御専用のパッチ。Param1値の変化をPlay_Test_Soundイベントをポストするトリガーに変え、Param1とParam2の平均値を計算し、それを「Param_Avg」RTPCとして同ゲームオブジェクトに設定。

プラグインをAudiokinetic Launcher用にパッケージングする

Audiokineticのビルドツールと互換性のあるプロジェクトフォーマットをHeavyで生成できるようになり、プラグインをAudiokinetic Launcherからインストール可能なパッケージとしてバンドル化できます。カスタムプラグインを他人が使えるように簡単に配信でき、プラットフォームごとに異なるビルドを用意することさえ可能です。細かい手順はHeavyのドキュメントにありますため、ここでは省略します。

忘れてはいけないことが1点あります。現在、プラグインのフォーマットがAudiokineticのWwiseバージョン番号の付け方に従う必要があります。例えばWwise 2022.1をターゲットとするプラグインのバージョン番号は、「2022.1.X.Y」とします。この決まりに抵抗を感じる場合は、Pure Dataパッチを変換した際に生成されるbundle_template.jsonファイルにおいて、Wwiseのターゲットバージョンを修正します。

手順にそのまま従い作業を楽にするためには、WWISEROOTWWISESDKの環境変数をAudiokinetic Launcherで正しく設定してください(Set Environment Variables…ボタン)。

wwise_hvcc_envvars

図5:該当するWWISEROOTWWISESDKの環境変数を設定。

アウトロ

HeavyのWwiseに関連する最新情報を簡単に紹介しました。ほかにアイデアや機能リクエストなどがある場合、ぜひWasted AudioのDiscordまたはGitHubで教えてください。

いままでHeavyを使ったことがない方は、詳しい説明が同じAudiokineticブログのChenzhong Houの記事「How Sound Designers Use PureData + Heavy」(英文)にあります。ほかにも以前のBen McCulloughのブログ投稿からHeavyを使ったマルチチャンネルエフェクトプラグインの作成経験を知ることができます。彼の記事は対応するチャンネル構成を増やすきっかけとなりました。

ユージン・チェルニー

ユージン・チェルニー

オーディオプログラマーで、現在はゲーム業界にて活躍中。芸術とアカデミアの分野での経験を有する。ゲームオーディオをこよなく愛している。

https://eugn.ch/

コメント

Replyを残す

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

ほかの記事

Pagan Onlineのダイアログ管理を、AIで効率化するまで

29.10.2019 - 作者 二コラ・ルキッチ(Nikola Lukić)

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

WAAPI...

27.5.2020 - 作者 二コラ・ルキッチ(Nikola Lukić)

WwiseでMidiのマジックを使う 『New Super Lucky's Tale』のFoxberry Timer

親愛なるWwiseユーザーの皆さん、こんにちは。

8.2.2021 - 作者 アーロン・ブラウン(AARON BROWN)

新WAQL(Wwise Authoring Query Language)の紹介

9.6.2021 - 作者 ベルナール・ロドリグ(Bernard Rodrigue)

WAQL 2.0

WAQL(Wwise Authoring Query...

22.8.2023 - 作者 ベルナール・ロドリグ(Bernard Rodrigue)

Wwise Time Stretchプラグインを使用して、ゲームのシネマティックスをWwiseで駆動する

はじめに Jater (Ruohao) Xuによる『逆コーラップス:パン屋作戦』の開発経験における3部構成のブログで、今回は第1回目となります。本記事ではWwise Time...

7.1.2025 - 作者 Ruohao (Jater) Xu