ParticleAffector QML Type
論理パーティクルの属性に、そのライフタイムの任意の時点で変更を適用する。詳細...
| Import Statement: | import QtQuick.Particles |
| Inherited By: | Affector, Age, Attractor, Friction, Gravity, GroupGoal, SpriteGoal, Turbulence, and Wander |
プロパティ
- enabled : bool
- groups : list<string>
- once : bool
- shape : Shape
- system : ParticleSystem
- whenCollidingWith : list<string>
信号
- affected(real x, real y)
詳細説明
ベースとなるParticleAffectorはアトリビュートを変更しませんが、パーティクルが特定の条件を満たしたときにシグナルを発するために使用できます。
アフェクタに定義されたサイズがある場合、そのサイズと画面上の位置内のパーティクルにのみ影響します。
アフェクタは、他のパーティクルシステム要素とは異なるパフォーマンス特性を持ちます。特に、シミュレーションをリアルタイムまたはより高速に維持するために、いくつかの簡略化があります。アフェクターでシステムを実行する場合、不規則なフレームタイミングが大きくなりすぎると(1フレームあたり1秒以上)、アフェクターはより速く、しかし精度の低いシミュレーションで手を抜こうとします。システムに複数のアフェクタがある場合、アフェクタを適用する順番は保証されません。また、大きなタイムシフトをシミュレーションする場合、シフト全体をそれぞれシミュレーションすることになり、小さなタイムシフトとは異なる結果になる可能性があります。
複数の影響因子を持つ多数の粒子(数百個)の正確なシミュレーションは、ハードウェアによっては可能かもしれませんが、性能の低いハードウェアでは、粒度が悪くなるにつれて、シミュレーションに小さな不規則性が生じることが予想されます。
プロパティのドキュメント
enabled : bool
enabled を false に設定すると、このア クセクタはパーティクルに影響を与えません。
通常、これは条件付きでアフェクタをオンまたはオフにするために使用されます。
デフォルト値は true です。
groups : list<string>
どの論理パーティクルグループに影響を与えるか。
空の場合はすべてのパーティクルに影響します。
once : bool
once を true に設定すると、このエフェクタは各パーティクルのライフタイムに一度だけ影響します。通常、このアフェクタが時間経過に伴う連続的な効果をシミュレートする場合、パーティクルに影響を与える瞬間に1秒間の効果をシミュレートします。
デフォルト値は false です。
shape : Shape
サイズが定義されている場合、shape プロパティを使用して長方形以外の領域に影響を与えることができます。
system : ParticleSystem
これは、そのエレメントの影響を受けるシステムである。ParticleAffector がParticleSystem の直接の子であれば、自動的にそれに関連付けられる。
whenCollidingWith : list<string>
ここに論理的なパーティクル グループを指定すると、検査されるパーティクルがこれらのグループのパーティクルと交差する場合にのみ、パーティクル アフェクタがトリガされます。
これは groups プロパティとは異なります。groups プロパティは、どのパーティクルが検査されるかを選択し、他の基準(ParticleAffector の境界内であること、Shape によって変更されるなど)を満たすと、whenCollidingWith のパーティクル グループの 1 つのパーティクルと交差するかどうかが再度テストされます。
デフォルトでは、グループは指定されていません。
シグナルのドキュメント
affected(real x, real y)
このシグナルは、影響を受けるパーティクルが選択されたときに発せられます。パーティクルがParticleAffector によって考慮されているが、実際には何ら変更されていない場合は発せられません。
ParticleAffector が影響を与える可能性がない特殊な場合(例:ParticleAffector {})、このシグナルは接続すると、考慮されているすべてのパーティクルに対して発せられます。これにより、パーティクルに反応して任意のコードを実行することができます(パーティクル自体に影響を与えるコードを実行したい場合は、ParticleAffector::onAffectParticlesシグナルハンドラを使用してください)。これはパーティクルごとにJavaScriptのコードを実行するため、大量のパーティクルシステムでこのシグナルを使用することはお勧めしません。
(x,y) はパーティクルの現在位置です。
注意: 対応するハンドラはonAffected です。
© 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.