"2분반-시그모이드"의 두 판 사이의 차이

cdc wiki
이동: 둘러보기, 검색
(구성원 및 추진체계)
(설계 사양)
 
(같은 사용자의 중간 판 14개는 보이지 않습니다)
28번째 줄: 28번째 줄:
 
===개발 과제의 개요===
 
===개발 과제의 개요===
 
====개발 과제 요약====
 
====개발 과제 요약====
 
 
◇ 음성 인식 및 감정 인식 모델 훈련 및 모델 배포
 
◇ 음성 인식 및 감정 인식 모델 훈련 및 모델 배포
  
40번째 줄: 39번째 줄:
  
 
====개발 과제의 배경====
 
====개발 과제의 배경====
◇ AI와 게임의 결합이라는 관점에서 유저와 좀 더 상호작용을 할 수 있는 게임 개발 가능. 또한 단순 개발
+
◇ AI와 게임의 결합이라는 관점에서 유저와 좀 더 상호작용을 할 수 있는 게임 개발 가능. 또한 단순 개발 보조나 편의 기능으로 게임에서 사용되던 AI기술이 아닌, 직접 기믹에 사용되고 유저와 소통할 수 있는 AI 기술을 활용한다는 점에서 머리 속으로 생각만 했던 여러 기믹들을 실현할 수 있는 기회. 거대 게임사에서 활용하고 채택하는 AI 기믹들을 학부생 때 접함으로서 최신 트랜드 기술과 개발 방향성을 직접 느낄 수 있음.
보조나 편의 기능으로 게임에서 사용되던 AI기술이 아닌, 직접 기믹에 사용되고 유저와 소통할 수 있는 AI
 
술을 활용한다는 점에서 머리 속으로 생각만 했던 여러 기믹들을 실현할 수 있는 기회. 거대 게임사에서 활용
 
하고 채택하는 AI 기믹들을 학부생 때 접함으로서 최신 트랜드 기술과 개발 방향성을 직접 느낄 수 있음.
 
  
◇ 소규모 프로젝트의 특성 상 데이터 부족과 개발 환경 열악, 배포할 모델의 크기 문제 등, AI 개발자라면
+
◇ 소규모 프로젝트의 특성 상 데이터 부족과 개발 환경 열악, 배포할 모델의 크기 문제 등, AI 개발자라면 현실에서 접할 수 있는 다양한 제한점 등을 극복하고 해결할 수 있는 경험을 접해볼 수 있음. 향후 모바일 기기의 높은 점유율, 음성 데이터 수집의 어려움 등의 실무적인 문제들을 효과적으로 극복할 수 있는 방향성을 제시.
실에서 접할 수 있는 다양한 제한점 등을 극복하고 해결할 수 있는 경험을 접해볼 수 있음. 향후 모바일 기기의 높은 점유율, 음성 데이터 수집의 어려움 등의 실무적인 문제들을 효과적으로 극복할 수 있는 방향성을
 
.
 
  
◇ 유니티 내 시네머신과 Navigation 기술 등을 이용하여 유니티만의 개발 특색을 익히며 또한 게임 플레이
+
◇ 유니티 내 시네머신과 Navigation 기술 등을 이용하여 유니티만의 개발 특색을 익히며 또한 게임 플레이를 관장하는 기저를 직접 개발하여 게임 시스템의 이해도를 높이고 그 흐름을 알아 볼 수 있음.
관장하는 기저를 직접 개발하여 게임 시스템의 이해도를 높이고 그 흐름을 알아 볼 수 있음.
 
  
◇ 음성 인식 기술을 게임에 적용하기 위해 이를 활용한 각종 시스템을 구상했으며, 해당 기술이 게임에서
+
◇ 음성 인식 기술을 게임에 적용하기 위해 이를 활용한 각종 시스템을 구상했으며, 해당 기술이 게임에서 다양한 방면으로 활용될 수 있음을 보여줄 수 있다.
양한 방면으로 활용될 수 있음을 보여줄 수 있다.
 
  
◇ 인게임에서 반복되지 않는 다양한 플레이 경험을 제공하고, 컨텐츠 제작 효율을 높인다. 이를 통해 플레이
+
◇ 인게임에서 반복되지 않는 다양한 플레이 경험을 제공하고, 컨텐츠 제작 효율을 높인다. 이를 통해 플레이어의 몰입감을 높이고 게임 기획 과정을 단순화 할 수 있다.
어의 몰입감을 높이고 게임 기획 과정을 단순화 할 수 있다.
 
  
 
====개발 과제의 목표 및 내용====
 
====개발 과제의 목표 및 내용====
208번째 줄: 199번째 줄:
 
====구성원 및 추진체계====
 
====구성원 및 추진체계====
 
  ◇ 손지수 : 음성 및 감정 인식 모델의 훈련과 배포
 
  ◇ 손지수 : 음성 및 감정 인식 모델의 훈련과 배포
 
 
  ◇ 오성환 : 인게임 환경의 절차적 생성 시스템 구현
 
  ◇ 오성환 : 인게임 환경의 절차적 생성 시스템 구현
 
 
  ◇ 이치훈 : 기획 보조 및 인게임의 전체적인 기능 구현
 
  ◇ 이치훈 : 기획 보조 및 인게임의 전체적인 기능 구현
 
 
  ◇ 임재석 : 주 기획 및 인게임의 전체적인 기능 구현
 
  ◇ 임재석 : 주 기획 및 인게임의 전체적인 기능 구현
  
218번째 줄: 206번째 줄:
 
===설계사양===
 
===설계사양===
 
====제품의 요구사항====
 
====제품의 요구사항====
내용
+
◇ 게임은 기본적으로 1인칭 뷰로 실행되도록 구현한다. ‘움직이는’ 오브젝트는 플레이어와 몬스터로 두고 필요한 경우 NPC도 포함한다. 음성인식과 감정인식이 인게임에 녹아들 수 있도록 적절한 플레이어의 기능을
 +
