CRIWARE Unity Plugin Manual  Last Updated: 2024-02-07
CriAtomEx3dListener クラス

3Dリスナー [詳解]

CriDisposableを継承しています。

公開メンバ関数

 CriAtomEx3dListener ()
 3Dリスナーの作成 [詳解]
 
override void Dispose ()
 3Dリスナーオブジェクトの破棄 [詳解]
 
void Update ()
 3Dリスナーの更新 [詳解]
 
void ResetParameters ()
 3D音源パラメータの初期化 [詳解]
 
void SetPosition (float x, float y, float z)
 3Dリスナーの位置の設定 [詳解]
 
void SetVelocity (float x, float y, float z)
 3Dリスナーの速度の設定 [詳解]
 
void SetOrientation (float fx, float fy, float fz, float ux, float uy, float uz)
 3Dリスナーの向きの設定 [詳解]
 
void SetDistanceFactor (float distanceFactor)
 3Dリスナーの距離係数の設定 [詳解]
 
void SetDopplerMultiplier (float dopplerMultiplier)
 3Dリスナーのドップラー倍率の設定 [詳解]
 
void SetFocusPoint (float x, float y, float z)
 3Dリスナーの注目点の設定 [詳解]
 
void SetDistanceFocusLevel (float distanceFocusLevel)
 距離センサのフォーカスレベルの設定 [詳解]
 
void SetDirectionFocusLevel (float directionFocusLevel)
 方向センサのフォーカスレベルの設定 [詳解]
 
void Set3dRegion (CriAtomEx3dRegion region3d)
 3Dリージョンの設定 [詳解]
 
bool IsDestroyable ()
 3Dリスナーを破棄可能かどうかのチェック [詳解]
 

詳解

3Dリスナー

説明:
3Dリスナーを扱うためのオブジェクトです。
3Dポジショニング機能に使用します。

3Dリスナーのパラメータ、位置情報の設定等は、3Dリスナーオブジェクトを介して実行されます。

構築子と解体子

CriAtomEx3dListener ( )
inline

3Dリスナーの作成

説明:
3Dリスナーオブジェクトを作成します。
注意:
本関数を実行する前に、ライブラリを初期化しておく必要があります。

関数詳解

override void Dispose ( )
inline

3Dリスナーオブジェクトの破棄

説明:
3Dリスナーオブジェクトを破棄します。
本関数を実行した時点で、3Dリスナー作成時にDLL内で確保されたリソースが全て解放されます。
3DリスナーオブジェクトをセットしたAtomExプレーヤで再生している音声がある場合、 本関数を実行する前に、それらの音声を停止するか、そのAtomExプレーヤを破棄してください。
void Update ( )
inline

3Dリスナーの更新

説明:
3Dリスナーに設定されているパラメータを使用して、3Dリスナーを更新します。
本関数では、3Dリスナーに設定されているすべてのパラメータを更新します。 パラメータをひとつ変更する度に本関数にて更新処理を行うよりも、 複数のパラメータを変更してから更新処理を行った方が効率的です。
注意:
本関数はAtomExプレーヤのパラメータ更新( CriWare.CriAtomExPlayer::UpdateAll, CriWare.CriAtomExPlayer::Update ) とは独立して動作します。
3Dリスナーのパラメータを変更した際は、本関数にて更新処理を行ってください。
例:

: // リスナーの作成 CriAtomExListener listener = new CriAtomEx3dListener(); : // リスナー位置の設定 listener.SetPosition(0.0f, 0.0f, 1.0f);

// リスナー速度の設定 listener.SetVelocity(1.0f, 0.0f, 0.0f);

// 注意)この時点ではリスナーの位置や速度はまだ変更されていません。

// 変更の適用 listener.Update(); :

void ResetParameters ( )
inline

3D音源パラメータの初期化

説明:
3Dリスナーに設定されているパラメータをクリアし、初期値に戻します。
注意:
クリアしたパラメータを実際に適用するには、 CriWare.CriAtomEx3dListener::Update 関数を呼び出す必要があります。
void SetPosition ( float  x,
float  y,
float  z 
)
inline

3Dリスナーの位置の設定

引数
xX座標
yY座標
zZ座標
説明:
3Dリスナーの位置を設定します。
位置は、距離減衰、および定位計算に使用されます。
位置は、3次元ベクトルで指定します。
位置の単位がいくつであるかは、3Dリスナーの距離計数 ( CriWare.CriAtomEx3dListener::SetDistanceFactor 関数で設定)で決まります。
デフォルト値は(0.0f, 0.0f, 0.0f)です。
データ側には位置は設定できないため、常に本関数での設定値が使用されます。
注意:
設定したパラメータを実際に適用するには、 CriWare.CriAtomEx3dListener::Update 関数を呼び出す必要があります。
参照
CriAtomEx3dListener::Update
void SetVelocity ( float  x,
float  y,
float  z 
)
inline

