Wwise SDK 2021.1.14
|
一部の 2021.1 の新機能 の影響で、Wwise 2021.1 に移行する際にいくつかの点を注意してください。
Wwise Spatial Audioは、APIとAuthoringツールのどちらでも、オクルージョン係数を定義するために、ルームを透過する音や、ジオメトリを透過する音を対象に、 透過損失(transmission loss) という用語の使い方を標準化しました。これにより AkRoomParams::WallOcclusion の名前は AkRoomParams::TransmissionLoss
に変わり、 AkAcousticSurface::occlusion の名前は AkAcousticSurface::transmissionLoss
に変わりました。
物理的に納得できるような音の伝播現象を、簡単に設計、実装できるように、回折(diffraction)や透過(transmission)の処理を統合し、1つのオプションとしてまとめました。
さらに、Spatial Audioの設定を簡単にするために、以下の AkSpatialAudioInitSettings
フィールドが変更されました:
AkDiffractionFlags
を削除し、代わりに以下を使います:DiffractionFlags_UseBuiltInParam
は結果的に、常にtrueとなります。Diffractionの組み込みパラメータが、あえて設定しなくても使えます。DiffractionFlags_UseObstruction
は、同じロジックをもつブール型の AkSpatialAudioInitSettings::bUseObstruction に変わりました。DiffractionFlags_CalcEmitterVirtualPosition
は、同じロジックをもつブール型の AkSpatialAudioInitSettings::bCalcEmitterVirtualPosition
に変わりました。bEnableDirectPathDiffraction
が AkSpatialAudioInitSettings::bEnableGeometricDiffractionAndTransmission に変わり、名前からこのオプションの内容が分かりやすくなりました。fDiffractionShadowAttenFactor
と、 fDiffractionShadowDegrees
が削除されました。これらのオプションは使いにくく、物理的に納得できるようなサウンドレンダリングに向いていませんでした。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アウトプット [非推奨]
アウトプットを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 Behavior を Mix 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 mix や Same as passthrough mix にすることで、Main MixやPassthrough Mixから継承できます。
Wwise SDK Integration Demoに、前のセクションで説明したターゲットのセットアップを実演する新しいページがあります。
こちらを参照してください: Positioning Demo > 3D Audio Objects and Spatialized Bed 。
Wwise 2021.1は、WwiseCLI.exe として知られているレガシーWwiseコマンドラインインターフェースに対応する、最後のメジャーバージョンとなることを発表します。2021.1のマイナーバージョンでも対応しますが、今後のメジャーバージョンでは対応しません。レガシーWwiseコマンドラインインターフェースの代わりとなるWwise Consoleについて詳しく知るには、 コマンドラインを使う を参照してください。
Wwise 2021.1は、SoundFrameに対応する最後のメジャーバージョンとなることを発表します。2021.1のマイナーバージョンでも対応しますが、今後のメジャーバージョンでは対応しません。SoundFrameの代わりとなるWwise Authoring API (WAAPI) について詳しく知るには、 Wwise Authoring API (WAAPI)を使用する を参照してください。
バージョン2013.1より前のWwiseプロジェクトの移行のサポートは、廃止されました。そのようなプロジェクトでも、最初に2019.2に移行することで、引き続き2021.1に移行できます。
以前は、リターンオプションに不明のプロパティがある ak.wwise.core.object.get をコールすると、結果が出ませんでした。今は、WAAPIエラーが生成されます。このエラーは、XMLで定義されていないプロパティを使ったときに発生します。既知のプロパティを、それに対応していないオブジェクトに使っても、エラーは生成されません。
Wwise SDKヘッダやソースを、正しくコンパイルするには、C++14が必要になりました。対応コンパイラの一覧が プラットフォーム要件 にあります。
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_PS5
に変わりました。AK::IAkPS5Context
に変わりました。Microsoft Game Coreプラットフォームの名前が変わりました:
特に、以下に注意してください:
AK_XBOXSERIESX
に変わりました。AK_XBOXONEGC
で、Xbox One Game Coreが定義されるようになりました。AK::IAkXboxGCContext
に変わりました。Microsoftプラットフォームは、WASAPIだけに対応するようになりました。XAudio2とDirectSoundは、2021.1でサポートされていません。
AkAudioAPIWindows が削除されました。 AkPlatformInitSettings::eAudioAPI が、Windowsでは削除されました。
AkPlatformInitSettings::eAudioAPI が、XboxOneとXboxOneGCでは削除されました。
AkAudioAPIGX が削除されました。 AkPlatformInitSettings::eAudioAPI が、XboxGC(以前はGXと記載)では削除されました。
AK::MemoryMgr::Falign と AK::MemoryMgr::dFalign が削除されました。 AK::MemoryMgr::Malign (またはdMalign)でアロケートされたメモリは、 AK::MemoryMgr::Free (またはdFree)で解放したり、 AK::MemoryMgr::ReallocAligned または(dReallocAligned)で再アロケートしたりできます。
IAkPluginMemAlloc::Malloc
と IAkPluginMemAlloc::Malign
が、ファイル名と行番号を使ってメモリアロケーションをトラッキングするようになりました。なお、これは AK_PLUGIN_ALLOC
マクロや AK_PLUGIN_ALLOC_ALIGN
マクロが自動的に行うので、適宜これらのマクロを使うことを推奨します。AK_PLUGIN_REALLOC
と AK_PLUGIN_REALLOC_ALIGN
が追加され、前者は IAkPluginMemAlloc::Realloc
を、後者は IAkPluginMemAlloc::ReallocAligned
をコールします。IAkPluginMemAlloc:dMalloc
と IAkPluginMemAlloc::dMalign
が削除されました。これらの関数のデバグ版が、 AkMemSettings::uMemoryDebugLevel に基づいて自動的にコールされるようになりました。MIDI API関数に、いくつかの追加があります。追加の内容:
IAkGlobalPluginContext::PostMIDIOnEventSync
と IAkGlobalPluginContext::StopMIDIOnEventSync
が更新され、このAPIの変更が反映されています。
使用していない特定プラットフォーム用のアライメント定義が、削除されました:
AK/SoundEngine/Platforms/Android/AkAndroidSoundEngine.h:
AK/SoundEngine/Common/IAkPlugin.h:
IAkPluginContextBase::GetAudioNodeID()
に置き換わりました。IAkPluginServiceMixer
(IAkPluginService
of type PluginServiceType_Mixer
) 。AK/SoundEngine/Common/AkSpeakerConfig.h: AK/SoundEngine/Common/AkCommonDefs.h:
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機能に使われます。AK::Wwise::IWriteData::WriteUtf16String
と AK::Wwise::IWriteData::WritePascalString
は、削除されました。 Wwise Authoring Plug-in APIとやり取りをする場合、UTF-8がデータ文字列専用となりました。 なお、新APIでは、パスの文字列の引数が LPCWSTR
から汎用の AkOSChar
バッファに移行しました。iZotope Trash Box Modelerプラグインで外部ファイルboxmodel.wavが不要になったため、削除しました。