인트로
이번 장에서는 게임 배경과 외부 모델링을 적용시켜 보도록 하겠다.
배경 적용
우주 배경을 적용하기 위해 적절한 우주 배경 이미지를 하나 다운로드하여서 프로젝트에 임포트 해준다. 임포트 한 파일은 이미지이기 때문에 3D 모델링에 부착할 머티리얼로 만들어 줘야 한다. 머티리얼을 하나 새로 생성해 준 뒤 이미지를 끌어와서 연결해 준다.

최종적인 배경 머티리얼 창의 모습은 위의 사진과 같은 화면인데 플레이어가 앞으로 날아가는 효과를 내기 위해서 배경을 아래쪽으로 내리기 위해 [Panner] 노드를 추가한 후 Speed Y 값을 -0.1로 지정해 주었다. 이렇게 하면 배경 이미지가 아래로 스크롤되는 효과를 낼 수 있다.
아래는 배경 적용 후 게임 플레이 화면이다.

외부 모델링
이번에는 플레이어와 적에게 모델링을 적용시켜 보겠다. 큐브 형태에서 진짜 우주선과 적 외계 생명체 같이 모델링을 입히는 것이다.
외부 파일 임포트
모델링을 하기 위해서는 3D모델링 파일이 필요하다. 필자는 현재 공부 중인 교재에서 모델링 파일을 제공해 주었기 때문에 모델링 파일을 다운로드하여서 임포트 하였다.

머티리얼 설정
머티리얼에 아무것도 적용이 되어있지 않으므로 텍스처 파일을 머티리얼에 연결시켜 주도록 하겠다. Base Color는 기본적인 색상으로서 해당 액터가 외부의 빛을 받았을 때 빛의 세기나 각도에 따라 밝아지거나 어두워질 수 있다는 점에서 Emissive와는 다르다. Emissive는 액터 고유의 컬러로서 빛의 영향을 받지 않는다. Normal은 입체감이 있는 것처럼 보이게 하는 역할이다. Occlusion은 주변 물체들에 가려지면서 생기는 틈새 그림자 표현으로 생각하면 된다. 텍스처는 미리 준비되어 있으므로 이름에 맞게 연결만 해주면 된다.

스태틱 메시 교체
다음으로는 플레이어의 큐브 메시에 방금 설정한 머티리얼을 적용해 볼 것이다. BP_Player 블루 프린트로 들어가서 큐브 메시를 선택한 후 오른쪽 디테일 창에서 메시와 머티리얼을 넣어준다.

크기와 각도도 알맞게 변경해 준다.

다음으로는 적 머티리얼도 위와 같이 동일하게 설정해 주고 BP_Enemy 블루프린트를 들어가 동일하게 변경해 준다.


적 회전 기능 추가
적이 플레이어 방향으로 올 때 회전하도록 코드를 추가하겠다. BP_Enemy의 이벤트 그래프에서 플레이어를 향한 방향벡터를 계산했던 부분으로 가서 [Set Direction] 노드에서 핀을 추가하여 [Make Rot from XZ] 노드를 추가한 후 연결해준다. [Make Rot from XZ] 노드는 입력받은 방향 벡터를 이용해서 그 방향으로 회전될 수 있는 회전 값을 출력 핀으로 반환한다. XZ를 선택한 이유는 우리의 카메라는 위에서 보는 것으로 고정되어 있기 때문에 Up 방향벡터가 고정되어 있어야 하기 때문이다. [Make Rot from XZ] 노드의 Z입력 핀에는 [Get Actor Up Vector] 노드를 연결해 준다. 마지막으로 [Set Actor Rotation] 노드를 생성하고 New Rotation 입력 핀을 연결해준다.

아래는 게임 실행 화면이다. 이제야 뭔가 게임 같은 느낌이 조금 나는 것 같다.

아웃트로
이번 장에서는 게임의 배경을 좀 더 실감 나게 구현하고, 플레이어와 적에게 모델링을 입혔다. 그런데 중요한 요소인 게임 UI가 아직 구현이 되지 않은 모습이다. 다음 장에서는 게임 점수 및 게임 오버 화면 등 게임에 UI를 추가해 보도록 하겠다.
'개발 > Unreal' 카테고리의 다른 글
[Unreal] 월드 안에 이름을 포함한 액터 모두 찾기 (0) | 2023.04.11 |
---|---|
[Unreal] 자습서 7장 - 블루프린트로 슈팅게임 만들기(4) (2) | 2023.03.30 |
[Unreal] 자습서 5장 - 블루프린트로 슈팅게임 만들기(2) (7) | 2023.03.22 |
[Unreal] 자습서 4장 - 블루프린트로 슈팅게임 만들기(1) (2) | 2023.03.20 |
[Unreal] 자습서 3장 - 제어문(Blueprint) (0) | 2023.03.17 |