Class CriAtomEx3dSource
3D音源オブジェクト
Inherited Members
Namespace: CriWare
Assembly: CriWare.CriAtom.dll
Syntax
public class CriAtomEx3dSource : IDisposable, IPositionable, IUpdatable
Remarks
説明: 3D音源を扱うためのオブジェクトです。 3Dポジショニング機能に使用します。 3D音源のパラメーター、位置情報の設定等は、3D音源オブジェクトを介して実行されます。
Constructors
CriAtomEx3dSource(in Config, IntPtr, int)
3D音源オブジェクトの作成
Declaration
public CriAtomEx3dSource(in CriAtomEx3dSource.Config config, IntPtr work = default, int workSize = 0)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx3dSource.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
CriAtomEx3dSource(IntPtr, int)
デフォルト設定でのインスタンス作成
Declaration
public CriAtomEx3dSource(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 |
RandomPositionCalculationCallback
コールバックイベントオブジェクト
Declaration
public CriAtomEx3dSource.RandomPositionCalculationCbFunc RandomPositionCalculationCallback { get; }
Property Value
Type | Description |
---|---|
CriAtomEx3dSource.RandomPositionCalculationCbFunc |
See Also
RandomPositionResultCallback
コールバックイベントオブジェクト
Declaration
public CriAtomEx3dSource.RandomPositionResultCbFunc RandomPositionResultCallback { get; }
Property Value
Type | Description |
---|---|
CriAtomEx3dSource.RandomPositionResultCbFunc |
See Also
Methods
CalculateWorkSize(in Config)
3D音源オブジェクトの作成に必要なワーク領域サイズの計算
Declaration
public static int CalculateWorkSize(in CriAtomEx3dSource.Config config)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx3dSource.Config | config | 3D音源オブジェクト作成用コンフィグ構造体へのポインタ |
Returns
Type | Description |
---|---|
int | 3D音源オブジェクト作成用ワークサイズ |
Remarks
説明: 3D音源オブジェクトを作成するために必要な、ワーク領域のサイズを取得します。 アロケーターを登録せずに3D音源オブジェクトを作成する場合、 あらかじめ本関数で計算したワーク領域サイズ分のメモリを ワーク領域として CriAtomEx3dSource(in Config, IntPtr, int) 関数にセットする必要があります。 3D音源オブジェクトの作成に必要なワークメモリのサイズは、3D音源オブジェクト作成用コンフィグ 構造体( CriAtomEx3dSource.Config )の内容によって変化します。 引数にnullを指定した場合、デフォルト設定 ( SetDefaultConfig(out Config) 適用時と同じパラメーター)で ワーク領域サイズを計算します。 ワーク領域サイズ計算時に失敗した場合、戻り値は -1 になります。 ワーク領域サイズの計算に失敗した理由については、エラーコールバックの メッセージで確認可能です。
備考: 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
See Also
ChangeDefaultConeParameter(float, float, float)
3D音源のサウンドコーンパラメーターのデフォルト値変更
Declaration
public static void ChangeDefaultConeParameter(float insideAngle, float outsideAngle, float outsideVolume)
Parameters
Type | Name | Description |
---|---|---|
float | insideAngle | サウンドコーンのインサイドアングル |
float | outsideAngle | サウンドコーンのアウトサイドアングル |
float | outsideVolume | サウンドコーンのアウトサイドボリューム |
Remarks
説明: 3D音源のサウンドコーンパラメーターのデフォルト値を変更します。 本関数によってデフォルト値を変更すると、以降に作成する3D音源オブジェクト( CriAtomEx3dSource )の サウンドコーンパラメーターの初期値が本関数で設定した値となります。 ライブラリ初期化時のデフォルト値については、 SetConeParameter(float, float, float) 関数を参照して下さい。
注意: 当該パラメーターに関して「ツール側で値が変更されていない(デフォルト状態)」データの場合、暗黙的にデフォルト値が適用されます。 そのため、本関数でデフォルト値を変更すると、ツールでの編集時に意図していたパラメーターと異なってしまう可能性があります。 但し、インゲームプレビュー用にビルドされたデータは本関数の影響を受けません。
See Also
ChangeDefaultDopplerFactor(float)
3D音源のドップラー係数のデフォルト値変更
Declaration
public static void ChangeDefaultDopplerFactor(float dopplerFactor)
Parameters
Type | Name | Description |
---|---|---|
float | dopplerFactor | ドップラー係数 |
Remarks
説明: 3D音源のドップラー係数のデフォルト値を変更します。 本関数によってデフォルト値を変更すると、以降に作成する3D音源オブジェクト( CriAtomEx3dSource )の ドップラー係数の初期値が本関数で設定した値となります。 ライブラリ初期化時のデフォルト値については、 SetDopplerFactor(float) 関数を参照して下さい。
注意: 当該パラメーターに関して「ツール側で値が変更されていない(デフォルト状態)」データの場合、暗黙的にデフォルト値が適用されます。 そのため、本関数でデフォルト値を変更すると、ツールでの編集時に意図していたパラメーターと異なってしまう可能性があります。 但し、インゲームプレビュー用にビルドされたデータは本関数の影響を受けません。
See Also
ChangeDefaultInteriorPanField(float, float)
3D音源のインテリアパンニング境界距離のデフォルト値変更
Declaration
public static void ChangeDefaultInteriorPanField(float sourceRadius, float interiorDistance)
Parameters
Type | Name | Description |
---|---|---|
float | sourceRadius | 3D音源の半径 |
float | interiorDistance | インテリア距離 |
Remarks
説明: 3D音源のインテリアパンニング境界距離のデフォルト値を変更します。 本関数によってデフォルト値を変更すると、以降に作成する3D音源オブジェクト( CriAtomEx3dSource )の インテリアパンニング境界距離の初期値が本関数で設定した値となります。 ライブラリ初期化時のデフォルト値については、 SetInteriorPanField(float, float) 関数を参照して下さい。
See Also
ChangeDefaultMinMaxAttenuationDistance(float, float)
3D音源の最小距離/最大距離のデフォルト値変更
Declaration
public static void ChangeDefaultMinMaxAttenuationDistance(float minAttenuationDistance, float maxAttenuationDistance)
Parameters
Type | Name | Description |
---|---|---|
float | minAttenuationDistance | 最小距離 |
float | maxAttenuationDistance | 最大距離 |
Remarks
説明: 3D音源の最小距離/最大距離のデフォルト値を変更します。 本関数によってデフォルト値を変更すると、以降に作成する3D音源オブジェクト( CriAtomEx3dSource )の 最小距離/最大距離の初期値が本関数で設定した値となります。 ライブラリ初期化時のデフォルト値については、 SetMinMaxAttenuationDistance(float, float) 関数を参照して下さい。
注意: 当該パラメーターに関して「ツール側で値が変更されていない(デフォルト状態)」データの場合、暗黙的にデフォルト値が適用されます。 そのため、本関数でデフォルト値を変更すると、ツールでの編集時に意図していたパラメーターと異なってしまう可能性があります。 但し、以下に該当するデータは本関数の影響を受けません。 - ツールのプロパティにて、最小距離/最大距離の初期値設定を0.0以外に設定している - インゲームプレビュー用にビルドしている
See Also
ChangeDefaultMinMaxDistance(float, float)
3D音源の最小距離/最大距離のデフォルト値変更
Declaration
public static void ChangeDefaultMinMaxDistance(float minAttenuationDistance, float maxAttenuationDistance)
Parameters
Type | Name | Description |
---|---|---|
float | minAttenuationDistance | 最小距離 |
float | maxAttenuationDistance | 最大距離 |
Remarks
説明: 3D音源の最小距離/最大距離のデフォルト値を変更します。 本関数によってデフォルト値を変更すると、以降に作成する3D音源オブジェクト( CriAtomEx3dSource )の 最小距離/最大距離の初期値が本関数で設定した値となります。
注意: 当該パラメーターに関して「ツール側で値が変更されていない(デフォルト状態)」データの場合、暗黙的にデフォルト値が適用されます。 そのため、本関数でデフォルト値を変更すると、ツールでの編集時に意図していたパラメーターと異なってしまう可能性があります。 但し、以下に該当するデータは本関数の影響を受けません。 - ツールのプロパティにて、最小距離/最大距離の初期値設定を0.0以外に設定している - インゲームプレビュー用にビルドしている
See Also
ChangeDefaultVolume(float)
3D音源のボリュームのデフォルト値変更
Declaration
public static void ChangeDefaultVolume(float volume)
Parameters
Type | Name | Description |
---|---|---|
float | volume | ボリューム |
Remarks
説明: 3D音源のボリュームのデフォルト値を変更します。 本関数によってデフォルト値を変更すると、以降に作成する3D音源オブジェクト( CriAtomEx3dSource )の ボリュームの初期値が本関数で設定した値となります。 ライブラリ初期化時のデフォルト値については、 SetVolume(float) 関数を参照して下さい。
注意: 当該パラメーターに関して「ツール側で値が変更されていない(デフォルト状態)」データの場合、暗黙的にデフォルト値が適用されます。 そのため、本関数でデフォルト値を変更すると、ツールでの編集時に意図していたパラメーターと異なってしまう可能性があります。 但し、インゲームプレビュー用にビルドされたデータは本関数の影響を受けません。
See Also
Dispose()
3D音源オブジェクトの破棄
Declaration
public void Dispose()
Remarks
説明: 3D音源オブジェクトを破棄します。 本関数を実行した時点で、3D音源オブジェクト作成時に確保されたリソースが全て解放されます。 また、引数に指定した3D音源オブジェクトも無効になります。 3D音源オブジェクトをセットしたAtomExプレーヤーで再生している音声がある場合、 本関数を実行する前に、それらの音声を停止するか、そのAtomExプレーヤーを破棄してください。
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
SetConeParameter(float, float, float)
3D音源のサウンドコーンパラメーターの設定
Declaration
public void SetConeParameter(float insideAngle, float outsideAngle, float outsideVolume)
Parameters
Type | Name | Description |
---|---|---|
float | insideAngle | サウンドコーンのインサイドアングル |
float | outsideAngle | サウンドコーンのアウトサイドアングル |
float | outsideVolume | サウンドコーンのアウトサイドボリューム |
Remarks
説明: 3D音源のサウンドコーンパラメーターを設定します。 サウンドコーンは、音源から音が発生する方向を表し、音の指向性の表現に使用されます。 サウンドコーンは、内側コーン、外側コーンで構成されます。インサイドアングルは内側コーンの角度、 アウトサイドアングルは外側コーンの角度、アウトサイドボリュームは外側コーンの角度以上の方向での音量をそれぞれ表します。 内側コーンの角度より小さい角度の方向では、コーンによる減衰を受けません。 内側コーンと外側コーンの間の方向では、徐々にアウトサイドボリュームまで減衰します。 インサイドアングルおよびアウトサイドアングルは、0.0f~360.0fを度で指定します。 アウトサイドボリュームは、0.0f~1.0fを振幅に対する倍率で指定します(単位はデシベルではありません)。 ライブラリ初期化時のデフォルト値は以下のとおりであり、コーンによる減衰は行われません。 - インサイドアングル:360.0f - アウトサイドアングル:360.0f - アウトサイドボリューム:0.0f デフォルト値は、ChangeDefaultConeParameter(float, float, float) 関数にて変更可能です。 データ側に当該パラメーターが設定されている場合に本関数を呼び出すと、以下のように適用されます。 - インサイドアングル:加算 - アウトサイドアングル:加算 - アウトサイドボリューム:乗算
注意: 設定したパラメーターを実際に適用するには、Update() 関数を呼び出す必要があります。
See Also
SetDefaultConfig(out Config)
3D音源オブジェクト作成用コンフィグ構造体にデフォルト値をセット
Declaration
public static void SetDefaultConfig(out CriAtomEx3dSource.Config pConfig)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx3dSource.Config | pConfig | 3D音源オブジェクト作成用コンフィグ構造体へのポインタ |
Remarks
説明: 3D音源オブジェクト作成用コンフィグ構造体( CriAtomEx3dSource.Config )に、デフォルトの値をセットします。
See Also
SetDefaultConfigForRandomPosition(out RandomPositionConfig)
3D音源の位置のランダム化に関するコンフィグ構造体にデフォルト値をセット
Declaration
public static void SetDefaultConfigForRandomPosition(out CriAtomEx3dSource.RandomPositionConfig pConfig)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx3dSource.RandomPositionConfig | pConfig | 3D音源の位置のランダム化に関するコンフィグ構造体へのポインタ |
Remarks
説明: 3D音源の位置のランダム化に関するコンフィグ構造体( CriAtomEx3dSource.RandomPositionConfig )に、デフォルトの値をセットします。
See Also
SetDistanceAisacControlId(uint)
距離AISACコントロールIDの設定
Declaration
public void SetDistanceAisacControlId(uint aisacControlId)
Parameters
Type | Name | Description |
---|---|---|
uint | aisacControlId | 距離AISACコントロールID |
Remarks
説明: 最小距離、最大距離間の距離減衰に連動するAISACコントロールIDを指定します。 本関数でAISACコントロールIDを設定した場合、デフォルトの距離減衰は無効になります。 データ側に設定されている距離AISACコントロールIDは、本関数によって上書き適用されます。
注意: 設定したパラメーターを実際に適用するには、Update() 関数を呼び出す必要があります。 本関数で指定した AISAC コントロール ID に対するコントロール値は、 以下関数のいずれかを使用してプレーヤーに設定したコントロール値より、優先して適用されます。 - SetAisacControlById(uint, float) 関数 - SetAisacControlByName(ArgString, float) 関数 再生中の 3D 音源に対して AISAC コントロール ID の変更を行った場合、 変更前のコントロール ID に対する最終コントロール値が適用され続けます。 このため、変更前/変更後の2つのパラメーターが適用され、意図した出力が得られません。 指定する3D音源に紐づく音声が再生されていない状態で本関数を実行することを推奨します。
See Also
SetDopplerFactor(float)
3D音源のドップラー係数の設定
Declaration
public void SetDopplerFactor(float dopplerFactor)
Parameters
Type | Name | Description |
---|---|---|
float | dopplerFactor | ドップラー係数 |
Remarks
説明: 3D音源のドップラー係数を設定します。 ドップラー係数は、音速を340m/sとして計算されたドップラー効果に対して、誇張表現するための倍率を指定します。 例えば、2.0fを指定すると、音速を340m/sとして計算したピッチを2倍して適用します。 0.0fを指定すると、ドップラー効果は無効になります。 ライブラリ初期化時のデフォルト値は0.0fです。 デフォルト値は、ChangeDefaultDopplerFactor(float) 関数にて変更可能です。 データ側に当該パラメーターが設定されている場合に本関数を呼び出すと、データ側の値を上書き(無視)して適用されます。
注意: 設定したパラメーターを実際に適用するには、Update() 関数を呼び出す必要があります。
See Also
SetInteriorPanField(float, float)
3D音源のインテリアパンニング境界距離の設定
Declaration
public void SetInteriorPanField(float sourceRadius, float interiorDistance)
Parameters
Type | Name | Description |
---|---|---|
float | sourceRadius | 3D音源の半径 |
float | interiorDistance | インテリア距離 |
Remarks
説明: 3D音源のインテリアパンニング境界距離の設定をします。 3D音源の半径は、3D音源を球としたときの半径です。 インテリア距離は、インテリアパンニング適用される3D音源の半径からの距離です。 3D音源の半径内では、インテリアパンニング適用されますが、インテリア距離が0.0と扱われるため、 全てのスピーカーから同じ音量で音声が再生されます。 インテリア距離内では、インテリアパンニング適用されます。 インテリア距離外では、インテリアパンニング適用されず、音源位置に最も近い1つ、 または2つのスピーカーから音声が再生されます。 ライブラリ初期化時のデフォルト値は以下のとおりです。 - 3D音源の半径:0.0f - インテリア距離:0.0f(3D音源の最小距離に依存) デフォルト値は、 ChangeDefaultInteriorPanField(float, float) 関数にて変更可能です。 また、現在ツールにて当該パラメーターを設定できないため、常に本関数での設定値が使用されます。
注意: 設定したパラメーターを実際に適用するには、Update() 関数を呼び出す必要があります。
See Also
SetListenerBasedAzimuthAngleAisacControlId(uint)
リスナー基準方位角AISACコントロールIDの設定
Declaration
public void SetListenerBasedAzimuthAngleAisacControlId(uint aisacControlId)
Parameters
Type | Name | Description |
---|---|---|
uint | aisacControlId | リスナー基準方位角AISACコントロールID |
Remarks
説明: リスナーから見た音源の方位角に連動するAISACコントロールIDを指定します。 データ側に設定されているリスナー基準方位角AISACコントロールIDは、本関数によって上書き適用されます。
注意: 設定したパラメーターを実際に適用するには、Update() 関数を呼び出す必要があります。 本関数で指定した AISAC コントロール ID に対するコントロール値は、 以下関数のいずれかを使用してプレーヤーに設定したコントロール値より、優先して適用されます。 - SetAisacControlById(uint, float) 関数 - SetAisacControlByName(ArgString, float) 関数 再生中の 3D 音源に対して AISAC コントロール ID の変更を行った場合、 変更前のコントロール ID に対する最終コントロール値が適用され続けます。 このため、変更前/変更後の2つのパラメーターが適用され、意図した出力が得られません。 指定する3D音源に紐づく音声が再生されていない状態で本関数を実行することを推奨します。
See Also
SetListenerBasedElevationAngleAisacControlId(uint)
リスナー基準仰俯角AISACコントロールIDの設定
Declaration
public void SetListenerBasedElevationAngleAisacControlId(uint aisacControlId)
Parameters
Type | Name | Description |
---|---|---|
uint | aisacControlId | リスナー基準仰俯角AISACコントロールID |
Remarks
説明: リスナーから見た音源の仰俯角に連動するAISACコントロールIDを指定します。 データ側に設定されているリスナー基準仰俯角AISACコントロールIDは、本関数によって上書き適用されます。
注意: 設定したパラメーターを実際に適用するには、Update() 関数を呼び出す必要があります。 本関数で指定した AISAC コントロール ID に対するコントロール値は、 以下関数のいずれかを使用してプレーヤーに設定したコントロール値より、優先して適用されます。 - SetAisacControlById(uint, float) 関数 - SetAisacControlByName(ArgString, float) 関数 再生中の 3D 音源に対して AISAC コントロール ID の変更を行った場合、 変更前のコントロール ID に対する最終コントロール値が適用され続けます。 このため、変更前/変更後の2つのパラメーターが適用され、意図した出力が得られません。 指定する3D音源に紐づく音声が再生されていない状態で本関数を実行することを推奨します。
See Also
SetMaxAngleAisacDelta(float)
角度AISACコントロール値の最大変化量の設定
Declaration
public void SetMaxAngleAisacDelta(float maxDelta)
Parameters
Type | Name | Description |
---|---|---|
float | maxDelta | 角度AISACコントロール値の最大変化量 |
Remarks
説明: 角度AISACによりAISACコントロール値が変更される際の、最大変化量を設定します。 最大変化量を低めに変更すると、音源とリスナー間の相対角度が急激に変わった場合でも、 角度AISACによるAISACコントロール値の変化をスムーズにすることができます。 例えば、(0.5f / 30.0f)を設定すると、角度が0度→180度に変化した場合に、30フレームかけて変化するような変化量となります。 デフォルト値は1.0f(制限なし)です。 データ側では本パラメーターは設定できないため、常に本関数での設定値が使用されます。
注意: 設定したパラメーターを実際に適用するには、Update() 関数を呼び出す必要があります。 本関数で設定している最大変化量は、定位角度を元に計算されている、角度AISACコントロール値の変化にのみ適用されます。 定位角度自体には影響はありません。
See Also
SetMinMaxAttenuationDistance(float, float)
3D音源の最小距離/最大距離の設定
Declaration
public void SetMinMaxAttenuationDistance(float minAttenuationDistance, float maxAttenuationDistance)
Parameters
Type | Name | Description |
---|---|---|
float | minAttenuationDistance | 最小距離 |
float | maxAttenuationDistance | 最大距離 |
Remarks
説明: 3D音源の最小距離/最大距離を設定します。 最小距離は、これ以上音量が大きくならない距離を表します。最大距離は、最小音量になる距離を表します。 ライブラリ初期化時のデフォルト値は以下のとおりです。 - 最小距離:0.0f - 最大距離:0.0f デフォルト値は、ChangeDefaultMinMaxAttenuationDistance(float, float) 関数にて変更可能です。 データ側に当該パラメーターが設定されている場合に本関数を呼び出すと、データ側の値を上書き(無視)して適用されます。
注意: 設定したパラメーターを実際に適用するには、Update() 関数を呼び出す必要があります。
See Also
SetMinMaxDistance(float, float)
3D音源の最小距離/最大距離の設定
Declaration
public void SetMinMaxDistance(float minAttenuationDistance, float maxAttenuationDistance)
Parameters
Type | Name | Description |
---|---|---|
float | minAttenuationDistance | 最小距離 |
float | maxAttenuationDistance | 最大距離 |
Remarks
説明: 3D音源の最小距離/最大距離を設定します。 最小距離は、これ以上音量が大きくならない距離を表します。最大距離は、最小音量になる距離を表します。 ライブラリ初期化時のデフォルト値は以下のとおりです。 - 最小距離:0.0f - 最大距離:0.0f デフォルト値は、ChangeDefaultMinMaxAttenuationDistance(float, float) 関数にて変更可能です。 データ側に当該パラメーターが設定されている場合に本関数を呼び出すと、データ側の値を上書き(無視)して適用されます。
注意: 設定したパラメーターを実際に適用するには、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)
備考: サウンドコーンの向きを設定した場合、上方ベクトルは無視され、前方ベクトルのみが使用されます。 また、Ambisonics再生を使用している場合、本関数で指定した向きおよびリスナーの向きに従ってAmbisonicsが回転します。
注意: 設定したパラメーターを実際に適用するには、Update() 関数を呼び出す必要があります。 また、Ambiosnicsに対してサウンドコーンを適用することは出来ません。
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
SetRandomPositionCalculationCallback(delegate* unmanaged[Cdecl]<IntPtr, IntPtr, Vector*, void>, IntPtr)
3D音源の位置のランダム化における位置座標算出コールバック関数の登録
Declaration
public void SetRandomPositionCalculationCallback(delegate* unmanaged[Cdecl]<IntPtr, IntPtr, CriAtomEx.Vector*, void> func, IntPtr obj)
Parameters
Type | Name | Description |
---|---|---|
delegate* unmanaged[Cdecl]<IntPtr, IntPtr, Vector*, void> | func | 3D音源のランダム化における位置座標算出コールバック関数 |
IntPtr | obj | ユーザー指定オブジェクト |
Remarks
説明: 3D音源に対して、3D音源の位置のランダム化における位置座標算出コールバック関数を登録します。 登録したコールバック関数は、3D音源の位置のランダム化が有効な場合、 座標算出を行うタイミングで実行されます。
備考: 3D音源の位置のランダム化に関するコンフィグ構造体である CriAtomEx3dSource.RandomPositionConfig の変数 calculation_type に対して Callback を設定している場合のみ、座標算出時に指定したコールバック関数を実行します。
注意: コールバック登録の適用には、Update() 関数を呼び出す必要があります。 サーバー処理への割り込みを考慮しないAPIを実行した場合、 エラーが発生したり、デッドロックが発生する可能性があります。 基本的に、コールバック関数内ではAtomライブラリAPIを使用しないでください。 本コールバック関数内で長時間処理をブロックすると、音切れ等の問題が発生しますので、 ご注意ください。 コールバック関数は各3D音源のオブジェクトにつき、1つしか登録できません。 登録操作を複数回行った場合、既に登録済みのコールバック関数が、 後から登録したコールバック関数により上書きされてしまいます。 funcにnullを指定することで登録済み関数の登録解除が行えます。
See Also
SetRandomPositionConfig(in RandomPositionConfig)
3D音源に対する位置のランダム化の設定
Declaration
public void SetRandomPositionConfig(in CriAtomEx3dSource.RandomPositionConfig config)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx3dSource.RandomPositionConfig | config | 3D音源の位置のランダム化に関するコンフィグ構造体のポインタ |
Remarks
説明: 3D音源オブジェクトに対して位置のランダム化の設定をします。 本関数を実行すると、再生時に音声の位置が元の位置情報および設定値に従って ランダムに変化します。
備考: 第2引数 config に対して null を指定すると、設定を解除することが可能です。
注意: 設定したパラメーターを実際に適用するには、Update() 関数を呼び出す必要があります。 本関数は再生中の音声に対してパラメーターは適用されません。 次回再生の音声から適用されます。
See Also
SetRandomPositionList(in Vector, uint)
3D音源の位置のランダム化における位置座標リストの設定
Declaration
public void SetRandomPositionList(in CriAtomEx.Vector positionList, uint length)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx.Vector | positionList | 位置座標リスト |
uint | length | リストの要素数 |
Remarks
説明: 位置座標リストの配列を指定します。 3D音源の位置のランダム化が有効の場合、指定した配列の座標からランダムに座標が決定されます。
備考: 位置座標の算出方法として List を設定している場合のみ、本パラメーターを参照します。 その他の算出方法を設定している場合、本パラメーターは無視されます。
注意: 設定したパラメーターを実際に適用するには、Update() 関数を呼び出す必要があります。 本関数に設定した領域は、 SetRandomPositionList(in Vector, uint) 関数 の実行完了後は、内部からは参照されません。 代わりに内部で確保した位置座標リストに保存します。 そのため、 CriAtomEx3dSource.Config::random_position_list_max_length を 超える値を設定するとエラーが発生します。
See Also
SetRandomPositionResultCallback(delegate* unmanaged[Cdecl]<IntPtr, RandomPositionResultInfoDetail*, void>, IntPtr)
3D音源の位置のランダム化における位置座標結果コールバック関数の登録
Declaration
public void SetRandomPositionResultCallback(delegate* unmanaged[Cdecl]<IntPtr, CriAtomEx3dSource.RandomPositionResultInfoDetail*, void> func, IntPtr obj)
Parameters
Type | Name | Description |
---|---|---|
delegate* unmanaged[Cdecl]<IntPtr, RandomPositionResultInfoDetail*, void> | func | 3D音源のランダム化における位置座標結果コールバック関数 |
IntPtr | obj | ユーザー指定オブジェクト |
Remarks
説明: 3D音源の位置のランダム化における位置座標結果コールバック関数を登録します。 登録したコールバック関数は、3D音源の位置のランダム化が有効な場合、 座標算出が行われた後のタイミングで実行されます。
備考: 追従設定が有効の場合、元のソースの移動に応じて本コールバック関数が実行されます。
注意: コールバック登録の適用には、Update() 関数を呼び出す必要があります。 サーバー処理への割り込みを考慮しないAPIを実行した場合、 エラーが発生したり、デッドロックが発生する可能性があります。 基本的に、コールバック関数内ではAtomライブラリAPIを使用しないでください。 本コールバック関数内で長時間処理をブロックすると、音切れ等の問題が発生しますので、 ご注意ください。 コールバック関数は1つしか登録できません。 登録操作を複数回行った場合、既に登録済みのコールバック関数が、 後から登録したコールバック関数により上書きされます。 funcにnullを指定することで登録済み関数の登録解除が行えます。
See Also
SetSourceBasedAzimuthAngleAisacControlId(uint)
音源基準方位角AISACコントロールIDの設定
Declaration
public void SetSourceBasedAzimuthAngleAisacControlId(uint aisacControlId)
Parameters
Type | Name | Description |
---|---|---|
uint | aisacControlId | 音源基準方位角AISACコントロールID |
Remarks
説明: 音源から見たリスナーの方位角に連動するAISACコントロールIDを指定します。 データ側に設定されている音源基準方位角AISACコントロールIDは、本関数によって上書き適用されます。
注意: 設定したパラメーターを実際に適用するには、Update() 関数を呼び出す必要があります。 本関数で指定した AISAC コントロール ID に対するコントロール値は、 以下関数のいずれかを使用してプレーヤーに設定したコントロール値より、優先して適用されます。 - SetAisacControlById(uint, float) 関数 - SetAisacControlByName(ArgString, float) 関数 再生中の 3D 音源に対して AISAC コントロール ID の変更を行った場合、 変更前のコントロール ID に対する最終コントロール値が適用され続けます。 このため、変更前/変更後の2つのパラメーターが適用され、意図した出力が得られません。 指定する3D音源に紐づく音声が再生されていない状態で本関数を実行することを推奨します。
See Also
SetSourceBasedElevationAngleAisacControlId(uint)
音源基準仰俯角AISACコントロールIDの設定
Declaration
public void SetSourceBasedElevationAngleAisacControlId(uint aisacControlId)
Parameters
Type | Name | Description |
---|---|---|
uint | aisacControlId | 音源基準仰俯角AISACコントロールID |
Remarks
説明: 音源から見たリスナーの仰俯角に連動するAISACコントロールIDを指定します。 データ側に設定されている音源基準仰俯角AISACコントロールIDは、本関数によって上書き適用されます。
注意: 設定したパラメーターを実際に適用するには、Update() 関数を呼び出す必要があります。 本関数で指定した AISAC コントロール ID に対するコントロール値は、 以下関数のいずれかを使用してプレーヤーに設定したコントロール値より、優先して適用されます。 - SetAisacControlById(uint, float) 関数 - SetAisacControlByName(ArgString, float) 関数 再生中の 3D 音源に対して AISAC コントロール ID の変更を行った場合、 変更前のコントロール ID に対する最終コントロール値が適用され続けます。 このため、変更前/変更後の2つのパラメーターが適用され、意図した出力が得られません。 指定する3D音源に紐づく音声が再生されていない状態で本関数を実行することを推奨します。
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
SetVolume(float)
3D音源のボリュームの設定
Declaration
public void SetVolume(float volume)
Parameters
Type | Name | Description |
---|---|---|
float | volume | ボリューム |
Remarks
説明: 3D音源のボリュームを設定します。 3D音源のボリュームは、定位に関わる音量(L,R,SL,SR)にのみ影響し、LFEやセンターへの出力レベルには影響しません。 ボリューム値には、0.0f~1.0fの範囲で実数値を指定します。 ボリューム値は音声データの振幅に対する倍率です(単位はデシベルではありません)。 例えば、1.0fを指定した場合、原音はそのままのボリュームで出力されます。 0.5fを指定した場合、原音波形の振幅を半分にしたデータと同じ音量(-6dB)で 音声が出力されます。 0.0fを指定した場合、音声はミュートされます(無音になります)。 ライブラリ初期化時のデフォルト値は1.0fです。 デフォルト値は、ChangeDefaultVolume(float) 関数にて変更可能です。 データ側に当該パラメーターが設定されている場合に本関数を呼び出すと、データ側の値と乗算して適用されます。
注意: 設定したパラメーターを実際に適用するには、Update() 関数を呼び出す必要があります。
See Also
Update()
3D音源の更新
Declaration
public void Update()
Remarks
説明: 3D音源に設定されているパラメーターを使用して、3D音源を更新します。 本関数では、3D音源に設定されている全てのパラメーターを更新します。 パラメーターをひとつ変更する度に本関数にて更新処理を行うよりも、 複数のパラメーターを変更してから更新処理を行った方が効率的です。
注意: 本関数はAtomExプレーヤーのパラメーター更新(UpdateAll(), Update(CriAtomExPlayback)) とは独立して動作します。3D音源のパラメーターを変更した際は、本関数にて更新処理を行ってください。