UE5

[언리얼5.3] 콜리전 세팅

jiwoonmin 2025. 3. 11. 19:03
 

UE5 콜리전 세팅

사용할 오브젝트의 콜리전을 세팅합니다. 인스턴스 오브젝트(액터)마다 적절한 콜리전 상태 설정을 통한 최적화를 진행합니다.

velog.io

목표

  • 사용할 오브젝트의 콜리전을 세팅합니다.
  • 인스턴스 오브젝트(액터)마다 적절한 콜리전 상태 설정을 통한 최적화를 진행합니다.
콜리전 세팅 체크리스트
헐 조정
사용하지 않는 인스턴스의 콜리전 꺼주기
참고 블로그 - 콜리전 셋업

 

#1 세팅할 애셋의 스태틱메시 에디터에서 콜리전 세팅

스태틱메시 에디터의 디테일 패널에서 콜리전 프리셋 하위 항목에 “Collision Complexity”(콜리전 복잡도)라는 항목이 있습니다.

언리얼에서 단순한 콜리전과 복합 콜리전 중 어떤것을 사용할 것인지 선택하는 것입니다. 심플 콜리전은 실제로 사용하기에 상당히 불편한 경우가 많기에 일단 “Use Simple Collision As Complex” 항목으로 변경해주었습니다. 말 그대로 단순 충돌을 복합 충돌로 사용한다는 옵션입니다.

에픽문서 - 단순 VS 복합 콜리전

스태틱메시 에디터의 뷰포트에서 간단 콜리전 뷰와 복합 콜리전 뷰 활성화 했을 때, 콜리전이 없다면 아무것도 뜨지 않습니다. 반대로 콜리전이 있다면 어떠한 형태든 일단 콜리전이라는게 보이게 됩니다.

 

복합콜리전 뷰로 확인되는 콜리전은 메시 데이타를 그대로 사용하는 콜리전 입니다. 예시와 같이 계단의 경우, 하나의 커다란 박스 형태의 콜리전이라면 계단을 모양대로 밟을 수 없을 것 이기 때문에 당장 플레이 테스트를 해서 계단을 밟아야 한다면 “Use Complex Collison As Simple” 항목을 선택해 복합 콜리전을 사용한다고 설정하는 것입니다.

 

하지만 최종적으로 메시 데이터 그대로를 콜리전으로 사용한다면 불필요하게 분할 된 부분들이 너무 많습니다. 불필요한 데이터는 최적화되야 할 필요가 있습니다.

예시와 같이, 콜리전 메시를 직접 만들거나 엔진에서 Auto로 생성하는 방법이 있습니다. Auto를 사용할 땐 저렴하면서 이쁘게 나올때 까지 계속 돌려보는것이 좋습니다.

해당 계단은 오토 컨벡스 콜리전 결과들이 마음에 들지 않았기에 Collision 하위메뉴의 Add에서 박스를 꺼내 직접 세팅해 주었습니다.

참고 블로그 - 콜리전 셋업에 대한 디테일한 방법

월드에서 본 콜리전 상태입니다.

1에서 2의 결과는 자동 컨벡스로 생성해준 콜리전을 사용하였고, 보이는것 보다 큼직하게 충돌처리 되어서 이상했던것의 콜리전이 세분화 되어 보이는 것 만큼 부딪힐 수 있게 변경되었습니다.
3에서 4처럼 될 수 있도록 스태틱 메시 에디터에서 콜리전 박스를 배치하는 작업을 했습니다. 불필요하게 많은 메시로 인해 세심한 충돌처리가 되겠지만, 계단의 메쉬를 제 6의 감각으로 핥아가며 플레이할 것이 아니기때문에 보이는 것 만큼만 부딪히는 느낌이 들도록 단순화하는 방향으로 최적화 하였습니다.

 

#2 레벨에서 사용할 필요가 없는 콜리전에 대하여 Off 설정

사용하지 않는 콜리전이 있습니다.

플레이어가 갈 수 없는 원경의 오브젝트라던가 멀지 않더라도 닿을 수 없는 공간에 있는 오브젝트들이 존재하기 마련입니다.
이런 액터들에 대해 개별적인 콜리전 on/off 세팅을 해줄 필요가 있습니다. 만약 콜리전의 사용 유무를 따지지 않고 콜리전이 완전히 필요 없는 오브젝트의 경우엔 콜리전 프리셋에서 콜리전 없음을 하는것 보다 이 오브젝트에 들어있는 콜리전 자체를 제거해주는것이 더 효과적이라고 합니다.

 

레벨에 인스턴스로 배치된 애셋(액터)를 선택 활성화 하고 디테일 패널의 콜리전 부분을 살펴봅니다.
차례대로 살펴보면 Can character step up on 항목이 있는데, 따로 의도하는 바가 없다면 굳이 건드릴 일은 없다고 합니다.

Collision Presets은 콜리전 사용 여부에 따라 프리셋을 적용해 주는 기능입니다.
굳이 확인은 안해봤지만 Default는 스태틱메시 에디터에서 설정해둔 값을 따르는것 같습니다. 해당 액터 스태틱 메시 에디터의 디폴트값은 블락올 이기 때문에 디폴트로 해두면 블락올과 같을 것 입니다.

*콜리전이 필요가없는 액터라고 판단되면 NoCollision으로 변경하면 됩니다.

참고 유튜브 - 1분 40초 부분