バージョン

menu_open
Wwise SDK 2023.1.3
重要な移行の注意 2019.2

一部の 2019.2 の新機能 の影響で、Wwise 2019.2 に移行する際にいくつかの点を注意してください。

Visual Studio 2013が非推奨となりました

Visual studio 2013のサポートを削除したので、サウンドエンジンのWindowsランタイムDLLのコンパイル前のバージョンを入手するには、Visual Studio 2017のWindows SDKがあるWwiseを、インストールする必要があります。

AuthoringをVisual Studio 2019でビルドしました

Authoringを、Visual Studio 2015でなく、Visual Studio 2019でビルドしました。Visual C++ Redistributableは、Visual Studio 2015、2017、2019のどの版も同じなので、プラグイン開発者はコンパイル作業にどのツールセットを使っても問題ありません。 なお、ここでVisual Studio 2019ツールセットをvc160と呼ぶのは、Visual Studioのバージョン番号(16)に基づいています。ただし、ツールセットの正式なバージョン番号はvc142であり、Visual Studio 2015ツールセット(vc140)や2017(vc141)との互換性を示しています。 同じ論理に基づいて、ここでvc150と呼ぶのは、vc141を指しています。

C++11コンパイラが必須となりました

正しくコンパイルするには、Wwise SDKのヘッダに有効なC++11が必要となりました。対応コンパイラの一覧が プラットフォーム要件 にあります。

UTF-8エンコーディング

Wwise Authoringアプリケーションから出されるテキストファイルのエンコーディングフォーマットが、UTF-8になりました。今まで、ANSIとUnicodeのどちらかをエンコーディングフォーマットとして 選択できたのが、廃止されました。SoundBank生成の前後に提供されていた組込みマクロContentFileFormatは非推奨となり、次のバージョンで削除されます。2019.2では、常に値が "Unicode" となります。SoundFrameに渡されるSoundBank生成の設定も、 AK::SoundFrame::SoundBankGenerationSettings::eContentTxtFileFormat を無視するようになり、 AK::SoundFrame::SoundBankContentTxtFileFormat_UNICODE がデフォルトとなります。

PluginInfo.json のフォーマット

サウンドバンク用PluginInfo.jsonメタデータファイルのフォーマットが変わりました。実は "Plugins" が複数のマップのアレイとなり、重複するキーを持つ複数のマップの入ったマップではなくなりました。今までのフォーマットでは、JSONリーダによってデータを正しくパースできないことがありました。

新Memory Manager

メモリプールの代わりに、新Memory Category に記載された変更点を反映して、関係するいくつかのインターフェースも変更されました。

AK::MemoryMgr インターフェース (AkMemoryMgr.h) では:

  • デバグのファンクションである AK::MemoryMgr::dRealloc を、 AK::MemoryMgr::Realloc と相対するインストゥルメント付きのファンクションとして追加しました。
  • プロファイリングファンクションを、 AK::MemoryMgr::GetPoolStats と AK::MemoryMgr::GetPoolMemoryUsed から、 AK::MemoryMgr::GetCategoryStatsAK::MemoryMgr::GetGlobalStats に変更しました。
  • AK::MemoryMgr::Free と、 AK::MemoryMgr::Falign の、return valueを変更しました。
  • 引数 AkMemPoolId を、プロファイリングファンクションである AK::MemoryMgr::StartProfileThreadUsage と、 AK::MemoryMgr::StopProfileThreadUsage から、削除しました(全メモリカテゴリのアロケーションを、特定スレッド用に集めます)。
  • プール関連のファンクションである、 AK::MemoryMgr::CreatePool 、 AK::MemoryMgr::DestroyPool 、 AK::MemoryMgr::GetNumPools 、 AK::MemoryMgr::GetMaxPools 、 AK::MemoryMgr::CheckPoolId, AK::MemoryMgr::GetPoolAttributes 、 AK::MemoryMgr::SetPoolName 、 AK::MemoryMgr::GetPoolName から、削除しました。
  • ブロックアロケーションのファンクションである、 AK::MemoryMgr::GetBlock 、 AK::MemoryMgr::ReleaseBlock 、 AK::MemoryMgr::GetBlockSize を、削除しました。
  • デバグのファンクションである、 AK::MemoryMgr::CheckForOverwrite 、AK::MemoryMgr::DumpToFile を、削除しました。

    AK::MemoryMgr (AkModule.h) のデフォルト実装では:

  • ファンクション AK::MemoryMgr::GetDefaultSettings を追加しました。
  • AkMemSettings 構成を変更しました。

