目次

Wwise SDK 2018.1.11
重要な移行の注意 2018.1

多くの 新機能 では、Wwise 2018.1に移行する際にいくつかの点に注意する必要があります。

次の重要な移行ノートをよくお読みください:

Event ActionプロパティのFade Curveを分けて、Fade-in CurveとFade-out Curveとする

イベントアクションのFade Curveプロパティがアクションタイプに従い分割され、アクティベーションに関連するアクション(Play、Resume、Set LPFなど)にFade-in Curveプロパティがつき、ディアクティベーションに関連するアクション(Stop、Pause、Reset LPFなど)にFade-out Curveプロパティがつきます。

Contents Editor

Contents Editorがツリーとして書き直され、オブジェクトノードを展開し子孫を表示できるようになりました。列ヘッダは、Multi Editorのようにサイズ変更やカスタマイズが可能になり、inclusion専用の列もあります。列ヘッダをクリックしオブジェクトをソートできるようにするため、Contents Editorでオブジェクトの順番の変更ができなくなりました。

Positioningタブ

Property EditorのPositioningタブを、完全に組み替えました。以下は、今までの設定機能に慣れているユーザー向けの簡単なガイドです。

Enable Positioning

Enable Positioningチェックボックスの名前を、Listener Relative Routingに変更しました。今まで通り機能しますが、その影響がポジショニングだけでなくルーティングにも及ぶことを、より明確にしました。結果的に、そのノードにおけるエミッターとリスナーの関係を検証することをエンジンに強制します。エミッターやリスナーはSDK経由でアサインされるゲームオブジェクトであり、リスナーはエミッターにAK::SoundEngine::SetListenersを使ってアサインされるか、Aux sendを設定する時にアサインされ、エミッターはイベントを送出する時に設定されます。エミッターとリスナーの関係の検証とは、信号が現在のゲームオブジェクトからリスナーに向かって「ジャンプする」ことを意味します。その様子をVoices Graphで観察できます。エミッターとリスナーの関係を検証することは、エミッターとリスナーが関与するすべてのポジショニング機能(距離による減衰とスペーシャリゼーション)の前提条件です。

2D with Enable Panner off

これが、今までのデフォルト設定であり、今でもそうです。Speaker Panningリストを、Direct Assignmentに設定する必要があります。Listener Relative Routingオプションは、パンニングに一切影響しません。

2D with Enable Panner on

Speaker Panningリストを、Balance - Fadeに設定する必要があります。次に、パンニングを編集するには、今までと同じダイアログで、右にあるEdit…をクリックします。Listener Relative Routingオプションは、パンニングに一切影響しません。

3D Game-Defined

Listener Relative Routingを有効にし、Position listをEmitterに設定し、3D Spatializationの設定をPosition または Position + Orientationにします(前者がデフォルト値)。必ずSpeaker Panning / 3D Spatialization Mixを100に設定します。今までのオプションだったUpdate At Each Frameの無効化に相当するのは、Hold Emitter Position and Orientationを有効にすることです。今までどおり、減衰も設定できます。

3D User-Defined

Listener Relative Routingを有効にし、Position listをListener + Automationに設定し、3D Spatializationの設定をPositionまたはPosition + Orientationにします(前者がデフォルト値)。必ずSpeaker Panning / 3D Spatialization Mixを100に設定します。パスを編集するには、今までと同じダイアログで、Automation…をクリックします。今までのオプションだったFollow Listener Orientationの無効化に相当するのは、Hold Listener Orientationを有効にすることです。今までどおり、減衰も設定できます。

SpatializationをNoneに設定

今まで、ポジショニングを3Dに設定しSpatializationをNoneに設定した場合、その結果のポジショニングは2D pannerを有効にし、点を中央に配置することに相当しました。これからは、SpatializationをNoneに設定すると、選択したSpeaker PanningオプションがDirect AssignmentであれBalance - Fadeであれ、それと、設定したポジションに、従います。また、この配置換えで、"2D"(パンニングした)サウンドに減衰を適用できるようになりました。

新しい機能

Listener + Automationモードは、今までの3D User-Definedモードに相当し、音のポジションは常にリスナーと相対的に設定されます。新たに、音のポジションをエミッターゲームオブジェクトの周りで発生させるようにもでき、これにはPositionモードをEmitter + Automationに設定します。この場合、パスのAutomationがEmitterゲームオブジェクトの周りで行われ、Frontの定義は、ゲーム中のゲームオブジェクトのオリエンテーションによって決まります。Automationのポジションは、距離による減衰(設定されている場合)や、スペーシャリゼーション(設定されている場合)に使われます。

最後になりましたが、PanningとSpatialization(今までの2Dと3D)を、Speaker Panningや3D Spatialization Mixスライダーを使いブレンドすることが可能で、100は完全なスペーシャリゼーションを意味します。

Note: 100未満の値の方が、2種類のポジショニングを計算する必要があり、ランタイムに負荷がやや高くなります。

MixerプラグインAPI

IAkMixerInputContext::IsSpatializationEnabled と、 IAkMixerInputContext::IsPannerEnabled の2つのファンクションを削除しました。代わりに、上記設定に、より正確に一致する以下のファンクションを使います:

  • GetSpeakerPanningType
  • HasListenerRelativeRouting
  • Get3DSpatializationMode

GetNum3DPositions() や、ほかの"3D"関連の機能が適用されるのは、 HasListenerRelativeRouting()trueを返す場合だけです。デザイナーは、ほかの設定に合わせてこれらのポジションを減衰やスペーシャリゼーションに利用することができ、ほかの設定内容は、クエリで確認できます。

