CharacterController QML Type
캐릭터의 움직임을 제어합니다. 더 보기...
| Import Statement: | import QtQuick3D.Physics |
| Since: | Qt 6.4 |
| Inherits: |
속성
- collisions : Collisions
- enableShapeHitCallback : bool
(since 6.6) - gravity : vector3d
- midAirControl : bool
- movement : vector3d
신호
- shapeHit(PhysicsNode *body, vector3D position, vector3D impulse, vector3D normal)
(since 6.6)
방법
- void teleport(vector3d position)
상세 설명
CharacterController 타입은 캐릭터의 움직임을 제어합니다.
캐릭터는 외부 제어에 따라 움직이지만, 물리적 장벽에 제약을 받고 (선택적으로) 중력의 영향을 받는 엔티티입니다. 이는 물리 시뮬레이션에 의해 완전히 제어되거나(비운동학적 바디의 경우), 장벽과 상관없이 배치된 위치로 정확히 이동하는(운동학적 객체의 경우) 물리 컨트롤러( dynamic rigid bodies )와 대조됩니다.
캐릭터 컨트롤러의 움직임을 제어하려면 movement 를 원하는 속도로 설정하십시오.
1인칭 시점의 경우, 카메라는 일반적으로 캐릭터 컨트롤러 내부에 배치됩니다.
참고: ‘ collisionShapes ’는 단일 ‘ CapsuleShape ’로 설정되어야 합니다. 다른 형상은 지원되지 않습니다.
참고: 캐릭터컨트롤러는 캡슐 모양 높이의 1/4보다 낮은 장애물을 스케일링할 수 있습니다.
Qt Quick 3D Physics 의 도형, 바디 및 조인트도 참조하십시오 .
속성 문서
collisions : Collisions [read-only]
이 속성은 캐릭터의 현재 충돌 상태를 나타냅니다. 충돌이 없는 경우 ‘ None ’이며, 그렇지 않은 경우 ‘ Side ’, ‘ Up ’, ‘ Down ’의 논리합(OR) 조합을 가집니다:
| 상수 | 설명 |
|---|---|
CharacterController.None | 캐릭터가 어떤 물체와도 접촉하고 있지 않습니다. 중력 값이 null이 아닌 경우, 이는 캐릭터가 자유 낙하 중임을 의미합니다. |
CharacterController.Side | 캐릭터가 옆면에 무언가와 접촉하고 있습니다. |
CharacterController.Up | 캐릭터가 위쪽의 무언가에 닿아 있습니다. |
CharacterController.Down | 캐릭터가 아래쪽의 물체와 접촉하고 있습니다. 표준 중력 조건에서 이는 캐릭터가 지면에 서 있음을 의미합니다. 참고: 방향은 표준 중력을 기준으로 정의됩니다. 즉, |
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.