Qt Quick 3D Physics 도형 및 바디

시뮬레이션의 객체는 다음 네 가지 유형의 바디 중 하나로 표현됩니다: StaticRigidBody, DynamicRigidBody, CharacterControllerTriggerBody. 몸체의 물리적 모양은 CollisionShape 의 하위 유형으로 표현됩니다.

셰이프

충돌 모양은 물리 시뮬레이션의 목적을 위해 물체의 물리적 모양과 범위를 정의하는 데 사용됩니다. 충돌 모양은 일반적으로 오브젝트의 시각적 모양보다 단순합니다.

엔진에는 BoxShape, CapsuleShape, SphereShape, PlaneShape 과 같은 몇 가지 사전 정의된 모양이 내장되어 있습니다. 이러한 모양은 처리가 최적화되어 있으므로 일반적으로 이를 사용한 시뮬레이션이 더 나은 성능을 발휘합니다.

또한 데이터에 의해 정의되는 사용자 정의 셰이프도 있습니다: ConvexMeshShape, HeightFieldShape, 및 TriangleMeshShape 입니다. 이는 성능을 희생하더라도 더 많은 유연성을 제공합니다.

바디

body 은 시뮬레이션에서 물리적 객체를 나타냅니다. 이러한 바디는 서로 상호 작용하고 충돌합니다. 두 가지 주요 유형은 정적 바디 (StaticRigidBody)와 동적 바디 (DynamicRigidBody)입니다. 바디의 물리적 모양은 모양 목록으로 지정됩니다. 효과적인 모양은 이러한 모양을 결합한 것입니다. 도형의 상대적 위치는 고정되어 있으며 도형은 단단합니다.

동적 도형

동적 바디는 움직일 수 있습니다. isKinematic 속성에 따라 움직이는 방식이 결정됩니다. isKinematictrue 인 경우 kinematicPositionkinematicRotation 속성을 수정하여 몸체의 위치를 명시적으로 지정합니다. isKinematicfalse 일 때 객체는 시뮬레이션에 의해 제어됩니다. 중력에 따라 떨어지고 다른 객체에서 튕겨집니다.

isKinematic이 true 인 경우 모든 모양이 허용됩니다. 그러나 비동역학 바디는 더 제한적입니다. 볼록한 도형만 사용할 수 있습니다. 사전 정의된 도형 BoxShape, CapsuleShape, SphereShape 과 사용자 정의 도형 ConvexMeshShape 이 이에 해당합니다. 그렇다고 볼록하지 않은 물리적 지오메트리가 불가능하다는 의미는 아닙니다. 하나의 바디에 여러 개의 볼록한 도형을 결합할 수 있습니다. 복합 도형 예시에서는 볼록 도형을 기반으로 링 모양의 바디를 만드는 방법을 보여줍니다.

정적 바디

정적 바디는 움직이지 않습니다. 다른 바디가 움직이는 환경을 나타냅니다. 정적 바디를 움직이는 것은 기술적으로 가능하지만 물리적 시뮬레이션이 예기치 않게 작동한다는 점에 유의하세요. 특히 정적 바디에서 휴식 자세에 들어간 동적 바디는 정적 바디가 움직이면 깨어나지 않습니다. 즉, 정적 바디가 움직여도 동적 바디는 같은 위치에 유지됩니다.

문자 컨트롤러

CharacterController 유형은 특별한 경우입니다. 이는 환경을 통해 움직이는 캐릭터를 나타냅니다. 일반적인 사용 사례 중 하나는 1인칭 시점으로 camera 이 캐릭터 컨트롤러의 자식이며 키보드/마우스 또는 게임패드로 움직임을 제어하는 경우입니다.

트리거 바디

또 다른 특수한 경우인 TriggerBody 유형도 있습니다. 다른 바디와 달리 물리적 바디가 아니므로 다른 바디와 충돌하여 상호작용하지 않습니다. 이름에서 알 수 있듯이 다른 바디가 충돌 모양으로 정의된 볼륨에 들어오거나 나갈 때만 동작을 트리거하는 데 사용됩니다. sendTriggerReports 다른 바디의 콜리전 볼륨이 true 으로 설정되어 있고 해당 바디가 TriggerBody 에 진입하면 bodyEntered 신호가 방출됩니다.

다음 표에는 다양한 바디 유형과 상호 작용 방식 및 사용 방법이 요약되어 있습니다:

바디상호작용허용되는 모양
StaticRigidBody움직이지 않음모든 도형
DynamicRigidBodyisKinematic true프로그래밍 방식으로 위치 지정. 동적 바디에 영향을 줍니다. 아무것도 멈추지 않음.모든 도형
DynamicRigidBody isKinematic false시뮬레이션으로 완벽하게 제어제한된 도형
CharacterController프로그래밍 방식으로 움직입니다. 동적 바디에 영향을 줍니다. 정적 바디에 의해 정지됨.단 하나의 CapsuleShape
TriggerBody없음모든 도형

물리 재질

PhysicsMaterial 유형은 객체가 다른 객체와 충돌할 때 동작하는 방식을 지정합니다. dynamicFrictionstaticFriction 속성은 물체의 미끄러움을 결정하고 restitution 속성은 물체의 탄력성을 결정합니다.

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