その他のインターフェースでは、プールを削除したことにより:

  • AK::SoundEngine::LoadBankAK::SoundEngine::UnloadBank を、次のとおり変更しました: "from memory" オーバーロードを名前変更し、 AK::SoundEngine::LoadBankMemoryView と、 AK::SoundEngine::LoadBankMemoryCopy にすることで、明確化しました。
  • AkCommSettings::uPoolSize を、削除しました。
  • AkInitSettings::uDefaultPoolSize 、 AkInitSettings::fDefaultPoolRatioThreshold 、 AkInitSettings::uPrepareEventMemoryPoolID 、 AkInitSettings::uMonitorPoolSizeを、削除しました。
  • AkPlatformInitSettings::fLEngineDefaultPoolRatioThreshold と AkPlatformInitSettings::uLEngineDefaultPoolSizeを、削除しました。
  • AkStreamMgrSettings::uMemorySize を、削除しました。
  • AK::StreamMgr::GetPoolID を、削除しました。

I/Oの改善

もし AK::IAkStdStream のカスタム実装を利用している場合は、インターフェースで指定された新ファンクションである AK::IAkStdStream::WaitForPendingOperation() を実装する必要があります。これで、実行をブロックし、ペンディングのI/Oがあれば、それが完了してから初めてreturnすることができ、ストリームの新ステータスをreturnする必要があります。

Wwise Spatial Audioの移行ガイド

Wwise 2019.2には、Spatial Audio関連の面白い変更点がいくつかあり、例えばSpatial Audio機能のインテグレーションと使い方がシンプルになり、パフォーマンスや拡張性が劇的に改善されました。残念ながら、この変更によって既存プロジェクトが悪影響を受けることがあり、2019.1の一部の機能が、そのまま2019.2につながらないこともあり、そのため 手作業の移行 が発生してしまいます。このガイドは、変換を希望するユーザー向けの情報を提供し、今回の変更に至った背景と理由を説明し、エクスペリエンス全体がどのように改善されるかを説明するものです。

Spatial AudioはAuthoringツールで直接設定

Wwiseの中核には、サウンドデザイナーの力を拡大し、プログラマーへの依存度を減らしていこうという考えがあるので、Spatial Audioの設定もゲームエンジンからでなく、Wwiseのオーサリングツールから直接、設定できるようにすることは、自然の流れでした。* 以下のプロパティが、Wwiseのサウンドオブジェクトとバスオブジェクトの両方に追加されました:*

  • Early Reflections Aux Bus. アーリーリフレクション処理を行うために、ある音を送信する先のAuxiliary Busを設定します。バス側でアーリーリフレクションのレンダリングを行えるように、Wwise Reflectプラグインをエフェクトとして、このバスにインサートしておく必要があります。有効なアーリーリフレクションバスを設定することで、Spatial Audioランタイム中にこの音のリフレクション処理が行えます。アーリーリフレクションを生成したくない音は、このフィールドを空白のままにしてください。
    • 注: このフィールドには何も設定せず、その代わりに新APIである AK::SpatialAudio::SetEarlyReflectionsAuxSend() を使い、ゲームオブジェクトごとにアーリーリフレクションのバスを設定することができます。
  • Early Reflections Send Volume. Early Reflections Aux Busで指定したアーリーリフレクションの、センドボリュームを設定します。
    • 注: Early reflections send volumeは、新APIである AK::SpatialAudio::SetEarlyReflectionsVolume() を使い、ゲームオブジェクトごとに設定できます。このファンクションに送られた値と、オーサリングツールで設定したサウンドごとのボリュームが、合算されます。
  • Enable Diffraction. このサウンドに対するDiffraction(回折)処理を有効にします。このボックスをチェックすると、以下となります:
    • サウンドエミッタと、Spatial Audioリスナーの間のdiffraction path(回折パス)が計算されますが、その際にポータル経由のパスや、ジオメトリのエッジを回り込むパスも、含まれます。
    • Diffraction係数に従い、Obstruction値を設定します。
    • Diffraction係数に基づいて、diffractionの組込みゲームパラメータを設定します。
    • バーチャルサウンドの計算された位置に従い、Multi-positioningを使いサウンドをパンさせたり減衰させたりします。 ここで重要なのは、Spatial Audioの設定が サウンド別に指定 されることです。今までは、同じゲームオブジェクトで再生中の2つの音を、別々に設定することはできませんでした。唯一の方法は、追加のゲームオブジェクトを作成して、そのエミッタ設定を違うものにすることでした。

