バージョン

menu_open
警告:このページでは、一部の保護された情報が表示されません。
あなたが特定プラットフォームのライセンスを所有しているユーザであれば、最初にログインしてください。
Wwise SDK 2021.1.14
重要な移行の注意 2021.1

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

Spatial Audio

Wwise Spatial Audioは、APIとAuthoringツールのどちらでも、オクルージョン係数を定義するために、ルームを透過する音や、ジオメトリを透過する音を対象に、 透過損失(transmission loss) という用語の使い方を標準化しました。これにより AkRoomParams::WallOcclusion の名前は AkRoomParams::TransmissionLoss に変わり、 AkAcousticSurface::occlusion の名前は AkAcousticSurface::transmissionLoss に変わりました。

物理的に納得できるような音の伝播現象を、簡単に設計、実装できるように、回折(diffraction)や透過(transmission)の処理を統合し、1つのオプションとしてまとめました。

  • Positioningタブの Enable Diffraction の名前を、 Enable Diffraction and Transmission に変えました。
  • 初期化設定の bEnableTransmission が削除され、Authoringツールでサウンドの Enable Diffraction and Transmission を選択した場合は、必ずTransmission(透過)のシミュレーションが有効になるようにしました。もし音の透過が、あなたのゲームにとって特に重要でなければ、全てのルームとジオメトリの透過損失係数をデフォルトの1.0とし、さらに透過損失100のときは耳に聞こえなくなるように、デフォルトのオクルージョンカーブを使ってください。

さらに、Spatial Audioの設定を簡単にするために、以下の AkSpatialAudioInitSettings フィールドが変更されました:

  • AkDiffractionFlags を削除し、代わりに以下を使います:
    • DiffractionFlags_UseBuiltInParam は結果的に、常にtrueとなります。Diffractionの組み込みパラメータが、あえて設定しなくても使えます。
    • DiffractionFlags_UseObstruction は、同じロジックをもつブール型の AkSpatialAudioInitSettings::bUseObstruction に変わりました。
    • DiffractionFlags_CalcEmitterVirtualPosition は、同じロジックをもつブール型の AkSpatialAudioInitSettings::bCalcEmitterVirtualPosition に変わりました。
  • bEnableDirectPathDiffractionAkSpatialAudioInitSettings::bEnableGeometricDiffractionAndTransmission に変わり、名前からこのオプションの内容が分かりやすくなりました。
  • fDiffractionShadowAttenFactor と、 fDiffractionShadowDegrees が削除されました。これらのオプションは使いにくく、物理的に納得できるようなサウンドレンダリングに向いていませんでした。

3D Audio

Wwiseバージョン2019.2以前は、組み込みSystem Audio Deviceが、最大7.1チャンネルのオーディオまで対応しました。これを超えて、一部プラットフォームで提供される3Dオーディオのアウトプット性能にアクセスするには、様々なプラグインを使う必要がありました。

Wwise 2021.1では、これらのプラグインをSystem Audio Deviceに取り込みました。新しく導入された Audio Objects Bus Configurationと組み合わせれば、3Dオーディオアウトプットの管理が大幅に簡素化されます。

今は非推奨となった3Dオーディオプラグインを利用しているWwiseプロジェクトを、2021.1に移行してそのメリットを活かすための移行ガイドとして、以下のセクションをお読みください。

プラグインと同等

プラットフォーム別のドキュメンテーションに、以前のプラグインの説明があり、それに相当するWwise 2021.1の機能がどこにあるのかも記載されています。

Microsoft Spatial Sound Platformアウトプット [非推奨]

移行

アウトプットを1つに

アウトプットをSpatialミックスとPassthroughミックスの2つにわけるような対策を採用してきたWwiseプロジェクトでは、今後は、1つのAudio Objectストリームからどちらのミックスも出力できるSystem Audio Deviceに、設定を変更してください。

オブジェクトが流れるように

3Dオーディオミキサープラグインのインスタンスを排除し、代わりに Audio Objects というBus Configurationにして、Audio Objectが最上位バスまで流れて、そこからSystem Audio Deviceに行くようにします。3D Audioモードを運用するときにSystem Audio Deviceから自動的にAudio Objectコンフィギュレーションを継承できるように、 Same as parent Bus Configurationの使用が推奨されます。

3Dでないモノラルやステレオのストリームは、System Audio Deviceによって自動的にPassthrough Mixに向けられます。ほかのオブジェクトタイプでも、強制的にPassthrough Mixに送信するには、Wwise System Output Settings Metadata で Mix BehaviorMix To Passthrough に設定します。

