|
Wwise SDK 2025.1.3
|
2025.1の一部の新機能( 2025.1 新機能概要 を参照)のために、Wwise 2025.1への移行前に確認しておくべき重要な点がいくつかあります。
プラグインインターフェースのバイナリ表現が変更されました。すべてのプラグインは、Wwise 2025.1ランタイムでロードするために、Wwise 2025.1 SDKヘッダーに対して再コンパイルする必要があります。
特定の型をCから使用できるようにし、プラットフォーム間でより一貫した表現を実現するため、C++ APIの一部の要素を変更しました:
AkExternalSourceInfo::szFile が、OSネイティブ文字列(AkOSChar*)ではなく、UTF-8文字列(char*)になりました。
PostEventコールバックのシグネチャを変更しました。以前のコールバック情報構造体を2つに分割しました:
voidポインタとして渡されます。このポインタは、in_eTypeパラメータの値に基づき、適切なコールバック情報構造体の型にキャストします。このポインタは、追加情報が不要な一部のコールバックタイプ(例:AK_EndOfEvent、AK_Starvation、AK_MusicPlayStarted)ではnullになります。またPostEventコールバックおよびBusVolumeコールバックの両方で、明示的なパラメータとしてユーザクッキーを渡すようになりました。今後は、クッキーは情報構造体に保存されません。
AK::SoundEngine::AkActionOnEventType をグローバル名前空間内のAkActionOnEventTypeに名前変更しました。その列挙値も同様に名前変更しました。AK::AkAudioDeviceEvent をグローバル名前空間内のAkAudioDeviceEventに名前変更しました。その列挙値も同様に名前変更しました。AK::SoundEngine::MultiPositionType をグローバル名前空間内のAkMultiPositionTypeに名前変更しました。その列挙値も同様に名前変更しました。AK::SoundEngine::DynamicSequence::DynamicSequenceType をグローバル名前空間のAkDynamicSequenceTypeに名前変更しました。その列挙値も同様に名前変更しました。AkMIDIPostがAkMIDIEventを継承しなくなり、代わりにmidiEventデータメンバーを持つようになりました。AkWorldTransformおよびAkTransformがstruct型になりました。WaveFormatExtensibleをWemFormatExtensibleに名前変更しました。AK::MusicEngine 名前空間全体と、関連する関数およびライブラリを削除しました。AK::MusicEngine の機能はすべて AK::SoundEngine に移動しましたが、動作は以前と変わりません。 ゲームでUnityまたはUnrealを使用している場合、デフォルトのインテグレーションがこれに合わせて変更されているため透過的です。 ゲームで独自のゲームエンジンを使用している場合、この変更によりビルドが失敗します。以下の手順でコードを移行してください。
ソースの位置がデフォルトで追跡されるようになりました。フラグ AK_EnableGetSourcePlayPosition を AK::SoundEngine::PostEvent に渡す必要はありません。このフラグは単純に削除されたため、コード内の参照をすべて削除してください。
また AK::SoundEngine::GetSourcePlayPosition() が、より正確な位置を返すようになりました。この違いは AkPlatformInitSettings::uNumRefillsInVoice で定義される再生のレイテンシに関連しています。25.1以前はレイテンシが考慮されていなかったため、報告される時間が実際の再生より最大で4バッファ(40~80ミリ秒)前になることがあり、さらにタイミングが不安定になる自然要因がほかにもありました。新しいタイミングでは、1バッファ(10~20ミリ秒)以内の精度になります。
IAkVoicePluginInfo::ComputePriorityWithDistance を廃止し、削除しました。
AkInitSettings::bUseSoundBankMgrThread をfalseに設定した場合、バンクAPIコールの非同期バリアントが即時に実行されなくなりました。代わりに操作はキューに追加され、ゲームが AK::SoundEngine::ProcessBanks をコールしてキュー内の操作を処理する必要があります。Sound Engineスレッドのカスタマイズに関する詳細については CPU使用率の最適化 をご参照ください。
AkInitSettings::bUseSoundBankMgrThread がtrue(デフォルト)に設定されている場合、動作に変更はありません。
Wwiseの今回のバージョンでは、プロジェクトのフォルダ構造を大幅に更新しました。
以下のルートノードを更新しました:
これらのパスを参照するすべてのツール、スクリプト、エンジンを更新する必要があります。
なおWwiseは、入力パスを新しい名前に自動的に置き換えるエイリアスを提供しています。 例えば \Actor-Mixer Hierarchy\SFX_CHARACTER\SFX_EXPL_01 は \Containers\SFX_CHARACTER\SFX_EXPL_01 に自動的に置き換えられます。
SDK関数 AK::SoundEngine::SetActorMixerEffect は AK::SoundEngine::SetContainerEffect に名前変更しました。
プロジェクト構造の変更はWAAPIスクリプトとWAQLスクリプトに影響を与えます。上記パスを参照するコードはすべて影響を受けます。
クライアントコードでは、 \Actor-Mixer Hierarchy\Default Work Unit など、パスのハードコーディングは回避することを推奨します。 代わりに ak.wwise.core.getProjectInfo をコールし、defaultWorkUnitsまたはdefaultImportWorkUnitのいずれかを取得してください。
Interactive Music Hierarchyは廃止されました。Musicオブジェクトは、Containers階層内に直接作成できるようになりました。
プロジェクト構造の変更はTab Delimited Importファイルにも影響を与えます。
必ずTab Delimited Importジェネレータおよびスプレッドシートを更新し、新しいパス名を反映してください。
Actor-MixerオブジェクトをProperty Containerと呼ぶようになりました。
WAAPI、WAQL、Tab Delimited Importファイル内で使用される「Actor-Mixer」と「ActorMixer」は、それぞれ「Property Container」と「PropertyContainer」に変更してください。
新規プロジェクトを作成する場合、「Master Audio Bus」オブジェクトは「Main Audio Bus」に名前変更されています。WAAPIスクリプトおよびWAQLスクリプトを、新規プロジェクトでは「Main Audio Bus」に更新し、既存プロジェクトでは「Master Audio Bus」を使用してください。
「MasterMixerConsole」ビュー識別子を「BussesConsole」に名前変更しました。WAAPIスクリプトおよびWAQLスクリプトを「BussesConsole」に更新してください。
「MasterMixerConsole」ビューを参照するレイアウトは更新する必要があります。
オブジェクトリストの内部構造を変更しました。一部のオブジェクトリスト内のオブジェクトは、これまでとはアクセス方法が異なります。 以下のリストに、Wwiseオブジェクトを参照するInnerObjectが含まれるようになりました:Arguments、EntryPath、Metadata、Playlist。
この表は、ak.wwise.core.object.setを使用してオブジェクトリストを構築する場合に該当する変更を示しています。
| 旧スタイル | 新スタイル |
| "@Arguments": [object1, object2] | "@Arguments": [{"type": "ArgumentsSlot", "name": "", "@Argument": object1}, {"type": "ArgumentsSlot", "name": "", "@Argument": object2}] 注記:Dialogue Eventオブジェクトに適用されます。 |
| "@Arguments": [object1, object2] | "@Arguments": [{"type": "MusicArgumentsSlot", "name": "", "@Argument": object1}, {"type": "MusicArgumentsSlot", "name": "", "@Argument": object2}] 注記:Music Switch Containerオブジェクトに適用されます。 |
| "@EntryPath": [object1, object2] | "@EntryPath": [{"type": "EntryPathSlot", "name": "", "@EntryPathObject": object1}, {"type": "EntryPathSlot", "name": "", "@EntryPathObject": object2}] |
| "@Metadata": [object1, object2] | "@Metadata": [{"type": "MetadataSlot", "name": "", "@Metadata": object1}, {"type": "MetadataSlot", "name": "", "@Metadata": object2}] |
| "@Playlist": [object1, object2] | "@Playlist": [{"type": "PlaylistSlot", "name": "", "@PlaylistObject": object1}, {"type": "PlaylistSlot", "name": "", "@PlaylistObject": object2}] |
この表は、オブジェクトリストが関係するWAQLクエリを使用する場合に該当する変更を示す例を提供します。
| 旧スタイル | 新スタイル |
where @metadata.any and @metadata.any(pluginname = "Wwise System Output Settings") "\\Busses\\Default Work Unit\\Master Audio Bus\\BusA" select metadata.at(1) return: ["metadata.at(1).name"] | where @metadata.any and @metadata.any(@metadata.pluginname = "Wwise System Output Settings") "\\Busses\\Default Work Unit\\Master Audio Bus\\BusA" select metadata.at(1).metadata return: ["metadata.at(1).metadata.name"] from type plugininnerobject where pluginname = "metadataslot" select metadata.where(pluginname="Wwise System Output Settings") |
| from type randomsequencecontainer select playlist.where(type = "sound") | from type randomsequencecontainer select playlist.where(playlistobject.type = "sound") |
| where @Arguments.any(name = "StateGroup1") | where @Arguments.any(argument.name = "StateGroup1") |
| where @EntryPath.any(name = "State1") | where @EntryPath.any(entrypathobject.name = "State1") |
ShowAudioFilesImporterをShowAudioFileImporterに名前変更しました。Dopplerエフェクトの管理に関連する複数のプロパティを更新しました。一部は非推奨およびインターフェースで非表示となり、ほかは動作が変更されています。
以下のプロパティは名前を変更しましたが、機能性はそのまま維持されています:
以下のプロパティは非推奨となりました。まだ存在しますが、ユーザインターフェースでは非表示になりました。今後のバージョンで完全に削除されます。
Stepモードは非推奨となりました。この動作を再現するには、新しいDelay Error Toleranceプロパティと、低いPitch Limit値を組み合わせて使用します。Delay Error Toleranceは、Distance Thresholdと関連しますが、しきい値を絶対的な距離ではなく相対的な遅延の尺度として定義します。詳細についてはReflect Helpをご参照ください。
![]() | 警告: Threshold ModeをStepに設定していて、非推奨となったDistance Thresholdを変更したい場合や、改良されたContinuousモードに切り替えたい場合は、UI上で非表示のプロパティを表示させる必要があります。その場合は、 Authoring\x64\Debug\bin\Plugins\AkReflect.xml を開き、目的のプロパティを見つけてIsVisible="false"をIsVisible="true"に変更します。その後、Wwiseを再起動します。 |
AK Expanderプラグインは、スタンドアロンのライブラリまたはDLLではなくなり、すべての機能がAK Compressorライブラリに統合されました。コンパイルのためにAkExpanderFXライブラリやAkExpanderFXFactoryを参照している場合は、参照を削除するか、AKCompressorFXライブラリに更新してください。既存のWwise Authoringインストールを更新する場合は、プロジェクトのロード時にプラグインIDの重複エラーが発生しないよう、Wwise AuthoringのPluginsディレクトリにあるAkExpanderライブラリを確実に削除してください。
Androidのオーディオ出力の初期化を制御しやすくするため、一部の初期化設定を削除し、新しい設定を追加しました:
AkPlatformInitSettings::bEnableLowLatency を AkPlatformInitSettings::eAudioPath に置き換え、レイテンシをより細かく制御できるようにしました。このオプションの設定方法についてはAkAudioPathのドキュメントをご参照ください。AkPlatformInitSettings::eAudioAPI ビットフィールドが追加で2つのビットに対応するようになりました: AkAudioAPI_DolbyAtmos および AkAudioAPI_AndroidSpatializer 。ほとんどのAndroidデバイスで、AAudioがPerformanceMode=LowLatencyおよびSharedMode=Sharedを使用するデフォルト設定になりました。一方Wwise 2024.1では、AAudioがPerformanceMode=LowLatencyおよびSharedMode=Exclusiveをデフォルトで使用していました。新しいデフォルト設定により、レイテンシに目立った影響を与えることなく、より広範なデバイスとの互換性を向上します。