不要となったエミッタ登録

プロジェクトの中で直接、設定を指定できるようになったため、Spatial Audioランタイムに、Spatial Audioプロパティを定義するオブジェクトの上でサウンドが再生されているのが分かるようになり、処理が必要だということが分かります。そこで、今までのように ゲームオブジェクトを “Spatial Audio Emitter” として登録できなくなった ので、 AkEmitterSettings も排除されました。Spatial Audioをもっと分かりやすく、使いやすくするために、オーサリングツールでは、 AkEmitterSettings にあった設定数よりも 設定数を減らしました 。AkEmitterSettings の各フィールドを移行する方法と、新しい値をWwiseプロジェクトでどう設定するのかを、以下に説明します。

  • name. 不要になったので、ゲームオブジェクトをサウンドエンジンに登録するには、代わりにデバグ名を使います。
  • reflectAuxBusID. サウンドごとに、Wwise オーサリングツールの中で指定するようになりました。アーリーリフレクションバスは、サウンド、バス共に、General settingsタブで定義するようになりました。
  • reflectionMaxPathLength. 不要になりました。Spatial Audioを設定したサウンドの減衰カーブを、Spatial Audioからアクセスできるようになり、カーブの - Maximum distanceが、リフレクション距離のヒューリスティックに使われます。
  • reflectionsAuxBusGain. サウンドごとに、Wwiseオーサリングツールの中で指定するようになりました。アーリーリフレクションのセンドボリュームは、サウンド、バス共に、General settingsタブで定義されるようになりました。
  • reflectionsOrder. リフレクションオーダーはグローバル設定となり、Spatial Audioのinit settingsに送られ、ゲームオブジェクトごとに設定できなくなりました。Wwise 2019.2の新しいリフレクションエンジンは、高次リフレクションの処理がかなり効率化されたばかりでなく、これまでほどシーン内のエミッタ数に影響されない方式で処理されるようになりました。結果的に、全エミッタのリフレクションを同時に計算することになり、エミッタごとのリフレクションオーダーを指定する意味がなくなりました。
  • reflectorFilterMask. この機能は、採用されることが少なく、パフォーマンスに悪影響を与える性質があったため、Wwise 2019.2では除外されました。
  • roomReverbAuxBusGain. Room aux busへのセンドレベルを変更するには、オーサリングツールのGeneral settingsタブで、Game-defined send volumeを調整してください。
  • diffractionMaxEdges. 特定のサウンドのDiffractionを有効にするには、オーサリングツールのPositioningタブで、Enable Diffractionチェックボックスを設定してください。Max edgesパラメータは、Wwise 2019.2 でグローバル設定になりました。
  • diffractionMaxPaths. 特定のサウンドのDiffractionを有効にするには、オーサリングツールのPositioningタブで、Enable Diffractionチェックボックスを設定してください。Max pathsパラメータは、Wwise 2019.2ではコンパイルタイムの定数になりました。
  • diffractionMaxPathLength. 不要になりました。Spatial Audioを設定したサウンドの減衰カーブを、Spatial Audioからアクセスできるようになり、カーブの Maximum distanceが、Diffraction max path lengthに使われます。
  • useImageSources. 結果的に常にTrueとなります。イメージソースをゲームオブジェクトごとに指定できるので、この追加設定が不要になり、削除されました。

余分なSpatial Audio APIが削除されました

Wwise 2019.1以前はSpatial Audioに、サウンドエンジンと結果的には重複しているAPIがいくつかありましたが、それらはSpatial Audioのエミッタとして登録されていたゲームオブジェクトに対して適用されていました。これは、分かりにくいだけでなく、ユーザーが正しいAPIをコールできているのかを確認する方法もありませんでした。2019.2からはエミッタを登録する必要がなくなったので、 以下のAPIが削除されました。

PortalでAttenuationが不要になりました