3Dリスナーの速度の設定

引数
xX軸方向の速度
yY軸方向の速度
zZ軸方向の速度
説明:
3Dリスナーの速度を設定します。
速度は、ドップラー効果の計算に使用されます。
速度は、3次元ベクトルで指定します。
速度の単位は、1秒あたりの移動距離です。
距離の単位がいくつであるかは、3Dリスナーの距離計数 ( CriWare.CriAtomEx3dListener::SetDistanceFactor 関数で設定)で決まります。
デフォルト値は(0.0f, 0.0f, 0.0f)です。
データ側には速度は設定できないため、常に本関数での設定値が使用されます。
注意:
設定したパラメータを実際に適用するには、 CriWare.CriAtomEx3dListener::Update 関数を呼び出す必要があります。
参照
CriAtomEx3dListener::Update
void SetOrientation ( float  fx,
float  fy,
float  fz,
float  ux,
float  uy,
float  uz 
)
inline

3Dリスナーの向きの設定

引数
fx前方ベクトルのX方向の値
fy前方ベクトルのY方向の値
fz前方ベクトルのZ方向の値
ux上方ベクトルのX方向の値
uy上方ベクトルのY方向の値
uz上方ベクトルのZ方向の値
説明:
3Dリスナーの向きを前方ベクトルと上方ベクトルで設定します。
向きは、3次元ベクトルで指定します。
設定された向きベクトルは、ライブラリ内部で正規化して使用されます。
デフォルト値以下のとおりです。
  • 前方ベクトル:(0.0f, 0.0f, 1.0f)
  • 上方ベクトル:(0.0f, 1.0f, 0.0f)
データ側にはリスナーの向きは設定できないため、常に本関数での設定値が使用されます。
注意:
設定したパラメータを実際に適用するには、 CriWare.CriAtomEx3dListener::Update 関数を呼び出す必要があります。
参照
CriAtomEx3dListener::Update
void SetDistanceFactor ( float  distanceFactor)
inline

3Dリスナーの距離係数の設定

非推奨:
削除予定の非推奨APIです。 CriWareErrorHandler.OnCallback event の使用を検討してください。
引数
distanceFactor距離係数
説明:
3Dリスナーの距離係数を設定します。
この係数はドップラー効果の計算に使用されます。
例えば、distance_factorに0.1fを指定すると、速度の1.0fを10メートルとして扱います。
distanceFactorに指定できる値は0または0.0fより大きな値です。 デフォルト値は1.0fです。
データ側にはリスナーの距離係数は設定できないため、常に本関数での設定値が使用されます。
注意:
設定したパラメータを実際に適用するには、 CriWare.CriAtomEx3dListener::Update 関数を呼び出す必要があります。
参照
CriAtomEx3dListener::Update
void SetDopplerMultiplier ( float  dopplerMultiplier)
inline

3Dリスナーのドップラー倍率の設定

引数
dopplerMultiplierドップラー倍率
説明:
3Dリスナーのドップラー倍率を設定します。この倍率はドップラー効果の計算に使用されます。
例えば、dopplerMultiplierに10.0fを指定すると、ドップラー効果が通常の10倍になります。
dopplerMultiplierに指定できる値は0または0.0fより大きな値です。 デフォルト値は1.0fです。
データ側にはリスナーのドップラー倍率は設定できないため、常に本関数での設定値が使用されます。
注意:
設定したパラメータを実際に適用するには、 CriWare.CriAtomEx3dListener::Update 関数を呼び出す必要があります。
参照
CriAtomEx3dListener::Update
void SetFocusPoint ( float  x,
float  y,
float  z 
)
inline

3Dリスナーの注目点の設定

説明:
3Dリスナーの注目点を設定します。
注目点は、3Dポジショニングを行うにあたって、 注目点を設定すると、リスナーの位置と注目点の間が直線で結ばれ、 その直線上でマイクを移動させることができるようになります。
例えば、リスナーはカメラと常に同期させておき、主要キャラクタの位置に注目点を設定することで、 状況に応じて、客観的か主観的かを柔軟に表現/調整するような使い方ができます。
なお、リスナーの位置と注目点の間で移動できるマイクは、現実世界のマイクと異なり、 距離センサ(距離減衰計算用)と方向センサ(定位計算用)を分離しています。
これらを独立して操作することで、例えば「主役キャラに注目するので、距離減衰はキャラ位置基準で行いたい」 「定位は画面の見た目に合わせたいため、定位計算はカメラ位置基準で行いたい」 という表現を行うことができます。
デフォルト値は(0.0f, 0.0f, 0.0f)です。距離センサや方向センサのフォーカスレベルを設定しない状況では、 注目点を設定する必要はありません。 その場合、従来どおり、全ての3Dポジショニング計算をリスナー位置基準で行います。
注意:
設定したパラメータを実際に適用するには、 CriWare.CriAtomEx3dListener::Update 関数を呼び出す必要があります。
参照
CriAtomEx3dListener::Update, CriAtomEx3dListener::SetDistanceFocusLevel, CriAtomEx3dListener::SetDirectionFocusLevel
void SetDistanceFocusLevel ( float  distanceFocusLevel)
inline

