본문 바로가기

[언리얼5] 블루프린트를 이용하여 간단한 슈팅방 만들기 - 1

Kwonriver 2023. 1. 2.
728x90

[개요]

언리얼 5.1과 블루프린트를 이용하여 간단하게 물리 슈팅 게임을 만들어본다.

1장에서는 새로운 프로젝트를 생성하고 레벨에 각종 액터를 배치한다.

 

블루프린트를 이용하여 간단한 슈팅방 만들기 - 2

블루프린트를 이용하여 간단한 슈팅방 만들기 - 3


[프로젝트 생성]

언리얼 5.1을 실행하면 아래 사진처럼 언리얼4 보다 훨씬 깔끔해진 UI가 맞이해준다. 게임 이외의 기능들도 굉장히 강화되어 추가되었지만 게임을 목표로 하는 나에겐 큰 의미가 없으므로 [게임] - [기본] 을 선택하고 프로젝트 이름을 작성한다.

 

레벨 블루프린트를 이용하여 간단하게 만들 것이기 때문에 프로젝트 설정은 기본으로 한다.

(블루프린트, 타겟 플랫폼 데스크탑, 퀄리티 프리셋 맥시멈, 시작용 콘텐츠 포함, 레이트레이싱 안함)

더보기

* 참고로 언리얼 5에서 인텔 12세대 CPU를 사용하는 경우 E 코어에 작업이 몰리는 현상이 있다. 강제적으로 끄고 P 코어에 몰아줄 수 있다는데 이렇게 하는 경우 E 코어를 전혀 사용할 수 없어 인텔의 하이브리드 CPU 기능이 무의미해진다.

인텔 13세대 또한 하이브리드 코어를 사용하는데 언리얼 벤치마크 점수가 매우 높게 공개되었다. 다만 출시된지 얼마 안되어서 그런지 E코어에 대한 후기가 없다. 그렇다고 직접 사서 실험해보기엔 가격이 너무 비싸다..

 


[레벨 생성하기]

실행이 완료되면 위와 같은 화면이 나타난다. 스타트 콘텐츠를 포함하였기 때문인데, 이렇게 큰 빈 공간은 필요없으므로 새로운 맵을 만든다. 좌측 상단의 [파일] - [새 레벨] 을 클릭하고 베이직을 선택하고 생성한다.

 

 

Basic을 선택하고 생성하면 우리가 언리얼4에서 보던 이상한 의자는 없어지고 바닥만 존재한다. 어차피 딱히 필요없으므로 상관없다. 이 레벨을 저장한 다음 BSP 지오메트리를 이용하여 간단한 창고를 만들어준다.

 


[BSP 이용하여 맵 제작]

 

언리얼 좌측에 액터를 추가할 수 있는 액터 패치 패널이 있다. 기본으로 설정되어 있을텐데 지오메트리 버튼(오른쪽 3번째)을 클릭하여 변경한다. 박스를 선택한 다음 에디터 뷰포트에 그래그 앤 드랍하여 배치한다.

 

 

배치하고 나면 작은 정사각형 박스가 생성되는데 오른쪽에 있는 디테일 패널에서 [브러시 세팅] - [X] 를 변경하여 원하는 크기로 맞춘다. Y와 Z도 동일하게 변경한다. (4000, 4000, 800 으로 세팅했다.)

더보기

* 언리얼의 1유닛(unreal unit, uu)은 현실에서 1cm와 같다. 따라서 4000 으로 세팅한 X는 실제로는 4000cm 즉, 40m 이다.

 

이런 거대한 박스가 만들어졌다. 이 박스는 내부 공간이 비어있지 않기 때문에 맵으로 사용하기 위해서 내부를 뚫어줄 필요가 있다. 해당 박스를 ALT키를 누른 채로 이동(액터 복제)하거나 새로운 박스를 추가한다. 새로운 박스의 브러시 세팅에서 X, Y, Z를 조금씩 줄인다. ( 200씩 줄였다. )

 

브러시 세팅의 아래 쪽을 보면 브러시 타입이 존재한다. 기본으로 Addictive로 설정되어 있는데 이는 화면에 보이도록 추가한다는 의미이다. 월드에서 보이지 않도록 빼기 위해서는 해당 옵션을 Subtractive로 변경한다.

 