ほとんどの場合、 Wwise Authoring Toolでroom busに適用したAttenuation(減衰)をすべて、ユーザーが削除するべきです。 ルームオブジェクトに減衰を適用することが不要となったためで、その理由は、Wwise 2019.2のSpatial Audioが、エミッタとリスナーの間の通り道(path)全体の距離を、音の減衰に適用するからです。

Wwise 2019.2の前は、ポータルに関してよくユーザーが経験した問題があり、それはポータルを通して伝達されるリバーブが、異なる減衰の2つの音であるのに、その相対的な関係が維持されなかったことでした。例えば短い減衰のフットステップと、長い減衰の銃声が、同じポータルを通して再生されていたとします。2つの音がポータルの位置で一緒にミキシングされ、その同じ位置で再度スペーシャリゼーションの処理が施されました。これらの音の減衰は、エミッタとポータルの距離に従い分析されますが、これは、エミッタとリスナー間の距離全体の、ほんの一部の間であり、Spatial Audioはポータルの減衰に基づいて、このリバーブをさらに減衰させたのです。その結果、リスナーがポータルから離れると、2つの音の相対的なボリュームは変わることなく、フットステップは、当初の減衰カーブで設定されていたように銃声音よりも早くディケイすることはありませんでした。なお、この問題はウェットパスの場合のみで、ダイレクトパスの場合は想定通りに実現されました。

Wwise 2019.2のSpatial Audioでは、ポータルが音を拾う場所をリスナーと同じ位置にすることで、この問題を解決できました。こうすれば、音源とリスナーの間の通り道(path)の全体の距離を、音の減衰カーブに適用してから、そのサウンドをRoomの3Dバスにミキシングします。ポータル(つまりRoomバス)に減衰を適用することはもう必要ありませんが、場合によっては望まれます。ミックス後の減衰は、リバーブのボリュームをさらに下げたり、ポータルを通るリバーブに追加のフィルターを適用したりする効果があります。

WwiseCLIの後継者に、WwiseConsole

WwiseCLIが非推奨となり、今後はWwiseConsoleとなります。WwiseCLIは引き続き提供され、今まで通りに機能します。今までWwiseCLIでやっていたことは、すべてWwiseConsoleでも可能で、シンタックスを変更するだけです。WwiseConsoleに移行することが推奨されるのは、これからの新機能がWwiseConsoleだけに追加されるからです。

WwiseCLIとWwiseConsoleの違い

WwiseConsoleの情報が、中に入っています。パラメータなしで稼働させると、サポートされる操作のリスト表示されます。次に、具体的な操作のHelpを表示できます。WwiseConsoleのドキュメンテーションはSDKドキュメンテーションにもあり、オンラインやオフラインで見ることができます。

例えば、SoundBankの生成に関するHelpを表示するには:

WwiseConsole generate-soundbank --help

標準シンタックスは:

WwiseConsole operation project --option1 valueOfOption1 --option2 valueOfOption2

WwiseConsole 例

以下に、WwiseCLIシンタックスと、新しいWwiseConsoleシンタックスを比較した例をいくつか示します。

WindowsとLinuxのプラットフォームのSoundBankだけを生成します。

WwiseCLI C:\MyProject\MyProject.wproj -GenerateSoundBanks -Platform Windows -Platform Linux
WwiseConsole generate-soundbank C:\MyProject\MyProject.wproj --platform Windows Linux

WAAPIサーバをverboseログで実行します。

WwiseCLI C:\MyProject\MyProject.wproj -Waapi -Verbose
WwiseConsole waapi-server C:\MyProject\MyProject.wproj --verbose

WindowsプラットフォームとLinuxプラットフォームに対応する新しいプロジェクトを作成します。

WwiseCLI C:\MyNewProject\MyNewProject -CreateNewProject -Platform Windows -Platform Linux
WwiseConsole create-new-project C:\MyNewProject\MyNewProject.wproj --platform Windows Linux

このページはお役に立ちましたか?

サポートは必要ですか?

ご質問や問題、ご不明点はございますか?お気軽にお問い合わせください。

サポートページをご確認ください

あなたのプロジェクトについて教えてください。ご不明な点はありませんか。

プロジェクトを登録していただくことで、ご利用開始のサポートをいたします。

Wwiseからはじめよう