(Unreal Engine) 콜리션과 충돌이벤트

*콜리션은 (스태틱 메시 에디터)에서 설정한다.


1. 콜리전 프리셋

충돌이나 겹침은 여러 종류의 액터 사이에서 발생한다. 콜리전 프리셋은 충돌이나 겹침이 발생할 때 어떤 반응을 할 것인지를 미리 정해 둔 것이다. 콜리전 프리셋은 충돌이나 겹침이 발생할 수 있는 액터에만 설정할 수 있으며, 씬에 설치된 액터를 선택하면 디테일 패널에서 설정할 수 있다.


콜리전 프리셋에 BlockAllDynamic, OverlapAllDynamic과 같이 뒤에 Dynamic이 붙은 것은 초기의 접촉상태는 무시하고 액터가 이동한 이후부터 접촉하는 것만 충돌로 처리하는 옵션이다.

Overlap이벤트는 BeginOverlap(접촉 시작)과 EndOverlap(접촉 끝)에 대해서만 한번씩 이벤트가 발생하며, 접촉이 진행 중인 상태에서는 이벤트가 추가로 발생하지 않는다.
또한, 고속으로 이동하는 작은 물체는 Block으로 설정되어 있더라도 종종 Overlap이벤트가 발생하기도 하므로, 보다 정확하게 판정하려면 Overlap이벤트를 사용하는 것이 효과적일 수도 있다.



2. 콜리전 반응과 충돌이벤트

콜리전이 겹칠때 반응은 Block(막음), Overlap(통과), Ignore(무시) 가 있다. Block은 벽에 부딪치는 공과 같이 공이 지나가지 못하도록 벽이 가로막는 상태이며, Overlap은 총알이 사과와 충돌하는 경우 총알이 사과를 뚫고 지나가도록 통과를 허용하는 상태이다. 콜리전의 반응을 무시로 설정하면 충돌 이벤트가 발생하지 않는다.

*종류

Block+Block   Hit이벤트
Block+Overlap   Overlap이벤트
Overlap+Overlap   Overlap이벤트
Block+Ignore        이벤트 없음
Overlap+Ignore     이벤트 없음

--->충돌을 하려면 양쪽 모두 Simulation Generates Hit Events 나 Generate Overlap Events속성이 설정 되어 있어야 한다.


3. 충돌의 물리반응

콜리전이 Block으로 설정된 두 액터가 충돌할 때 물리적인 계산을 하는지의 여부에 따라 관통과 반사라는 현상이 나타난다. 물리적인 계산을 하지 않는 경우에는 Hit이벤트 발생여부와 상관없이 물체를 관통한다.

물리적인 계산 여부는 액터의 Simulate Physics속성으로 설정하는데, 액터의 충돌에 따른 반사여부는 다음과같다.
콜리전이 Block으로 설정된 총알과 역시 콜리전이 Block으로 설정된 상자가 충돌하는 예이이다.


댓글

이 블로그의 인기 게시물

(네트워크)폴링방식 vs 롱 폴링방식

(ElasticSearch) 결과에서 순서 정렬

(18장) WebSocekt과 STOMP를 사용하여 메시징하기