이렇게 맵 내부에 빈 공간을 만들었다. 동일한 방법을 이용하여 창문을 만들어준다. 

 

 

창문 수가 너무 많아져서 아웃라이너 패널에서 창문 개별개별을 관리하기가 힘들어졌다. 통합적으로 관리하기 위해 아웃라이너에 Windows라는 새로운 폴더를 생성하고 창문 역할을 하는 박스들을 모두 집어넣는다. 이러한 아웃라이너 관리는 추후 작업에 불필요한 부분의 Visible을 끄거나 잠시 치워놓는 등 그룹 단위 컨트롤이 가능해 편리하다.

 

이제 충돌을 원하는 다양한 액터를 맵에 배치한다. 시작용 콘텐츠에 존재하는 아무 스태틱 메시를 화면에 배치해보자. 콘텐츠 브라우저에 [Starter Content] - [Props] 폴더를 클릭하면 언리얼 4에서 보던 의자와 테이블이 존재한다. 원하는 것을 드래그 앤 드랍하여 화면에 배치한다.

 

 

이렇게 배치된 스태틱 메시는 물리 시뮬레이션이 되지 않는다. 플레이어는 투사체를 발사하여 해당 오브젝트를 맞춰 물리에 의해 날아가는 것을 볼 것이기 때문에 물리 시뮬레이션이 가능하도록 변경한다. 해당 의자를 선택한 뒤 디테일 패널에서 [피직스] - [Simulate Physics]를 체크한다. 의자를 원하는 만큼 무겁게도 만들 수 있다. 무거울수록 움직이게 하기 위해서 더 큰 힘이 필요하다.

 

의자 무게를 10톤으로 만들었다. 이를 움직이기 위해선 엄청난 힘이 필요하다

 

위 스태틱 메시는 언리얼에서 기본적으로 제공하는 메시이다. 다만 기본 제공되는 공용 메시라서 그런지 콜리전의 정확도가 높지 않다. 콘텐츠 브라우저에서 해당 메시를 더블 클릭하면 에셋 편집창이 나타난다. 

 

 

왼쪽 상단의 [표시] - [단순 콜리전]을 체크하면 이 메시의 간단한 콜리전이 초록색 선으로 나타난다. 한눈에 보아도 정확도가 떨어져보이는 모습이다.

 

 

좌측 상단의 [콜리전] - [콜리전 제거] 를 클릭하여 단순 콜리전을 제거한다.

 

 

그런 다음 새로운 콜리전을 추가한다. 기본적으로 제공하는 스피어, 캡슐, 박스, 10면체 X, Y, Z 등을 사용하여도 되지만 자동 컨벡스 콜리전 기능을 사용해본다. 

 

더보기

기본 제공되는 단순 콜리전들을 추가해보자. 하나의 메시에 여러 개의 콜리전을 추가하는 것도 가능하며 각각의 콜리전의 크기를 조절하여 최대한 메시와 비슷하게 만들 수 있다.

 

자동 컨벡스 콜리전을 클릭하면 오른쪽 디테일 패널 아래에 [컨텍스 분해]로 포커싱이 잡힌다. 디폴트 상태에서 적용을 누르면 생각보다 메시와 잘 맞는 콜리전이 생성되고 저장한다.

 

헐 갯수, 최대 헐 버텍스, 헐 정밀도를 높일수록 콜리전을 생성하는데 오랜 시간이 소요된다. 다만 높게 올리면 정확도는 늘어날 수 있지만 크게 의미가 없을 때도 있다. 콜리전이 복잡할수록 체크하는 오버헤드가 커지기 때문에 게임의 컨셉에 맞게 적절한 수준의 콜리전 생성이 중요하다.

 

과도하게 높게 만든 컨벡스 분해, 정확도가 높아져 메시와 굉장히 유사해졌지만 그 만큼 충돌체크에 대한 오버헤드가 커졌다.

 

뷰포트로 돌아와 뷰포트 왼쪽 상단에 있는 [표시] - [콜리전]을 활성화하면 위에서 생성한 콜리전이 추가되어 있는 것을 볼 수 있다.

 

 

이제 이러한 액터들을 무수히 많이 만들자. 그리고 실행하면 물리 시뮬레이션이 동작하는 모습을 볼 수 있다.

 

 

728x90