コンフィギュレーションの自動設定

これまで、3Dオーディオを検知してHeadphoneモードまたはSurroundモードに正しく切り替えるためには、ゲーム側のロジックが必要で、“Bypass all”と“Passthrough objects”のオブジェクトパンナー設定をバインドしたりしてきました。

今後は、検知をSystem Audio Deviceが実行するようになり、3Dオーディオがアクティブかどうかに合わせて、自動的にAudio ObjectとPassthrough Mixを有効にします。また、ターゲットがHeadphonesやSurroundであるときに、Main Mixに別々のコンフィギュレーションを選ぶこともできます。最後に、どのようなバスでも、Bus Configurationを Same as main mixSame as passthrough mix にすることで、Main MixやPassthrough Mixから継承できます。

実用的な例

Wwise SDK Integration Demoに、前のセクションで説明したターゲットのセットアップを実演する新しいページがあります。

こちらを参照してください: Positioning Demo > 3D Audio Objects and Spatialized Bed 。

Legacy Wwise Command Line Interface (WwiseCLI) End-of-Lifeの発表

Wwise 2021.1は、WwiseCLI.exe として知られているレガシーWwiseコマンドラインインターフェースに対応する、最後のメジャーバージョンとなることを発表します。2021.1のマイナーバージョンでも対応しますが、今後のメジャーバージョンでは対応しません。レガシーWwiseコマンドラインインターフェースの代わりとなるWwise Consoleについて詳しく知るには、 コマンドラインを使う を参照してください。

SoundFrame End-of-Lifeの発表

Wwise 2021.1は、SoundFrameに対応する最後のメジャーバージョンとなることを発表します。2021.1のマイナーバージョンでも対応しますが、今後のメジャーバージョンでは対応しません。SoundFrameの代わりとなるWwise Authoring API (WAAPI) について詳しく知るには、 Wwise Authoring API (WAAPI)を使用する を参照してください。

2013.1より前のWwiseバージョンから移行する

バージョン2013.1より前のWwiseプロジェクトの移行のサポートは、廃止されました。そのようなプロジェクトでも、最初に2019.2に移行することで、引き続き2021.1に移行できます。

後方互換性に影響するWAAPIの変更

以前は、リターンオプションに不明のプロパティがある ak.wwise.core.object.get をコールすると、結果が出ませんでした。今は、WAAPIエラーが生成されます。このエラーは、XMLで定義されていないプロパティを使ったときに発生します。既知のプロパティを、それに対応していないオブジェクトに使っても、エラーは生成されません。

C++14 Compiler が必須に

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

Height Spread

SpreadカーブとFocusカーブが、エミッタとリスナーの間の実際の距離に対して検証されるようになりましたが、以前は、リスナーのトップベクトルで定義された平面に投影された、エミッタ・リスナーのベクトルの距離が検証されました。

旧方式では、3Dサウンドがリスナーの上または下を通過するときにスプレッドが大きくなるのが典型的なので、平面スピーカーコンフィギュレーション(5.1、7.1など)のパンニングが滑らかになりました。しかし残念ながらこの動作では、バイノーラルステレオや7.1.4のような3Dコンフィギュレーションでパンニングしたときに、非現実的に聞こえました。例えば、付近を飛行する3Dサウンドは、リスナーの上を通るときに急に無指向性になってしまいました。

そこで、実際の距離に基づいてSpreadを検証しつつ、平面的コンフィギュレーションの滑らかなパンニングが損なわれないように、Height Spreadが導入されました。パンニングが平面的なコンフィギュレーションで行われる場合に限り、Elevationに基づいた最小スプレッドが自動的に計算され、もしパンニングが7.1.4のような半球状のコンフィギュレーションで起きる場合は、負のElevationだけに基づいて計算されます。

このプロパティはデフォルトでTrueとなり、Attenuation Editorの中にあります。この動作を適用したくない場合は、チェックを外してください。サウンドにAttenuation(減衰)が一切ない場合は、この目的のために特別に、平らなOutput BusボリュームカーブのAttenuation ShareSetを1つ作成する必要があります。

シークレットプラットフォームの名前変更

今までは秘密扱いだった新しいプラットフォームの名前が、PlayStation 5とXbox Series Xに変わりました。あなたのWwiseプロジェクトに、すでにこれらのプラットフォームが入っていた場合は、これまでのコードネームから、"PS5"と"XboxSeriesX"に名前を変更する移行の手順が実行されます。プラットフォームの名前、GeneratedSoundBanks、ExternalSourceFilePathsなどの定義が、デフォルト値に設定されていた場合は、それらも、必要に応じて、自動的に名前が変わります。

