|
Wwise SDK 2025.1.2
|
The following sections list and describe the changes to Wwise between version 2023.1.5 and version 2024.1.0.
プラットフォーム固有の情報は、こちらにあります:
以前のバージョンの詳細については、 以前のリリースノート をご覧ください。
ak.wwise.core.profiler.getMeters 、 ak.wwise.core.profiler.registerMeter 、 ak.wwise.core.profiler.unregisterMeter を追加しました。AkMemoryArena がrpmallocに代わってデフォルトのメモリアロケータになり、TLSFなどの最も汎用性の高いメモリアロケータに匹敵するメモリ使用量やフラグメンテーションを提供するようになりました。メモリのオンデマンド予約を通したリソースのダイナミックな拡張も依然として可能です。多くの場合、以前のデフォルトアロケータと比べてメモリ使用量が約10減少します。予約されるメモリのウォーターマークについても、 AkMemSettings::uVMSpanCount を AkSpanCount_Small に設定した場合と比べて若干改善され、 AkMemSettings::uVMSpanCount を AkSpanCount_Huge に設定した場合と比べて大幅に改善されます。また外部メモリ割り当てフックを呼び出す必要性が減ります。メモリを提供するための以前のコールバックも AkMemSettings::pfAllocVM と AkMemSettings::pfFreeVM から AkMemoryArenaSettings::fnMemAllocSpan と AkMemoryArenaSettings::fnMemFreeSpan に更新されました。これらは類似していますが、実装が簡素化されています。提供されたメモリのアライメントに関する厳格な要件がなく、必要なのは基本となるメモリスパンの割り当てと解放のみであるためです。物理メモリや仮想メモリの個別マッピングについて考慮する必要がありません。例えば、WindowsやPOSIXベースのプラットフォームに AkMemoryArenaSettings::fnMemAllocSpan と AkMemoryArenaSettings::fnMemFreeSpan をデフォルト実装する際、 mmap と munmap をコールせずに、 std::malloc と std::free をコールして必要メモリを取得および解放するだけになりました。個別のメモリ割り当てや解放操作の既存のコールバックは、変更なく引き続き使用できますが、新しいデフォルトメモリアロケータを試すことを推奨します。このメモリアロケータでは、拡張されたプロファイリング情報や設定が利用できるようになりました。AkMemoryArenaSettings::fnMemAllocSpan コールバック関数を呼び出す際に指定されたユーザデータ値などに関する詳細情報が含まれます。AkSpatialAudioInitSettings::uMaxReflectionPaths により、検証の対象となるリフレクションパスの最大数が設定されます。ヒューリスティック計算を使用してすべてのパス候補がソートされてから、最適だと思われるパスが判断されます。すべてのエミッタの中からグローバルに AkSpatialAudioInitSettings::uMaxReflectionPaths が検出され、パスはそれ以上計算されません。AK::SoundEngine::PrepareBus 関数をWwiseランタイムAPIに追加しました。この関数を使って、バスに配置されたエフェクトプラグインでメディアのロードやアンロードを管理できます。ユーザが定義したSoundBankでメディアをパッケージ化する必要がありません。ak.wwise.core.blendContainer のプリフィックスが付いています。関数 ak.wwise.core.object.get にWAAPI blendTracks アクセサを追加しました。panner アクセサをWAQLに追加しました。ak_wwise_ui_commands_execute に新しいコマンド OpenRecycled を追加しました。このコマンドは新しいウィンドウタブを作成せずにオブジェクトを開きます。AkSpatialAudioInitSettings::fMaxDiffractionAngleDegrees で回析可能な最大角度を指定できます。その値を超えるとパスが計算されないため、サウンドが聞こえなくなります。SetMaxReflectionPaths 関数を公開しました。ak.wwise.core.audio.convert と ak.wwise.core.audio.setConversionPlugin を追加しました。AK::IAkLowLevelIOHook インターフェースから BatchCancel() を削除しました。AK::Query::GetRTPCValue によって今後ブロックされることがなくなりました。UnsetMedia 関数を削除しました。代わりに TryUnsetMedia を使用してください。PluginServiceType_TempAlloc が提供されることになりました。Temp AllocとBookmark Allocatorに関連するパブリック関数や構造は AkMemoryMgr.h から新しいヘッダファイル AkTempAllocDefs.h に移動されたため、一部のファイルインクルージョンの更新が必要になる場合があります。–no-wwise-dat コマンドライン引数を削除したため、 wwise.dat ファイルは生成されなくなりました。AkAudioObject と AkAudioObjects を AkCommonDefs.h から AkAudioObject.h に移動しました。これらのタイプを使用するプラグインについては、それらが含まれるヘッダの更新が必要になる場合があります。 IAkPluginMemAlloc.h 、 AkArray.h 、 AkString.h のほかの間接的ヘッダインクルードも AkCommonDefs.h から削除されているため、更新が必要になる場合があります。AK::Wwise::Plugin::PropertySet サービスの新バージョンが追加され、 AK::Wwise::Plugin::V2::PropertySet::OpenBraces 、 AK::Wwise::Plugin::V2::PropertySet::CloseBraces 、 AK::Wwise::Plugin::V2::PropertySet::GetOpenedBraces が含まれるようになりました。バージョン1から削除された関数はないため、 このAPIは以前のバージョンと完全に互換性があります。 ak_wwise_plugin_host_object_store_v1 に変更点はありませんが、 AK::Wwise::Plugin::ObjectStore C++ ラッパがどちらのバージョンでも機能するように更新されています。AkGeometryInstanceParams::RoomID を削除しました。AkMemSettings::bEnableSeparateDeviceHeap が削除されました。Device AkMemoryArena を無効にするには、 AkMemoryArenaSettings::fnMemAllocSpan と AkMemoryArenaSettings::fnMemFreeSpan を nullptr に設定します。AkMemSettings::uMemAllocationSizeLimit を削除しました。代わりに、各AkMemoryArenaに独自の予約制限の設定 AkMemoryArenaSettings::uMemReservedLimit が用意されています。AK_PERF_RECORDING マクロを削除しました。AkInitSettings::bOfflineRendering メンバーにより、初期化時のオフラインレンダリングが可能になりました。AK::SpatialAudio::SetMaxDiffractionPaths を追加しました。SetMaximumReflectionPaths から SetMaxGlobalReflectionPaths に名前を変更しました。また uMaxReflectionPaths から uMaxGlobalReflectionPaths に名前を変更しました。ComputePositioning でカスタムスピーカー構成を有効にする RegisterAnonymousConfig および UnregisterAnonymousConfig メソッドを IAkMixerPluginContext インターフェースに追加しました。AkRoomParams::RoomPriority をAkUInt32からAkReal32に変更しました。PrepareEvent() がActor-Mixer階層とInteractive Music階層でオブジェクトのPlug-inメディアを準備するようになりました。AK_EnableBusMeter_KPower が設定されている場合、バスのメータリングコールバックがバス全体に対して一度呼び出されるようになりました。ほかの AkMeteringFlags 値が設定されている場合は、Audio Objectごとに一度呼び出されます。AK BusTask ジョブは、実行を開始する前に CAkLEngine::PostRunVpls ジョブに依存しなくなりました。これにより、 AK SwVoice および AK HwVoice ジョブの完了後もJob Worker Functionは引き続き実行できるため、サウンドエンジンのティックの経過実時間全体が削減されると考えられます。AkPlacementNew を AkObject.h から新しいファイル AkPlacementNew.h に移動しました。これらのタイプを使用するプラグインについては、それらが含まれるヘッダの更新が必要になる場合があります。AK::SoundEngine::SetScalingFactor APIの影響が表示されていませんでした。ak.wwise.core.transport.stateChanged が常に送られていませんでした。AkVariantBase.h. でメモリリークが発生していました。UnregisterGameObject をコールすると、リフレクションが聞こえていませんでした。IAkMap::GetNextAssoc に渡すとクラッシュしていました。PrepareEvent をコールした後にスタックオーバーフローが発生する可能性がありました。PrepareEvent 、 PrepareGameSync 、 PrepareBank 、 LoadBank )とそれらに対応する関数( UnprepareEvent 、 UnprepareGameSync 、 UnprepareBank 、 UnloadBank )のコールでの不一致が原因でクラッシュする可能性がありました。例えば、関数を LoadBank 、 PrepareEvent 、 UnloadBank 、 UnprepareEvent の順番でコールするとクラッシュする可能性がありました。PinEventInStreamCache / UnpinEventInStreamCache コールが原因で、サウンドエンジンの終了時にデッドロックが発生していました。ak.soundengine.seekOnEvent を使用すると、エラーが発生していました。AkMemoryArena について言及したメモリマネージャのドキュメントを更新し、 AkMemoryArena のドキュメント自体を AkMemoryArenasの設定と調整 に追加しました。