오픈위키||지침

게임 컴퓨터 의학

문서 편집

캡슐 콜라이더

Capsule Collider는 두 개의 반원구가 하나의 원기둥으로 합쳐져 만들어졌습니다. 이것은 캡슐 프리미티브와 같은 모양입니다.


캡슐 콜라이더 더미

속성

Material충돌체가 서로 어떻게 상호작용 하는지 결정하는 Physic Material에 대한 참고 자료.
Is Trigger 만일 활성화 되면, 이 충돌체(Collider)는 트리거 이벤트로 사용되고, 물리엔진(physics engine)은 무시할 것 입니다.
Radius 콜라이더의 로컬 폭의 반경.
Height 콜라이더의 총 높이.
Direction 오브젝트의 지역공간에서 캡슐의 세로방향의 축.
Center 오브젝트의 지역 공간에서 콜라이더의 위치.

상세사항

사용자는 캡슐 콜라이더의 반지름(Radius)높이(Height)를 상호 독립적으로 각각 조절할 수 있습니다. 이것은 Character Controller에서 사용 되어 기둥에 잘 작동하거나, 혹은 다른 콜라이더와 합쳐서 비전형적인 모양을 만들 수도 있습니다.

표준 캡슐 콜라이더

충돌체(Colliders)는 리지드바디(Rigidbodies)와 함께 Unity에서 물리를 재현하기 위해 작동합니다. 리지드바디는 오브젝트가 물리력에 지배하에 있게 하는 반면, 충돌체는 오브젝트가 서로 충돌할 수 있게 해 줍니다. 충돌체는 리지드바디와는 별도로 오브젝트에 추가되어야 합니다. 충돌체에 리지드바디가 반드시 부착되어야 하는 것은 아니지만, 해당 오브젝트가 충돌의 결과로써 움직이려면 _반드시_ 리지드바디가 부착되어야 합니다.

두 충돌체 사이에 충돌이 발생하고 그 중 적어도 하나에 리지드바디가 부착되어 있다면, 거기에 부착된 오브젝트에 3개의 충돌 메시지세 개의 충돌 메시지 가 전송됩니다. 이러한 이벤트들은 스크립트에서 처리할 수 있고, 사용자가 내장 NVIDIA PhysX을 가지고 있거나 가지고 있지 않을 경우 각각 고유한 작동을 생성할 수 있게 해 줍니다.

충돌체를 사용하는 또 다른 방법은 트리거(Trigger), 로 표시하는 것이며, 이는 그저 인스펙터에서 IsTrigger 속성 체크상자를 체크하면 됩니다. 트리거(Triggers)는 물리 엔진이 효과적으로 무시하고, 트리거와 함께 충돌이 발생하면 고유한 세트의 3개의 충돌메시지 (three trigger messages)을 전송합니다. 트리거는 사용자 게임에서 cutscenes, 자동 문 개방, 안내 메시지 표시 등의 다른 이벤트를 트리거 하는 데 유용하다. 당신의 상상력을 발휘해 보길 바랍니다.

두 개의 트리거(Triggers)가 충돌 시 트리거 이벤트를 전송하려면, 그 중 하나는 역시 리지드바디(Rigidbody)를 포함하여야 함을 주지하기 바랍니다. 트리거가 일반 충돌체와 충돌하려면, 그 중 하나에는 리지드바디가 부착되어야 합니다. 여러 다른 타입의 충돌에 대한 자세한 표를 보려면, 아래 고급(Advanced) 단원에 충돌 동작표를 참조합니다.

마찰과 탄성(Friction and bounciness)

마찰, 탄성, 부드러움은 Physic Material정되어 있습니다. Standard Assets 은 가장 공통적은 물리 재질(material)을 포함합니다. 그 중 하나를 사용하려면 Physic Material 드롭 다운을 클릭하여 Ice와 같은 것을 하나 선택합니다. 사용자는 자신만의 물리 재질을 create 하거나 모든 마찰 값을 조정할 수 있습니다.

복합 콜라이더

복합 충돌체(Compound Colliders)는 기본(primitive) 충돌체의 조합으로, 합쳐서 하나의 단독 충돌체로써 동작합니다. 이는 사용자가 충돌에서 복잡한 메쉬(mesh)를 사용하고 싶으나 Mesh Collider을 사용할 수 없을 때 유용합니다. 복합 충돌체를 생성하려면, 사용자의 충돌하는 오브젝트에 자식(child) 오브젝트를 생성하고, 그리고 각 자식 오브젝트에 기본 충돌체를 추가합니다. 이렇게 하면 각 충돌체를 다른 것과 독립하여 위치, 회전 및 확장할 수 있습니다.


