조사처리용 tjs 함수와 이름 입력을 'f.이름' 변수에 받았을때의 매크로(ks)를 모아둔 파일입니다.

게임 first.ks 파일 등에 [call storage=namek.ks] 라고 적어주시면 아랫줄부터 사용할 수 있습니다.


주석은 언젠가 달지도 모르지만 안 달지도 모릅니다.

어려운 수준은 아니니 자유롭게 수정해서 쓰세요.

발생하는 오류, 문제점, 의문 등은 스스로 해결해주세요.


namek.ks



그 외, 제네레이터 typeC 등에 들어있는 매크로 (선택지, 변수 설정 등)도 자유롭게 사용하셔도 됩니다.

시간이 나는대로 출처, 주석, 사용법 등을 정리해서 공개하고 싶은데 좀처럼 여유가 안 나네요.


선택지는 http://www.geocities.jp/keep_creating/DojinDOC/kirikiriSmallTips.html 페이지의 내용을 조금 수정해 history에 선택한 것이 무엇인지 등을 표시하는 처리를 넣었습니다.

카모카테 2차 창작 키트용에 맞추어 선택지 소거 등의 처리가 들어있으니 다른 게임에 사용하시려면 해당 부분은 수정하셔야합니다. label도 특정 플러그인을 불러와 사용하고 있으므로 주의하세요.

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

키리키리 기반 엔진  (0) 2012.11.09
키리키리를 시작하시는 분들께 드리는 팁  (1) 2012.04.05
Posted by karaha
,

KAG를 확장한 KAGEX와 KAGEZ

html5를 바탕으로 제작된 티라노 스크립트
안드로이드 개발 엔진인 KAS
중국권에서 만들어진 the nvl maker 등등 KAG와 호환, 확장되는 것들이 꽤 있네요. 아직 등장하지 않았지만 html5로 개발중인 Almight도 있구요.
아무래도 키리키리 자체가 꽤 오래된 엔진이다보니 연출이나 UI 면에서는 요즘 나오는 툴에 비해 불만족스러운 부분이 있는데 이런 쪽까지 눈을 넓히면 기존의 제약이나 불만점(연출,UI,크로스 플랫폼 등)은 상당히 해소될 것 같습니다.

문제는 역시 매뉴얼인데... kag나 tjs가 태그 레퍼런스가 거의 완벽하게 갖춰져있고 매뉴얼만으로 학습이 가능한 반면 아직 다른 툴들은 전체적으로 매뉴얼이 부족해 보입니다. KAGEX나 KAGEZ가 이런 점이 특히 두드러집니다. 기존의 태그가 생각대로 동작하지 않는 경우가 있다보니 이런 걸 마주치면 난감할 따름이죠. html5나 안드로이드에 대응되는 툴들은 대부분 KAG 태그만 구축해두고 tjs 대신 다른 언어를 쓰는 경우가 많으니 이런 점도 주의해야합니다.

그 외에 키리키리 자바 이식 프로젝트도 진행되고 있는 것 같습니다. 이 쪽은 tjs까지 전부 그대로 사용할 수 있는 것 같습니다. kag는 거의 끝난 것 같지만 아직 tjs 부분이 상당히 불안정해 보이네요.

그래도 선택의 폭이 넓어지고 점점 발전해가는 건 좋은 현상이죠. 2.32 버전 이후로 본가 쪽에선 특별히 움직임이 없다보니...
멀티 플랫폼이나 안드로이드 대응 등으로 고민하시는 분들은 위에 소개된 엔진들을 한 번 찾아보세요.


아래는 KAGEZ 캡쳐입니다. 개인적으로 선택지 스킵, 디버그 강화가 반가웠습니다.




아래는 NVL MAKER 화면입니다. UI나 선택지, 폰트 등을 간단히 지정할 수 있게 되어있습니다.



그리고 아래는 유명한 프리 게임의 2차 창작 키트입니다. 


선택지는 직접 스크립트를 쳐야하지만, 분기 없는 간단한 스토리는 BGM, 배경, 캐릭터, 효과음 등을 클릭으로 지정해서 사용할 수 있게 제작되어 있습니다. 현재 제작자님께 허가를 받아 게임 본체 실행과 관련된 패치, 2차 창작 키트의 한글화를 진행하고 있습니다. 자세한 내용은 패치가 끝나면 다시 들고오겠습니다.



이 외에도 알려지지 않은 엔진이 존재할 가능성이 있습니다. 플러그인 도입, 매크로 파일 등에 의해 연출이나 기능등은 간단히 확장시킬 수 있는 부분도 존재합니다. 드물긴하지만 오픈 소스로 공개된 게임 템플릿 등도 존재하니 한 번 찾아보세요.
키리키리3에서 멀티 플랫폼을 지원할 계획이라는 이야기는 들었지만 이 쪽을 기대하는 건 접어두는 게 좋을 것 같네요.

위에 소개한 엔진들 중 KAS는 매뉴얼 번역이 진행되고 있습니다. 안드로이드 개발에 관심 있으신 분은 여기를 방문해보세요.

Posted by karaha
,

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



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
,