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 空間内の可聴オブジェクトを表します。空間内での位置や向きを定義したり、再生する音を設定したり、オブジェクトの音量を指定したりすることができます。
オブジェクトは、さまざまな減衰挙動をとったり、主に一方向または球状に音を発したり、他のオブジェクトによって遮られているかのように振る舞ったりすることができます。
メンバの型に関するドキュメント
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) |
通知シグナル:
| 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 へと段階的に減少していきます。距離が size 未満の場合は音量は一定であり、カットオフ距離を超える場合は音量はゼロになります。
アクセス関数:
| 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) |
通知シグナル:
| void | loopsChanged() |
manualAttenuation : float
distanceModel がQSpatialSound::DistanceModel::ManualAttenuation に設定されている場合、手動減衰係数を定義します。
アクセス機能:
| float | manualAttenuation() const |
| void | setManualAttenuation(float attenuation) |
通知信号:
| void | manualAttenuationChanged() |
nearFieldGain : float
音源の近距離ゲインを定義します。有効な値は 0 から 1 の範囲です。近距離ゲインを 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) |
通知信号:
| 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) |
通知信号:
| void | volumeChanged() |
メンバ関数のドキュメント
[explicit] QSpatialSound::QSpatialSound(QAudioEngine *engine)
engine 用の空間音源を作成します。このオブジェクトは3D空間に配置でき、リスナーに近づくほど音量が大きくなります。
注: 有効なQAudioEngine
[override virtual noexcept] QSpatialSound::~QSpatialSound()
音源を破壊する。
QAudioEngine *QSpatialSound::engine() const
このリスナーに関連付けられているエンジンを返します。
[slot] void QSpatialSound::pause()
音声の再生を一時停止します。play() を呼び出すと、再生が再開されます。
[slot] void QSpatialSound::play()
音声の再生を開始します。すでに音声が再生されている場合は、何も行いません。
[slot] void QSpatialSound::stop()
サウンドの再生を停止し、現在の位置と現在のループ回数を0にリセットします。play() を呼び出すと、サウンドファイルの先頭から再生が開始されます。
© 2026 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.