PlayStation 5プラットフォームは、以前はコードネーム"Pellegrino"で記載されていましたが、"PS5"となりました。特に、以下に注意してください:

  • AK_PELLEGRINOの名前が AK_PS5 に変わりました。
  • AK::IAkPellegrinoContext の名前が AK::IAkPS5Context に変わりました。

Microsoft Game Coreプラットフォームの名前が変わりました:

  • Xbox One Game Coreプラットフォームは、以前はコードネーム"GX"で記載されていましたが、"XboxOneGC"となりました。
  • Xbox Series X|Sプラットフォームは、以前はコードネーム"Chinook"で記載されていましたが、"XboxSeriesX"となりました。
  • Xbox系のコンソールで共有するMicrosoft Game Coreソフトウェアエレメントを、"XboxGC"と記載しました。
  • Windows Game Coreプラットフォームは、以前はコードネーム"GDX"で記載されていましたが、"WinGC"となりました。

特に、以下に注意してください:

  • AK_CHINOOKの名前が AK_XBOXSERIESX に変わりました。
  • AK_XBOXONEGC で、Xbox One Game Coreが定義されるようになりました。
  • AK::IAkGXContext の名前が AK::IAkXboxGCContext に変わりました。

XAudio2とDirectSoundのサポート終了

Microsoftプラットフォームは、WASAPIだけに対応するようになりました。XAudio2とDirectSoundは、2021.1でサポートされていません。

AkAudioAPIWindows が削除されました。 AkPlatformInitSettings::eAudioAPI が、Windowsでは削除されました。

  • AkAudioAPIXboxOne と AkAudioAPIGX が削除されました。
  • AkPlatformInitSettings::eAudioAPI が、XboxOneとXboxOneGCでは削除されました。

    AkAudioAPIGX が削除されました。 AkPlatformInitSettings::eAudioAPI が、XboxGC(以前はGXと記載)では削除されました。

Memory Managerの変更

Falign と ReallocAligned

AK::MemoryMgr::Falign と AK::MemoryMgr::dFalign が削除されました。 AK::MemoryMgr::Malign (またはdMalign)でアロケートされたメモリは、 AK::MemoryMgr::Free (またはdFree)で解放したり、 AK::MemoryMgr::ReallocAligned または(dReallocAligned)で再アロケートしたりできます。

Memory Managerのデバグ

  • AkMemDebugCheckForOverwrite が削除され、代わりに AkMemSettings::uMemoryDebugLevel となり、これでオーバーライトやメモリストンプの確認ができるようになりました。
  • デバグ用に新しいメモリ機能が提供されました: AkCrtAllocator* と AkStompAllocator*

Plug-in Memory Allocator

  • IAkPluginMemAlloc::MallocIAkPluginMemAlloc::Malign が、ファイル名と行番号を使ってメモリアロケーションをトラッキングするようになりました。なお、これは AK_PLUGIN_ALLOC マクロや AK_PLUGIN_ALLOC_ALIGN マクロが自動的に行うので、適宜これらのマクロを使うことを推奨します。
  • AK_PLUGIN_REALLOCAK_PLUGIN_REALLOC_ALIGN が追加され、前者は IAkPluginMemAlloc::Realloc を、後者は IAkPluginMemAlloc::ReallocAligned をコールします。
  • IAkPluginMemAlloc:dMallocIAkPluginMemAlloc::dMalign が削除されました。これらの関数のデバグ版が、 AkMemSettings::uMemoryDebugLevel に基づいて自動的にコールされるようになりました。

MIDI APIの変更

MIDI API関数に、いくつかの追加があります。追加の内容:

  • AK::SoundEngine::PostMIDIOnEvent に、よりPostEventに似たパラメータがあります:
    • Playing IDを返します
    • 任意のPlaying IDを指定します(既存IDが使えるように)
    • コールバック関数をフラグやクッキーで指定できます
  • AkMIDIPost で相対的(以前と同じ)または絶対的なオフセットを指定できます。新しいパラメータ経由で、 PostMIDIOnEvent に対して指定します。
  • 新しい AkMIDIEvent タイプ: AK_MIDI_EVENT_TYPE_WWISE_CMD 。Wwise特有のMIDIイベントを提供します:
    • AK_MIDI_WWISE_CMD_PLAY
    • AK_MIDI_WWISE_CMD_STOP
    • AK_MIDI_WWISE_CMD_PAUSE
    • AK_MIDI_WWISE_CMD_RESUME
    • AK_MIDI_WWISE_CMD_SEEK_MS
    • AK_MIDI_WWISE_CMD_SEEK_SAMPLES
  • 返されたPlaying IDを、既存のPlaying ID関数(例 ExecuteActionOnPlayingID )と共に使えます。

