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 です。
範囲:[0, inf]
注: シミュレーションのタイムステップは レンダリングと連動して動作します。つまり、新しいシミュレーションフレームは、レンダリングされたフレームが完了した後にのみ開始されます。したがって、レンダリングされたフレーム1つにつき、最大1つのシミュレーションフレームが実行されます。
minimumTimestep : real
このプロパティは、シミュレーションの最小時間ステップ(ミリ秒単位)を定義します。デフォルト値は1 です。
範囲:[0, maximumTimestep]
注: シミュレーションのタイムステップは レンダリングと連動して動作します。つまり、新しいシミュレーションフレームは、レンダリングされたフレームが完了した後にのみ開始されます。したがって、レンダリングされたフレーム 1 つにつき、最大で 1 つのシミュレーションフレームが実行されます。
numThreads : int [since 6.7]
このプロパティは、物理シミュレーションに使用されるスレッド数を定義します。値の範囲は次のように解釈されます:
| 値 | 範囲 | 説明 |
|---|---|---|
| 負の値 | [-inf, -1] | スレッド数の自動設定。アプリケーションはシステムからスレッド数を取得しようと試みます。 |
| 0 | {0} | スレッド化を行わず、シミュレーションは順次実行されます。 |
| 正 | [1, 256] | 特定のスレッド数。256を超える値はクリップされます。 |
デフォルト値は-1 で、これはスレッド数を自動設定することを意味します。
注: シーンの実行が開始されると、 スレッド数を変更することはできません。
このプロパティは Qt 6.7 で導入されました。
reportKinematicKinematicCollisions : bool [since 6.7]
このプロパティは、運動学的な動的剛体のペア間の衝突が、接触レポートをトリガーするかどうかを制御します。
デフォルト値はfalse です。
注: シーンの実行が開始されると、 この設定を変更することはできません。
このプロパティは Qt 6.7 で導入されました。
「 PhysicsWorld::reportStaticKinematicCollisions 」、「DynamicRigidBody 」、および「PhysicsNode::bodyContact 」も参照してください 。
reportStaticKinematicCollisions : bool [since 6.7]
このプロパティは、静的な剛体と運動学的な動的剛体との間の衝突が、接触レポートをトリガーするかどうかを制御します。
デフォルト値は「false 」です。
注: シーンの実行が開始されると、 この設定を変更することはできません。
このプロパティは Qt 6.7 で導入されました。
関連項目: PhysicsWorld::reportKinematicKinematicCollisions 、StaticRigidBody 、DynamicRigidBody 、およびPhysicsNode::bodyContact 。
running : bool
このプロパティは、物理シミュレーションを開始または停止します。デフォルト値はtrue です。
scene : Node
このプロパティは、物理シミュレーションのすべてのノードを含む最上位のノードを定義します。このノードの祖先となるすべての物理オブジェクトは、このPhysicsWorld の一部として扱われます。
注: 1つのシーンノードを複数のPhysicsWorld で共用することは サポートされていません。
typicalLength : real
このプロパティは、シミュレーション内のオブジェクトのおおよそのサイズを定義します。これは、長さに関連する特定の許容誤差を推定するために使用されます。このサイズより著しく小さい、または著しく大きいオブジェクトは、正常に動作しない場合があります。デフォルト値は100 です。
範囲:[0, inf]
typicalSpeed : real
このプロパティは、シミュレーションにおける物体の速度の典型的な大きさを定義します。これは、衝突速度に基づいて接触を「跳ね返り」として扱うか「静止」として扱うかを判断するために使用されるほか、その閾値以下の運動エネルギーの場合にシミュレーションが物体を「スリープ」状態にするかどうかを決定するためにも使用されます。
通常の物理環境では、重力下で1秒間落下する物体の概算速度を設定するのが適しています。デフォルト値は1000 です。
範囲:[0, inf]
viewport : Node
このプロパティは、forceDebugDraw が有効になっている場合に、デバッグコンポーネントが描画されるビューポートを定義します。設定されていない場合は、scene ノードが使用されます。
「 forceDebugDraw 」および「scene 」も参照してください 。
シグナルに関するドキュメント
[since 6.5] frameDone(float timestep)
このシグナルは、物理シミュレーションが1フレームのシミュレーションを完了した際に発せられます。timestep パラメータは、シミュレーションにおけるタイムステップの長さをミリ秒単位で表したものです。
注: 対応するハンドラは onFrameDone です。
このシグナルは Qt 6.5 で導入されました。
© 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.