본문으로 건너뛰기

© 2026 Molayo

YouTube요약2026. 06. 15. 10:28

Unity 충돌 치트 시트 – 이산(Discrete) vs 연속(Continuous)

요약

Unity 엔진에서 사용되는 네 가지 충돌 감지(Collision Detection) 방식의 특징과 차이점을 설명합니다. 각 방식의 계산 비용, 터널링 현상, 고스트 충돌 문제 등 장단점을 비교하여 상황에 맞는 최적의 선택 방법을 제안합니다.

핵심 포인트

  • 이산(Discrete) 방식은 비용이 가장 저렴하지만 터널링 현상이 발생할 수 있음
  • 연속(Continuous) 모드는 고속 물체의 충돌을 보장하지만 계산 비용이 높음
  • 연속 동적(Continuous Dynamic)은 고속 오브젝트 간의 정밀한 충돌에 사용
  • 연속 추측(Speculative) 방식은 회전하는 물체에 효과적이며 비용이 상대적으로 낮음
  • 추측 방식은 예측 기반 알고리즘 특성상 고스트 충돌이 발생할 수 있음

비디오: Unity 충돌 치트 시트 – 이산(Discrete) vs 연속(Continuous)
채널: Tarodev
재생 시간: 2분 44초
출처: 자막 (자동 생성, 영어)

전사(Transcript):
충돌 감지(Collision detection)에 있어서 여러분에게는 네 가지 선택지가 있습니다. 하지만 그것들이 정확히 무엇을 의미할까요? 제가 알려드리겠습니다.

이산(Discrete) 방식은 기본값이며, 계산 비용(computationally) 측면에서 단연 가장 저렴합니다. 이 방식은 각 물리 단계(physics step)마다 충돌 여부를 확인하는 방식으로 작동합니다. 이 기술의 단점은 빠르게 움직이는 물체가 단계 사이에서 물체를 뚫고 지나가는 터널링(tunneling) 현상이 발생하여 충돌을 완전히 놓칠 수 있다는 점입니다.

한 가지 옵션은 물리 계산 사이의 시간 간격을 줄이는 것입니다. 예를 들어, 고정 시간 단계(fixed time step)를 0.02에서 0.01로 낮추면 주어진 시간 동안 계산량이 두 배로 늘어납니다. 이는 성능을 희생하면서 이산 방식의 충돌을 개선하지만, 일반적으로 좋은 방법은 아닙니다.

연속(Continuous) 모드는 엄청난 속도에서도 충돌을 보장합니다. 이 방식은 다음 프레임의 예상 지점까지 콜라이더 경계(collider bounds)를 선형적으로 훑는 스위핑(sweeping) 방식을 사용하여, 마치 박스 캐스트(box cast)처럼 작동함으로써 이를 달성합니다. 만약 중간에 콜라이더를 만나면 그것을 충돌 지점(impact Point)으로 사용합니다. 단점이 없는 것은 아닙니다. 이 모드는 비용이 상당히 많이 들며, 정적(static) 오브젝트하고만 충돌합니다. 여기서 정적이라는 것은 단순히 리지드바디(Rigid Body)가 부착되지 않은 오브젝트를 의미합니다. 만약 리지드바디가 있는 오브젝트도 대상으로 삼고 싶다면, 연속 동적(Continuous Dynamic) 모드를 찾아보아야 합니다.

연속 동적(Continuous Dynamic)은 단연 가장 비용이 많이 드는 충돌 모드이며, 여러 개의 고속 오브젝트 사이의 정확한 충돌이 필요한 경우에만 사용해야 합니다. 예를 들어 서로 마주 보고 날아오는 두 개의 투사체 같은 경우입니다.

이 두 가지 연속 모드는 각속도(angular velocity)가 개입될 때 한계가 있습니다. 선형 스위핑(linear sweeping) 알고리즘이 회전하는 오브젝트에는 적용되지 않기 때문입니다. 이럴 때 선택해야 하는 것이 연속 추측(Continuous Speculative) 모드입니다. 간단히 말해, 추측(speculative) 방식은 현재 오브젝트와 선형 및 각운동(linear and angular motion)에 따른 예측된 미래 위치를 감싸는 경계 상자(bounding box)를 그려서 계산됩니다. 상자 안에 포착된 모든 접촉 지점(contact points)이 계산에 입력되어 모든 제약 조건(constraints)이 충족되도록 보장합니다. 추측 방식은 또한 작동합니다.

정적(static) 및 동적(dynamic) 콜라이더(colliders) 모두에 적용되며, 다른 연속(continuous) 대안들보다 비용이 상당히 저렴합니다. 매우 훌륭하게 들리지만, 이 방식 또한 고유한 단점이 있습니다. 가장 눈에 띄는 것은 고스트 충돌(ghost collisions)입니다. 너무 빠르게 움직이는 두 물체가 서로 닿지 않았음에도 충돌하는 것처럼 보일 수 있습니다. 이는 물체의 현재 움직임에 기반한 알고리즘의 예측적 특성(predictive nature) 때문입니다.

여기 유용한 치트 시트(cheat sheet)가 있습니다:
가능하다면 이산(discrete) 방식을 사용하세요. 만약 물체 터널링(tunneling) 현상이 발생하거나 물체의 각속도(angular motion)가 빠르다면, 추측(speculative) 방식을 시도해 보세요. 단점이 있긴 하지만, 고스트 충돌이 문제이거나 여전히 터널링이 관찰된다면 그다음으로 저렴한 옵션입니다. 만약 고스트 충돌이 문제라면 연속(continuous) 방식으로 전환하세요. 마지막으로, 여러 개의 빠른 동적(dynamic) 물체들이 충돌해야 한다면 연속 동적(continuous dynamic) 방식을 사용하되, 한 번에 씬(scene)에 존재하는 해당 물체의 수를 제한하도록 노력하세요.

AI 자동 생성 콘텐츠

본 콘텐츠는 YouTube Tarodev (Unity 팁)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0