설정하여 구현한다. 절차적 생성 알고리즘에 따라 만들어진 방의 형태(규칙)에 따라 퍼즐 방, 전투 방으로 구
 +
분되어 기믹을 클리어하여 진행하는 방식으로 게임 흐름이 진행될 수 있도록 한다.
 +
 
 +
◇ 이 게임의 맵은 절차적 생성 알고리즘을 통해 매번 새롭게 생성된다. 우선 랜덤한 형태의 방과 통로를 만
 +
들어 던전의 기본 구조를 형성한다. 그 다음에 각 방의 중심점을 기준으로 들로네 삼각분할을 적용해 방과 방
 +
사이의 통로를 생성하고, 그중 최소 스패닝 트리를 사용해 주요 경로만 남겨 던전의 기본 통로를 구성한다. 마지막으로, 필수 경로 이외의 통로들을 일정 확률로 추가하여 플레이어가 던전을 탐험하며 전략적으로 경로를
 +
선택할 수 있도록 한다.
 +
 
 +
◇ 마이크로 입력되는 음성이 들어오면, 음성을 모델을 통해 추론하고 알맞은 text로 산출할 수 있어야한다.
 +
모델은 음성인식에 맞게 훈련되어야한다. 모델의 크기가 유니티 내부에서 돌아갈 수 있을 정도로 최적화되어
 +
야 하며, 마이크로 음성이 들어오면, 음성을 분석해 감정을 추론할 수 있어야한다. 또한 알맞은 데이터셋을 찾
 +
은 후 모델 훈련을 진행해야하며 동시에 추론의 지연시간이 너무 길어지면 안된다.
 +
 
 +
◇ 음성 인식 모델
 +
::- 다양한 환경에서의 오류율 확인을 통한 신뢰성 평가
 +
 
 +
◇ 절차적으로 생성된 맵과 시스템
 +
::- 자동 생성된 맵의 연결성, 난이도 균형, 시각적 오류 여부 확인
 +
 
 +
◇ 게임 시스템
 +
::- 기획 의도에 맞게 각 시스템의 오류 여부 및 정확성 검토
 +
 
 +
◇ 음성 인식과 감정 인식
 +
::- 정해둔 답과 일치 후 로직 수행 확인
 +
 
 +
◇ 게임 플레이 내 오류 확인
 +
::- 플레이 구간별 오류 빈도 및 치명적 오류 발생 여부
 +
 
 
====설계 사양====
 
====설계 사양====
내용
+
◇ 게임의 요구사항 중 인공지능 시스템이 담당한 부분은 크게 2가지다. 첫째는 음성인식, 둘째는 감정 인식이다. 이런 기능을 사용하기 위해선 크게 2가지 방법이 있는데 첫째는 API, 둘째는 AI 모델을 직접 훈련시켜 Unity 내부에 넣는것이다. API는 간단하고 편하다는 장점이 있지만 가격, 유지보수, 실력 향상의 측면에서 모델을 직접 넣는것이 유리하다 판단하여 후자를 프로젝트에서 진행하였다.
 +
 
 +
::● Speech to Text (STT)
 +
 
 +
::::○ 음성인식 모델이란 음성 신호를 입력으로 받아 이에 대응하는 문자나 단어를 추론하여 텍스트로 변환하는 모델을 의미하며, 심층신경망(DNN)을 활용하여 모델을 훈련시킨다. 모델을 훈련시키기 위해 사용한 전략이자 기술은 Self-supervised learning(SSL) based Pre-trained large model(PLM)을 사용하는 것이다. 이렇게 거대한 비라벨링 데이터를 기반으로 자가주도학습을 하게되면, 음성에 대한 풍부하고 일반화 된 특징을 얻을 수 있다는 장점이 존재한다. 때문에 최신 연구 및 해외 학회의의 트렌드의 경우 이런 거대 모델을 어떻게 잘 활용하여, 자신이 필요한 분야에 맞게 적용하는지가 주된 목표이다. 우리 프로젝트 또한 이런 모델 사용의 방식을 차용하여, front-End로 SSL 모델을 사용하고, 모델 앞 뒤에 토크나이저를 추가하는 방식으로 사용하였다. SSL 모델의 경우 OpenAI에서 개발한 Whisper 모델을 차용하였으며, 이 모델의 경우 transformer의 구조를 하고 있다.
 +
 
 +
::● Speech emotion Recognition (SER)
 +
 
 +
::::○ 감정인식 모델이란 음성 신호를 입력으로 받아 발화자가 느끼는 감정을 추론하는 모델을 의미한다. SER 모델의 경우에도 SSL based PLM을 사용하는 것이 트렌드이다. 하지만 위의 STT와 다른 점은 SSL based PLM은 본디 음성 인식을 위해 개발되고 사전 학습된 모델임으로 음성인식 모델을 훈련시킬 때 따로 downstream(요구 분야)에 미세 조정 과정이 필요없다. 하지만 SER의 경우 STT와는 요구 분야가 다르기에 SSL based PLM이 SER의 분야에 맞는 일을 하도록 fine-tuning(미세 조정)을 진행해야 한다. 따라서 모델의 총 구조는front-end: SSL based PLM, Back-end, classifier로 구성하기 되었다. 또한 이 모델의 경우 E2E(End to End)기술을 사용해 모델을 설계 하였다. E2E의 특징은 사람의 인위적인 가공을 거치지 않고 모델이 입력 데이터로부터 바로 출력까지 진행하는 모델을 의미한다. E2E방식의 특징은 입력 데이터에 front-end, back-end가 공동 최적화가 된다는 것이다. 이는 우리가 필요한 SER이란 작업에 front-end, back-end가 공동 최적화 된다는 의미이다.
 +
 
 +
::::[[파일:sigmoid4.png]]
 +
::::위의 그림은 설계한 모델의 흐름을 보여준다.
 +
 
 +
