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

3Dトランシーバーオブジェクト [詳解]

CriDisposableを継承しています。

公開メンバ関数

 CriAtomEx3dTransceiver ()
 3Dトランシーバーオブジェクトの作成 [詳解]
 
override void Dispose ()
 3Dトランシーバーオブジェクトの破棄 [詳解]
 
void Update ()
 3Dトランシーバーの更新 [詳解]
 
void SetInputPosition (Vector3 position)
 3Dトランシーバー入力の位置の設定 [詳解]
 
void SetOutputPosition (Vector3 position)
 3Dトランシーバー出力の位置の設定 [詳解]
 
void SetInputOrientation (Vector3 front, Vector3 top)
 3Dトランシーバー入力の向きの設定 [詳解]
 
void SetOutputOrientation (Vector3 front, Vector3 top)
 3Dトランシーバー出力の向きの設定 [詳解]
 
void SetOutputConeParameter (float insideAngle, float outsideAngle, float outsideVolume)
 3Dトランシーバー出力のサウンドコーンパラメータの設定 [詳解]
 
void SetOutputMinMaxDistance (float minDistance, float maxDistance)
 3Dトランシーバー出力の最小距離/最大距離の設定 [詳解]
 
void SetOutputInteriorPanField (float radius, float interiorDistance)
 3Dトランシーバー出力のインテリアパンニング境界距離の設定 [詳解]
 
void SetInputCrossFadeField (float directAudioRadius, float crossfadeDistance)
 3Dトランシーバー入力のクロスフェード境界距離の設定 [詳解]
 
void SetOutputVolume (float volume)
 3Dトランシーバー出力のボリュームの設定 [詳解]
 
void AttachAisac (string globalAisacName)
 3DトランシーバーにAISACを取り付ける [詳解]
 
void DetachAisac (string globalAisacName)
 3DトランシーバーからAISACを取り外す [詳解]
 
void SetMaxAngleAisacDelta (float maxDelta)
 角度AISACコントロール値の最大変化量の設定 [詳解]
 
void SetDistanceAisacControlId (ushort aisacControlId)
 距離AISACコントロールIDの設定 [詳解]
 
void SetListenerBasedAzimuthAngleAisacControlId (ushort aisacControlId)
 リスナー基準方位角AISACコントロールIDの設定 [詳解]
 
void SetListenerBasedElevationAngleAisacControlId (ushort aisacControlId)
 リスナー基準仰俯角AISACコントロールIDの設定 [詳解]
 
void SetTransceiverOutputBasedAzimuthAngleAisacControlId (ushort aisacControlId)
 3Dトランシーバー出力基準方位角AISACコントロールIDの設定 [詳解]
 
void SetTransceiverOutputBasedElevationAngleAisacControlId (ushort aisacControlId)
 3Dトランシーバー出力基準仰俯角AISACコントロールIDの設定 [詳解]
 
void Set3dRegion (CriAtomEx3dRegion region3d)
 3Dリージョンの設定 [詳解]
 

詳解

3Dトランシーバーオブジェクト

説明:
3Dトランシーバーを取り扱うためのオブジェクトです。

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

構築子と解体子

3Dトランシーバーオブジェクトの作成

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

関数詳解

override void Dispose ( )
inline

3Dトランシーバーオブジェクトの破棄

説明:
3Dトランシーバーオブジェクトを破棄します。
本関数を実行した時点で、3Dトランシーバーオブジェクト作成時にDLL内で確保されたリソースが全て解放され、
3Dトランシーバーが無効になります。
void Update ( )
inline

3Dトランシーバーの更新

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

: // トランシーバーの作成 CriAtomEx3dTransceiver transceiver = new CriAtomEx3dTransceiver(); : // トランシーバーの入力位置を設定 transceiver.SetInputPosition(Vector3.zero);

// トランシーバーの出力位置を設定 transceiver.SetOutputPosition(Vector3.zero);

// 注意)この時点ではトランシーバーの位置はまだ変更されていません。

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

void SetInputPosition ( Vector3  position)
inline

3Dトランシーバー入力の位置の設定

引数
position入力位置ベクトル
説明:
3Dトランシーバー入力の位置を設定します。
位置は、距離減衰、および定位計算に使用されます。
位置は、3次元ベクトルで指定します。
デフォルト値は(0.0f, 0.0f, 0.0f)です。
注意:
設定したパラメータを実際に適用するには、 CriWare.CriAtomEx3dTransceiver::Update 関数を呼び出す必要があります。
参照
CriAtomEx3dTransceiver::Update
void SetOutputPosition ( Vector3  position)
inline

3Dトランシーバー出力の位置の設定

