쫓아오는 적을 만들겠습니다.
먼저 디자인을 해야겠죠.
버려진 상가를 자신의 집처럼 생각하는 노숙자를 생각했습니다.
옷 색은 어둠에서 잘 보일 수 있도록 밝은 색이면 좋겠다고 생각했습니다.
신발은 편한 슬리퍼로 해야 잘 어울릴 것 같았습니다.
이를 바탕으로 모양만 잡아봤습니다.

막상 만들고 보니 너무 아쉬운 겁니다. 겉옷은 겉옷 같지 않고, 무엇을 표현한 것인지 알아보기가 쉽지 않았습니다.
그래서 이미지를 생성하는 AI를 써보기로 했습니다. Stable Diffusion과 같은 AI는 이전에 사용해 본 적이 있으나 제가 원하는 한국적인 이미지를 잘 생성하지 않더라고요. AI 발전은 빠르니 다시 찾아 사용해 보기로 했습니다.
이번에는 구글의 ImageFX를 사용했습니다.
https://labs.google/fx/tools/image-fx
ImageFX - labs.google/fx
cluttered artist studio, light shining through, welcoming content_copyCopy
labs.google
결과는 놀랍고 만족스럽더라고요.
먼저 ChatGPT에 한국어로 생성을 원하는 이미지를 묘사한 뒤 영문 프롬프트를 작성해 달라고 했습니다.
그리고 이것을 그대로 복사한 뒤 결과에서 마음에 들지 않는 부분을 다른 프롬프트로 작성했습니다.



이전에 게임잼에 나가서 AI로 이미지와 3D 모델링을 생성하고 이를 블렌더로 불러와 리깅을 한 뒤 애니메이션까지 적용한 적이 있습니다.
보통 리토폴로지가 된 상태에서 리깅을 하고 애니메이션을 만들지만, 이번에는 프로토타입용으로 쓸 예정이라 토폴로지에 상관없이 리깅하기로 했습니다.
먼저 Meshy에서 모델링을 생성합니다.
Meshy AI - 창작자를 위한 #1 AI 3D 모델링 사이트
Meshy는 이미지와 텍스트를 몇 초 만에 3D 모델로 쉽게 변환하는 데 도움을 주는 AI 3D 모델 생성기입니다.
www.meshy.ai

4개의 후보 중에서 마음에 드는 모델링을 선택합니다.
그리고 텍스쳐도 생성합니다.


뒷면까지 알아서 잘 생성해 줍니다.
문제는 얼굴은 학습이 잘 안되었는지 서양인의 얼굴이 나왔습니다.
블렌더에서 얼굴 부분에 텍스쳐를 직접 칠해줘야겠습니다.

블렌더로 임포트된 모습입니다.
얼굴을 다시 칠해줬습니다.

토폴로지는 위와 같습니다.
나쁘지는 않지만, 실제 게임에 사용되는 토폴로지와는 거리가 멉니다.
하지만 이정도만 되어도 애니메이션을 적용한다면 볼만합니다.

리깅을해줍니다.

언리얼로 임포트 한 뒤 리타게팅을 통해 애니메이션 애셋을 적용합니다.
결과

그 결과 꽤 자연스러운 결과가 나왔습니다.
프로토타입을 목적으로 모델링을 넣었음에도 이대로 출시해도 될 정도라고 느꼈습니다.
칠라스아트사의 공포게임에 등장하는 캐릭터들과 비슷한 느낌이었습니다.
아쉬운 점이라면 근접했을 때 얼굴 텍스쳐의 해상도가 낮아 보인다는 점, 그리고 모델링 토폴로지의 부족한 점이 눈에 띄었습니다. 근접했을 때를 위해서는 시간을 들여서 모델링을 다듬을 필요가 있어 보입니다.
게임 내에서 아이템을 던질 수 있는데, 이것에 반응하도록 만들었습니다.

아이템에 맞으면 잠시 멈춥니다.
아이템에 맞는 방향을 4방향으로 구분하고 이에 맞는 애니메이션이 플레이되도록 하였습니다. 내적과 외적을 통해 각도를 계산하여 어느 방향인지 구분합니다.
나중에는 집고 있는 아이템을 떨어트리기, 연속으로 던지면 아이템을 잡아서 플레이어에게 던져 반격하기 등을 추가할 예정입니다.

AI의 기초적인 비헤비어 트리입니다. 플레이어 발견 시 쫓아오기, 소리 들린 곳으로 가기, 할 일 없을 때 무작위로 탐색하기가 구현되어 있습니다.
언리얼에서 제공하는 컴포넌트인 PawnSensing을 통해 시야 내 감지와 소리 듣기를 구현할 수 있었습니다.

소리 발생을 구현하는 데에서 약간의 문제가 있었습니다.
언리얼에 기본 탑재된 Pawn Noise Maker을 통해 소리를 발생시킬 때 PawnSensing에서 알아서 감지합니다.
하지만 이 컴포넌트는 이름처럼 Pawn에서만 사용 가능하기 때문에 Actor 기반으로 작동되던 아이템은 사용할 수 없었습니다.
아이템을 던져서 적이 그 위치로 이동해야 했기 때문에 구현을 위한 방법을 생각해 봤습니다.
소리 발생을 위한 이벤트를 추가하여 Noise Maker와 같이 사용하도록 하여 소리가 발생한 위치를 적에게 알려주게 하였습니다.

다음은 점프 스케어 구현입니다.
적 얼굴 쪽에 카메라를 달아놓고 플레이어가 닿으면 해당 카메라로 전환하게 하였습니다.
잡힐 때 주변에 조명이 없으면 잘 안 보이기 때문에 잡힐 때만 캐릭터 위에 포인트 라이트를 추가하고 켜지도록 했습니다.

공포 분위기를 극대화하기 위해 캐릭터 얼굴 윗부분에 라이트를 넣었습니다.
다음은 점프 스케어 영상입니다

덕분에 눈 밑에 그림자가 져서 마치 눈이 없는 느낌을 주어 생각보다 더 불쾌해서 아주 만족스러웠습니다.
저는 공포 게임을 무서워해서 잘 하지 않는 사람이지만 개발할수록 무서움과 멀어지고 공포를 더욱 쫓으려 하는 제 모습이 때론 웃기네요.
다음에는 레벨 디자인, UI, 아이템 상호작용에 관한 일지를 작성하겠습니다.
'개발일지 > 공포게임' 카테고리의 다른 글
| [공포게임] 5. 아이템과 가방 (0) | 2025.06.03 |
|---|---|
| [공포게임] 4. 레벨 디자인 (0) | 2025.06.03 |
| [공포게임] 2. 스마트폰 기능 구현 (0) | 2025.04.27 |
| [공포게임] 1. 개발 시작하기 (0) | 2025.04.20 |