:::::■ SSL based PLM: front-end, 음성 특징을 추출,
 +
:::::■ Emotion feature extractor: back-end, 감정 특징을 추출
 +
:::::■ Classifier: 분류기, 특징을 종합하여 감정을 추론
 +
::::○ SSL 모델의 경우 여러가지 task에서 우수한 성능을 보인 Wav2vec, back-end의 경우 LSTM을 사용하였다.
 +
 
 +
::● DDP(DistributedDataParallel)
 +
 
 +
::::○ AI 모델 훈련을 위한 멀티 쓰레딩 기술이다. 모델의 훈련시간은 데이터셋 크기, 모델의 크기에 따라 상이하지만, 우리가 사용하는 SSL 기반 PLM은 매우 큰 모델이며 데이터셋도 많이 존재한다. 따라서 단일 쓰레드로 훈련을 진행하게 된다면 대략 한 번 훈련에 1주일 이상이 소요된다. 기한이 정해진 프로젝트에선 분산 프로그래밍이 필수적이다. 또한 모델과 배치 사이즈가가 커질수록 그래픽 메모리가 많이 필요하지만 End급 그래픽카드의 경우 가격이란 현실적 문제가 생긴다.때문에 GPU 여러개에 데이터를 분산시켜 메모리를 효율적으로 사용한다. 최종적으로 사용한 형태는 4개의 그래픽카드에 연산을 4개로 분할시켜 병렬적으로 진행시켰다. 이를 통해 작업에 소요되는 시간을 실제 약 5배 이상을 단축할 수 있었다. (4배의 병렬 속도 & 배치 사이즈 확대를 통해 소요하는 시간 감소)
 +
 
 +
::● ONNX, Sentis
 +
 
 +
::::○ 우리의 최종 목표는 훈련시킨 모델이 실시간으로 게임 안에서 데이터를 받고 추론을 진행하는 것이다. 즉 On-device 환경에서 구동해야한다. 이를 위해 먼저 ONNX라는 공유 플랫폼을 사용한다. 이는 서로 다른 DNN 프레임워크 환경에서 만들어진 모델을 서로 호환되게 해주는 Docker와 비슷한 개념이다. ONNX는 내부 그래프를 정적으로 단순화시키기에, 파이썬 기반 모델의 오버헤드를 제거하게 된다. 이를 통해 모델 경량화 및 추론 속도의 이점을 얻을 수 있으며, On-device 상황에서 실시간 작동해야하는 게임에선 필수적인 기술이다.
 +
 
 +
::::○ 이렇게 변환한 ONNX를 Unity에 넣고 모델을 실행시키기 위해 Sentis를 사용하였다. Sentis는 Unity에서 지원하는 AI 추론 패키지이며, 변환시킨 ONNX를 Unity에 import한 후, input을 지정해주면 Unity 내부에서 추론을 진행하게 된다.
 +
::::○ 또한 내부의 모델은 비동기로 진행하게 된다. 비동기 작업이란 작업이 완료될 때까지 기다리지 않고, 다른 작업을 동시에 수행하는 것을 말한다. 모델의 추론은 어느정도의 시간이 소요되는데 이를 동기적으로 수행한다면 게임 진행에 방해가 될 수 있다. 따라서 게임의 진행과 모델의 추론을 병렬적으로 진행하게 코드를 작성하였다. 하지만 비동기로 병렬 진행하게 된다면 쓰레드를 많이 차지하게 되며, 진행중인인 비동기 작업의 결과를 다른 프로세스에서 참조를 하게 되면 잘못된 값을 참조하게 되는 문제도 존재한다. 때문에 참조 부분전에 반드시 모든 프로세스의의 동기화를 진행해야하는 주의점도 존재한다.
 +
 
 +
◇ 미로의 무작위 생성을 위해 Recursive Backtracking 알고리즘을 선택했다. 미로 생성 알고리즘은 다양하게 존재했는데, 그 중 Recursive Backtracking 알고리즘을 선택한 이유는 2가지가 있다. 첫 번째, DFS를 이용한 알고리즘이기 때문에 익숙한 방식이고 구현하기 쉽다. 두 번째, DFS를 이용하였기에 모든 칸들을 방문한다는 보장이 되어 있다. 이 점이 중요한 이유는 절차적으로 생성된 맵이 단순 직사각형이 아닌 다각형이라는 데에 있다.
 +
 
 +
◇ 씬 구성을 위해 Cinemachine을, 전투 시스템을 구현하기 위해 Navigation 시스템을 사용하였다.
 +
Cinemachine을 채택한 이유는 자동으로 카메라를 제어할 수 있으며 여러 카메라 효과를 적용할 수 있기 때문이었다. 무엇보다도 가상 카메라 추가 등 씬 뷰의 확장성을 고려해서 선택한 것이 가장 큰 이유였다. 또한
 +
Navigation 시스템을 활용하여 몬스터 AI를 편리하게 관리할 수 있게 하였으며, 몬스터 AI가 설정되어 있는범위 내에서만 효율적으로 경로 탐색을 할 수 있게 로직을 구현하였다. 마지막으로, 몬스터처럼 지속적으로 생성되고 파괴되는 오브젝트는 오버헤가 크기 때문에 최적화를 위하여 Object pooling 방식을 선택하였다.
 +
 
 +
◇ 절차적 맵 생성 디자인
 +
본 프로젝트에서는 인게임 맵의 유동적이고 다채로운 생성을 위해 절차적 맵 생성 기법을 도입하였다. 절차적 맵 생성은 매번 다른 맵을 제공함으로써 플레이어에게 반복되지 않는 신선한 경험을 제공하고, 개발자에게는 콘텐츠 제작의 효율성을 극대화할 수 있는 장점을 제공한다. 절차적 맵 생성을 구현하기 위해 다음과 같은 알고리즘과 기술을 선택하였다.
 +
 
 +
