CRIWARE Unity Plugin Manual  Last Updated: 2024-12-05
CriAtomEx3dSource クラス

3D音源オブジェクト [詳解]

CriDisposableを継承しています。

クラス

struct  Config
 3D音源のコンフィグ構造体 [詳解]
 

公開メンバ関数

 CriAtomEx3dSource (bool enableVoicePriorityDecay=false, uint randomPositionListMaxLength=0)
 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 (Vector3 front, Vector3 top)
 3D音源の向きの設定 [詳解]
 
void SetConeOrientation (float x, float y, float z)
 3D音源のサウンドコーンの向きの設定 [詳解]
 
void SetConeParameter (float insideAngle, float outsideAngle, float outsideVolume)
 3D音源のサウンドコーンパラメータの設定 [詳解]
 
void SetMinMaxDistance (float minDistance, float maxDistance)
 3D音源の最小距離/最大距離の設定 [詳解]
 
void SetInteriorPanField (float sourceRadius, float interiorDistance)
 3D音源のインテリアパンニング境界距離の設定 [詳解]
 
void SetDopplerFactor (float dopplerFactor)
 3D音源のドップラー係数の設定 [詳解]
 
void SetVolume (float volume)
 3D音源のボリュームの設定 [詳解]
 
void SetMaxAngleAisacDelta (float maxDelta)
 角度AISACコントロール値の最大変化量の設定 [詳解]
 
void SetAttenuationDistanceSetting (bool flag)
 距離減衰の設定 [詳解]
 
bool GetAttenuationDistanceSetting ()
 距離減衰設定の取得 [詳解]
 
void SetRandomPositionConfig (CriAtomEx.Randomize3dConfig?config)
 3D音源に対する位置のランダム化の設定 [詳解]
 
void SetRandomPositionList (Vector3[] positionList)
 3D音源の位置のランダム化における位置座標リストの設定 [詳解]
 
void Set3dRegion (CriAtomEx3dRegion region3d)
 3Dリージョンの設定 [詳解]
 
void SetListenerBasedElevationAngleAisacControlId (ushort aisacControlId)
 リスナー基準仰俯角AISACコントロールIDの設定 [詳解]
 
void SetSourceBasedElevationAngleAisacControlId (ushort aisacControlId)
 音源基準方位角AISACコントロールIDの設定 [詳解]
 
void SetDistanceAisacControlId (ushort aisacControlId)
 距離AISACコントロールIDの設定 [詳解]
 
bool IsDestroyable ()
 3D音源を破棄可能かどうかのチェック [詳解]
 
CriAtomEx.NativeVector GetPosition ()
 3D音源の位置の取得 [詳解]
 

詳解

3D音源オブジェクト

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

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

構築子と解体子

CriAtomEx3dSource ( bool  enableVoicePriorityDecay = false,
uint  randomPositionListMaxLength = 0 
)
inline

3D音源オブジェクトの作成

引数
enableVoicePriorityDecay距離によるボイスプライオリティ減衰を有効にする
randomPositionListMaxLength3D音源における位置のランダム化に関する座標リストの要素数の最大値
説明:
3D音源オブジェクト作成用コンフィグに基づいて、3D音源オブジェクトを作成します。
注意:
本関数を実行する前に、ライブラリを初期化しておく必要があります。

関数詳解

override void Dispose ( )
inline

3D音源オブジェクトの破棄

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

3D音源の更新

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

: // 音源の作成 CriAtomEx3dSource source = new CriAtomEx3dSource(); : // 音源の位置を設定 source.SetPosition(0.0f, 0.0f, 1.0f);

// 音源の速度を設定 source.SetVelocity(1.0f, 0.0f, 0.0f);

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

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

void ResetParameters ( )
inline

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

説明:
3D音源に設定されているパラメータをクリアし、初期値に戻します。
注意:
クリアしたパラメータを実際に適用するには、 CriWare.CriAtomEx3dSource::Update 関数を呼び出す必要があります。
参照
CriAtomEx3dSource::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.CriAtomEx3dSource::Update 関数を呼び出す必要があります。
参照
CriAtomEx3dSource::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.CriAtomEx3dSource::Update 関数を呼び出す必要があります。
参照
CriAtomEx3dSource::Update
void SetOrientation ( Vector3  front,
Vector3  top 
)
inline

3D音源の向きの設定

