여차저차 키리키리로 제작을 시작한지 몇달이 되어가네요. 익숙해지고나니 이만큼 편리한 툴도 없다 싶지만 처음 시작했을때는 당황도 많이 했었습니다. 그 부분을 정리도 할 겸, 다른 분들께 도움이 될까 싶은 마음으로 올려봅니다.



1. 파일명에 한글 사용 금지, 스크립트 파일은 유니코드 사용
당연하다면 당연한 부분이고 안타깝다면 또 안타깝기도합니다. 파일명에 한글이 들어가면 릴리저가 정상적으로 작동하지 않기 때문에 배포 목적이라면 처음부터 한글은 사용하지 않는 게 편합니다. 나중에 뜯어고치려면 골치아파요. data 파일을 통째로 배포하겠다...라고하면 또 모르겠지만 그런 분은 거의 없겠죠.
파일명을 쓰실때는 띄어쓰기나 바(-)도 피하시는 게 좋습니다. 키리키리 내부에서 작동하는 변수중에 파일명을 참고하는 부분이 있는데 (대표적으로 라벨 미독/기독 판정) 저런 문자들이 들어가면 해당 변수에 액세스하기 곤란해집니다. 보기 편한 파일명을 지향하신다면 대문자를 섞어 쓰시거나 언더바(_)를 사용하세요.
스크립트 파일은 한글화된 폴더에 있는 ks나 tjs 파일을 복사-이름변경 해서 쓰시면 인코딩에 신경쓸 필요가 없어서 편리합니다.


2. 기본 환경설정
config.tjs가 아니라 메뉴바나 우클릭 서브루틴 같은 부분에 관해서입니다. 키리키리의 약점 아닌 약점이라고 생각하는데... 초기 상태의 키리키리는 메뉴가 약간 부실합니다. 대표적으로 음량 설정이 없다거나. 시스템 버튼을 만들고 싶은데 어떻게 해야할지 모르겠다거나. 이런 부분들은 대부분 플러그인으로 해결이 가능합니다. 웹상에서 설명과 함께 친절히 배포해주시는 분들도 계시고 기본적으로 다운 받은 폴더에도 포함되어 있습니다.
kag3\kag3plugin 폴더로 들어가시면 볼륨 메뉴 추가 (gvolume), 우클릭 메뉴 (sample\rclick_tjs), 시스템 버튼이 부착된 메세지 창(systembutton.ks) 등이 샘플로 들어있습니다. 그 외에 비나 눈 효과라던가 스탭롤 같은 기능도 들어있습니다. 그리고 이런 플러그인들을 수정하고 더 발전시킨 플러그인들도 검색하면 나오구요. 이런 플러그인들을 기본적으로 등록해두면 제작만이 아니라 테스트 플레이를 할때도 한결 편해집니다. 직접 조립해서 완성품을 만들었을때의 기분 같은 것도 들고... 아무튼 좋아요.
처음엔 잘 모르더라도 @call storage="파일" 만 써넣으면 알아서 작동하는 플러그인들을 등록해두세요. 계속 수정하고 만지는 도중에 어떻게든 알게 됩니다. tjs는 사실 봐도 봐도 모르는 부분이 많지만... 뭐 잘 돌아가기만 하면 상관없죠.