IAkGlobalPluginContext::PostMIDIOnEventSyncIAkGlobalPluginContext::StopMIDIOnEventSync が更新され、このAPIの変更が反映されています。

その他のAPIの変更

使用していない特定プラットフォーム用のアライメント定義が、削除されました:

  • AK_ALIGN
  • AK_ALIGN_DMA
  • AK_ALIGN_FASTDMA
  • AK_ALIGN_SIZE_FOR_DMA
  • AK_OS_STRUCT_ALIGNED
  • AK_64B_OS_STRUCT_ALIGNED
  • AK_ALIGN_ACM

AK/SoundEngine/Platforms/Android/AkAndroidSoundEngine.h:

  • 使用していない AkPlatformInitSettings::uChannelMask が削除されました。

AK/SoundEngine/Common/IAkPlugin.h:

  • IAkEffectPluginContext::GetNodeID() 、 IAkSourcePluginContext::GetNodeID() 、 IAkMixerPluginContext::GetBusID() が、 IAkPluginContextBase::GetAudioNodeID() に置き換わりました。
  • IAkMixerInputContext::GetAudioNodeID が削除されました。
  • IAkGlobalPluginContext::MixNinNChannels 、 Mix1inNChannels 、 MixChannel を、プラグインサービスに移動しました: IAkPluginServiceMixer (IAkPluginService of type PluginServiceType_Mixer) 。

AK/SoundEngine/Common/AkSpeakerConfig.h: AK/SoundEngine/Common/AkCommonDefs.h:

  • AkChannelConfig::IsChannelConfigSupported() が削除されました。
  • AkAudioFormat::IsChannelConfigSupported が削除されました。

AK/Wwise/Utilities.h:

  • AK::Wwise::IWriteData::WritePascalString が非推奨となり、今後は AK::Wwise::IWriteData::WriteUtf16String となります

Wwise Authoring Plug-in APIの変更

Wwise 2021.1で、真新しいWwise Authoring Plug-in APIがリリースされました。APIが書き直され、Wwise Authoringアプリケーションの機能実現に関連するフロントエンド分離や後方互換性など、いくつかの問題が解決しました。 特定プラットフォームやツールセットの固有機能への依存も、大幅に削減されました。 新APIは、 <Wwise>/SDK/include/AK/Wwise/Plugin の下にあります。

あなたのプラグインを新APIにポートするための手順を、専用の移行ガイドで説明しています。 詳しくは 2021.1 Authoring Plug-in APIへの移行 を参照してください。

注釈: 新C++ APIには、C++17対応コンパイラが必要です。

移行しやすいように、以前のオリジナルAPIがWwise 2021.1でも、引き続き同じ場所( <Wwise>/SDK/include/AK/Wwise )で提供され、Wwise 2021.1は、それを使ってビルドしたプラグインに対応しています。 ただし、今後は legacy というマークがつき、Wwiseの今後のリリースの更新を 受領しません 。 プラグイン開発者は、自分のプラグインをこの新APIに移行することを推奨します。

<Wwise>/SDK/AK/SoundEngine/Common/IAkPlugin.h などのSound Engine Plug-in APIは引き続き有効であり、レガシーAPIでは ありません 。新しいAPIは、WwiseプラグインのWwise Authoring側だけをカバーしています。 詳細は プラグインの概要 を参照してください。

オリジナルAPIの、Wwise 2021.1向けの最終的な変更は、以下の通りです:

  • AK::Wwise::IAudioPlugin::NotifyMonitorData のシグニチャが変更され、ミリ秒単位の新しいタイムスタンプ引数に対応します。これは、常時の測定が可能な新Meter History機能に使われます。
  • Wwise 2019.2で非推奨となった関数の AK::Wwise::IWriteData::WriteUtf16StringAK::Wwise::IWriteData::WritePascalString は、削除されました。 Wwise Authoring Plug-in APIとやり取りをする場合、UTF-8がデータ文字列専用となりました。 なお、新APIでは、パスの文字列の引数が LPCWSTR から汎用の AkOSChar バッファに移行しました。

iZotope Trash Box Modelerのboxmodel.wavの削除

iZotope Trash Box Modelerプラグインで外部ファイルboxmodel.wavが不要になったため、削除しました。


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

サポートは必要ですか?

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

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

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

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

Wwiseからはじめよう