バージョン

menu_open
Wwise SDK 2023.1.9
重要な移行の注意 2023.1

2023.1の一部の新機能( 2023.1 新機能概要 を参照)のために、Wwise 2023.1への移行前に確認しておくべき重要な点がいくつかあります。

WwiseConsole 引数は常にCWDと関連付けられるようになりました

WwiseConsoleのconvert-external-sourceおよびgenerate-soundbankコマンドは、以前はプロジェクトのディレクトリと関連付けられたパスとして引数を解決することがありました。WwiseConsoleに渡されるすべてのパスは、コンソールの現在のワーキングディレクトリと関連付けて解決されるようになりました。

実行ファイルの場所が変わりました

以前はAuthoring/x64/Release/bin/Toolsに実行ファイルが置かれていましたが、Wwise.exeと同じディレクトリであるAuthoring/x64/Release/binに置かれるようになりました。 プロジェクトでFilePackagerをSoundBank Post-Generationのステップに使用している場合、FilePackager.Console.exe実行ファイルへのパスを更新する必要があります。

低次のI/Oフックのブレイキングの変更

Low-Level I/O Hookインターフェースを23.1で大幅に変更し、Webアプリケーションなどの高レイテンシデバイスでのインターフェースストリーミングの効率を向上しました。また、インターフェースの一般的なリファクタリングを行い、過去の変更をより整然とした形でインターフェースに統合しました。ゲームビルドをブレイクする主な変更については、次のセクションで説明しています。

AK::StreamMgr::IAkIOHookBlockingおよびCAkDefaultIOHookBlockingの削除

ブロッキングI/Oフックのサンプルを削除しました。ブロッキングI/Oの呼び出しは別のスレッドで実行されますが、これによりI/O呼び出しを順不同に実行できず、一部のシステムでのファイルアクセスに不必要なレイテンシが生じていました。ゲームでこのサンプルを使っていた場合は、CAkDefaultIOHookDeferredへと置き換えてください。APIは同じです。

複数のインターフェースが統合されました

AK::StreamMgr::IAkLowLevelIOHookAK::StreamMgr::IAkIOHookDeferredAK::StreamMgr::IAkIOHookDeferredBatchAK::StreamMgr::IAkLowLevelIOHook に統合されました。以前は"ブロッキング"バリアントを許可するためこれらのインターフェースが分かれていましたが、分割して維持する理由がなくなったため現在はサポートされていません。IAkIOHookBlockingIAkIOHookDeferredIAkIOHookDeferredBatchから派生したI/Oフックがある場合、IAkLowLevelIOHookへと置き換え、足りない関数を実装してください。

AK::StreamMgr::IAkFileLocationResolver::Open() 関数の AK::StreamMgr::IAkLowLevelIOHook::BatchOpen() への置き換え

デフォルトのCAkDefaultIOHookDeferredサンプルクラスがゲームですでに使われている場合、必要な変更はすべてサンプルに対して行われているため、このセクションは該当しません。

ゲームが独自のI/Oフックやファイルロケーションリゾルバを実装している場合、最も重要な変更は AK::StreamMgr::IAkFileLocationResolver::Open() からそのI/Oデバイス独自のインターフェースへのロケーションと名前の変更です。新しいインターフェースでは AK::StreamMgr::IAkLowLevelIOHook::BatchOpen() 関数で同時に複数のファイルオープン要求を受け入れることが可能です。演算を即座に実行(同期)することも、ディスパッチして後で通知(非同期)することもできます。BatchRead() 関数と同様に、 BatchOpen() はコールバック関数ポインタを受信して演算結果の通知を送信できるようになりました。この変更の詳細については、 遅延オープン をご覧ください。

If your game handles multiple I/O devices, be aware of the implementation of the new AK::StreamMgr::IAkFileLocationResolver::GetNextPreferredDevice function. デバイスが1つのゲームの場合は、AK_NotImplementedを返してシステムが正しく動作します。しかし複数デバイスの場合は、CAkDefaultLowLevelIODispatcherサンプルを使うか、 ファイルロケーションリゾルバ の記載に従う必要があります。

AkDeviceSettings.uSchedulerTypeFlags Removed

I/Oデバイスの作成時に使われるAkDeviceSettingsuSchedulerTypeFlagsメンバが使われなくなり、削除されました。関連するAK_SCHEDULER_BLOCKINGおよびAK_SCHEDULER_DEFERRED_LINED_UP定数も削除されました。これらのシンボルのいずれかをコードで参照している場合、その関連コードを削除してください。

AkFileDescライフサイクルの変更

Streaming Manager用にファイルを識別する AkFileDesc 構造は、 AK::StreamMgr::IAkLowLevelIOHook::BatchOpen() 関数で作成し、 AK::StreamMgr::IAkLowLevelIOHook::Close() 関数で削除しなくてはならなくなりました。

AkFileDescの"カスタム"メンバが削除されました

