PhysicsWorld QML Type
物理シミュレーションを制御する。詳細...
Import Statement: | import QtQuick3D.Physics |
Since: | Qt 6.4 |
プロパティ
- defaultDensity : real
- enableCCD : bool
- forceDebugDraw : bool
- gravity : vector3d
- maximumTimestep : real
- minimumTimestep : real
- numThreads : int
(since 6.7)
- reportKinematicKinematicCollisions : bool
(since 6.7)
- reportStaticKinematicCollisions : bool
(since 6.7)
- running : bool
- scene : Node
- typicalLength : real
- typicalSpeed : real
- viewport : Node
信号
- frameDone(float timestep)
(since 6.5)
詳細説明
PhysicsWorldタイプは物理シミュレーションを制御します。このノードを使用して物理ワールドのインスタンスを作成し、プロパティを定義します。物理ワールドは1つだけです。qml内のすべての衝突ノードは自動的に物理ワールドに追加されます。
プロパティの説明
defaultDensity : real |
このプロパティは、動的オブジェクトのデフォルトの密度を定義します。これは、一辺が1
の立方体の重さに相当します。
デフォルト値は0.001
で、1 g/cm³ (水の密度)に相当します。あなたの測定単位がメートルであれば、1000
が良い値でしょう。正の値のみが許されることに注意してください。
範囲:(0, inf]
enableCCD : bool |
このプロパティは、連続的な衝突検出を可能にします。これにより、物体が高速で他の物体を通過する(トンネリングとも呼ばれる)リスクを減らすことができます。デフォルト値はfalse
。
警告 CCDを有効にした状態でトリガボディを使用することはサポートされておらず、トリガレポートが欠落したり、誤ったりする可能性がある。
forceDebugDraw : bool |
このプロパティは、物理ワールド内のすべてのアクティブな形状のデバッグ描画を有効にします。デフォルト値はfalse
です。
gravity : vector3d |
このプロパティは、物理ワールドの重力ベクトルを定義します。デフォルト値は(0, -981, 0)
です。測定単位がメートルで、地球の重力をシミュレートしている場合は、値をQt.vector3d(0, -9.81, 0)
に設定します。
maximumTimestep : real |
このプロパティは、最大シミュレーションタイムステップをミリ秒単位で定義します。デフォルト値は33.333
で、30
frames per second に相当します。
範囲:[0, inf]
minimumTimestep : real |
このプロパティは、最小シミュレーションタイムステップをミリ秒単位で定義します。デフォルト値は16.667
で、60
フレーム/秒に相当します。
範囲[0, maximumTimestep]
numThreads : int |
このプロパティは、物理シミュレーションに使用するスレッド数を定義します。値の範囲はこのように解釈されます:
値 | 範囲 | 説明 |
---|---|---|
負 | [-inf, -1] | 自動スレッドカウント。アプリケーションはシステムからスレッド数を問い合わせようとします。 |
ゼロ | {0} | スレッド処理なし、シミュレーションは順次実行されます。 |
正 | [1, inf] | 特定のスレッド数。 |
デフォルト値は-1
、自動スレッドカウントを意味します。
注意: シーンの実行が開始されると、スレッド数を変更することはできません。
このプロパティは Qt 6.7 で導入されました。
reportKinematicKinematicCollisions : bool |
このプロパティは、運動学的な動的剛体のペア間の衝突が、接触レポートをトリガーするかどうかを制御します。
デフォルト値はfalse
です。
注意: シーンの実行が開始されると、この設定を変更することはできません。
このプロパティは Qt 6.7 で導入されました。
PhysicsWorld::reportStaticKinematicCollisions,DynamicRigidBody,PhysicsNode::bodyContactも参照してください 。
reportStaticKinematicCollisions : bool |
このプロパティは、静的剛体とキネマティック動的剛体間の衝突が接触レポートをトリガーするかどうかを制御します。
デフォルト値はfalse
です。
注意: シーンの実行が開始されると、この設定を変更することはできません。
このプロパティは Qt 6.7 で導入されました。
PhysicsWorld::reportKinematicKinematicCollisions,StaticRigidBody,DynamicRigidBody,PhysicsNode::bodyContactも参照してください 。
running : bool |
このプロパティは、物理シミュレーションを開始または停止します。デフォルト値はtrue
です。
scene : Node |
このプロパティは、物理シミュレーションのすべてのノードを含む最上位の Node を定義します。このノードの祖先であるすべての物理オブジェクトは、このPhysicsWorld の一部として表示されます。
注意: 複数のPhysicsWorld に同じシーンノードを使用することはサポートされていません。
typicalLength : real |
このプロパティは、シミュレーション内のオブジェクトのおおよそのサイズを定義します。これは、特定の長さ関連の公差を推定するために使用されます。このサイズよりはるかに小さい、またははるかに大きいオブジェクトは、適切に動作しない可能性があります。デフォルト値は100
です。
範囲:[0, inf]
typicalSpeed : real |
このプロパティは、シミュレーション内のオブジェクトの速度の標準的な大きさを定義します。これは、接触がその衝撃速度に基づいてバウンドまたは静止として扱われるべきかどうかを推定するために使用され、シミュレーションがオブジェクトをスリープ状態にする可能性がある運動エネルギーのしきい値を下回ります。
通常の物理環境では、物体が重力下で1秒間落下するおおよその速度が良い選択です。デフォルト値は1000
です。
範囲:[0, inf]
viewport : Node |
このプロパティは、forceDebugDraw が有効な場合にデバッグコンポーネントが描画されるビューポートを定義します。未設定の場合、scene ノードが使用されます。
forceDebugDraw およびsceneも参照してください 。
シグナル・ドキュメント
|
このシグナルは、物理シミュレーションがフレームのシミュレーションを終了したときに発せられます。timestep パラメータは、シミュレーションのタイムステップが何ミリ秒であったかです。
注意: 対応するハンドラはonFrameDone
です。
このシグナルは Qt 6.5 で導入されました。
© 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.