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 に設定します。三次元の移動制御を持つ浮動キャラクタは、通常、重力(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 で導入されました。


メソッドの説明

teleport(vector3d position)

衝突をチェックすることなく、直ちにキャラクタをposition に移動します。呼び出し側は、静的オブジェクトとの重なりを避ける責任があります。


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