Migration Details

以下は、いくつかの注意すべき点です:

  • 減衰がスペーシャリゼーションとは独立したので、Speaker Panning / 3D spatialization Mixに影響されません。ランタイムに減衰を直接、無効にする方法がありません。別の方法として:
    • ゲームオブジェクトの音をリスナー位置で再生、またはリスナーゲームオブジェクトの直上で再生。
    • 減衰をAK::SoundEngine::SetScalingFactor経由で調整。
  • Game object-definedのオブストラクションやオクルージョンは、Listener Relative Routingを有効にした全サウンドに適用されます(通常はActor-Mixer Hierarchyの全オブジェクトのListener Relative Routingが有効になっています)。オブストラクションやオクルージョンを回避するには、イベントを、オブストラクションやオクルージョンを受けない別のゲームオブジェクトに対しポストします。
  • API / Plug-in APIの変更: AK::IAkMixerInputContext::IsSpatializationEnabled、AK::IAkMixerInputContext::IsPannerEnabledのファンクションを削除し、AK::IAkMixerInputContext::GetSpeakerPanningType、<tt>AK::IAkMixerInputContext::HasListenerRelativeRoutingAK::IAkMixerInputContext::Get3DSpatializationModeのファンクションを追加しました。 "Positioning Type"のRTPCのプロジェクトマイグレーションによって、カーブが、コンスタントセグメントのあるSpeaker Panning / 3D Spatialization Mixに移動します。あとから、RTPCビューのカーブを右クリックし、これらのコンスタントセグメントを好みのラインタイプに変更できます。.
  • プロジェクトの移行により、"Positioning Type"にRTPCが設定されていない限り、2DサウンドのAttenuationが消去されます。
  • 距離に基づくプライオリティの変更は、Listener automationのオブジェクトで実行されますが、今までの3D User-Defined Positioningモードのサウンドでは、実行されません。
  • Positionの設定がListener + Automationでありながら、SpatializationがNoneに設定されているサウンドは、ポジションがオートメーションされているので距離減衰が適用されますが、今までは適用されませんでした。
  • "3D"(スペーシャリゼーション)サウンドで、Spatialization ModeがNoneに設定されている場合は、今まで、"2D"サウンドで"panner enabled" (Balance-Fade)の設定で、カーソルが中央にあるサウンドを真似ていました。これからは、Speaker Panningオプションとして選択した、Direct AssignmentまたはBalance-Fadeに従います。ただし、自動プロジェクト移行ではSpatialization ModeがNoneに設定されている"3D"サウンドのSpeaker Panningオプションを明確に設定していないので、フォールバックでDirect Assignmentになる可能性が高いです。

WAAPI ak.wwise.core.audio.importTabDelimited エラーフォーマットの変更

ak_wwise_core_audio_importTabDelimited が返すエラーオブジェクトの、 details フィールドが、WAMP仕様に準拠するようになりました。アレイから、オブジェクトに変更されました。アレイは、オブジェクト内の results というフィールドに移動しました。

Nintendo Switch用のOpusの名前をOpusNXに変更

標準のソフトウェアOpusコーデックの導入に伴い、Switch専用のOpusコーデックの名前をOpusNXに変更しました。これにより、関連ファイルも以下のように変更されました:

  • includeファイルの、AkOpusFactory.hが、AkOpusNXFactory.hに変更されました
  • libraryファイルの、libAkOpusDecoder.aが、libAkOpusNXDecoder.aに変更されました

これらのファイルをNintendo Switchで使えば、このプラットフォームのハードウェアデコーダを活用できます。なお、標準OpusコーデックもSwitchで利用できますが、ソフトウェアでデコードされます。標準Opusコーデックファイルの名前は、AkOpusDecoderFactory.hと、AkOpusDecoder[.lib, .a]です。

2018.1のジオメトリAPIを使う

2018.1では、ジオメトリAPIを変更しデータの効率化を図り、表現方法の利便性とまとまりを改善しました。以下の変更点に注意してください:

  • Vertex(頂点)の設定が、三角形とは別のアレイで設定され、三角形のアレイの中の各三角形が、vertexアレイのインデックスを参照するようになりました。
  • 各三角形に、AkAcousticSurface構成に対するインデックスが含まれ、これにより音響用のテクスチャ、ディスクリプション文字列、リフレクターチャンネルマスクが定義されます。
  • Acoustic Surfaceと三角形との関係は、ユーザーが決めます。例えば、三角形ごとに異なるSurfaceを適用したり、全三角形に同じ1つのSurfaceを適用したり、その間をとったり、自由に選択できます。
  • Acoustic surfaceの設定は、任意です。Surfaceの音響特性をカスタマイズすることが望ましくない場合は、三角形をAK_INVALID_SURFACEのままで残し、NULLをAkGeometryParams::Surfacesに送り、AkGeometryParams::NumSurfacesを0に設定することができます。

組み込みゲームパラメータのDiffractionをパーセント表示に変更

Wwise 2017.2の組み込みゲームパラメータのDiffraction単位は、角度を表す0から180までの度数でした。2018.1では、Diffractionがパーセント表示となり、100が180度を表すようになりました。同様に、3D Game Object ProfilerのDiffraction値も、パーセント表示になりました。これにより、回折に左右され、今までも0から100までの範囲で表示されてきたObstructionと、調整しやすくなりました。あなたの既存プロジェクトを2018.1に移行すると、自動的にカーブも移行します。