본문 바로가기

Unreal/Udemy 강의

Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 2-17

충돌 메시

저번에 만들었던 선반에 이어 선반 및 바닥에 배럴을 추가해준다.

특히 바닥에 놓은 배럴은 배럴 위에 배럴을 쌓아 탑을 형성해준다.

이후 플레이를 해보면 선반에 있는 배럴과 배럴 탑이 모두 위로 튀어 오르는 것을 볼 수 있다.

 

이는 언리얼에서 충돌을 계산하는 방식 때문에 일어나는 문제이다.

먼저 와이어 프레임으로 보면 다음과 같이 복잡한 메시로 볼 수 있다.

 

 

이후 플레이어 콜리전으로 전환하면 다음과 같은 울퉁불퉁하여 충돌이 깔끔하게 일어날 것 같지 않은 메시를 볼 수 있다.

 

 

이를 고치기 위하여 우선 배럴 메시를 더블 클릭하면 해당 메시에 대한 에디터가 나온다.

여기서 콜리즌에 대한 수정이 가능하며, 우선 기존의 울퉁불퉁한 콜리전을 삭제해준다.

 

 

그리고 다음과 같이 10면체 Z 단순화 콜리전을 추가해주었다.

 

해당 콜리즌을 추가후 다시 플레이어 콜리전 화면으로 돌아오면 다음과 같이 Z축을 기준으로 깔끔하게 설정 된 것을 볼 수 있다.

 

이어서 배럴에 대한 추가적인 작업으로 배럴에 대한 블루프린트를 만들고, 작업할 모든 배럴에 대해 질량을 1000으로 갖게 하였다.

블루프린트 클래스를 만들 때는 통상적인 접두어로 BP를 붙여준다.

이후 컴포넌트 클래스 -> 디테일 탭에서 질량을 1000으로 수정 및 피직스 시뮬레이트를 활성화 해준다.

이제 앞으로 배럴 메시는 해당 블루프린트 클래스를 이용하여 뷰포트로 생성해준다.

 

이제 설정한 배럴을 마음껏 배치해주면 된다.

배럴을 다량으로 배치하게 되므로, 창문 때와 똑같이 아웃라이너에 배럴 전용 폴더를 만들어 넣어두는 것이 좋다.

 

배치할때 주의할 점이 있는데, 우선 선반에 놓는 경우이다.

선반에 놓는 경우는 배럴의 질량이 1000이기 때문에 선반의 질량이 너무 가벼우면 선반이 기우는 등 이상현상이 발생할 수 있다.

일부러 의도한 것이 아니라면 선반의 무게를 조절하여 배럴이 선반에 배치되더라도 큰 이상이 없도록 해주어야 한다.

 

다음으로 배럴의 Z축 간격이다.

배럴을 겹치게 둘 경우 예전만큼은 아니지만 여전히 위로 튀어오르는 현상이 발생할 수 있다.

이는 조금이라도 겹칠 경우 발생하며, 이에 따라 간격을 아주 살짝 벌려놓을 필요가 있다.

나 같은 경우는 배럴의 Z 길이가 근사치로 91인 것을 배럴 메시 에디터에서 확인이 가능했으므로, 바로 위의 배럴의 Z축은 앞선 배럴의 Z축 값 + (91+1)를 해주었다.

아주 가까이서 보면 벌어진 티가 조금 나지만, 조금 거리를 두면 체감하지 못한다.

간단하게 하기 위해 91에 + 1을 한 92을 더 해주었지만, 소숫점을 이용한 값조절도 가능했다.