Class CriAtomEx3dListener
3Dリスナーオブジェクト
Inherited Members
Namespace: CriWare
Assembly: CriWare.CriAtom.dll
Syntax
public class CriAtomEx3dListener : IDisposable, IPositionable, IUpdatable
Remarks
説明: 3Dリスナーを扱うためのオブジェクトです。 3Dポジショニング機能に使用します。 3Dリスナーのパラメーター、位置情報の設定等は、3Dリスナーオブジェクトを介して実行されます。
Constructors
CriAtomEx3dListener(in Config, IntPtr, int)
3Dリスナーオブジェクトの作成
Declaration
public CriAtomEx3dListener(in CriAtomEx3dListener.Config config, IntPtr work = default, int workSize = 0)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx3dListener.Config | config | 3Dリスナーオブジェクト作成用コンフィグ構造体へのポインタ |
IntPtr | work | 3Dリスナーオブジェクト作成用ワーク領域へのポインタ |
int | workSize | 3Dリスナーオブジェクト作成用ワークサイズ |
Remarks
説明: 3Dリスナーオブジェクト作成用コンフィグに基づいて、3Dリスナーオブジェクトを作成します。 作成に成功すると、3Dリスナーオブジェクトを返します。 3Dリスナーオブジェクトを作成する際には、ワーク領域としてメモリを渡す必要があります。 必要なメモリのサイズは、 CalculateWorkSize(in Config) 関数で計算します。 (SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドを使用してアロケーターを登録済みの場合、 本関数にワーク領域を指定する必要はありません。)
注意: 本関数を実行する前に、ライブラリを初期化しておく必要があります。
See Also
CriAtomEx3dListener(IntPtr, int)
デフォルト設定でのインスタンス作成
Declaration
public CriAtomEx3dListener(IntPtr work = default, int workSize = 0)
Parameters
Type | Name | Description |
---|---|---|
IntPtr | work | |
int | workSize |
Properties
NativeHandle
ネイティブハンドル
Declaration
public NativeHandleIntPtr NativeHandle { get; }
Property Value
Type | Description |
---|---|
NativeHandleIntPtr |
Methods
CalculateWorkSize(in Config)
3Dリスナーオブジェクトの作成に必要なワーク領域サイズの計算
Declaration
public static int CalculateWorkSize(in CriAtomEx3dListener.Config config)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx3dListener.Config | config | 3Dリスナーオブジェクト作成用コンフィグ構造体へのポインタ |
Returns
Type | Description |
---|---|
int | 3Dリスナーオブジェクト作成用ワークサイズ |
Remarks
説明: 3Dリスナーオブジェクトを作成するために必要な、ワーク領域のサイズを取得します。 アロケーターを登録せずに3Dリスナーオブジェクトを作成する場合、 あらかじめ本関数で計算したワーク領域サイズ分のメモリを ワーク領域として CriAtomEx3dListener(in Config, IntPtr, int) 関数にセットする必要があります。 3Dリスナーオブジェクトの作成に必要なワークメモリのサイズは、3Dリスナーオブジェクト作成用コンフィグ 構造体( CriAtomEx3dListener.Config )の内容によって変化します。 引数にnullを指定した場合、デフォルト設定 ( SetDefaultConfig(out Config) 適用時と同じパラメーター)で ワーク領域サイズを計算します。 ワーク領域サイズ計算時に失敗した場合、戻り値は -1 になります。 ワーク領域サイズの計算に失敗した理由については、エラーコールバックの メッセージで確認可能です。
備考: 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
See Also
Dispose()
3Dリスナーオブジェクトの破棄
Declaration
public void Dispose()
Remarks
説明: 3Dリスナーオブジェクトを破棄します。 本関数を実行した時点で、3Dリスナーオブジェクト作成時に確保されたリソースが全て解放されます。 また、引数に指定した3Dリスナーオブジェクトも無効になります。 3DリスナーオブジェクトをセットしたAtomExプレーヤーで再生している音声がある場合、 本関数を実行する前に、それらの音声を停止するか、そのAtomExプレーヤーを破棄してください。
See Also
GetDirectionFocusLevel()
方向センサのフォーカスレベルの取得
Declaration
public float GetDirectionFocusLevel()
Returns
Type | Description |
---|---|
float |
Remarks
説明: 方向センサのフォーカスレベルを取得します。 デフォルト値は0.0fです。方向センサのフォーカスレベルを設定していない場合、デフォルト値が返却されます。
See Also
GetDistanceFocusLevel()
距離センサのフォーカスレベルの取得
Declaration
public float GetDistanceFocusLevel()
Returns
Type | Description |
---|---|
float |
Remarks
説明: 距離センサのフォーカスレベルを設定します。 デフォルト値は0.0fです。距離センサのフォーカスレベルを設定していない場合、デフォルト値が返却されます。
See Also
GetFocusPoint(out Vector)
3Dリスナーの注目点の取得
Declaration
public void GetFocusPoint(out CriAtomEx.Vector focusPoint)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx.Vector | focusPoint | 注目点ベクトル |
Remarks
説明: 3Dリスナーの注目点を取得します。 デフォルト値は(0.0f, 0.0f, 0.0f)です。3Dリスナーの注目点を設定していない場合、デフォルト値が返却されます。
See Also
GetPosition()
3Dリスナーの位置の取得
Declaration
public CriAtomEx.Vector GetPosition()
Returns
Type | Description |
---|---|
CriAtomEx.Vector |
Remarks
説明: 3Dリスナーの位置を取得します。 位置は、3次元ベクトルで取得します。
ResetParameters()
3D音源パラメーターの初期化
Declaration
public void ResetParameters()
Remarks
説明: 3Dリスナーに設定されているパラメーターをクリアし、初期値に戻します。
注意: クリアしたパラメーターを実際に適用するには、Update() 関数を呼び出す必要があります。
See Also
Set3dRegionHn(CriAtomEx3dRegion)
3Dリスナーオブジェクトに対する3Dリージョンオブジェクトの設定
Declaration
public void Set3dRegionHn(CriAtomEx3dRegion ex3dRegion)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx3dRegion | ex3dRegion |
Remarks
説明: 3Dリスナーオブジェクトに対して3Dリージョンオブジェクトを設定します。 *
注意: 同一のExPlayerに設定されている3D音源と3Dリスナーに設定されているリージョンが異なり、 かつ3D音源と同じリージョンが設定されている3Dトランシーバーがない場合、音声はミュートされます。 設定したパラメーターを実際に適用するには、Update() 関数を呼び出す必要があります。
See Also
SetDefaultConfig(out Config)
3Dリスナーオブジェクト作成用コンフィグ構造体にデフォルト値をセット
Declaration
public static void SetDefaultConfig(out CriAtomEx3dListener.Config pConfig)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx3dListener.Config | pConfig | 3Dリスナーオブジェクト作成用コンフィグ構造体へのポインタ |
Remarks
説明: 3Dリスナーオブジェクト作成用コンフィグ構造体( CriAtomEx3dListener.Config )に、デフォルトの値をセットします。
See Also
SetDirectionFocusLevel(float)
方向センサのフォーカスレベルの設定
Declaration
public void SetDirectionFocusLevel(float directionFocusLevel)
Parameters
Type | Name | Description |
---|---|---|
float | directionFocusLevel | 方向センサのフォーカスレベル |
Remarks
説明: 方向センサのフォーカスレベルを設定します。 方向センサは、3Dポジショニング計算のうち、定位計算の基準となる位置を表します。距離減衰を無視して定位のみを感知するマイク、といった扱いです。 方向センサの向きについては、リスナーの向き(SetOrientation(in Vector, in Vector) 関数で設定)をそのまま使用します。 フォーカスレベルは、注目点に対してどれだけセンサ(マイク)を近づけるかを表します。センサ(マイク)は、リスナー位置と注目点の間を結んだ直線上で動かすことができ、0.0fがリスナー位置、1.0fが注目点と同じ位置になります。 例えば、距離センサのフォーカスレベルを1.0f、方向センサのフォーカスレベルを0.0fとすることで、注目点を基準に距離減衰を適用し、リスナー位置を基準に定位を決定します。 デフォルト値は0.0fです。距離センサや方向センサのフォーカスレベルを設定しない状況では、従来どおり、全ての3Dポジショニング計算をリスナー位置基準で行います。
注意: 設定したパラメーターを実際に適用するには、Update() 関数を呼び出す必要があります。
See Also
SetDistanceFocusLevel(float)
距離センサのフォーカスレベルの設定
Declaration
public void SetDistanceFocusLevel(float distanceFocusLevel)
Parameters
Type | Name | Description |
---|---|---|
float | distanceFocusLevel | 距離センサのフォーカスレベル |
Remarks
説明: 距離センサのフォーカスレベルを設定します。 距離センサは、3Dポジショニング計算のうち、距離減衰計算の基準となる位置を表します。定位を無視して距離減衰のかかり具合のみを感知するマイク、といった扱いです。 フォーカスレベルは、注目点に対してどれだけセンサ(マイク)を近づけるかを表します。センサ(マイク)は、リスナー位置と注目点の間を結んだ直線上で動かすことができ、0.0fがリスナー位置、1.0fが注目点と同じ位置になります。 例えば、距離センサのフォーカスレベルを1.0f、方向センサのフォーカスレベルを0.0fとすることで、注目点を基準に距離減衰を適用し、リスナー位置を基準に定位を決定します。 デフォルト値は0.0fです。距離センサや方向センサのフォーカスレベルを設定しない状況では、従来どおり、全ての3Dポジショニング計算をリスナー位置基準で行います。
注意: 設定したパラメーターを実際に適用するには、Update() 関数を呼び出す必要があります。
See Also
SetDopplerMultiplier(float)
3Dリスナーのドップラー倍率の設定
Declaration
public void SetDopplerMultiplier(float dopplerMultiplier)
Parameters
Type | Name | Description |
---|---|---|
float | dopplerMultiplier | ドップラー倍率 |
Remarks
説明: 3Dリスナーのドップラー倍率を設定します。この倍率はドップラー効果の計算に使用されます。 例えば、doppler_multiplierに10.0fを指定すると、ドップラー効果が通常の10倍になります。 doppler_multiplierには0.0f以上の値を指定します。 デフォルト値は1.0fです。 データ側にはリスナーのドップラー倍率は設定できないため、常に本関数での設定値が使用されます。
注意: 設定したパラメーターを実際に適用するには、Update() 関数を呼び出す必要があります。
See Also
SetFocusPoint(in Vector)
3Dリスナーの注目点の設定
Declaration
public void SetFocusPoint(in CriAtomEx.Vector focusPoint)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx.Vector | focusPoint | 注目点ベクトル |
Remarks
説明: 3Dリスナーの注目点を設定します。 注目点は、3Dポジショニングを行うにあたって、 注目点を設定すると、リスナーの位置と注目点の間が直線で結ばれ、その直線上でマイクを移動させることができるようになります。 例えば、リスナーはカメラと常に同期させておき、主要キャラクタの位置に注目点を設定することで、状況に応じて、客観的か主観的かを柔軟に表現/調整するような使い方ができます。 なお、リスナーの位置と注目点の間で移動できるマイクは、現実世界のマイクと異なり、距離センサ(距離減衰計算用)と方向センサ(定位計算用)を分離しています。 これらを独立して操作することで、例えば「主役キャラに注目するので、距離減衰はキャラ位置基準で行いたい」「定位は画面の見た目に合わせたいため、定位計算はカメラ位置基準で行いたい」という表現を行うことができます。 デフォルト値は(0.0f, 0.0f, 0.0f)です。距離センサや方向センサのフォーカスレベルを設定しない状況では、注目点を設定する必要はありません。その場合、従来どおり、全ての3Dポジショニング計算をリスナー位置基準で行います。
注意: 設定したパラメーターを実際に適用するには、Update() 関数を呼び出す必要があります。
See Also
SetOrientation(in Vector, in Vector)
3Dリスナーの向きの設定
Declaration
public void SetOrientation(in CriAtomEx.Vector front, in CriAtomEx.Vector top)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx.Vector | front | 前方ベクトル |
CriAtomEx.Vector | top | 上方ベクトル |
Remarks
説明: 3Dリスナーの向きを前方ベクトルと上方ベクトルで設定します。 向きは、3次元ベクトルで指定します。設定された向きベクトルは、ライブラリ内部で正規化して使用されます。 デフォルト値は以下のとおりです。 - 前方ベクトル:(0.0f, 0.0f, 1.0f) - 上方ベクトル:(0.0f, 1.0f, 0.0f) データ側にはリスナーの向きは設定できないため、常に本関数での設定値が使用されます。
注意: 設定したパラメーターを実際に適用するには、Update() 関数を呼び出す必要があります。
See Also
SetPosition(in Vector)
3Dリスナーの位置の設定
Declaration
public void SetPosition(in CriAtomEx.Vector position)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx.Vector | position | 位置ベクトル |
Remarks
説明: 3Dリスナーの位置を設定します。 位置は、距離減衰、および定位計算に使用されます。 位置は、3次元ベクトルで指定します。 デフォルト値は(0.0f, 0.0f, 0.0f)です。 データ側には位置は設定できないため、常に本関数での設定値が使用されます。
注意: 設定したパラメーターを実際に適用するには、Update() 関数を呼び出す必要があります。
See Also
SetVelocity(in Vector)
3Dリスナーの速度の設定
Declaration
public void SetVelocity(in CriAtomEx.Vector velocity)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx.Vector | velocity | 速度ベクトル |
Remarks
説明: 3Dリスナーの速度を設定します。 速度は、ドップラー効果の計算に使用されます。 速度は、3次元ベクトルで指定します。速度の単位は、1秒あたりの移動距離です。 デフォルト値は(0.0f, 0.0f, 0.0f)です。 データ側には速度は設定できないため、常に本関数での設定値が使用されます。
注意: 設定したパラメーターを実際に適用するには、Update() 関数を呼び出す必要があります。
See Also
Update()
3Dリスナーの更新
Declaration
public void Update()
Remarks
説明: 3Dリスナーに設定されているパラメーターを使用して、3Dリスナーを更新します。 本関数では、3Dリスナーに設定されている全てのパラメーターを更新します。 パラメーターをひとつ変更する度に本関数にて更新処理を行うよりも、 複数のパラメーターを変更してから更新処理を行った方が効率的です。
注意: 本関数はAtomExプレーヤーのパラメーター更新(UpdateAll(), Update(CriAtomExPlayback)) とは独立して動作します。3Dリスナーのパラメーターを変更した際は、本関数にて更新処理を行ってください。