WWolves Den

게임플레이 · 약 3분

Query·Physics·Block·Overlap을 구분하기

캐릭터 캡슐과 물리 시뮬레이션 큐브를 비교해 충돌 설정의 서로 다른 축을 이해합니다.

Wolfgadeok · 업데이트

충돌 참여 방식과 반응 방식은 다르다

Collision Enabled는 해당 컴포넌트가 공간 질의와 물리 시뮬레이션 중 어디에 참여할지 정합니다. Query Only는 레이·스윕·겹침 같은 질의에 참여하고 Physics Only는 시뮬레이션 쪽에 참여합니다. Query and Physics는 두 용도를 포함합니다. 이 설정과 별도로 Object Type 및 채널별 Ignore·Overlap·Block 응답을 정합니다. Pawn은 이런 값들을 묶어 놓은 Preset 이름이지 Enabled 모드의 한 값이 아닙니다.

Query Only에서도 Block 응답은 의미가 있습니다. CharacterMovement는 캡슐 이동 과정의 질의를 통해 벽이나 바닥을 판단할 수 있으므로 물리 시뮬레이션을 켜지 않아도 벽을 통과하지 않습니다. 반대로 무게와 힘에 따라 튀는 큐브는 Simulate Physics와 적합한 물리 충돌을 필요로 합니다. Block이라는 단어만 보고 물리 시뮬레이션 전용으로 이해하면 두 사례가 모순처럼 보입니다.

Collision Enabled, Object Type, 채널별 Ignore·Overlap·Block 응답을 함께 보여주는 충돌 설정
예제의 Pawn Preset을 펼친 화면입니다. 충돌 참여 모드, 자신의 Object Type, 상대 채널에 대한 응답은 서로 다른 설정이므로 각각 확인합니다. 이전 버전의 에디터 화면으로, 현재 버전과 메뉴 배치가 다를 수 있습니다. 이미지를 누르면 크게 볼 수 있습니다.

캐릭터의 캡슐과 메시를 따로 보기

Character에는 이동을 대표하는 캡슐과 시각적 형상을 가진 Skeletal Mesh가 함께 있습니다. Mesh의 Physics Asset은 신체 부위별 바디와 제약 등을 제공하지만, 설정만 있다는 이유로 평상시의 모든 바디가 캐릭터 이동을 대신하는 것은 아닙니다. 충돌 표시를 켜면 캡슐과 신체 바디를 비교하며 각 컴포넌트의 역할을 확인할 수 있습니다.

바닥을 뚫는 문제를 찾을 때에는 먼저 움직이는 컴포넌트가 무엇인지, 실제 Object Type과 쌍방 응답이 무엇인지 확인합니다. 바닥이 항상 WorldStatic 또는 WorldDynamic이라고 추정하지 않습니다. Query가 필요한 이동체를 Physics Only로 바꾸거나, 바닥 응답을 Overlap으로 바꾸면 기존 이동 정책과 맞지 않을 수 있습니다. 렌더링 메시가 보이는 것과 충돌 형상이 있는 것도 별개입니다.

두 캐릭터에서 이동용 캡슐과 신체 부위별 충돌 바디를 함께 표시한 화면
충돌 표시를 켜면 캐릭터를 감싸는 캡슐과 신체 부위별 바디를 구분할 수 있습니다. 형상이 표시된다는 사실만으로 모든 바디가 이동 충돌이나 물리 시뮬레이션을 담당하는 것은 아닙니다. 이전 버전의 에디터 화면으로, 현재 버전과 메뉴 배치가 다를 수 있습니다. 이미지를 누르면 크게 볼 수 있습니다.

이벤트는 별도 조건을 확인하기

Overlap 응답만 선택했다고 BeginOverlap 이벤트가 반드시 발생하는 것은 아닙니다. 양쪽 컴포넌트의 Generate Overlap Events와 실제 응답 조합을 확인합니다. Trace가 맞았다는 사실과 Overlap 이벤트가 발생했다는 사실도 같은 검사가 아닙니다. 먼저 작은 테스트 맵에서 큐브·바닥·캡슐만 사용해 설정 하나씩 바꾸면 문제를 재현하기 쉽습니다.

  1. 움직이는 컴포넌트의 Enabled 모드와 Object Type을 기록합니다.
  2. 양쪽 채널 응답과 필요 이벤트 옵션을 확인합니다.
  3. show collision로 시각 메시와 충돌 형상을 비교합니다.
  4. 캐릭터 이동·물리 큐브·감지 트리거를 각각 다른 시험으로 확인합니다.

참고 자료