引数
front前方ベクトル
top上方ベクトル
説明:
3D音源の向きを設定します。
本関数で設定した向きは、サウンドコーンの向きとして設定されます。
サウンドコーンは、音源から音が発生する方向を表し、音の指向性の表現に使用されます。
サウンドコーンの向きは、3次元ベクトルで指定します。設定された向きベクトルは、ライブラリ内部で正規化して使用されます。
データ側にはサウンドコーンの向きは設定できないため、常に本関数での設定値が使用されます。
デフォルト値以下のとおりです。
  • 前方ベクトル:(0.0f, 0.0f, 1.0f)
  • 上方ベクトル:(0.0f, 1.0f, 0.0f)
備考:
サウンドコーンの向きを設定した場合、上方ベクトルは無視され、前方ベクトルのみが使用されます。
また、Ambisonics再生を使用している場合、本関数で指定した向きおよびリスナーの向きに従ってAmbisonicsが回転します。
注意:
設定したパラメーターを実際に適用するには、CriWare.CriAtomEx3dSource::Update 関数を呼び出す必要があります。
また、Ambisonicsに対してサウンドコーンを適用することは出来ません。
参照
CriAtomEx3dSource::SetConeParameter, CriAtomEx3dSource::Update
void SetConeOrientation ( float  x,
float  y,
float  z 
)
inline

3D音源のサウンドコーンの向きの設定

