DynamicRigidBody QML Type
動くこと、あるいは動かされることのできる物理的な物体。詳細...
| Import Statement: | import QtQuick3D.Physics |
| Since: | Qt 6.4 |
| Inherits: |
プロパティ
- angularAxisLock : AxisLock
- centerOfMassPosition : vector3d
- centerOfMassRotation : quaternion
- density : real
- gravityEnabled : bool
- inertiaMatrix : list<real>
- inertiaTensor : vector3d
- isKinematic : bool
- isSleeping : bool
(since 6.9) - kinematicEulerRotation : vector3d
(since 6.5) - kinematicPivot : vector3d
(since 6.5) - kinematicPosition : vector3d
(since 6.5) - kinematicRotation : quaternion
(since 6.5) - linearAxisLock : AxisLock
- mass : real
- massMode : MassMode
方法
- void applyCentralForce(vector3d force)
- void applyCentralImpulse(vector3d impulse)
- void applyForce(vector3d force, vector3d position)
- void applyImpulse(vector3d impulse, vector3d position)
- void applyTorque(vector3d torque)
- void applyTorqueImpulse(vector3d impulse)
- void reset(vector3d position, vector3d eulerRotation)
- void setAngularVelocity(vector3d angularVelocity)
- void setLinearVelocity(vector3d linearVelocity)
詳細な説明
この型は、動的な剛体を定義します。剛体とは、物理シーンの一部であり、質量と速度を持つ物理的な物体のように振る舞うオブジェクトのことです。
注:` triangle mesh`、`height field `、および`plane `のジオメトリ形状は、`isKinematic `が`false`の場合、衝突形状として使用することはできません。
プロパティのドキュメント
angularAxisLock : AxisLock
このプロパティは、DynamicRigidBody.AxisLock 列挙型で定義された軸に沿った物体の角速度を固定します。複数の軸を固定するには、それらの列挙型の値をビット単位のOR演算で結合してください。
利用可能なオプション:
| 定数 | 説明 |
|---|---|
DynamicRigidBody.None | 軸のロックを行わない。 |
DynamicRigidBody.LockX | X軸をロックします。 |
DynamicRigidBody.LockY | Y軸をロックします。 |
DynamicRigidBody.LockZ | Z軸をロックします。 |
デフォルト値:DynamicRigidBody.None
centerOfMassPosition : vector3d
物体に対する重心位置を定義します。なお、これはmassMode がDynamicRigidBody.MassAndInertiaTensor に設定されている場合にのみ使用されることに注意してください。
デフォルト値:(0, 0, 0)
「 massMode 」および「inertiaTensor 」も参照してください 。
centerOfMassRotation : quaternion
質量中心の姿勢の回転を定義します。つまり、物体の主慣性軸の、物体に対する向きを指定します。なお、これはmassMode がDynamicRigidBody.MassAndInertiaTensor に設定されている場合にのみ使用されます。
デフォルト値:(1, 0, 0, 0)
「 massMode 」および「inertiaTensor 」も参照してください 。
density : real
このプロパティは、ボディの密度を定義します。これは、massMode がDynamicRigidBody.CustomDensity に設定されている場合にのみ使用されます。
デフォルト値:0.001
範囲:(0, inf]
「massMode」も参照してください 。
gravityEnabled : bool
このプロパティは、オブジェクトが重力の影響を受けるかどうかを定義します。
デフォルト値:true
inertiaMatrix : list<real>
慣性テンソル行列を定義します。これは、列主順序の3×3行列です。なお、この行列は対角化可能であることが想定されています。また、これはmassMode がDynamicRigidBody.MassAndInertiaMatrix に設定されている場合にのみ使用されることに注意してください。
デフォルト値:3×3の単位行列
「 massMode 」および「inertiaTensor 」も参照してください 。
inertiaTensor : vector3d
質量座標系で指定されたパラメータを用いて、慣性テンソルベクトルを定義します。
これは3×3の対角行列の対角ベクトルです。世界座標系またはアクター座標系の慣性テンソルが非対角行列である場合は、代わりにinertiaMatrix を使用してください。
慣性テンソルの各成分は正でなければならず、いずれかの成分の値が 0 の場合、その軸に沿って慣性が無限大であると解釈されます。なお、これはmassMode がDynamicRigidBody.MassAndInertiaTensor に設定されている場合にのみ使用されることに注意してください。
デフォルト値:(1, 1, 1)
「 massMode 」および「inertiaMatrix 」も参照してください 。
isKinematic : bool
このプロパティは、オブジェクトがキネマティックであるかどうかを定義します。 キネマティックオブジェクトは外部力の影響を受けず、質量が無限大のオブジェクトと見なすことができます。このプロパティが設定されている場合、各シミュレーションフレームにおいて、外部力に関係なく物理オブジェクトは目標位置に移動されます。なお、キネマティックオブジェクトを移動または回転させるには、kinematicPosition 、kinematicRotation 、kinematicEulerRotation 、およびkinematicPivot プロパティを使用する必要があります。
デフォルト値:false
関連項目: kinematicPosition 、kinematicRotation 、kinematicEulerRotation 、およびkinematicPivot 。
isSleeping : bool [since 6.9]
ボディがスリープ状態の場合、このプロパティは `true ` に設定されます。技術的にはこのプロパティを設定することは可能ですが、物理シミュレーションが実行されているすべてのフレームで設定される読み取り専用プロパティとみなすべきです。
このプロパティは Qt 6.9 で導入されました。
kinematicEulerRotation : vector3d [since 6.5]
オブジェクトがキネマティック状態、すなわち「isKinematic 」が「true 」に設定されている場合のオイラー回転を定義します。シミュレーションの各反復ごとに、物理オブジェクトはこの値に基づいて更新されます。
デフォルト値:(0, 0, 0)
このプロパティは Qt 6.5 で導入されました。
関連項目: isKinematic 、kinematicPosition 、kinematicEulerRotation、およびkinematicPivot 。
kinematicPivot : vector3d [since 6.5]
オブジェクトがキネマティック状態(つまり、「isKinematic 」が「true 」に設定されている状態)にある際のピボットを定義します。シミュレーションの各反復において、物理オブジェクトはこの値に基づいて更新されます。
デフォルト値:(0, 0, 0)
このプロパティは Qt 6.5 で導入されました。
関連項目: isKinematic 、kinematicPosition 、kinematicEulerRotation 、およびkinematicRotation 。
kinematicPosition : vector3d [since 6.5]
オブジェクトがキネマティック状態、すなわち「isKinematic 」が「true 」に設定されている場合の、オブジェクトの位置を定義します。シミュレーションの各反復において、物理オブジェクトはこの値に基づいて更新されます。
デフォルト値:(0, 0, 0)
このプロパティは Qt 6.5 で導入されました。
関連項目: isKinematic 、kinematicRotation 、kinematicEulerRotation 、およびkinematicPivot 。
kinematicRotation : quaternion [since 6.5]
オブジェクトがキネマティック状態、すなわち「isKinematic 」が「true 」に設定されている場合の回転を定義します。シミュレーションの各反復ごとに、この値に基づいて物理オブジェクトが更新されます。
デフォルト値:(1, 0, 0, 0)
このプロパティは Qt 6.5 で導入されました。
関連項目: isKinematic 、kinematicPosition 、kinematicEulerRotation 、およびkinematicPivot 。
linearAxisLock : AxisLock
このプロパティは、DynamicRigidBody.AxisLock 列挙型で定義された軸に沿った物体の直線速度を固定します。複数の軸を固定するには、それらの列挙型の値をビット単位のOR演算で結合してください。
利用可能なオプション:
| 定数 | 説明 |
|---|---|
DynamicRigidBody.None | 軸のロックを行いません。 |
DynamicRigidBody.LockX | X軸をロックします。 |
DynamicRigidBody.LockY | Y軸をロックします。 |
DynamicRigidBody.LockZ | Z軸をロック。 |
デフォルト値:DynamicRigidBody.None
mass : real
このプロパティは、物体の質量を定義します。なお、これはmassMode がDynamicRigidBody.CustomDensity またはDynamicRigidBody.DefaultDensity でない場合にのみ使用されます。また、値が0の場合は質量が無限大と解釈され、負の数は使用できない点にも注意してください。
デフォルト値:1
有効範囲:[0, inf]
「massMode」も参照してください 。
massMode : MassMode
このプロパティには、このボディの質量と慣性がどのように計算されるかを記述する列挙型が格納されています。
利用可能なオプション:
| 定数 | 説明 |
|---|---|
DynamicRigidBody.DefaultDensity | PhysicsWorld のプロパティ「defaultDensity 」で指定された密度を使用し、密度が均一であると仮定して質量と慣性を計算します。 |
DynamicRigidBody.CustomDensity | 「density 」で指定された密度を使用し、密度が均一であると仮定して質量と慣性を計算します。 |
DynamicRigidBody.Mass | 指定された質量を使用し、密度が均一であると仮定して慣性量を計算します。 |
DynamicRigidBody.MassAndInertiaTensor | 指定された質量値と慣性テンソルを使用します。 |
DynamicRigidBody.MassAndInertiaMatrix | 指定された質量値を使用し、指定された慣性行列から慣性を計算します。 |
デフォルト値:DynamicRigidBody.DefaultDensity
メソッドのドキュメント
void applyCentralForce(vector3d force)
体の中心に「force 」を適用します。
void applyCentralImpulse(vector3d impulse)
体の中心に「impulse 」を適用します。
void applyForce(vector3d force, vector3d position)
体のposition にforce を適用します。
void applyImpulse(vector3d impulse, vector3d position)
体のposition にimpulse を適用します。
void applyTorque(vector3d torque)
対象の体に「torque 」を付与します。
void applyTorqueImpulse(vector3d impulse)
ボディにimpulse のトルクを加えます。
void reset(vector3d position, vector3d eulerRotation)
体内のposition およびeulerRotation をリセットします。
void setAngularVelocity(vector3d angularVelocity)
bodyのangularVelocity を設定します。
void setLinearVelocity(vector3d linearVelocity)
bodyのlinearVelocity を設定します。
© 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.