목표
소프트웨어 공학, 그리고 설계의 중요성을 잊지 않기 위해서, 나만의 프로그램을 만들어보고 그 과정에서 필요한 설계를 직접 구성해보고자 한다.
이 프로그램의 목표
최근 할게 없어 게임들을 구경하던 중, 일부 선택지 게임들을 결제하고 플레이하게 되었다. 난생 처음으로 탐험형 게임이 아닌, 스토리 위주의 게임을 플레이하게 되었다. 난 평소 소설책과 이를 기반으로 하는 게임 둘 다 차이는 없으리라 생각 해 왔기에 더욱 더 인상이 깊었는데, 이야기뿐만 아니라 배경 음악 등장인물 목소리 UI 역시 이야기를 돋보이게하는데 큰 역할을 한다는 사실을 알 수 있었다.
이러한 게임을 개발하거나 구성하는데 있어 "도움이 될 수 있는 녹음 프로그램 또는 더 나아가 더빙을 현실감 있게 도와주는 프로그램을 개발하면 어떨까"라고 생각하였다.
기대 효과
이러한 개발 연습을 하면 나에겐 무슨 효과가 있을까? 시간 낭비는 아닐까? 개발자로서, 나로서 무슨 의미가 있을까?
- 음성 출력 및 처리 과정에서 그래픽 처리 기술을 습득한다.
- 음성을 합성하고 상쇄하는 방법을 습득한다.
- 소리를 렌더링하고 믹싱할 수 있다.
- 더빙되기 전 목소리와 후 목소리를 비교하고 변환함으로써 좀 더 정확하고 유사한 목소리 더빙이 가능하다.
현실적인 문제
이 프로그램을 개발하거나 연습할 때, 창의성을 위해 현실적인 문제를 고려하는 건 비권장되지만, 이 부분은 빼 놓을 수 없다고 생각했다. 만약 내가 이 프로그램을 만들게 된다면 현실적인 문제는 무엇일까?
고려사항 1 - 개발 시간이 너무 오래 걸리는 건 아닐까?
적당하게 일주일로 시간 제한을 걸어두고 프로그램을 만들어보자. 첫 날에는 시스템 설계를 하고, 다이어그램을 구성한다. 그리고 실제 PD Layer (음성 처리)부터 설계를 하고 UI 구성 단계로 넘어가본다. UI 단계에서는 OpenGL을 사용할 수 있지만, 성능 상황을 보고 OpenGL을 사용하기로 결정한다.
고려사항 2 - 지식 재산권 문제는 없을까?
개방된 오픈소스를 위주로 사용하되, 공부에 도움이 되기 위해서 주요 기능은 직접 구현하기로 결정한다. (오디오 합성 등) 오픈소스는 MIT 라이선스~ Apache2 라이선스 내외로 사용하자.특허같은 지식 재산권 문제의 경우, 원래 업으로서 실시할 목적이라면 조사를 해야겠지만, 명심하자, 나는 업으로서 실시하려는 것이 목표가 아니라 단순 공부 목적으로 만들고, 그 과정을 기록할 뿐이다. 나 자신을 훈련 할 목적으로, 연구할 목적으로, 더 나은 방향을 찾아가기 위한 수단으로서 개발을 진행하기에 이 부분에 깊은 고민을 하지 말자.