현실 세계의 복합 충돌체(Compound Collider) 설치

위 그림에서, 환경에 메쉬 충돌체(Mesh Collider)가 부착되어 있습니다. 메쉬 충돌체는 지형(terrain)이나 불규칙적인 모양으로 된 주변환경 메쉬에 최적입니다. gun_model 게임오브젝트(GameObject)에는 리지드바디(Rigidbody)와 여러 기본 충돌체가 게임오브젝트의 자식으로 부착되어 있습니다. 이 기본 충돌체는 환경의 메쉬 충돌체와 충돌하고, 부모 리지드바디는 여기에 적용된 힘과 자식 충돌체가 다른 충돌체와 씬(Scene)에서 상호작용하는 방법을 바탕으로 이들이 움직이는 방식을 변경합니다.

메쉬 충돌체(Mesh Colliders)는 일반적으로 서로 충돌하지 않습니다. 만일 메쉬 충돌체가 Convex로 표시되어 있다면, 그러면 이는 다른 메쉬 충돌체와 충돌합니다. 일반적인 해결책은 움직이는 모든 오브젝트에 대한 기본 충돌체를 사용하고, 정적이 배경 오브젝트에는 메쉬 충돌체를 사용합니다.

Hints

오브젝트에 여러 개의 충돌체(Colliders)를 추가하려면, 자식 게임오브젝트(GameObjects)을 생성하고 그 각자에 충돌체를 부착합니다. 이렇게 하면 각 충돌체(Collider)을 독립적으로 조종할 수 있습니다.

  • 충돌체가 사용자의 오브젝트 상에서 어떻게 계산되지는 지를 보려면 사용자는 Scene View 에서 기즈모(gizmo)을 보면 됩니다.
  • 충돌체는 오브젝트의 규모에 최대한 맞추려고 합니다. 사용자가 일정하지 않은 규모를 가졌다면(각 방향으로 다른 규모), 메쉬 충돌체(Mesh Collider)만이 완전히 이를 맞출 수 있습니다.
  • 사용자가 오브젝트를 트랜스폼(Transform) 컴포넌트 사이로 움직이지만 메시지를 충돌/트리거 메시지를 수신하고 싶다면, 사용자는 움직이는 오브젝트에 리지드바디(Rigidbody)를 부착하여야 합니다.

충돌체의(Collider) 조합

Unity에서는 수많은 조합의 충돌이 발생 할 수 있습니다. 각 게임은 독특하여, 다양한 조합은 다른 타입의 게임에 대하여 더 잘 수행할 수 있을 것입니다. 만일 사용자가 게임에서 물리학을 사용하는 경우에는, 다른 기본 충돌체(Collider)의 종류, 그들의 일반적인 용도와 그들이 다른 타입의 오브젝트와 상호작용하는 방법을 이해하는 데 매우 도움이 될 것 입니다.

정적 충돌체(Static Collider)

리지드바디가 _부착되지 않았으나_ 충돌체가 _부착된_ 게임오브젝트(GameObjects)가 있습니다. 이러한 오브젝트는 가만이 있거나 아주 조금만 움직일 수 있습니다. 이는 주변환경 기하구조(geometry)에는 매우 잘 맞습니다. 리지드바디가 이들과 부딪혀도 움직이지 않을 것 입니다.

리지드바디 충돌체(Rigidbody Collider)

이 게임오브젝트(GameObjects)는 리지드바디와 충돌체를 모두 포함하니다. 이들은 스크립트 된 힘과 충돌을 통해 물리학 엔진에 완벽하게 영향을 받습니다. 이들은 충돌체를 포함하는 게임 오브젝트와 충돌할 수 있습니다. 이는 물리학을 사용하는 게임에서 사용자의 기본 충돌체 타입이 될 것 입니다.

키너매틱 리지드바디 충돌체(Kinematic Rigidbody Collider)

이 GameObject는 충돌체와 리지드바디를 포함하고 IsKinematic이라고 표시되어 있습니다. 이 게임오브젝트를 움직이려면, 사용자는 힘을 적용하기 보다는 그것의 Transform을 변경합니다. 이는 정적 충돌체(Static Colliders)와 비슷하지만 충돌체를 더 자주 움직이기를 원할 경우 더 작 동작합니다. 이 게임오브젝트를 사용하는 다른 몇몇 특화된 시나리오가 있습니다.

