Qt Quick パーティクルシステムの使用方法
すべてのパーティクルシステムタイプに関するドキュメントは、QtQuick.Particles モジュールのページでご覧いただけます。
particlesモジュールのタイプを使用するには、次の行でモジュールをインポートしてください:
import QtQuick.ParticlesParticleSystem
このパーティクルシステムには、ParticleSystem 、Painters、Emitters、Affectorsという4つの主要なQMLタイプが含まれています。
ParticleSystem タイプは、他のすべてのタイプを結びつけ、共有タイムラインを管理します。Painters、Emitters、Affectors は、互いに連携するために、すべて同じParticleSystem を持つ必要があります。
この制約の範囲内であれば、ParticleSystem をいくつでも作成できます。したがって、論理的な区分としては、相互作用させたいすべてのタイプに対して1つの を用意するか、タイプ数が少なく管理が容易な場合は1つだけ用意するのが一般的です。
論理粒子
すべてのパーティクルシステムタイプは「論理パーティクル」に対して作用します。各パーティクルはパーティクルシステム内に論理的な表現を持っており、タイプはこれに対して作用します。すべての論理パーティクルを可視化する必要はなく、一部の論理パーティクルによって、画面上に複数の視覚的なパーティクルが描画される場合もあります。
パーティクルグループ
すべての論理パーティクルはパーティクルグループのメンバーであり、各グループは名前によって識別されます。他のグループが指定されていない場合、論理パーティクルは名前が ""(空文字列)のグループに属し、このグループは他のグループと同様に動作します。 グループは、パーティクルの制御と、確率的な状態遷移を可能にするという2つの目的で使用されます。
グループがパーティクルを制御するのは、どのタイプのパーティクルシステムでも個々のパーティクルに直接アクセスできないためです。すべてのタイプはグループ全体に対して作用するため、(通常の確率的なパラメータ変動とは別に)互いに異なる挙動をとる必要があるパーティクルは、異なるグループに属させる必要があります。
また、パーティクルは動的にグループを変更することもできます。この場合、パーティクルの軌跡は変わりませんが、異なる ParticlePainter や Affector による影響を受けるようになります。パーティクルのグループは、Affector によって変更されるか、ParticleGroup タイプで確率的な状態遷移が定義されることで変更されます。
一般的に、グループは確率的な状態遷移が必要な場合にのみ、ParticleGroup 内で定義すべきです。そうでない場合は、各タイプのparticle/particlesプロパティで使用される文字列によってグループを単純に定義するだけで十分です。
エミッター
エミッターは、システム内に論理パーティクルを放出します。これらのパーティクルには軌道と寿命がありますが、可視化はされません。これらのパーティクルは、エミッターの位置から放出されます。
TrailEmittersは、他の論理粒子の位置から粒子を放出する特殊なエミッターです。TrailEmitter の範囲内にある、指定されたタイプの論理粒子であれば、その位置から粒子が放出されます。これは、あたかもその粒子上にTrailEmitter と同じプロパティを持つエミッターが存在するかのように振る舞います。
ParticlePainters
Paintersは、論理粒子を可視化するタイプです。割り当てられたグループ内の各論理粒子について、その範囲内(タイプにclipプロパティを設定していない場合は範囲外も含む)にあるものは、ParticlePainter のタイプに応じて可視化されます。ParticlePainter の基底型は何も描画しません。ImageParticle は、パーティクルの位置に画像をレンダリングします。ItemParticle を使用すると、任意のQMLデリゲートを使用して論理パーティクルを可視化できます。ModelParticleも同様ですが、ビュークラスと同様の方法で、デリゲート間でモデルデータを調整します。
ParticlePainter はシーン内のパーティクルを可視化するQML型であるため、パーティクルを他のタイプの要素より視覚的に上または下に配置しようとする場合、そのZ値が重要になります。
アフェクター
アフェクターは、パーティクルシステムのオプションコンポーネントです。パーティクルの軌道を変更したり、シミュレーション内での寿命を早期に終了させたりするなど、シミュレーションに対してさまざまな操作を行うことができます。パフォーマンス上の理由から、パーティクルの数が多いシステムではアフェクターを使用しないことを推奨します。
確率的パラメータ
パーティクルシステムは、多数のインスタンスにわたるパラメータの確率的制御によって恩恵を受けるため、パーティクルシステムではいくつかの確率的ヘルパー型が使用されます。これらのパラメータに確率的な変動を一切与えたくない場合は、これらの型に対して変動を指定しないでください。
方向
方向は、角度と大きさ、または x 成分と y 成分で指定できます。どちらの方法でも任意の方向を指定できますが、x 成分と y 成分を変化させる場合と、角度と大きさを変化させる場合では、大きな違いがあります。 x成分とy成分を変化させると、指定した点を中心とする長方形の領域が形成されますが、角度を変化させると、指定した点を中心とする円弧が形成されます。
形状
パーティクルシステムには、形状を表すいくつかのタイプが含まれています。これらのタイプは形状を可視化するものではなく、形状内のランダムな点を選択する目的で使用されます。ランダム性を排除して特定の点を指定したい場合は、幅 0、高さ 0 の形状(これがデフォルトです)を使用してください。 それ以外の場合は、シェイプタイプを使用して領域を指定することで、その結果としてその領域からランダムに選択された点を取得できます。
関連項目: Qt Quick パーティクルの例 - エミッタ、エフェクタの例、画像パーティクルの例、およびエフェクタの例 - システム。
© 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.