Affector QML Type
論理パーティクルの属性に、そのライフタイムの任意の時点で変更を適用する。詳細...
Import Statement: | import QtQuick.Particles |
Inherited By: | Age, Attractor, Friction, Gravity, GroupGoal, SpriteGoal, Turbulence, and Wander |
プロパティ
- acceleration : StochasticDirection
- enabled : bool
- groups : list<string>
- once : bool
- position : StochasticDirection
- relative : bool
- shape : Shape
- system : ParticleSystem
- velocity : StochasticDirection
- whenCollidingWith : list<string>
シグナル
- affectParticles(Array particles, real dt)
- affected(real x, real y)
詳細説明
基本アフェクタはアトリビュートを変更しませんが、パーティクルが特定の条件を満たしたときにシグナルを発するために使用できます。
アフェクタに定義されたサイズがある場合、そのサイズと画面上の位置内のパーティクルにのみ影響します。
アフェクタは、他のパーティクルシステム要素とは異なるパフォーマンス特性を持ちます。特に、シミュレーションをリアルタイムまたはより高速に維持するために、いくつかの簡略化があります。アフェクターでシステムを実行する場合、不規則なフレームタイミングが大きくなりすぎると(1フレームあたり1秒以上)、アフェクターはより速く、しかし精度の低いシミュレーションで手を抜こうとします。システムに複数のアフェクタがある場合、アフェクタを適用する順番は保証されません。また、大きなタイムシフトをシミュレーションする場合、シフト全体をそれぞれシミュレーションすることになり、小さなタイムシフトとは異なる結果になる可能性があります。
複数の影響因子を持つ大量の粒子(数百個)に対する正確なシミュレーションは、ハードウェアによっては可能かもしれませんが、性能の低いハードウェアでは、粒度が悪くなるにつれてシミュレーションに小さな不規則性が生じることが予想されます。
プロパティの説明
acceleration : StochasticDirection |
影響を受けるパーティクルは、加速度がこの方向に設定されます。
enabled : bool |
enabledをfalseに設定すると、このエフェクタはどのパーティクルにも影響しません。
通常、これは条件付きでアフェクタをオンまたはオフにするために使用されます。
デフォルト値は true です。
once : bool |
once を true に設定すると、このアフェクタは各パーティクルのライフタイムに一度だけ影響します。通常、このエフェクタが時間をかけて連続的な効果をシミュレートする場合、パーティクルに影響を与える瞬間に1秒間の効果をシミュレートします。
デフォルト値はfalseです。
position : StochasticDirection |
影響を受けたパーティクルは、ParticleSystem からの相対的な位置がこの方向に設定されます。方向を点として解釈する場合は、ParticleSystem の 0,0 を基点とし、指定された位置が先端にある矢印を想像してください。
relative : bool |
影響を受けるパーティクルの既存の位置/速度/加速度を新しいものに追加するかどうか。
デフォルトはtrueです。
shape : Shape |
サイズが定義されている場合、shape プロパティを使用して長方形以外の領域に影響を与えることができます。
system : ParticleSystem |
これは、要素の影響を受けるシステムです。Affector がParticleSystem の直接の子であれば、自動的に関連付けられます。
velocity : StochasticDirection |
影響を受けるパーティクルのベロシティはこの方向に設定されます。
ここで論理的なパーティクル グループを指定すると、検査対象のパーティクルがこれらのグループのパーティクルと交差する場合にのみ、アフェクタがトリガーされます。
これは groups プロパティとは異なります。groups プロパティは、どのパーティクルが検査されるかを選択し、他の基準(形状によって変更されるアフェクタの境界内であることを含む)を満たす場合、whenCollidingWith のパーティクルグループのいずれかのパーティクルと交差するかどうかを再度テストします。
デフォルトでは、グループは指定されていません。
シグナルの説明
affectParticles(Array particles, real dt) |
このシグナルは、影響を受けるパーティクルが選択された時に発せられます。particles は、直接操作できるパーティクルオブジェクトの配列です。
dt は最後に影響を受けてからの時間です。 を使用して、軌道操作をリアルタイムに正規化します。dt
注意: JavaScript は実行速度が遅いので、大容量のパーティクルシステムでの使用はお勧めしません。
注意: 対応するハンドラはonAffectParticles
です。
このシグナルは、影響を受けるパーティクルが選択されたときに発せられます。このシグナルは、パーティクルが Affector によって考慮されているが、実際には何も変更されていない場合は発せられません。
Affectorが影響を与える可能性がない特殊な場合(例:Affector {})、このシグナルはAffectorに接続すると、考慮されているすべてのパーティクルに対して発せられます。これにより、パーティクルに反応して任意のコードを実行することができます(パーティクル自体に影響を与えるコードを実行したい場合は、Affector::onAffectParticlesシグナルハンドラを使用してください)。これはパーティクルごとにJavaScriptコードを実行するため、大量のパーティクルシステムでこのシグナルを使用することはお勧めしません。
(x,y) はパーティクルの現在位置です。
注意: 対応するハンドラはonAffected
です。
2024 The Qt CompanyLtd. 本書に含まれるドキュメントの著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。