このページでは

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 より低い障害物をスケーリングできます。

Shapes and Bodies の概要ドキュメントも参照してください

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

collisions : Collisions [read-only]

このプロパティは、キャラクタの現在の衝突状態を保持します。衝突がない場合はNone 、衝突がある場合はSide 、衝突がある場合はUp 、衝突がある場合はDown の OR の組み合わせとなります:

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

注: 方向は標準重力に対して相対的に定義されます。Up は、CharacterController.gravity または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 と衝突し、enableShapeHitCallbacktrue に設定されたときに発せられる。パラメータbodypositionimpulsenormal には、接触点のボディ、位置、衝撃力、法線が含まれる。

注意: 対応するハンドラは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.