Unreal 간단한 공포게임 만들기(1)

민트맛치킨·2025년 5월 13일

Unreal

목록 보기
8/26
강의를 다 들었으니 강의내용을 복습하면서 간단한 공포게임을 만들어 보자.

오늘은 귀신을 만들어 보고 움직이게 하려고 한다.

스켈레탈 메시 만들기

Fab에서 귀신이나 몬스터를 그대로 가져와서 써도 되지만 이번에는 AI를 이용하여 3D 모델을 만들어볼 계획이다.
https://github.com/microsoft/TRELLIS
마이크로소프트에서 만든 TRELLIS라는 Image to 3D Model을 사용하였다.
최근에 나온 TripoSG https://huggingface.co/spaces/VAST-AI/TripoSG 를 써볼까 하다가 이미 로컬에 세팅되어 있는 TRELLIS를 사용했다.

이런식으로 원하는 2D 이미지를 넣으면 Texture를 입힌 3D model까지 GLB로 받을 수 있다.

다운로드한 GLB파일은 Blender 프로그램을 이용하여 수정한다.

얼굴 퀄리티가 약간 아쉽긴하지만 생각보다 기괴하게 잘 만들어졌다.
지우거나 수정할 부분을 잘 수정하고 FBX 파일로 저장한 다음에 다시 불러오고
Blender의 Rigify를 이용해 아마추어를 만들어 보도록 하자.


이 상태에서 각 뼈의 위치를 체형에 맞게 조정한다.
그 다음에 메시와 아마추어를 합친 상태로 FBX를 저장한다.

https://www.mixamo.com/
mixamo에서 방금 만든 FBX 파일을 업로드 하면 이 사이트에서 제공되는 애니메이션들을 다운로드 받아 언리얼 프로젝트에서 애니메이션 시퀀스로 사용할 수 있다.

귀신 애니메이션 만들기

이제 스켈레탈 메시와 애니메이션이 만들어졌으니 플레이어를 발견하면 따라오는 AI를 만들어보자.

먼저 언리얼 프로젝트에서 맨 처음 GLB 파일을 임포트한 후에 Texture 파일만 남겨두고 제거하도록 하자.
그 다음에 아마추어가 합쳐진 FBX 파일을 임포트하면 스켈레탈메시, 피직스에셋, 스켈레톤, 머티리얼과 텍스처가 임포트된다.
여기에 있는 텍스처를 지우고 GLB에 있던 텍스처 파일로 교체해야한다.

머티리얼 그래프로 들어가서 기존에 연결되어있던 것을 지우고 Texture파일을 그래프로 끌어온 후에 베이스 컬러로 연결한다. 이후에 Ctrl + 1로 값을 생성한 후에 메탈릭, 스페큘러, 러프니스에 연결해주면 완성이다.


그리고 mixamo에서 만든 Idle과 Walk 애니메이션 시퀀스를 캐릭터 이동속도 Speed를 기준으로 블렌드 스페이스를 만들었다.
그리고 애니메이션 블루프린트로 스테이트 머신에 블렌드 스페이스를 연결하고 Speed를 받아와 속도에 따라 변하는 애니메이션 구조를 만들어준다.

귀신 AI 만들기

이제 귀신 메시와 애니메이션을 만들었으니 AI만 만들면 완성이다.


강의에서 들었던 내용 바탕으로 Behavior Tree를 구성했다.
플레이어가 AI 시야에 해당하는 Mesh와 Overlap 되면 해당 위치로 움직이게하고 시야에 없다면 랜덤한 위치로 오게 된다. 나중에 LineTrace로 바꿀 예정이다.


애니메이션도 잘 적용되고 플레이어를 잘 따라오는 것을 확인할 수 있다.

거울 만들기

귀신을 만들고 이후에 라이터를 구현하면서 플레이어가 라이터를 제대로 들고 있는지 확인하기
위해서 거울을 만들어 보았다.

먼저 거울을 만들기 위해서는 언리얼 프로젝트 세팅에서 렌더링 관련 옵션을 설정해야한다.

렌더링 -> 글로벌 일루미네이션의 다이내믹 글로벌 일루미네이션 메서드를 Screen Space로 변경
렌더링 -> 리플렉션의 플레이너 리플렉션에 글로벌 클립 면 지원을 체크
이후 언리얼 프로젝트를 재시작해야 적용이 된다.

이제 거울로 사용한 머티리얼을 만들고 Ctrl + 3으로 흰색으로 지정하고
Ctrl + 1로 값들을 생성하고 각각 메탈릭, 스페큘러, 러프니스에 연결해준다.
그리고 디테일 패널에서 포워드 셰이딩의 고퀄리티 리플렉션과 플레이너 리플렉션을 체크해준다.

그리고 벽에 머티리얼을 적용하면 반사는 되는데 제대로 보이지가 않는다.

비주얼 이펙트안에 있는 플레이너 리플렉션을 가져오고

얇은 평면에 앞 뒤로 넓게 겹칠 수 있는 영역이 보인다. 이 영역을 거울에 겹치게 되면

잘 반사되는 거울이 된다.


캐릭터와 라이터, 빛이 잘 반사된다.

다음에는 라이터를 줍기, 켜기, 연료 떨어지면 꺼지기, 연료 보충하기, 버리기 등을 구현해보겠다.

0개의 댓글