3. 세이브에 관해
다른 툴로 제작해 본 적이 있는 분이시면 귀찮고 당황스러운 게 바로 이 부분일 것 같습니다. 키리키리에는 '세이브 가능한 라벨'이라는 게 있어서 이 부분을 지나야 저장이 가능하고, 또 이 부분에서 세이브가 됩니다. 이 라벨 관리를 제대로 하지 않으면 로드했을때 몇 페이지 전으로 돌아가거나 하는 불상사가 발생합니다. 이걸 의도적으로 사용하거나 사양으로 놔두는 경우라면야 상관없겠지만 노벨 게임을 제작하거나 할 때는 자동으로 세이브 가능한 상태가 됐으면 좋겠다...는 마음이 생기죠. 이건 누구나 마찬가지인지 이미 좋은 플러그인이 나와있습니다.
언제 어디서나 세이브 가능한 플러그인을 로드해준 후에 매크로를 하나 만들어서 개행을 이 매크로로 처리해주면 신경쓸 필요 없이 깔끔하게 세이브가 가능합니다. 제가 쓰고 있는 파일은 'SaveAnyWhere.ks'입니다. 그냥 이 이름대로 검색하시면 찾으실 수 있으실거에요. 
first.ks에 @call storage="SaveAnyWhere.ks" 를 넣고 아래 같은 매크로를 하나 만들어 줍니다.

@macro name="pr"
@p
@er
@label
@endmacro

그리고 스크립트 할 때는
첫번째줄입니다[l][r]
두번째줄입니다[l][r]
마지막줄입니다[pr]
같은 식으로 써주면 일일히 라벨을 쓸 필요 없이 해당 페이지에서 세이브/로드가 가능해집니다.


4. 안티 앨리어싱
이게 의외로 신경쓰이는 부분인데... 키리키리는 대부분의 옵션에서 안티 앨리어싱이 true로 지정되어 있습니다. 일어일때는 상관없는데 한글인 경우 대부분 글씨가 흐릿하게 번지면서 가독성이 떨어집니다. 예시용으로 종료 확인창을 하나 찍어왔습니다.

  




왼쪽이 적용 상태, 오른쪽이 해제한 상태입니다. 어느쪽이 깔끔하게 보이는지 명백하죠? 게임내의 폰트는 Config.tjs에서 간단하게 해제할 수 있으니 해당 옵션을 false를 주시는 걸 추천합니다.
그 외에 자주 마주치는 부분은 drawText 부분입니다. drawText를 쓰는 플러그인을 사용하신다면 직접 해당 부분을 false로 바꿔주시는게 좋습니다. 잘 모르겠다, 고 하시면 글자가 이상하게 보이는 부분을 영어나 숫자로 처리하세요. 한글보다는 깔끔하게 보입니다.


5. 콘솔창 깨지는 문제
디버그 콘솔창 문제입니다. 한글을 쓰면 아래처럼 사정없이 깨지면서 에러를 뿜어냅니다. 


파일명에 한글 사용 못하는 것도 아쉬운데 변수까지 죄다 영어로 처리할수는 없잖아요? 프로그래밍이나 컴파일 같은 건 잘 모르지만 한글 사용이 가능하게 한 실행파일을 첨부합니다. 아래 파일을 받아서 사용하세요.
폰트 선택 부분에서 일부 깨져나오는 글자도 정상적으로 나옵니다. 다만 폰트 변경 자체가 작동하는가하면... 아. 바탕체나 궁서체, 굴림, 돋움 같은 기본 서체는 변경이 되더군요. 이 실행파일만이 아니라 한글화된 파일에서도 변경됩니다. 변경된 사항은 페이지가 넘어간 후에 적용됩니다.


6. 미번역 부분
수정한지가 오래전이라 기억이 조금 애매한데... '타이틀로 돌아간다' 부분이랑 회상에서 이전/다음 페이지 부분, 중복 실행 금지시 메세지 표시 부분 같은 것들은 수정해둬야할 부분이라고 생각합니다.
각각 아래 부분을 수정하세요. 전부 system 폴더에 있는 파일들입니다

타이틀로 돌아간다 - MainWindow.tjs파일 내 function goToStartWithAsk() 아랫줄 var result = askYesNo("最初に戻ります。よろしいですか ?"); "" 안에 있는 부분을 한글로 바꿔주세요

회상의 이전/다음 페이지 - HistoryLayer.tjs의 function makeButtons() 아래에 있는 nextPageButton.caption = "≪ 次ページ "; 및 prevPageButton.caption = " 前ページ ≫"; 와 closeButton.hint      = "メッセージ履歴を閉じる"; 부분을 수정해주세요.