AkFileDesc::pCustomParam および AkFileDesc::uCustomParamSize メンバは、CAkDefaultIOHookDeferredの子クラスで使用する時の使用方法が明確でなかったため削除されました。I/Oフックが追加データをAkFileDescと共に維持する必要がある場合は、ベース構造から派生させてください。前述のセクションの説明にあるように、I/OフックがAkFileDesc構造を作成したり削除したりするようになりました。

CAkDefaultIOHookDeferredサンプルから派生するI/Oフックの場合、AkFileDescType型定義を使用して、子クラスがAkFileDesc型や中間子クラス(必要があれば)を派生させることもできます。AkFileDescを拡張する場合、 CAkDefaultIOHookDeferred::CreateDescriptor 関数もオーバーライドして適切な型を作成してください。

Mixerプラグインの削除

重要な移行の注意 2022.1 で発表した通り、Wwise 2023.1からMixerプラグインが削除されました。

カスタムMixerプラグインの更新

MixerプラグインをEffectプラグインに変換する必要があります。

  • プラグインはIAkOutOfPlaceObjectPluginインターフェースを実装し、旧IAkMixerEffectPluginインターフェースを置き換える必要があります。
  • 以前は ConsumeInput 関数にあったコードをExecute関数に移動します。
  • プラグインXMLファイルのAttachablesノードをMetadataPluginノードで置き換えます。MetadataPluginノードはプラグインタイプのエレメント です。
注釈: in_objects.ppObjects[i]->arCustomMetadataには関数に渡されるメタデータが含まれます。これで、削除されるGetInputParam関数を効果的に置き換えます。

AK Channel Routerプラグインの移行

AK Channel RouterプラグインはMixerプラグインからEffectプラグインに変わっており、Property EditorのEffectsタブに挿入されています。このEffectは、Bus ConfigurationAudio Objectsに設定したバスにしか挿入できません。

Audio Objectsバス設定には注意すべき点が2つあります。

  • そのバスにすでに存在する一部のEffectとこのバス設定に互換性がない場合があります。詳細についてはAudio ObjectにEffectを使用をご覧ください。
  • このタイプのバス設定は最上位のバスに適用できません。

この移行によりAk Channel Router Mixerプラグインのすべてのインスタンスが削除されますが、AK Channel Router Effectプラグインで自動的に置き換えられるわけではありません。適切なバスに手動でAK Channel Router Effectを追加する必要があります。 新たなタイプのメタデータであるChannel Router Settingsが、Ak Channel Router Mixerプラグインの既存のAttachableMixerInputと置き換わります。この移行によりAttachableMixerInputのすべてのインスタンスが削除され、新たなメタデータへと置き換わります。

サンプルSubversionソース管理プラグインの廃止

サンプルSubversionソース管理プラグインは廃止され、Wwiseの今後のバージョンで削除されます。

Source Control Silent Mode

ユーザーインターフェースを使わずにSource Control操作ができるようになりました。Silent Modeを有効にすると、WAAPIリクエストがSource Controlとやりとりする時にダイアログボックスが表示されません。 この変更を実装するため、 AK::Wwise::ISourceControlProgress クラス(旧 AK::Wwise::ISourceControlOperationProgress )の設計を変更しました。次のメソッドが変更または追加されています。

  • ShowProgress()からBeginOperation()にメソッドを変更しました
  • OperationCompleted()からEndOperation()にメソッドを変更しました
  • IsSilent()メソッドを追加しました
  • IsAutoCheckout()メソッドを追加しました

WAAPIのデフォルト値

次のWAAPI関数のautoAddToSourceControl引数がデフォルトでtrueになりました。

WG-61743の問題のため、次の関数は、ほとんどのケースでautoAddToSourceControlがデフォルトでtrueであるかのようにすでに振る舞っていました。

次のWAAPI関数のbypassSave引数がデフォルトでtrueになりました。

WAAPI Command Identifier Changes

The following command identifiers have been renamed:

  • WorkgroupAddWAV -> SourceControlAddWAV
  • WorkgroupAddWWU -> SourceControlAddWWU
  • WorkgroupCheckoutWAV -> SourceControlCheckoutWAV
  • WorkgroupCheckoutWWU -> SourceControlCheckoutWWU
  • WorkgroupCommitWAV -> SourceControlCommitWAV
  • WorkgroupCommitWWU -> SourceControlCommitWWU
  • WorkgroupDiffWAV -> SourceControlDiffWAV
  • WorkgroupDiffWWU -> SourceControlDiffWWU
  • WorkgroupRefreshIcons -> SourceControlRefreshIcons
  • WorkgroupRevertWAV -> SourceControlRevertWAV
  • WorkgroupRevertWWU -> SourceControlRevertWWU
  • WorkgroupUpdateWAV -> SourceControlUpdateWAV
  • WorkgroupUpdateWWU -> SourceControlUpdateWWU

Refer to Wwise Authoring Commandの識別子 for more information.

(Spatial Audio) Revised Room and Portal Wet Path Signal Model

ウェットパスのAttenuation、Occlusion、Obstruction、Transmission Loss、Diffractionが、エミッタで指定した減衰を使ってEmitter-Room接続に適用されるようになりました。Room Auxiliary Bussの減衰曲線の効果はなくなるため、ソースサウンドに移動させる必要があります。Room Auxiliary Busの出力は、プロジェクト上やAPI経由で変更されない限り、常に0dbです。