非推奨:
削除予定の非推奨APIです。 CriWare.CriAtomEx3dSource.SetOrientation(Vector3, Vector3) の使用を検討してください。
引数
xX方向の値
yY方向の値
zZ方向の値
説明:
3D音源のサウンドコーンの向きを設定します。
サウンドコーンは、音源から音が発生する方向を表し、音の指向性の表現に使用されます。
サウンドコーンの向きは、3次元ベクトルで指定します。
設定された向きベクトルは、ライブラリ内部で正規化して使用されます。
デフォルト値は(0.0f, 0.0f, -1.0f)です。
データ側にはサウンドコーンの向きは設定できないため、常に本関数での設定値が使用されます。
注意:
設定したパラメータを実際に適用するには、 CriWare.CriAtomEx3dSource::Update 関数を呼び出す必要があります。
参照
CriAtomEx3dSource::SetConeParameter, CriAtomEx3dSource::Update
void SetConeParameter ( 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.CriAtomEx3dSource::Update 関数を呼び出す必要があります。
参照
CriAtomEx3dSource::Update
void SetMinMaxDistance ( float  minDistance,
float  maxDistance 
)
inline

3D音源の最小距離/最大距離の設定

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

3D音源のインテリアパンニング境界距離の設定

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

3D音源のドップラー係数の設定

引数
dopplerFactorドップラー係数
説明:
3D音源のドップラー係数を設定します。
ドップラー係数は、音速を340m/sとして計算されたドップラー効果に対して、 誇張表現するための倍率を指定します。
例えば、2.0fを指定すると、音速を340m/sとして計算したピッチを2倍して適用します。
0.0fを指定すると、ドップラー効果は無効になります。
ライブラリ初期化時のデフォルト値は0.0fです。
データ側にドップラー係数が設定されている場合に本関数を呼び出すと、 データ側の値を上書き(無視)して適用されます。
注意:
設定したパラメータを実際に適用するには、 CriWare.CriAtomEx3dSource::Update 関数を呼び出す必要があります。
参照
CriAtomEx3dSource::Update
void SetVolume ( 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です。
データ側に3D音源のボリュームが設定されている場合に本関数を呼び出すと、 データ側の値と乗算して適用されます。
注意:
設定したパラメータを実際に適用するには、 CriWare.CriAtomEx3dSource::Update 関数を呼び出す必要があります。
参照
CriAtomEx3dSource::Update
void SetMaxAngleAisacDelta ( float  maxDelta)
inline

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

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

距離減衰の設定

引数
flag距離減衰を有効にするか(True: 有効、False: 無効)
説明:
距離減衰による音量の変動を有効にするか無効にするかを設定します。
デフォルト値は True (有効)です。
注意:
設定したパラメータを実際に適用するには、 CriWare.CriAtomEx3dSource::Update 関数を呼び出す必要があります。
参照
CriAtomEx3dSource::Update, CriAtomEx3dSource::GetAttenuationDistanceSetting
bool GetAttenuationDistanceSetting ( )
inline

距離減衰設定の取得

戻り値
距離減衰設定(True: 有効、False: 無効)
説明:
距離減衰による音量の変動が有効か無効かを取得します。
デフォルト値は True (有効)です。
参照
CriAtomEx3dSource::SetAttenuationDistanceSetting
void SetRandomPositionConfig ( CriAtomEx.Randomize3dConfig config)
inline

3D音源に対する位置のランダム化の設定

引数
config3D音源の位置のランダム化に関するコンフィグ構造体(nullable)
説明:
3D音源ハンドルに対して位置のランダム化の設定をします。
本関数を実行すると、再生時に音声の位置が元の位置情報および設定値に従ってランダムに変化します。
備考:
引数 config に対して null を指定すると、設定を解除することが可能です。
注意:
設定したパラメーターを実際に適用するには、CriWare.CriAtomEx3dSource::Update 関数を呼び出す必要があります。
本関数は再生中の音声に対してパラメーターは適用されません。
次回再生の音声から適用されます。
参照
CriAtomEx::Randomize3dConfig
void SetRandomPositionList ( Vector3[]  positionList)
inline

3D音源の位置のランダム化における位置座標リストの設定

引数
positionList位置座標リスト
説明:
位置座標リストの配列を指定します。
3D音源の位置のランダム化が有効の場合、指定した配列の座標からランダムに座標が決定されます。
備考:
位置座標の算出方法として CriWare.CriAtomEx::Randomize3dCalcType::List
を設定している場合のみ、本パラメーターを参照します。
その他の算出方法を設定している場合、本パラメーターは無視されます。
注意:
設定したパラメーターを実際に適用するには、CriWare.CriAtomEx3dSource::Update 関数を呼び出す必要があります。
本関数に設定した領域は、 CriWare.CriAtomEx3dSource::SetRandomPositionList 関数
の実行完了後は、内部からは参照されません。
代わりに内部で確保した位置座標リストに保存します。
そのため、長さが CriWare.CriAtomEx3dSource::Config::randomPositionListMaxLength
超えるリストを設定するとエラーが発生します。
参照
CriAtomEx::Randomize3dConfig, CriAtomEx3dSource::Config
void Set3dRegion ( CriAtomEx3dRegion  region3d)
inline

3Dリージョンの設定

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

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

引数
aisacControlIdリスナー基準仰俯角AISACコントロールID
説明:
リスナーから見た音源の仰俯角に連動するAISACコントロールIDを指定します。
データ側に設定されているリスナー基準仰俯角AISACコントロールIDは、本関数によって上書き適用されます。
注意:
設定したパラメータを実際に適用するには、 CriWare.CriAtomEx3dSource::Update 関数を呼び出す必要があります。
参照
CriAtomEx3dSource::Update
void SetSourceBasedElevationAngleAisacControlId ( ushort  aisacControlId)
inline

音源基準方位角AISACコントロールIDの設定

引数
aisacControlId音源基準方位角AISACコントロールID
説明:
音源から見たリスナーの方位角に連動するAISACコントロールIDを指定します。
データ側に設定されている音源基準方位角AISACコントロールIDは、本関数によって上書き適用されます。
注意:
設定したパラメータを実際に適用するには、 CriWare.CriAtomEx3dSource::Update 関数を呼び出す必要があります。
参照
CriAtomEx3dSource::Update
void SetDistanceAisacControlId ( ushort  aisacControlId)
inline

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

引数
aisacControlId音源基準方位角AISACコントロールID
説明:
最小距離、最大距離間の距離減衰に連動するAISACコントロールIDを指定します。
本関数でAISACコントロールIDを設定した場合、デフォルトの距離減衰は無効になります。
データ側に設定されている距離AISACコントロールIDは、本関数によって上書き適用されます。
注意:
設定したパラメータを実際に適用するには、 CriAtomEx3dSource.Update 関数を呼び出す必要があります。
本関数を実行すると指定した3D音源に前に設定されていたAISACコントールIDの値の変更によるパラメーター変更は無効化されますが、
再生済みの音声については前に適用されたパラメーターが適用され続けます。
指定する3D音源に紐づく音声が再生されていない状態で本関数を実行することを推奨します。
参照
CriAtomEx3dSource::Update
bool IsDestroyable ( )
inline

3D音源を破棄可能かどうかのチェック

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

3D音源の位置の取得

説明:
3D音源の位置を取得します。
位置は、3次元ベクトルで取得します。

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