UnrealEngine

Unreal Egine) 콜리전 Collision

Cheddar 2024. 2. 21. 19:46

언리얼 엔진에서 물리적인 충돌이나 레이 케스팅같은 실시간 처리를 해준다. 이러한 콜리전 반응과 트레이스 반응 설정을 통해서  다른 오브젝트 유형과 어떻게 상호작용할지 정의할 수 있다.

 

Block, Overlap, Ignor

Block

블록은 충돌하는 두 오브젝트가 모두 블록이어야 두 오브젝트가 충돌했을 때, 겹치지 않고 서로 막히게 된다.

프로퍼티 중 Simulation Generates hit Event(시뮬레이션 중 히트 이벤트 생성)을 true로 설정하면 충돌이 발생했을 때 Event Hit을 받아서 블루프린트나 디스트럭터블 액터, 트러거 등에 사용할 수 있다.

예) 총알에 맞아서 깨지는 유리

 

Overlap

다른 오브젝트를 통과시키지만, 만약 Generate Overlap Event가 활성화된 상태라면 Overlap Event를 발생시킨다. 이 겹침 이벤트가 발생하려면 두 오브젝트 모두 겹침 이상으로 설정되어 있어야 한다. 만약 한 쪽은 겹침이고 다른 한 쪽이 무시인 상태라면 겹침 이벤트는 발생하지 않는다.

 

Ignor

모든 오브젝트와 트레이스를 통과시키며 어떠한 이벤트도 발생시키지 않는다.

 

Collision Enabled

Collision의 옵션에는 Collision Enabled라는 프로퍼티가 있다.

Collision Enabled 프로퍼티는 해당 액터 또는 컴포넌트에 대한 충돌 동작을 정의하는 데 사용된다. 이 프로퍼티는 충돌 시스템을 사용하여 액터 또는 컴포넌트가 다른 액터 또는 컴포넌트와 상호작용하는 방식을 결정한다. 주요 옵션은 4가지가 있다.

 

NoCollision

충돌이 비활성화된다. 해당 액터 또는 컴포넌트는 다른 액터 또는 컴포넌트와 충돌하지 않는다.

 

QueryOnly

해당 액터 또는 컴포넌트는 충돌을 감지하지만, 실제 충돌 반응은 없다. 따라서 통과할 수 있지만 충돌이 감지된다.

충돌 반응(물리적 시뮬레이션)은 없지만 플레이어와 같은 캐릭터가 통과하지 못한다.

QueryOnly상태에서 Simulate Physics파라메터를 true로 하면 모든 물체를 통과하지만 에러가 발생한다.

예) Laycasts, Sweeps(둘 물체가 겹치기(Overlap) 직전인지 감), Overlaps

 

PhysicsOnly

해당 액터 또는 컴포넌트는 물리적 충돌을 처리한다. 다른 액터 또는 컴포넌트와의 충돌이 발생하면 물리 시뮬레이션에 영향을 준다. Query에 반응 하지 않는다.

물리적  시뮬레이션이 가능하지만 플레이가 통과한다. 하지만 Simulate Physics파라메터를 true로 하면 통과하지못하고 물리적 시뮬레이션이 가능하게 된다.

 

CollisionEnabled

PhysicsOnly + QueryOnly

충돌이 활성화된다. 또한 해당 액터 또는 컴포넌트는 다른 액터 또는 컴포넌트와의 충돌을 처리하고, 충돌 시 반응할 수 있다. 처리 비용이 제일 비싸다.