QSpatialSound Class
3D空間のサウンドオブジェクト。詳細...
ヘッダー | #include <QSpatialSound> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS SpatialAudio) target_link_libraries(mytarget PRIVATE Qt6::SpatialAudio) |
qmake: | QT += spatialaudio |
継承: | QObject |
パブリックな型
enum class | DistanceModel { Logarithmic, Linear, ManualAttenuation } |
enum | Loops { Infinite, Once } |
プロパティ
|
|
パブリック機能
QSpatialSound(QAudioEngine *engine) | |
virtual | ~QSpatialSound() override |
bool | autoPlay() const |
float | directivity() const |
float | directivityOrder() const |
float | distanceCutoff() const |
QSpatialSound::DistanceModel | distanceModel() const |
QAudioEngine * | engine() const |
int | loops() const |
float | manualAttenuation() const |
float | nearFieldGain() const |
float | occlusionIntensity() const |
QVector3D | position() const |
QQuaternion | rotation() const |
void | setAutoPlay(bool autoPlay) |
void | setDirectivity(float alpha) |
void | setDirectivityOrder(float alpha) |
void | setDistanceCutoff(float cutoff) |
void | setDistanceModel(QSpatialSound::DistanceModel model) |
void | setLoops(int loops) |
void | setManualAttenuation(float attenuation) |
void | setNearFieldGain(float gain) |
void | setOcclusionIntensity(float occlusion) |
void | setPosition(QVector3D pos) |
void | setRotation(const QQuaternion &q) |
void | setSize(float size) |
void | setSource(const QUrl &url) |
void | setVolume(float volume) |
float | size() const |
QUrl | source() const |
float | volume() const |
パブリックスロット
シグナル
void | autoPlayChanged() |
void | directivityChanged() |
void | directivityOrderChanged() |
void | distanceCutoffChanged() |
void | distanceModelChanged() |
void | loopsChanged() |
void | manualAttenuationChanged() |
void | nearFieldGainChanged() |
void | occlusionIntensityChanged() |
void | positionChanged() |
void | rotationChanged() |
void | sizeChanged() |
void | sourceChanged() |
void | volumeChanged() |
詳細説明
QSpatialSoundは、3D空間の可聴オブジェクトを表します。空間内の位置と方向を定義し、再生するサウンドを設定し、オブジェクトの音量を定義できます。
オブジェクトは、異なる減衰挙動を持ち、主に1つの方向または球状に音を放出し、他のオブジェクトによってオクルードされたかのように振る舞うことができます。
メンバータイプ ドキュメント
enum class QSpatialSound::DistanceModel
リスナーまでの距離によって音の大きさがどのように変化するかを定義する。
定数 | 値 | 説明 |
---|---|---|
QSpatialSound::DistanceModel::Logarithmic | 0 | 音量は距離とともに対数的に減少する。 |
QSpatialSound::DistanceModel::Linear | 1 | 音量は距離とともに直線的に減少する。 |
QSpatialSound::DistanceModel::ManualAttenuation | 2 | 減衰は、manualAttenuation プロパティを使用して手動で定義します。 |
enum QSpatialSound::Loops
以下の値を使用して、サウンド再生のループを制御できます:
定数 | 値 | 説明 |
---|---|---|
QSpatialSound::Infinite | -1 | 無限に再生 |
QSpatialSound::Once | 1 | 1回再生 |
プロパティの説明
autoPlay : bool
ソースが指定されたときにサウンドを自動的に再生開始するかどうかを決定する。
デフォルト値はtrue
。
アクセス関数:
bool | autoPlay() const |
void | setAutoPlay(bool autoPlay) |
Notifierシグナル:
void | autoPlayChanged() |
directivity : float
音源の指向性を定義します。0を指定すると全方向に均等に音が放射され、1を指定すると主に前方向に音が放射されます。
有効な値は0から1で、デフォルトは0。
アクセス関数
float | directivity() const |
void | setDirectivity(float alpha) |
通知シグナル
void | directivityChanged() |
directivityOrder : float
音源の指向性の次数を定義する。次数が高いほど、サウンドコーンの定位がシャープになる。
このプロパティの最小値およびデフォルトは1です。
アクセス関数:
float | directivityOrder() const |
void | setDirectivityOrder(float alpha) |
通知信号:
void | directivityOrderChanged() |
distanceCutoff : float
音源からの音が遮断される距離を定義します。リスナーがサウンドオブジェクトからカットオフ距離以上離れると、音は聞こえなくなります。
アクセス機能:
float | distanceCutoff() const |
void | setDistanceCutoff(float cutoff) |
通知シグナル
void | distanceCutoffChanged() |
distanceModel : DistanceModel
この音源の距離モデルを定義する。音量は、size からdistanceCutoff にスケールダウンし始める。 音量は、サイズより小さい距離では一定で、カットオフ距離より大きい距離ではゼロになる。
アクセス機能:
QSpatialSound::DistanceModel | distanceModel() const |
void | setDistanceModel(QSpatialSound::DistanceModel model) |
通知シグナル:
void | distanceModelChanged() |
QSpatialSound::DistanceModelも参照 。
loops : int
プレーヤーが停止するまでに何回サウンドを再生するかを決定する。現在のサウンドを永遠にループ再生するには、QSpatialSound::Infinite を設定します。
デフォルト値は1
。
アクセス関数:
int | loops() const |
void | setLoops(int loops) |
Notifierシグナル:
void | loopsChanged() |
manualAttenuation : float
distanceModel がQSpatialSound::DistanceModel::ManualAttenuation に設定されている場合、手動減衰係数を定義します。
アクセス機能:
float | manualAttenuation() const |
void | setManualAttenuation(float attenuation) |
通知信号:
void | manualAttenuationChanged() |
nearFieldGain : float
音源のニアフィールドゲインを定義します。ニアフィールドゲインを1に設定すると、リスナーに非常に近い距離のサウンド信号の音量が約20 dB上がります。
アクセス機能
float | nearFieldGain() const |
void | setNearFieldGain(float gain) |
ノティファイア信号
void | nearFieldGainChanged() |
occlusionIntensity : float
オブジェクトがどの程度オクルードされているかを定義します。0はオブジェクトが全くオクルードされていないことを意味し、1は音源が他のオブジェクトによって完全にオクルードされていることを意味します。
完全にオクルードされたオブジェクトはまだ聞こえますが、特に高い周波数は減衰します。さらに、オブジェクトは部屋の残響や反射の発生に関与します。
1より大きな値を設定すると、音源からの直接音をさらに減衰させることができます。
デフォルトは0です。
アクセス関数
float | occlusionIntensity() const |
void | setOcclusionIntensity(float occlusion) |
通知シグナル
void | occlusionIntensityChanged() |
position : QVector3D
3D空間における音源の位置を定義する。デフォルトではセンチメートル単位。
アクセス機能:
QVector3D | position() const |
void | setPosition(QVector3D pos) |
Notifierシグナル:
void | positionChanged() |
QAudioEngine::distanceScaleも参照 。
rotation : QQuaternion
3D空間における音源の向きを定義する。
アクセス機能
QQuaternion | rotation() const |
void | setRotation(const QQuaternion &q) |
ノティファイア信号
void | rotationChanged() |
size : float
音源のサイズを定義する。リスナーがサイズよりもサウンドオブジェクトに近い場合、音量は一定に保たれます。サイズはオクルージョンの計算にも使用され、大きな音源は壁によって部分的にオクルージョンされることがあります。
アクセス関数
float | size() const |
void | setSize(float size) |
通知シグナル
void | sizeChanged() |
source : QUrl
再生するサウンドのソースファイル。
アクセス機能:
QUrl | source() const |
void | setSource(const QUrl &url) |
通知シグナル
void | sourceChanged() |
volume : float
サウンドの音量を設定します。
0から1の間の値は音を減衰させ、1以上の値はさらにゲインを上げます。
アクセス機能:
float | volume() const |
void | setVolume(float volume) |
Notifierシグナル
void | volumeChanged() |
メンバ関数ドキュメント
[explicit]
QSpatialSound::QSpatialSound(QAudioEngine *engine)
engine 用の空間音源を作成します。オブジェクトは3D空間に配置でき、リスナーに近いほど音量が大きくなる。
[override virtual noexcept]
QSpatialSound::~QSpatialSound()
音源を破壊する。
QAudioEngine *QSpatialSound::engine() const
このリスナーに関連付けられているエンジンを返します。
[slot]
void QSpatialSound::pause()
サウンド再生を一時停止する。play() を呼び出すと再生を続行します。
[slot]
void QSpatialSound::play()
サウンドの再生を開始します。すでに音が再生されている場合は何もしません。
[slot]
void QSpatialSound::stop()
サウンドの再生を停止し、現在の位置と現在のループカウントを0にリセットする。play ()を呼び出すと、サウンドファイルの先頭から再生を開始する。
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.