프로젝트중 TTS 음성을 통해 게임 진행을 안내하는 부분이 있었다. 게임에서 이 부분은 꽤나 큰 비중을 차지했고 그만큼 파일의 수 또한 많았다. 이 파일들을 효율적으로 설정하고 관리하는 방법을 이 포스팅에서 다룰 생각이다.

 

 

 

전체 목차

0. 프로젝트 상황 <-

1. TTS 음원 파일의 문제점 <-

2. 음원 파일을 자동으로 수정하고 관리 문서(Json)를 만드는 툴 만들기

3. 해당 음원과 관리 문서 Json 파일을 유니티에서 읽어들이기

4. 읽어들인 데이터를 활용하기

 

 

 

 


0. 프로젝트 상황

 

기획자분께 대사가 적힌 엑셀파일을 가져와서 작업한다.

작업 했던 엑세파일 그대로 예시로 들 수 없어서 예시로 나무위키에 있던 페이커 소개글로 채워 넣었다. 

형식은 똑같다. 이 글을 쓰는 동안 담원이 우승했다 담원으로 쓸껄 담원! 담원! 담원!

 

해당 엑셀파일에서 대사를 긁어서 타입캐스트에 넣어줍니다.  

 

그리고 해당 대사를 아래 처럼 받습니다.  

 

 

그럼 아래와 같은 형식으로 파일을들 받게 됩니다. 

이때 문제점들이 있었습니다. 

 

 

 

 


1. TTS 음원 파일의 문제점

 

문제점은 크게 3가지가 있습니다.

  1. 파일 이름이 한글이다.
  2. 해당 파일이 어떤 대사를 가지고 있는지 알아야 한다.
  3. 순서가 int취급이 아닌 String취급을 받아 0다음에 10으로 된다.
1. 파일 이름이 한글이다.

문제점 :

파일 이름이 한글이기 때문에 분명 이름이 꺠질 가능성이 있다. 파일을 이름명으로 가져 왔을 때 파일 이름이 깨졌기 때문에 불러오지 못하는 현상이 생길 수 있다. 따라서 한글이름을 제거해줘야 한다.

 

해결방안 :

유니티에서 가져오고 나서 한글은 모두 지우긴 하지만 파일 자체 이름을 바꾸는건 아니다. 따라서 위험성은 여전하다.

따라서 새로운 툴을 만들어 한글을 없애는 툴을 만들어야 한다..

 

 

2. 해당 파일이 어떤 대사를 가지고 있는지 알아야 한다.

문제점 :

1번의 문제를 해결하면 해당 파일이 어떤 대사였는지 파악하기 힘들다.

다른 외부 문서로 관리...를 하면 좋겠지만 대사 스크립트가 생각보다 많고 시간도 많이 없다.

 

해결방안 :

그럼 자동으로 문서를 만들자.

해당 파일 이름을 txt 파일로 index 번호와 스크립트를 추출한다.

그리고 파일의 이름은 인덱스값만 가지고 있는다.

 

그리고 유니티에서 해당 txt 파일을 읽어온다.

그리고 (AudioClip clip , int index , string Script ) 클래스를 만들어 관리한다.

 

(clip , 22 , "아이템을 획득했구나") 이런식으로 될것이다.

 

이러면 직관적으로 관리가 가능할것이다.

3. 순서가 0 다음에 10으로 된다.

아래 이미지 처럼 숫자가 String으로 취급되서 정렬이 괴상해집니다. 

하지만 2번 문제를 통해 파일이름이 인덱스만 된다면 해당 문제는 자연스럽게 해결될것입니다. 

 

 

즉! 파일들을 관리하는 툴을 만들 필요성이 생겼다. 

 


 

WPF로 툴을 만드는 것은 nichi72.tistory.com/37 에서 계속 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+ Recent posts