引数
position出力位置ベクトル
説明:
3Dトランシーバー出力の位置を設定します。
位置は、距離減衰、および定位計算に使用されます。
位置は、3次元ベクトルで指定します。
デフォルト値は(0.0f, 0.0f, 0.0f)です。
注意:
設定したパラメータを実際に適用するには、 CriWare.CriAtomEx3dTransceiver::Update 関数を呼び出す必要があります。
参照
CriAtomEx3dTransceiver::Update
void SetInputOrientation ( Vector3  front,
Vector3  top 
)
inline

3Dトランシーバー入力の向きの設定

引数
front前方ベクトル
top上方ベクトル
説明:
3Dトランシーバーの向きを前方ベクトルと上方ベクトルで設定します。
向きは、3次元ベクトルで指定します。設定された向きベクトルは、ライブラリ内部で正規化して使用されます。
デフォルト値以下のとおりです。
  • 前方ベクトル:(0.0f, 0.0f, 1.0f)
  • 上方ベクトル:(0.0f, 1.0f, 0.0f)
注意:
設定したパラメータを実際に適用するには、 CriWare.CriAtomEx3dTransceiver::Update 関数を呼び出す必要があります。
参照
CriAtomEx3dTransceiver::Update
void SetOutputOrientation ( Vector3  front,
Vector3  top 
)
inline

3Dトランシーバー出力の向きの設定

引数
front前方ベクトル
top上方ベクトル
説明:
3Dトランシーバーの向きを前方ベクトルと上方ベクトルで設定します。
向きは、3次元ベクトルで指定します。設定された向きベクトルは、ライブラリ内部で正規化して使用されます。
デフォルト値以下のとおりです。
  • 前方ベクトル:(0.0f, 0.0f, 1.0f)
  • 上方ベクトル:(0.0f, 1.0f, 0.0f)
注意:
設定したパラメータを実際に適用するには、 CriWare.CriAtomEx3dTransceiver::Update 関数を呼び出す必要があります。
参照
CriAtomEx3dTransceiver::Update
void SetOutputConeParameter ( float  insideAngle,
float  outsideAngle,
float  outsideVolume 
)
inline

3Dトランシーバー出力のサウンドコーンパラメータの設定

引数
insideAngleサウンドコーンのインサイドアングル
outsideAngleサウンドコーンのアウトサイドアングル
outsideVolumeサウンドコーンのアウトサイドボリューム
説明:
3Dトランシーバー出力のサウンドコーンパラメータを設定します。
サウンドコーンは、トランシーバーから音が発生する方向を表し、音の指向性の表現に使用されます。
サウンドコーンは、内側コーン、外側コーンで構成されます。インサイドアングルは内側コーンの角度、 アウトサイドアングルは外側コーンの角度、アウトサイドボリュームは外側コーンの角度以上の方向での音量を それぞれ表します。
内側コーンの角度より小さい角度の方向では、コーンによる減衰を受けません。 内側コーンと外側コーンの間の方向では、徐々にアウトサイドボリュームまで減衰します。
インサイドアングルおよびアウトサイドアングルは、0.0f~360.0fを度で指定します。
アウトサイドボリュームは、0.0f~1.0fを振幅に対する倍率で指定します(単位はデシベルではありません)。
ライブラリ初期化時のデフォルト値は以下のとおりであり、コーンによる減衰は行われません。
  • インサイドアングル:360.0f
  • アウトサイドアングル:360.0f
  • アウトサイドボリューム:0.0f .
注意:
設定したパラメータを実際に適用するには、 CriWare.CriAtomEx3dTransceiver::Update 関数を呼び出す必要があります。
参照
CriAtomEx3dTransceiver::Update
void SetOutputMinMaxDistance ( float  minDistance,
float  maxDistance 
)
inline

3Dトランシーバー出力の最小距離/最大距離の設定

引数
minDistance最小距離
maxDistance最大距離
説明:
3Dトランシーバー出力の最小距離/最大距離を設定します。
最小距離は、これ以上音量が大きくならない距離を表します。
最大距離は、最小音量になる距離を表します。
ライブラリ初期化時のデフォルト値は以下のとおりです。
  • 最小距離:0.0f
  • 最大距離:0.0f
データ側に最小距離/最大距離が設定されている場合に本関数を呼び出すと、 データ側の値を上書き(無視)して適用されます。
注意:
設定したパラメータを実際に適用するには、 CriWare.CriAtomEx3dTransceiver::Update 関数を呼び出す必要があります。
参照
CriAtomEx3dTransceiver::Update
void SetOutputInteriorPanField ( float  radius,
float  interiorDistance 
)
inline

3Dトランシーバー出力のインテリアパンニング境界距離の設定