距離センサのフォーカスレベルの設定

引数
distanceFocusLevel距離センサのフォーカスレベル
説明:
距離センサのフォーカスレベルを設定します。
距離センサは、3Dポジショニング計算のうち、距離減衰計算の基準となる位置を表します。 定位を無視して距離減衰のかかり具合のみを感知するマイク、といった扱いです。
フォーカスレベルは、注目点に対してどれだけセンサ(マイク)を近づけるかを表します。 センサ(マイク)は、リスナー位置と注目点の間を結んだ直線上で動かすことができ、 0.0fがリスナー位置、1.0fが注目点と同じ位置になります。
例えば、距離センサのフォーカスレベルを1.0f、方向センサのフォーカスレベルを0.0fとすることで、 注目点を基準に距離減衰を適用し、リスナー位置を基準に定位を決定します。
デフォルト値は0.0fです。距離センサや方向センサのフォーカスレベルを設定しない状況では、 従来どおり、全ての3Dポジショニング計算をリスナー位置基準で行います。
注意:
設定したパラメータを実際に適用するには、 CriWare.CriAtomEx3dListener::Update 関数を呼び出す必要があります。
参照
CriAtomEx3dListener::Update, CriAtomEx3dListener::SetFocusPoint, CriAtomEx3dListener::SetDirectionFocusLevel
void SetDirectionFocusLevel ( float  directionFocusLevel)
inline

方向センサのフォーカスレベルの設定

引数
directionFocusLevel方向センサのフォーカスレベル
説明:
方向センサのフォーカスレベルを設定します。
方向センサは、3Dポジショニング計算のうち、定位計算の基準となる位置を表します。 距離減衰を無視して定位のみを感知するマイク、といった扱いです。
方向センサの向きについては、リスナーの向き(SetOrientation 関数で設定)をそのまま使用します。
フォーカスレベルは、注目点に対してどれだけセンサ(マイク)を近づけるかを表します。 センサ(マイク)は、リスナー位置と注目点の間を結んだ直線上で動かすことができ、 0.0fがリスナー位置、1.0fが注目点と同じ位置になります。
例えば、距離センサのフォーカスレベルを1.0f、方向センサのフォーカスレベルを0.0fとすることで、 注目点を基準に距離減衰を適用し、リスナー位置を基準に定位を決定します。
デフォルト値は0.0fです。距離センサや方向センサのフォーカスレベルを設定しない状況では、 従来どおり、全ての3Dポジショニング計算をリスナー位置基準で行います。
注意:
設定したパラメータを実際に適用するには、 CriWare.CriAtomEx3dListener::Update 関数を呼び出す必要があります。
参照
CriAtomEx3dListener::Update, CriAtomEx3dListener::SetFocusPoint, CriAtomEx3dListener::SetDistanceFocusLevel
void Set3dRegion ( CriAtomEx3dRegion  region3d)
inline

3Dリージョンの設定

説明:
3Dリスナーに対して3Dリージョンを設定します。
注意:
同一のExPlayerに設定されている3D音源と3Dリスナーに設定されているリージョンが異なり、
かつ3D音源と同じリージョンが設定されている3Dトランシーバーがない場合、音声はミュートされます。
設定したパラメータを実際に適用するには、 CriWare.CriAtomEx3dListener::Update 関数を呼び出す必要があります。
参照
CriAtomEx3dRegion::Create, CriAtomEx3dListener::Update
bool IsDestroyable ( )
inline

3Dリスナーを破棄可能かどうかのチェック

戻り値
3Dリスナーの状態(true = 破棄可能、false = 破棄不可)
説明:
3Dリスナーを破棄可能かどうかをチェックします。
3DリスナーをセットしたAtomExプレーヤーで再生している音声がある場合、
Dispose 関数を呼び出しても、破棄に失敗します。
破棄する3Dリスナーを設定したAtomExプレーヤーをすべて破棄するか、
別の3Dリスナーを設定してください。
参照
Dispose, CriAtomExPlayer.Set3dListener

このクラス詳解は次のファイルから抽出されました: