| [ OpenDiary ] in KIDS 글 쓴 이(By): zilch (_) 날 짜 (Date): 2006년 2월 12일 일요일 오후 08시 06분 41초 제 목(Title): 주말에 한 일 한 1년 반 전에 시작한 일이 있었는데, Roguelike Game (nethack이나 angband 부류) 에 음성 기능을 붙이는 것이다. 왠지 스마트한 사람이 좋아할 것 같은 Roguelike Game! 나는 골뱅이에 친숙해지기 어려워 제대로 즐긴 적이 거의 없었다. (*1) 그래서 흥미를 돋울 겸, 영어공부도 할 겸 가지고 있는 TTS의 기능을 활용하기로 한 것이다. 그러나 TTS 프로그램에서는 API를 제공하지 않는다. (API를 제공하는 MS의 TTS 개발 패키지는 음성이 별로 좋지 않고, 쓰는 법도 쉽지 않은 것 같았다) 어떻게 해야 할까? 1년 반 전에 시도한 일은, TTS 프로그램을 미니모드(*2)로 만든 다음 클립보드에 데이터를 전송하고 TTS 의 Play 버튼이 눌린 것처럼 메시지를 보내는 것이다. 그렇지만 포커스가 자꾸 TTS 쪽으로 날아간 뒤 돌아오지 않아서 포기하고 있었는데 엊그제 다시 돌려 보니 Windows XP에서는 포커스 이동 없이 잘 되지 않는가! (*3) 윈도우 프로그램에 미숙하여 엄청 삽질한 다음에 결국 어느 정도 제어가능한 API를 만들었다. :) 이를 Angband 최신 버전에 붙여서 음성을 들으며 게임을 할 수 있도록 만들었다. 즉, 화면에 나타나는 해설이 음성으로도 나오는 것이다. 그런데 여기까지 하고 나니까, 뿌듯하긴 한데 정작 게임은 잘 안하게 된다. 게다가 nethack 부류를 많이 안 해봐서 몰랐던 사실인데, 화면에 나오는 메시지는 몇 종류 안 되어서 영어공부에 도움이 별로 안 된다는 것이다. "You enter a maze of down staircases." "Pick up 21 Iron Spikes?" "You are wearing Chain Mail (-2)" 흘러나오는 말은 이런 정도. 그래도 만드는 동안은 재밌었으니까.. -- (*1) Roguelike 게임에서는 주인공이 @로 표시된다. 요즘에는 그래픽 타일도 사용할 수 있다. (*2) 미니모드는 이 회사의 프로그램에서 최상위 모델만 제공한다. (*3) 지난번에 시도했던 OS는 Windows 98이었다. 아마도 콘솔에서 포커싱하는 방법이 다른 것 같다. -- TTS: Text-To-Speech API: Application Programming Interface |