引数
radius3Dトランシーバー出力の半径
interiorDistanceインテリア距離
説明:
3Dトランシーバー出力のインテリアパンニング境界距離の設定をします。
3Dトランシーバー出力の半径は、3Dトランシーバー出力を球としたときの半径です。
インテリア距離は、インテリアパンニング適用される3D音源の半径からの距離です。
3Dトランシーバー出力の半径内では、インテリアパンニング適用されますが、インテリア距離が0.0と扱われるため、 全てのスピーカーから同じ音量で音声が再生されます。
インテリア距離内では、インテリアパンニング適用されます。
インテリア距離外では、インテリアパンニング適用されず、3Dトランシーバー出力位置に最も近い1つ、 または2つのスピーカーから音声が再生されます。
ライブラリ初期化時のデフォルト値は以下のとおりです。
  • 3Dトランシーバーの半径:0.0f
  • インテリア距離:0.0f(3Dトランシーバーの最小距離に依存) .
注意:
設定したパラメータを実際に適用するには、 CriWare.CriAtomEx3dTransceiver::Update 関数を呼び出す必要があります。
参照
CriAtomEx3dTransceiver::Update, CriAtomEx3dTransceiver::SetMinMaxDistance
void SetInputCrossFadeField ( float  directAudioRadius,
float  crossfadeDistance 
)
inline

3Dトランシーバー入力のクロスフェード境界距離の設定

引数
directAudioRadius直接音領域の半径
crossfadeDistanceクロスフェード距離
説明:
3Dトランシーバー入力のクロスフェード境界距離の設定をします。
直接音領域の半径内では、3Dトランシーバーの出力からの音声は再生されず、3D音源からの音声のみが再生されます。
クロスフェード距離は、3Dトランシーバー出力と3D音源からの音声のクロスフェードが適用される直接音領域からの距離です。
直接音領域では、クロスフェードの割合が音源からの音声=1、3Dトランシーバーからの音声=0になるので、 3Dトランシーバー出力からの音声は聞こえなくなり、音源からの音声のみが再生されます。
クロスフェード距離内では、リスナーの位置に応じてクロスフェードが適用されます。
クロスフェード距離外では、3D音源からの音声は聞こえず、3Dトランシーバー出力からの音声のみが聞こえるようになります。 ライブラリ初期化時のデフォルト値は以下のとおりです。
  • 直接音領域の半径:0.0f
  • クロスフェード距離:0.0f .
注意:
設定したパラメータを実際に適用するには、 CriWare.CriAtomEx3dTransceiver::Update 関数を呼び出す必要があります。
参照
CriAtomEx3dTransceiver::Update, CriAtomEx3dTransceiver::SetMinMaxDistance
void SetOutputVolume ( float  volume)
inline

3Dトランシーバー出力のボリュームの設定

引数
volumeボリューム
説明:
3Dトランシーバー出力のボリュームを設定します。
3Dトランシーバー出力のボリュームは、定位に関わる音量(L,R,SL,SR)にのみ影響し、 LFEやセンターへの出力レベルには影響しません。
ボリューム値には、0.0f~1.0fの範囲で実数値を指定します。
ボリューム値は音声データの振幅に対する倍率です(単位はデシベルではありません)。
例えば、1.0fを指定した場合、原音はそのままのボリュームで出力されます。
0.5fを指定した場合、原音波形の振幅を半分にしたデータと同じ音量(-6dB)で 音声が出力されます。
0.0fを指定した場合、音声はミュートされます(無音になります)。
ライブラリ初期化時のデフォルト値は1.0fです。
注意:
設定したパラメータを実際に適用するには、CriWare.CriAtomEx3dTransceiver::Update 関数を呼び出す必要があります。
参照
CriAtomEx3dTransceiver::Update
void AttachAisac ( string  globalAisacName)
inline

3DトランシーバーにAISACを取り付ける

引数
globalAisacName取り付けるグローバルAISAC名
説明:
3DトランシーバーにAISACをアタッチ(取り付け)します。 AISACをアタッチすることにより、キューやトラックにAISACを設定していなくても、 AISACの効果を得ることができます。

AISACのアタッチに失敗した場合、CriWareErrorHandlerでエラーコールバックが発生します。
AISACのアタッチに失敗した理由については、エラーメッセージを確認してください。
備考:
全体設定(ACFファイル)に含まれるグローバルAISACのみ、アタッチ可能です。
AISACの効果を得るには、キューやトラックに設定されているAISACと同様に、 該当するAISACコントロール値を設定する必要があります。
注意:
キューやトラックに「AISACコントロール値を変更するAISAC」が設定されていたとしても、 その適用結果のAISACコントロール値は、3DトランシーバーにアタッチしたAISACには影響しません。
現在、「オートモジュレーション」や「ランダム」といったコントロールタイプのAISACの アタッチには対応しておりません。
現在、3DトランシーバーにアタッチできるAISACの最大数は、8個固定です。
参照
CriAtomEx3dTransceiver::DetachAisac
void DetachAisac ( string  globalAisacName)
inline