중복 실행 메세지 - Initialize.tjs 파일에서 System.inform(System.title + "はすでに起動しています"); 부분을 검색해서 수정해주세요.

이 외에 폰트 선택 부분을 바꾸고 싶으시면 MainWindow.tjs 파일의 function selectFont() 아래 부분을 보시면 되는데... 폰트 선택 자체가 정상적으로 작동하질 않다보니 필요하신 분들만 수정하시면 될 것 같습니다.


7. 그 외 드리는 말씀
노벨게임 제작+스크립팅 방식의 무료 제작 툴 조합이라면 국내 툴도 좋지만 키리키리나 렌파이를 익히시는 것도 좋다고 생각합니다. 영어에 자신이 있으시면 렌파이, 일어에 자신이 있으시면 키리키리, 이도저도 아니면 그래도 키리키리를 추천합니다. 다른 이유 때문이 아니라 번역기 퀄리티가 일어쪽이 낫기 때문에... 일어라고는 까막눈 수준이었던 저도 그래도 어떻게든 배우는 게 가능했었으니까요 ^^;

간혹 키리키리 강좌나 플러그인을 찾다보면 여기는 키리키리로 제작하면서 빠트릴 수 없는 사이트! 같은 곳들이 있습니다. 이런 곳은 등록해두시고 자주 들러서 참고하시는 걸 추천합니다. 제작을 하다보면 정말 간단한 미스를 놓치거나 알고 있던걸 잊어버리거나 하는 경우가 많습니다. 그럴때 도움이 되기도하고 같은 제작자 입장에서 감사함과 존경심과 동병상련(...)의 마음이 들기도하고.

처음부터 너무 많이 익히려고 하지 마시고 그 때 그 때 필요한 부분을 찾아서 하시면 될거에요. 극단적으로 말하자면, 변수에 대한 이해+if문 사용+font 태그+link 태그 정도만 습득하셔도 간단한 게임 제작 정도는 할 수 있습니다. 지금의 저만해도 그림을 못그리다보니 해당 태그를 무시한채로 스크립팅을 해와서 상당히 편파적인 지식을 갖고 있습니다. 나중에 그래픽을 사용하게 되면 해당 부분을 익히거나 플러그인을 도입하거나...하는 식으로 또 배워나가게 되겠지요.

강좌 사이트들 보며 기본적인 연습을 하고, 플러그인을 도입해보고, 무엇보다 매크로를 쓸 수 있게되면 대부분의 명령을 한글로 처리할 수 있게 되어서 상당히 편리해집니다. 딱 거기까지만 하셔도 키리키리로 제작하는데는 크게 문제가 없을 것 같네요. 물론 일어를 조금이라도 할 줄 알면 도움이 되고, 키리키리 자체가 초심자에게 적합한 툴은 아니라는 이야기들을 많이 하시지만... 어느정도 익숙해졌느냐, 어느 정도 시간을 들였느냐 같은 걸로 충분히 커버가 가능하다고 생각합니다. html을 다뤄보셨거나, 다른 제작툴을 어느정도 사용해 본 적이 있거나, 직접 한자한자 스크립팅 하는 방식이 자기에게 맞는다는 분들께는 키리키리도 그리 어렵지 않은 툴이라고 생각합니다.



간단하게 적을 생각이었는데 상당히 길어졌네요. 혹시 빠트린 게 있으면 생각날 때 더 추가하겠습니다.
기본 틀을 만들어뒀더니 마음이 편해졌습니다. 바꿔말하면 게을러졌다고할까... 노벨을 만들어볼까 게임성을 더해볼까 망상만 이리저리 하고 있습니다.

'제작 > 키리키리' 카테고리의 다른 글

키리키리용 한글 조사 처리 스크립트  (0) 2012.11.28
키리키리 기반 엔진  (0) 2012.11.09
Posted by karaha
,