::● 절차적 맵 생성을 위해 다양한 알고리즘을 검토한 결과, 본 프로젝트의 요구사항에 가장 적합한 알고리즘으로 Cellular Automata, Delaunay Triangulation, Minimum Spanning Tree (MST), 그리고 A* 알고리즘을 선정하였다. 이러한 선택은 다음과 같다
 +
::::○ Cellular Automata: 동적인 방과 벽의 배치를 통해 자연스럽고 복잡한 던전 구조를 생성할 수 있으며, 구현이 비교적 간단하여 초기 단계에서 효과적으로 사용할 수 있다.
 +
::::○ Delaunay Triangulation: 생성된 방들 사이의 연결성을 확보하고, 효율적인 경로를 생성하는 데 유용하다. 방들 간의 최적의 연결을 보장함으로써 맵의 논리적 일관성을 유지할 수 있다.
 +
::::○ Minimum Spanning Tree (MST): 불필요한 경로를 제거하고, 필수적인 연결만을 남겨 던전 내 방들이 고립되지 않도록 한다. 이는 맵의 탐험성을 높이고, 플레이어가 전략적으로 경로를 선택할 수 있도록 돕는다.
 +
::::○ A* 알고리즘: 최단 경로 탐색을 통해 맵 내 이동의 효율성을 극대화하며, 플레이어의 이동패턴에 따라 맵의 동적 변화를 지원한다.
  
 
===개념설계안===
 
===개념설계안===

2024년 12월 18일 (수) 09:23 기준 최신판

프로젝트 개요

기술개발 과제

국문 : 00000000..

영문 : 00000000..

과제 팀명

시그모이드

지도교수

김*호 교수님

개발기간

2024년 9월 ~ 2024년 12월 (총 4개월)

구성원 소개

서울시립대학교 컴퓨터과학부 20199200** 손*수(팀장)

서울시립대학교 컴퓨터과학부 20198900** 오*환

서울시립대학교 컴퓨터과학부 20199200** 이*훈

서울시립대학교 컴퓨터과학부 20189200** 임*석

서론

개발 과제의 개요

개발 과제 요약

◇ 음성 인식 및 감정 인식 모델 훈련 및 모델 배포

◇ 게임 내 음성 인식을 이용한 전투 시스템 구현

◇ 유니티 내 패키지들을 활용한 씬 구성 및 음성, 감정 인식을 이용한 캐릭터 기능 구현

◇ 절차적 생성 기능을 통한 인게임 맵의 유동적인 생성

◇ 절차적으로 생성된 맵에 맞는 퍼즐 시스템 구현

개발 과제의 배경

◇ AI와 게임의 결합이라는 관점에서 유저와 좀 더 상호작용을 할 수 있는 게임 개발 가능. 또한 단순 개발 보조나 편의 기능으로 게임에서 사용되던 AI기술이 아닌, 직접 기믹에 사용되고 유저와 소통할 수 있는 AI 기술을 활용한다는 점에서 머리 속으로 생각만 했던 여러 기믹들을 실현할 수 있는 기회. 거대 게임사에서 활용하고 채택하는 AI 기믹들을 학부생 때 접함으로서 최신 트랜드 기술과 개발 방향성을 직접 느낄 수 있음.

◇ 소규모 프로젝트의 특성 상 데이터 부족과 개발 환경 열악, 배포할 모델의 크기 문제 등, AI 개발자라면 현실에서 접할 수 있는 다양한 제한점 등을 극복하고 해결할 수 있는 경험을 접해볼 수 있음. 향후 모바일 기기의 높은 점유율, 음성 데이터 수집의 어려움 등의 실무적인 문제들을 효과적으로 극복할 수 있는 방향성을 제시.

◇ 유니티 내 시네머신과 Navigation 기술 등을 이용하여 유니티만의 개발 특색을 익히며 또한 게임 플레이를 관장하는 기저를 직접 개발하여 게임 시스템의 이해도를 높이고 그 흐름을 알아 볼 수 있음.

◇ 음성 인식 기술을 게임에 적용하기 위해 이를 활용한 각종 시스템을 구상했으며, 해당 기술이 게임에서 다양한 방면으로 활용될 수 있음을 보여줄 수 있다.

◇ 인게임에서 반복되지 않는 다양한 플레이 경험을 제공하고, 컨텐츠 제작 효율을 높인다. 이를 통해 플레이어의 몰입감을 높이고 게임 기획 과정을 단순화 할 수 있다.

개발 과제의 목표 및 내용

◇ 여러 논문들을 비교 분석하여 적절한 모델을 선정하고, 데이터 전처리, 모델 학습, 미세 조정 과정들을직 접 설계하고 실행. 그 후 게임 환경에서 실행 될 수 있는 모델 배포.

◇ 음성 인식 결과를 가져오고, 이를 활용하여 기획한 AI 협동 시스템, 다양한 퍼즐 등을 온전히 구현하여 게 임 진행을 다채롭고 매끄럽게 만드는 것을 목표로 함.

◇ 유니티 내 여러 기술들을 조화롭게 사용하여 원활한 게임 플레이가 이루어질 수 있도록 함. 이에 따라 적 절한 씬 구성과 오브젝트 간의 상호작용을 구현할 수 있도록 함.

◇ 효과적인 절차적 생성 알고리즘을 개발해 환경, 퍼즐, 아이템 등을 자동으로 생성함으로써 매번 새로운 플 레이 경험을 제공하고, 설정한 난이도에 따라 적절한 밸런스를 맞춰 안정적인 시스템을 만드는 것이 목표이다.

관련 기술의 현황

관련 기술의 현황 및 분석(State of art)

  • 전 세계적인 기술현황
가. 음성 인식
◇ MFCC (Mel-Frequency Cepstral Coefficient)
● 오디오에서 추출할 수 있는 특징으로 소리의 고유한 특징을 추출하는 알고리즘. 대표적인 hand-crafted 특징 중 하나이다.
◇ Wav2vec 2.0
● facebook에서 2020년에 발표한 모델로 약 53000시간의 unlabeled 데이터로 self-supervised learning을 한 모 델이다. 이렇게 일반화되고 언어에 구애받지 않는 음향 특징을 추출할 수 있으며, 미세조정하기에 유리하다.
◇ Conformer
● CNN과 transformer 모델을 합친 모델이다. transformer의 경우 self-attention 메커니즘을 통해 전역적인 정보 를 얻는데 유리하며, CNN의 경우 지역적인 정보를 얻는데 유리하다. 음성의 경우 전역적인 정보와, 지역적인 정보 모두 중요한데 이 때문에 둘을 결합한 conformer 모델이 음성인식에서 좋은 성능을 나타내고 있다.
◇ 최신 기술 (기술 현황)
● 최신 기술의 트렌드는 사람이 만든 특징인 hand-crafted 특징을 사용하는 것이 아닌 end-to-end 모델을 사용 하는 것이다.
● 그래픽 카드의 발전으로 대형 모델 또한 학습 가능하며, 이에 성능이 비약적으로 향상
● 데이터 부족 문제를 해결하기 위해 self-supervised learning 기반 거대 사전학습 모델을 사용하는 것이 활발 하게 연구되고 있으며, 현재 탑급 conference에서 발표되는 논문 중 이런 SSL 기반 모델을 활용하는 논문이 많은 비중을 차지하고 있다.
나. 게임 개발
◇ 최신 기술 (기술 현황)
● 나나이트와 루멘 (UE5)
○ 매우 높은 폴리곤 수의 모델을 성능 저하 없이 실시간으로 렌더링하는 기술(나나이트)
○ 실시간 전역 조명과 반사 기능을 제공하여 보다 현실적이고 자연스러운 조명과 반사 구현(루멘)
● Unity Muse, Unity Sezntis
○ 생성형 AI와 같은 도구를 제공하여 개장 중 창작과 관련된 작업을 AI로 지원, 효율을 높이는 크리에이티브 AI 툴(Unity Muse)
○ 머신러닝 모델을 Unity 내에서 온 디바이스 실행 및 배포할 수 있게 해주는 툴킷(Unity Sentis)
● GPU Resident Drawer : 대규모 객체 렌더링 시 GPU에 데이터를 상주시키고 직접 처리함으로써 CPU의 부하를 줄이고 성능을 향상시키는 기술
● MARS (2020년 6월) : Mixed and Argumented Reality Studio. 혼합 현실과 증강 현실을보다 쉽고 직관적으로 개발할 수 있도록 지원하는 도구
◇ 유니티 주요 기술
● 네비게이션 시스템 (AI) : AI 캐릭터의 경로 찾기를 구현하는데 사용되며, A* 알고리즘을 기반으로 AI 캐릭터 가 자동으로 장애물을 피하고 목적지까지 이동하는 것을 쉽게 구현하는데 사용됨
● Cinemachine : 인게임 카메라 시스템을 관리하는 강력한 툴로, 액션 장면이나 컷씬에서 유용하며 복잡한 카메라 연출을 더 쉽게 관리할 수 있도록 도와줌
● 애니메이터, Behaviour Tree
○ FSM을 기반으로 하여 캐릭터의 애니메이션을 관리하는 시스템으로, state와 transition을 통해 다양한 애니 메이션을 구현 가능
○ 복잡한 애니메이터를 손쉽게 표현하기 위한 방식으로 다양한 상황에 대응할 수 있는 AI를 만드는데 매우 유용함
● URP & HDRP
○ 다양한 렌더링 파이프라인을 통해 성능과 그래픽 품질을 선택적으로 조정 가능
○ 낮은 사양의 플랫폼에서 효과적임(URP) 고사양 플랫폼을 대상으로 뛰어난 그래픽 품질을 제공하며, 물리 기반 렌더링(PBR) 및 고품질의 빛과 그림자 처리를 지원(HDRP)
● Unity XR : 유니티 내에서 AR 및 VR 콘텐츠 제작을 위한 다양한 도구와 라이브러리를 제공하며 Oculus, SteamVR, ARKit, ARCore 등 다양한 AR/VR 플랫폼 지원, 공간 맵핑, 오브젝트 추적, 가상 현실 인터랙션 기능 보유
◇ 유니티를 이용한 메타버스 AR과 VR기술 현황
● U+ 가상 오피스
○ 2021년 11월 출시된 유니티 엔진을 활용한 3D 공간 제작 기술과 LG유플러스 개발진의 커뮤니케이션 솔루 션 역량을 합쳐 선보인 플랫폼.
○ U+가상오피스에는 실제 사무실과 같은 공간이 구축되며, 스몰톡, 개인 면담, 화상 회의, AI 회의록 등의 협 업 툴을 통해 실제 사무실에서의 업무 과정과 동일한 사용자 경험 제공과 생산성을 보장한다.
● 메타갤러리(대우건설), 디센트럴랜드와 마이하우스(삼성전자)
● Pokemon GO(AR), IKEA Place(AR), Tilt Brush(VR), Google Expeditions(VR, AR)
◇ 게임에 대한 AI 활용
● AI를 이용해 절차적 생성을 함으로써, 개발자가 매일 콘텐츠를 수작업으로 만드는 대신 자동으로 게임 콘텐 츠를 생성하는 방법으로 오픈월드 게임 제작에 매우 유용함
● 유니티의 네비게이션 시스템처럼 유동적인 경로 탐색과 활용형 행동, 적응형 AI를 통해 AI가 플레이어의 행동 패턴에 적응하게 함
● QA 측면에서는 자동 플레이 테스트를 통한 빠른 테스트와 버그 픽스 가능
다. 절차적 생성
◇ 절차적 생성의 역사
● 절차적 생성은 1980년대부터 게임의 저장 공간 제약 문제를 해결하기 위한 수단으로 활발히 사용되었음.
● 대표 사례로 1984년작 게임 《엘리트(Elite)》는 방대한 우주를 절차적 생성으로 실시간으로 생성함.
● 대체적으로 랜덤 알고리즘을 기반으로 한 2D 타일맵이나 미로 등 단순한 콘텐츠 생성에 사용되었음.
◇ 최신 기술 동향
● 머신러닝을 활용하며, 플레이어 행동에 반응하는 콘텐츠 생성으로 확장되었음.
● 3D나 XR 게임에서도 절차적 생성이 도입되었으며, 오픈월드 게임의 복잡한 지형과 생태계가 절차적 생성으로 실시간으로 생성되기도 함.
● 대표 사례로 2016년작 게임 《노 맨즈 스카이(No Man's Sky)》는 다양한 행성과 동식물 생태계를 절차적으로 생성함.
● 또한, 영화나 애니메이션, 건축 시뮬레이션 분야에서도 배경과 건물 디자인 등의 자동 생성에 활용되고 있음.
◇ 절차적 생성과 랜덤 생성의 차이점
● 절차적 생성은 사전에 정의된 규칙에 따라 무작위성을 적용하기 때문에 논리적이고 구조적으로 유의미한 콘텐츠를 생성할 수 있음.
● 랜덤 생성은 순수하게 무작위성에 의존하여 콘텐츠를 생성하므로 통제하기 어려우며 논리적이지 않고 구조적으로 무의미한 콘텐츠가 생성됨.
절차적 생성은 어느 정도의 통제 하에서 복잡한 규칙에 기반한 랜덤 콘텐츠를 만들 수 있기 때문에 목적을 갖고 의도된 디자인을 생성하는데 적합함.
  • 특허조사 및 특허 전략 분석

본 프로젝트는 특허와 관련된 내용보단, 논문을 탐구하고 최신 기술을 적용하는 것에 더욱 중점을 두었다.

  • 기술 로드맵
◇ 인공지능 모델을 훈련 후 Unity 내부에 Import 진행, 게임을 시작할 때마다 절차적 생성을 통해 맵을 랜덤하게 생성, 후 게임을 플레이를 할 수 있으며, 퍼즐과 미로, 전투를 진행할 수 있음.

시장상황에 대한 분석

  • 경쟁제품 조사 비교

스크린샷 2024-12-19 015211.png

  • 마케팅 전략 제시

Sigmoid2.png

개발과제의 기대효과

기술적 기대효과

◇ 게임과 AI 기술의 결합이라는 접근에서 발전 가능성이 무궁무진함.

◇ 비단 음성인식 뿐만 아니라 음성 관련 AI 기술을 사용하여 TTS나 음성 합성 기술을 사용하면, 좀 더 완성도 있 는 게임을 만들 수 있으며, 성우를 직접 고용하는 비용도 절감할 수 있음

◇ 절차적 생성 기술을 통한 예측할 수 없는 맵을 생성하여 플레이어에게 탐험의 재미를 느낄 수 있게 함

◇ 음성 인식 기술을 통해 유저에게 게임과 좀 더 가깝게 상호작용하는 느낌을 주어, 게임에 더욱 몰입할 수 있음

◇ 절차적 던전 생성 알고리즘을 사용하면 수작업으로 일일이 맵을 제작할 필요 없이 자동으로 생 성되므로, 개발 소요 시간이 크게 단축될 것으로 예상함.

경제적, 사회적 기대 및 파급효과

◇ 다양한 선택지를 사람이 직접 넣는 것이 아닌, 음성 인식 모델 하나로 압축할 수 있어 개발 리소스가 줄어 들음

◇ 절차적 생성은 반복적인 레벨 디자인이나 콘텐츠 제작에 들어가는 수작업을 크게 줄이므로 인건비와 개발 비용을 절감할 수 있음.

◇ 절차적 생성을 통한 실시간 콘텐츠 생성으로 서버 저장 공간을 아끼면 에너지 사용량을 줄일 수 있음.

◇ 온라인 게임의 경우 실시간 콘텐츠 생성을 통해 서버에 저장되는 콘텐츠의 양 을 줄이면 서버 운영 비용이 절감될 수 있음.

기술개발 일정 및 추진체계

개발 일정

Sigmoid3.png

구성원 및 추진체계

◇ 손지수 : 음성 및 감정 인식 모델의 훈련과 배포
◇ 오성환 : 인게임 환경의 절차적 생성 시스템 구현
◇ 이치훈 : 기획 보조 및 인게임의 전체적인 기능 구현
◇ 임재석 : 주 기획 및 인게임의 전체적인 기능 구현

설계

설계사양

제품의 요구사항

◇ 게임은 기본적으로 1인칭 뷰로 실행되도록 구현한다. ‘움직이는’ 오브젝트는 플레이어와 몬스터로 두고 필요한 경우 NPC도 포함한다. 음성인식과 감정인식이 인게임에 녹아들 수 있도록 적절한 플레이어의 기능을 설정하여 구현한다. 절차적 생성 알고리즘에 따라 만들어진 방의 형태(규칙)에 따라 퍼즐 방, 전투 방으로 구 분되어 기믹을 클리어하여 진행하는 방식으로 게임 흐름이 진행될 수 있도록 한다.

◇ 이 게임의 맵은 절차적 생성 알고리즘을 통해 매번 새롭게 생성된다. 우선 랜덤한 형태의 방과 통로를 만 들어 던전의 기본 구조를 형성한다. 그 다음에 각 방의 중심점을 기준으로 들로네 삼각분할을 적용해 방과 방 사이의 통로를 생성하고, 그중 최소 스패닝 트리를 사용해 주요 경로만 남겨 던전의 기본 통로를 구성한다. 마지막으로, 필수 경로 이외의 통로들을 일정 확률로 추가하여 플레이어가 던전을 탐험하며 전략적으로 경로를 선택할 수 있도록 한다.

◇ 마이크로 입력되는 음성이 들어오면, 음성을 모델을 통해 추론하고 알맞은 text로 산출할 수 있어야한다. 모델은 음성인식에 맞게 훈련되어야한다. 모델의 크기가 유니티 내부에서 돌아갈 수 있을 정도로 최적화되어 야 하며, 마이크로 음성이 들어오면, 음성을 분석해 감정을 추론할 수 있어야한다. 또한 알맞은 데이터셋을 찾 은 후 모델 훈련을 진행해야하며 동시에 추론의 지연시간이 너무 길어지면 안된다.

◇ 음성 인식 모델

- 다양한 환경에서의 오류율 확인을 통한 신뢰성 평가

◇ 절차적으로 생성된 맵과 시스템

- 자동 생성된 맵의 연결성, 난이도 균형, 시각적 오류 여부 확인

◇ 게임 시스템

- 기획 의도에 맞게 각 시스템의 오류 여부 및 정확성 검토

◇ 음성 인식과 감정 인식

- 정해둔 답과 일치 후 로직 수행 확인

◇ 게임 플레이 내 오류 확인

- 플레이 구간별 오류 빈도 및 치명적 오류 발생 여부

설계 사양

◇ 게임의 요구사항 중 인공지능 시스템이 담당한 부분은 크게 2가지다. 첫째는 음성인식, 둘째는 감정 인식이다. 이런 기능을 사용하기 위해선 크게 2가지 방법이 있는데 첫째는 API, 둘째는 AI 모델을 직접 훈련시켜 Unity 내부에 넣는것이다. API는 간단하고 편하다는 장점이 있지만 가격, 유지보수, 실력 향상의 측면에서 모델을 직접 넣는것이 유리하다 판단하여 후자를 프로젝트에서 진행하였다.

● Speech to Text (STT)
○ 음성인식 모델이란 음성 신호를 입력으로 받아 이에 대응하는 문자나 단어를 추론하여 텍스트로 변환하는 모델을 의미하며, 심층신경망(DNN)을 활용하여 모델을 훈련시킨다. 모델을 훈련시키기 위해 사용한 전략이자 기술은 Self-supervised learning(SSL) based Pre-trained large model(PLM)을 사용하는 것이다. 이렇게 거대한 비라벨링 데이터를 기반으로 자가주도학습을 하게되면, 음성에 대한 풍부하고 일반화 된 특징을 얻을 수 있다는 장점이 존재한다. 때문에 최신 연구 및 해외 학회의의 트렌드의 경우 이런 거대 모델을 어떻게 잘 활용하여, 자신이 필요한 분야에 맞게 적용하는지가 주된 목표이다. 우리 프로젝트 또한 이런 모델 사용의 방식을 차용하여, front-End로 SSL 모델을 사용하고, 모델 앞 뒤에 토크나이저를 추가하는 방식으로 사용하였다. SSL 모델의 경우 OpenAI에서 개발한 Whisper 모델을 차용하였으며, 이 모델의 경우 transformer의 구조를 하고 있다.
● Speech emotion Recognition (SER)
○ 감정인식 모델이란 음성 신호를 입력으로 받아 발화자가 느끼는 감정을 추론하는 모델을 의미한다. SER 모델의 경우에도 SSL based PLM을 사용하는 것이 트렌드이다. 하지만 위의 STT와 다른 점은 SSL based PLM은 본디 음성 인식을 위해 개발되고 사전 학습된 모델임으로 음성인식 모델을 훈련시킬 때 따로 downstream(요구 분야)에 미세 조정 과정이 필요없다. 하지만 SER의 경우 STT와는 요구 분야가 다르기에 SSL based PLM이 SER의 분야에 맞는 일을 하도록 fine-tuning(미세 조정)을 진행해야 한다. 따라서 모델의 총 구조는front-end: SSL based PLM, Back-end, classifier로 구성하기 되었다. 또한 이 모델의 경우 E2E(End to End)기술을 사용해 모델을 설계 하였다. E2E의 특징은 사람의 인위적인 가공을 거치지 않고 모델이 입력 데이터로부터 바로 출력까지 진행하는 모델을 의미한다. E2E방식의 특징은 입력 데이터에 front-end, back-end가 공동 최적화가 된다는 것이다. 이는 우리가 필요한 SER이란 작업에 front-end, back-end가 공동 최적화 된다는 의미이다.
Sigmoid4.png
위의 그림은 설계한 모델의 흐름을 보여준다.
■ SSL based PLM: front-end, 음성 특징을 추출,
■ Emotion feature extractor: back-end, 감정 특징을 추출
■ Classifier: 분류기, 특징을 종합하여 감정을 추론
○ SSL 모델의 경우 여러가지 task에서 우수한 성능을 보인 Wav2vec, back-end의 경우 LSTM을 사용하였다.
● DDP(DistributedDataParallel)
○ AI 모델 훈련을 위한 멀티 쓰레딩 기술이다. 모델의 훈련시간은 데이터셋 크기, 모델의 크기에 따라 상이하지만, 우리가 사용하는 SSL 기반 PLM은 매우 큰 모델이며 데이터셋도 많이 존재한다. 따라서 단일 쓰레드로 훈련을 진행하게 된다면 대략 한 번 훈련에 1주일 이상이 소요된다. 기한이 정해진 프로젝트에선 분산 프로그래밍이 필수적이다. 또한 모델과 배치 사이즈가가 커질수록 그래픽 메모리가 많이 필요하지만 End급 그래픽카드의 경우 가격이란 현실적 문제가 생긴다.때문에 GPU 여러개에 데이터를 분산시켜 메모리를 효율적으로 사용한다. 최종적으로 사용한 형태는 4개의 그래픽카드에 연산을 4개로 분할시켜 병렬적으로 진행시켰다. 이를 통해 작업에 소요되는 시간을 실제 약 5배 이상을 단축할 수 있었다. (4배의 병렬 속도 & 배치 사이즈 확대를 통해 소요하는 시간 감소)
● ONNX, Sentis
○ 우리의 최종 목표는 훈련시킨 모델이 실시간으로 게임 안에서 데이터를 받고 추론을 진행하는 것이다. 즉 On-device 환경에서 구동해야한다. 이를 위해 먼저 ONNX라는 공유 플랫폼을 사용한다. 이는 서로 다른 DNN 프레임워크 환경에서 만들어진 모델을 서로 호환되게 해주는 Docker와 비슷한 개념이다. ONNX는 내부 그래프를 정적으로 단순화시키기에, 파이썬 기반 모델의 오버헤드를 제거하게 된다. 이를 통해 모델 경량화 및 추론 속도의 이점을 얻을 수 있으며, On-device 상황에서 실시간 작동해야하는 게임에선 필수적인 기술이다.
○ 이렇게 변환한 ONNX를 Unity에 넣고 모델을 실행시키기 위해 Sentis를 사용하였다. Sentis는 Unity에서 지원하는 AI 추론 패키지이며, 변환시킨 ONNX를 Unity에 import한 후, input을 지정해주면 Unity 내부에서 추론을 진행하게 된다.
○ 또한 내부의 모델은 비동기로 진행하게 된다. 비동기 작업이란 작업이 완료될 때까지 기다리지 않고, 다른 작업을 동시에 수행하는 것을 말한다. 모델의 추론은 어느정도의 시간이 소요되는데 이를 동기적으로 수행한다면 게임 진행에 방해가 될 수 있다. 따라서 게임의 진행과 모델의 추론을 병렬적으로 진행하게 코드를 작성하였다. 하지만 비동기로 병렬 진행하게 된다면 쓰레드를 많이 차지하게 되며, 진행중인인 비동기 작업의 결과를 다른 프로세스에서 참조를 하게 되면 잘못된 값을 참조하게 되는 문제도 존재한다. 때문에 참조 부분전에 반드시 모든 프로세스의의 동기화를 진행해야하는 주의점도 존재한다.

◇ 미로의 무작위 생성을 위해 Recursive Backtracking 알고리즘을 선택했다. 미로 생성 알고리즘은 다양하게 존재했는데, 그 중 Recursive Backtracking 알고리즘을 선택한 이유는 2가지가 있다. 첫 번째, DFS를 이용한 알고리즘이기 때문에 익숙한 방식이고 구현하기 쉽다. 두 번째, DFS를 이용하였기에 모든 칸들을 방문한다는 보장이 되어 있다. 이 점이 중요한 이유는 절차적으로 생성된 맵이 단순 직사각형이 아닌 다각형이라는 데에 있다.

◇ 씬 구성을 위해 Cinemachine을, 전투 시스템을 구현하기 위해 Navigation 시스템을 사용하였다. Cinemachine을 채택한 이유는 자동으로 카메라를 제어할 수 있으며 여러 카메라 효과를 적용할 수 있기 때문이었다. 무엇보다도 가상 카메라 추가 등 씬 뷰의 확장성을 고려해서 선택한 것이 가장 큰 이유였다. 또한 Navigation 시스템을 활용하여 몬스터 AI를 편리하게 관리할 수 있게 하였으며, 몬스터 AI가 설정되어 있는범위 내에서만 효율적으로 경로 탐색을 할 수 있게 로직을 구현하였다. 마지막으로, 몬스터처럼 지속적으로 생성되고 파괴되는 오브젝트는 오버헤가 크기 때문에 최적화를 위하여 Object pooling 방식을 선택하였다.

◇ 절차적 맵 생성 디자인 본 프로젝트에서는 인게임 맵의 유동적이고 다채로운 생성을 위해 절차적 맵 생성 기법을 도입하였다. 절차적 맵 생성은 매번 다른 맵을 제공함으로써 플레이어에게 반복되지 않는 신선한 경험을 제공하고, 개발자에게는 콘텐츠 제작의 효율성을 극대화할 수 있는 장점을 제공한다. 절차적 맵 생성을 구현하기 위해 다음과 같은 알고리즘과 기술을 선택하였다.

● 절차적 맵 생성을 위해 다양한 알고리즘을 검토한 결과, 본 프로젝트의 요구사항에 가장 적합한 알고리즘으로 Cellular Automata, Delaunay Triangulation, Minimum Spanning Tree (MST), 그리고 A* 알고리즘을 선정하였다. 이러한 선택은 다음과 같다
○ Cellular Automata: 동적인 방과 벽의 배치를 통해 자연스럽고 복잡한 던전 구조를 생성할 수 있으며, 구현이 비교적 간단하여 초기 단계에서 효과적으로 사용할 수 있다.
○ Delaunay Triangulation: 생성된 방들 사이의 연결성을 확보하고, 효율적인 경로를 생성하는 데 유용하다. 방들 간의 최적의 연결을 보장함으로써 맵의 논리적 일관성을 유지할 수 있다.
○ Minimum Spanning Tree (MST): 불필요한 경로를 제거하고, 필수적인 연결만을 남겨 던전 내 방들이 고립되지 않도록 한다. 이는 맵의 탐험성을 높이고, 플레이어가 전략적으로 경로를 선택할 수 있도록 돕는다.
○ A* 알고리즘: 최단 경로 탐색을 통해 맵 내 이동의 효율성을 극대화하며, 플레이어의 이동패턴에 따라 맵의 동적 변화를 지원한다.

개념설계안

내용

이론적 계산 및 시뮬레이션

내용

상세설계 내용

내용

결과 및 평가

완료 작품의 소개

프로토타입 사진 혹은 작동 장면

내용

포스터

내용

관련사업비 내역서

내용

완료작품의 평가

내용

향후계획

내용

특허 출원 내용

내용