3DトランシーバーからAISACを取り外す

引数
globalAisacName取り外すグローバルAISAC名
説明:
3DトランシーバーからAISACをデタッチ(取り外し)します。

AISACのデタッチに失敗した場合、CriWareErrorHandlerでエラーコールバックが発生します。
AISACのデタッチに失敗した理由については、エラーメッセージを確認してください。
参照
CriAtomEx3dTransceiver::AttachAisac
void SetMaxAngleAisacDelta ( float  maxDelta)
inline

角度AISACコントロール値の最大変化量の設定

引数
maxDelta角度AISACコントロール値の最大変化量
説明:
角度AISACによりAISACコントロール値が変更される際の、最大変化量を設定します。
最大変化量を低めに変更すると、3Dトランシーバーとリスナー間の相対角度が急激に変わった場合でも、 角度AISACによるAISACコントロール値の変化をスムーズにすることができます。
例えば、(0.5f / 30.0f)を設定すると、角度が0度->180度に変化した場合に、 30フレームかけて変化するような変化量となります。
デフォルト値は1.0f(制限なし)です。 データ側では本パラメータは設定できないため、常に本関数での設定値が使用されます。
注意:
設定したパラメータを実際に適用するには、 CriWare.CriAtomEx3dTransceiver::Update 関数を呼び出す必要があります。
本関数で設定している最大変化量は、定位角度を元に計算されている、 角度AISACコントロール値の変化にのみ適用されます。 定位角度自体には影響はありません。
参照
CriAtomEx3dTransceiver::Update
void SetDistanceAisacControlId ( ushort  aisacControlId)
inline

距離AISACコントロールIDの設定

引数
aisacControlId距離AISACコントロールID
説明:
最小距離、最大距離間の距離減衰に連動するAISACコントロールIDを指定します。
本関数でAISACコントロールIDを設定した場合、デフォルトの距離減衰は無効になります。
注意:
設定したパラメータを実際に適用するには、CriWare.CriAtomEx3dTransceiver::Update 関数を呼び出す必要があります。
参照
CriAtomEx3dTransceiver::Update
void SetListenerBasedAzimuthAngleAisacControlId ( ushort  aisacControlId)
inline

リスナー基準方位角AISACコントロールIDの設定

引数
aisacControlIdリスナー基準方位角AISACコントロールID
説明:
リスナーから見た3Dトランシーバーの方位角に連動するAISACコントロールIDを指定します。
注意:
設定したパラメータを実際に適用するには、CriWare.CriAtomEx3dTransceiver::Update 関数を呼び出す必要があります。
参照
CriAtomEx3dTransceiver::Update
void SetListenerBasedElevationAngleAisacControlId ( ushort  aisacControlId)
inline

リスナー基準仰俯角AISACコントロールIDの設定

引数
aisacControlIdリスナー基準仰俯角AISACコントロールID
説明:
リスナーから見た3Dトランシーバーの仰俯角に連動するAISACコントロールIDを指定します。
注意:
設定したパラメータを実際に適用するには、CriWare.CriAtomEx3dTransceiver::Update 関数を呼び出す必要があります。
参照
CriAtomEx3dTransceiver::Update
void SetTransceiverOutputBasedAzimuthAngleAisacControlId ( ushort  aisacControlId)
inline

3Dトランシーバー出力基準方位角AISACコントロールIDの設定

引数
aisacControlId3Dトランシーバー基準方位角AISACコントロールID
説明:
3Dトランシーバー出力の位置から見たリスナーの方位角に連動するAISACコントロールIDを指定します。
注意:
設定したパラメータを実際に適用するには、CriWare.CriAtomEx3dTransceiver::Update 関数を呼び出す必要があります。
参照
CriAtomEx3dTransceiver::Update
void SetTransceiverOutputBasedElevationAngleAisacControlId ( ushort  aisacControlId)
inline

3Dトランシーバー出力基準仰俯角AISACコントロールIDの設定

引数
aisacControlId3Dトランシーバー基準仰俯角AISACコントロールID
説明:
3Dトランシーバー出力の位置から見たリスナーの仰俯角に連動するAISACコントロールIDを指定します。
注意:
設定したパラメータを実際に適用するには、CriWare.CriAtomEx3dTransceiver::Update 関数を呼び出す必要があります。
参照
CriAtomEx3dTransceiver::Update
void Set3dRegion ( CriAtomEx3dRegion  region3d)
inline

3Dリージョンの設定

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

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