이 오브젝트는 사용자가 일반적으로 정적 충돌체(Static Collider)로 하여금 트리거 이벤트를 보내려 하는 경우에 사용할 수 있습니다. 트리거(Trigger)는 리지드바디가 부착되어 있으므로, 사용자는 리지드바디를 추가한 후, IsKinematic을 활성화 합니다. 이렇게 하면 사용자의 오브젝트가 물리 영향으로 움직이는 것을 방지하고, 원할 때 트리거 이벤트를 수신할 수 있게 해 줍니다.

키너매틱 리지드바디(Kinematic Rigidbodies)는 손쉽게 활성화 하거나 비활성화 할 수 있습니다. 이는 랙돌(ragdolls)을 생성하기에 좋으며, 사용자가 일반적으로 캐릭터가 애니매이션을 따르기를 원하여, 폭발 또는 사용자가 선택한 어떤 것에 의하여 충돌이 발생할 때 랙돌(ragdoll)로 변합니다. 이것이 발생하면, 스크립트를 통하여 단순히 사용자의 모든 키너매틱 리지드바디를 일반 리지드바디로 변화하도록 합니다.

만일 사용자가 일정시간 리지드바디를 쉬게 하고 당분간 움직이지 않으며, 그들은 "수면상태"가 됩니다. 즉, 이들은 아무데도 움직이지 않을 것이므로, 물리 업데이트(physics update) 동안 계산되지 않게 됩니다. 만일 키너매틱 리지드바디(Kinematic Rigidbodies)를 그 위에 쉬고 있는 일반 리지드바디의 아래에서 움직이면, 수면상태인 그 리지드바디는 "깨어나고" 다시 물리 업데이트에서 정확하게 계산됩니다. 그리므로 사용자가 주변으로 움직이고 싶은 정적 충돌체가(Static Colliders) 많이 있으며 여러 오브젝트에 이에 정확하게 떨어지면, 키너매틱 리지드바디 충돌체를 사용하기 바랍니다.

충돌 동작 표

충돌하는 두 오브젝트(Objects)의 설정에 따라, 여러 개의 다른 동작이 발생할 수 있습니다. 아래 표는 두 충돌하는 오브젝트에서 사용자가 예상할 수 있는 것의 그에 부착된 컴포넌트에 따라 개요를 담고 있습니다. 이 조합의 일부는 두 오브젝트 중 하나만 충돌에 영향을 받도록 할 것입니다. 그러므로, 물리학은 리지드바디가 부착되지 않은 오브젝트에는 적용되지 않는다는 표준 규칙을 항상 기억하기 바랍니다.

_ 충돌 감지 발생 및 충돌 시 메시지 전송됨_
Static Collider Rigidbody Collider Kinematic << Rigidbody Collider Static << Trigger Collider Rigidbody << Trigger Collider Kinematic Rigidbody << Trigger Collider
Static Collider Y
Rigidbody Collider Y Y Y
Kinematic Rigidbody Collider Y
Static Trigger Collider
Rigidbody Trigger Collider
Kinematic Rigidbody Trigger Collider
_ 충돌 시 메시지가 전송됨_
Static Collider Rigidbody Collider Kinematic << Rigidbody Collider Static << Trigger Collider Rigidbody << Trigger Collider Kinematic Rigidbody << Trigger Collider
Static Collider Y Y
Rigidbody Collider Y Y Y
Kinematic Rigidbody Collider Y Y Y
Static Trigger Collider Y Y Y Y
Rigidbody Trigger Collider Y Y Y Y Y Y
Kinematic Rigidbody Trigger Collider Y Y Y Y Y Y

계층 기반(Layer-based) 충돌 감지

LayerBasedCollision

Unity 3.x에서, Layer-Based Collision Detection라는 것을 도입하였습니다. 이로 인해 이제 사용자는 Unity 게임오브젝트에게 그들이 부착된 특정 계층(layers)와 충돌할 것을 선별적으로 지시할 수 있습니다. 더 자세한 정보를 보고자 한다면, 여기 를 클릭하기 바랍니다.

연결문서

CC Attribution-Noncommercial-Share Alike 4.0 International 별도로 명시하지 않을 경우, 이 위키의 내용은 다음 라이선스에 따라 사용할 수 있습니다: CC Attribution-Noncommercial-Share Alike 4.0 International
1.4 KB unity/class-capsulecollider.txt · 마지막으로 수정됨 2015/08/23 18:26 (바깥 편집)

0.098 seconds in processing this page on this powerful server.