このページでは

CharacterController QML Type

キャラクターの動きを制御します。詳細...

Import Statement: import QtQuick3D.Physics
Since: Qt 6.4
Inherits:

PhysicsBody

プロパティ

信号

  • shapeHit(PhysicsNode *body, vector3D position, vector3D impulse, vector3D normal) (since 6.6)

方法

詳細な説明

CharacterController 型は、キャラクターの動作を制御します。

キャラクターとは、外部からの制御によって移動するエンティティですが、物理的な障壁に制約を受け、場合によっては重力の影響も受けます。これは、dynamic rigid bodies とは対照的です。 は、物理シミュレーションによって完全に制御されるもの(非キネマティックボディの場合)か、障壁に関係なく配置された位置に正確に移動するもの(キネマティックオブジェクトの場合)のいずれかです。

キャラクターコントローラーの動作を制御するには、movement に希望する速度を設定します。

一人称視点の場合、カメラは通常、キャラクターコントローラー内に配置されます。

注: collisionShapes は 、CapsuleShape のいずれかに設定する必要があります。他の形状はサポートされていません。

注:キャラクターコントローラは 、カプセル形状の高さの 4 分の 1 未満の障害物をスケーリングすることができます。

「Qt Quick 3D Physics Shapes, Bodies and Joints」も参照してください 。

プロパティのドキュメント

collisions : Collisions [read-only]

このプロパティは、キャラクターの現在の衝突状態を保持します。衝突がない場合は `None ` となり、それ以外の場合は `Side`、`Up`、および `Down` の論理和(OR)となります:

定数説明
CharacterController.Noneキャラクターは何も接触していない。重力が null でない場合、これはキャラクターが自由落下中であることを意味する。
CharacterController.Sideキャラクターが横から何かに接触している。
CharacterController.Upキャラクターが頭上の何かに接触しています。
CharacterController.Downキャラクターは下にある何かに接触しています。標準重力下では、これはキャラクターが地面にいることを意味します。

注:方向は 標準重力に対して相対的に定義されます。Up は、CharacterController.gravity の値にかかわらず、常にy軸の正の方向に沿っています。PhysicsWorld.gravity

enableShapeHitCallback : bool [since 6.6]

このプロパティは、このキャラクターコントローラーに対するCharacterController::shapeHit コールバックを有効または無効にします。

デフォルト値:false

このプロパティは Qt 6.6 で導入されました。

gravity : vector3d

このプロパティは、キャラクターに作用する重力加速度を定義します。地面を歩くキャラクターの場合、通常はPhysicsWorld.gravity に設定します。3次元で移動制御可能な浮遊キャラクターの場合、通常は(0, 0, 0) に設定します。

デフォルト値:(0, 0, 0) 。

midAirControl : bool

このプロパティは、キャラクターが自由落下している際に「movement 」プロパティが有効になるかどうかを定義します。これは、「gravity 」がnullでない場合にのみ適用されます。値が「true 」の場合、movement が変化すると、キャラクターは空中で方向を変えます。値が「false 」の場合、キャラクターは他のオブジェクトに衝突するまで現在の軌道を維持し続けます。

デフォルト値:true

movement : vector3d

このプロパティは、キャラクターの制御された動きを定義します。これは、重力がなく、他の物理オブジェクトと相互作用しない場合に、キャラクターが移動する速度です。

このプロパティは、キャラクターの実際の速度を反映するものではありません。キャラクターが地形に引っかかっている場合、movement で定義された速度よりも遅く移動することがあります。逆に、キャラクターが自由落下している場合は、それよりもはるかに速く移動することがあります。

デフォルト値:(0, 0, 0)

シグナルに関するドキュメント

[since 6.6] shapeHit(PhysicsNode *body, vector3D position, vector3D impulse, vector3D normal)

このシグナルは、movement が呼び出され、DynamicRigidBody またはStaticRigidBody との衝突が生じる場合で、かつenableShapeHitCallback がtrue に設定されているときに発火します。パラメータbody 、position 、impulse 、およびnormal には、接触点のボディ、位置、衝動力、法線が含まれます。

注: 対応するハンドラは onShapeHit です。

このシグナルは Qt 6.6 で導入されました。

メソッドのドキュメント

void teleport(vector3d position)

衝突チェックを行わずに、キャラクターを直ちにposition に移動させます。静的オブジェクトとの重なりを回避するのは、呼び出し側の責任です。

© 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.