ウェットパスの回折が、エミッタとリスナーの間のパスに基づいて、エミッタごとに計算されるようになりました。ウェットパスの回折がドライパスの回折を上回ることはできません。

Geometric Transmission Lossが、エミッタとリスナーの間でレイと交わるすべての表面の最大Transmission Loss値を使って、ウェットパスに適用されるようになりました。Room Transmission Lossとは、エミッタからリスナーまでの間に存在しうるすべてのパスにおける最小値です。任意のパスのTransmission Lossとは、そのパス上にあるすべてのルームのTransmission Lossの最大値です。

Room-Listener接続のレイは空間化のためだけに使用され、その接続のボリュームに影響することはなくなりました。そのため、Voice Inspectorにはもう表示されません。

Enable Game-Defined Sendsチェックボックスがオンになっているエミッタは、それ自体のRoomのバスと、リスナーへのアクティブパスを持つ隣接するすべてのRoomに対して、送信を行います。エミッタとリスナーが同じRoomにある場合は、隣接するすべてのルームに送信します。

AkSpatialAudioInitSettings::uMaxEmitterRoomAuxSends を追加することで、エミッタごとに作成されるEmitter-Roomから隣接ルームへの接続の数を制限します。デフォルト値の0は無制限となります。制限が設定されると、エミッタ側から見た隣接ポータルへのスプレッドに基づいて顕著なセンドが維持されます。制限を1にすると、エミッタがあるRoomにだけ送信します。エミッタがポータルにある場合は、遷移先のRoomにだけ送信します。

Appleプラットフォーム用の新しいAVAudioEngine-Basedシンク

WwiseのSystem Audio Deviceは、システムへのオーディオ出力用にAVAudioEngineをサポートするようになりました。これにより、macOSとiOS/tvOSのプラットフォーム間のチャンネル設定や相乗効果に柔軟性が出ます。

その結果、 AkPlatformInitSettings::eAudioAPI がAppleプラットフォームに追加されました。デフォルト値の AkAudioAPI_Default は、対応しているオペレーティングシステム(macOS 10.15以降およびiOS/tvOS 13以降)用のAVAudioEngineを自動的に選択します。Wwiseが旧版のオペレーティングシステムで実行されていて、AudioUnit APIを引き続き使う場合は、基本機能だけを使用できます。

AVAudioEngineベースのシンクの新たな動作については、 プラットフォームでのオーディオ出力 をご覧ください。

また iOS/tvOSでは、 AK::SoundEngine::GetPlatformInitSettings が、48000Hz固定ではなくAudio Sessionのデフォルトサンプルレートを返します。

iOS/tvOSでは最終的に、 AudioInputCallbackFunc 関数シグネチャが更新され、オーディオバッファにconst性が適用されています。

この変更のため、現在はアプリケーションがAVFoundation.frameworkとリンクしている必要があります。

AK::SoundEngine::SuspendがAK::Commの状態に影響することがなくなりました

一部のプラットフォームでは、 AK::SoundEngine::Suspend() および AK::SoundEngine::WakeupFromSuspend() 呼び出しを使って、 AK::Comm モジュールを自動的に一時停止/起動したり、Wwise Profilersの接続を解除したりしていました。現在は、クライアントが AK::Comm を別途管理する必要があります。対応プラットフォームのアプリケーションライフサイクルイベントに合わせて AK::Comm モジュールを管理する方法については、 システム特有のイベントの処理 をご覧ください。

HF Dampingの戻り値範囲の更新

AK::SpatialAudio::ReverbEstimation::EstimateHFDamping() が返すHF Damping値の範囲が、-1~1と倍に広がりました。この値にマッピングされるRTPCは-1~1になりました。

SDKの新たなソース管理メソッド

新しいISourceControl::Connect()およびISourceControl::Disconnect()メソッドは、ak.wwise.core.sourceControl.setProvider WAAPI関数からのソース管理ログインをサポートしています。このWwiseバージョンとの互換性を確保するため、 ISourceControl にこれらのメソッドを追加してプラグインをリビルドする必要があります。

実装されたソース管理が接続をサポートしていない場合、これらのメソッドは OperationResult_NotImplemented を返します。

WAQLでのmaxRadiusAttenuationとmaxDurationSourceの使用

"select"を使用する時などに、WAQLクエリでmaxRadiusAttenuationとmaxDurationSourceを使用してオブジェクト自体を直接参照することはできなくなりました。このような場合は、新たなアクセサであるmaxRadiusAttenuationObjectとmaxDurationSourceObjectをそれぞれ使用してください。

オーディオファイルインポート時のエラーと警告

ak.wwise.core.audio.import 使用時、インポートログに警告やエラーが見つかってもWAAPI経由で報告されなくなりました。インポートログは呼び出しを通じて返され、分析されて、インポート時のエラーや警告を検出できるようになりました。


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

サポートは必要ですか?

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

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

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

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

Wwiseからはじめよう