프로젝트 설명 영상
https://youtu.be/0SuqYVRDVfA?si=bMVIdCciOzpuVzoP
1. 프로젝트 개요
본 프로젝트는 기존 절차적 콘텐츠 생성(PCG) 기술에 물리적 타당성을 더한 레벨 생성 방법을 제안합니다. 이 프로젝트는 중력, 충돌, 에너지와 같은 물리 요소를 고려하여 레벨을 생성하고, 게임 개발 과정에서 효율성과 몰입도를 높이는 데 초점을 맞췄습니다.
2. 필요성 및 목표
2.1 필요성
- 레벨 디자이너의 부담 감소
- 게임 내 다양한 스테이지를 디자인하기 위해서는 상당한 시간과 창의력이 필요합니다.
- 대규모 게임 프로젝트에서는 레벨 디자이너가 일일이 스테이지를 설계하기 어려운 경우가 많습니다.
- 기존 PCG 기술의 한계
- 대부분의 PCG 연구는 타일 기반 레벨 생성(Tile-Based Level Generation)에 초점을 맞췄으며, 이는 중력이나 충돌과 같은 물리적 요소를 고려하지 못합니다.
- 물리적 요소가 중요한 레벨에서는 더 정교한 접근이 필요합니다.
- 새로운 기술의 필요성
- 물리적 타당성을 가진 레벨을 자동으로 생성하여 디자이너가 원하는 디자인 결과물을 쉽게 얻을 수 있는 기술이 요구됩니다.
2.2 목표
- 중력 및 물리적 특성 반영
- 중력을 포함한 물리적 특성을 고려한 절차적 레벨 생성 시스템 구현.
- Fracture 기술 적용
- 충돌 및 파괴 시 물리적으로 설득력 있는 효과를 구현.
- 게임 제작
- 구현한 기술을 적용한 시연용 게임 <Angry Bird: Returns> 제작.
3. 구현 방법
3.1 절차적 콘텐츠 생성 (PCG)
- Sequential VAE와 Latent Variable Editing (LVE)
- Sequential VAE(Variational AutoEncoder)를 활용해 레벨 데이터를 잠재 공간(Latent Space)에 인코딩.
- LVE를 사용하여 잠재 변수의 분포를 수정, 디자이너가 원하는 결과물로 더 잘 매핑되도록 개선.
- 표준 정규분포(Standard Normal Distribution)를 사용자 정의 분포로 변환하여 특정 디자인 의도를 반영.
- GAN 기반 개선
- Generator와 Discriminator를 활용해 레벨 생성 품질을 높임.
- Generator: 새로운 레벨을 생성.
- Discriminator: 실제 데이터와 생성된 데이터를 비교해 차이를 판별.
- 두 모델 간 경쟁적인 학습을 통해 더 자연스럽고 물리적 특성을 반영한 결과물 생성.
- 결과물
- 디자이너가 제어할 수 있는 다양한 레벨 생성.
- 2D 데이터를 기반으로 3D 에셋을 매핑하여 설계 시간 단축.
3.2 Fracture 기반 물리적 타당성 부여
- 기존 Unreal Engine Fracture Mode의 한계
- 기존 방식은 미리 쪼개진 메쉬를 사용하여 충돌 시 흩어지는 모습을 구현. 하지만 충돌 지점에 따라 물체가 실제로 깨지는 모습은 재현하지 못함.