14강은 자주 있는 질문에 대한 답을 FAQ으로 정리한 것과, 스크립트 가이드 이용법에 대해 다룹니다.
13강까지의 기능은 많이 사용되는 주 기능을 많이 다루었지만, 모든 기능을 사용한 것은 아니지요.
모두 다룰 수도 없고, 지금쯤이면 응용력도 많이 늘어나셨을 테니, 필수 개념을 잡을 수 있는 내용으로 다루었습니다.
[Lecture 14. VNAP Helper Book.]
1. 시나리오 파일의 종류와 그 관리법.
VNAP은 프로그래밍 없이도 비주얼 노벨류의 작품을 만들 수 있게하는 게임 엔진입니다.
프로그래밍을 하지 않는 대신에 우리는 명령어라고 하는 스크립트(Script)를 작성해야만 했습니다.
이 강좌에서는 VNAP의 구동방식에 대해 언급하려고 합니다.
강좌에 사용되는 명령어의 사용법을 이해하기 위해 꼭 알고 있어야 하는 부분이기에 잘 알아두시길 바랍니다.
일단 VNAP 제작위원회가 제공하는 스크립트 가이드를 엽시다.
<왼쪽은 명령어를 바로 찾을수 있고, 오른쪽에 설명이 나오는 형식으로 구성되어 있다.>
현재 VNAP의 기능을 설명해 놓은 스크립트 가이드입니다.
처음에는 좀 어렵고 보기가 힘들지만, 아주 조금만 실력이 붙어도 충분히 혼자서도 VNAP의 기능을 이용하실 수 있습니다.
본 강좌에서는 모든 기능을 설명해 드리고자 하는 것이 아닌, 최소한의 뼈대를 제공해 드릴뿐입니다.
스크립트 가이드를 여셨으면, 마우스로 스크롤해서 아래쪽의 내용을 읽읍시다.
파란색과 주황색 줄로 감싸진 부분은 강좌에서도 들었던 형식입니다만, 실제로는 VNAP 제작위원회의 스크립트 가이드의 내용을
설명해 둔 것입니다. 따라서, 위의 스크립트 가이드에 설명된 내용을 읽고 예제를 그대로 따라해 보시면 되는 것입니다.
여기서는 빨간색 줄로 감싸진 부분인, 스크립트의 종류와 그 설명을 하도록 하겠습니다.
① 쇼(SHOW) 스크립트
보여주다라는 뜻의 이 스크립트는 주로 동영상을 재생하는데 필요한 스크립트입니다.
그리고 cgeffect의 대부분의 기능을 주로 이 쇼스크립트로 수행하게 되는데요,
여기서 동영상을 재생하는 법을 설명하면서 쇼 스크립트에 대해 알아보겠습니다.
VNAP에서는 동영상 파일(*.avi , *.mpg) 등을 재생가능하고, 플레시 파일(*.swf) 역시 재생이 가능합니다.
이런 동영상 파일들은 쇼 스크립트 안에서만 재생이 가능합니다.
먼저 VNAP 폴더에 동영상 파일을 넣읍시다.
(예제에 든 동영상 파일은 용량 및 저작권으로 파일첨부는 하지 않습니다.)
그리고 openning.txt 라는 텍스트 파일을 만듭시다.
그리고 scenario.txt 파일에 아래와 같이 적읍시다.
이미 만들어둔 openning.txt 파일에는 아래와 같이 적습니다.
이렇게 했을때 비로서 동영상이 재생됩니다.
(중요) 여기서 show 명령어로 openning.txt 파일을 불러내었으므로, openning.txt 파일은 쇼 스크립트가 됩니다.
<명령어 체크>
movie : 동영상 재생 명령어, 크기 조절은 FULL 옵션을 이용하여 전체 화면에서 재생이 가능.
자, 지금까지 배워왔던 스크립트의 종류가 무엇이었는지 스크립트 가이드를 통해 알아볼까요?
자, 스크립트 가이드를 보니 명령어 옆에 가로안에 영어가 쓰여져 있습니다.
그 명령어는 가로안의 스크립트 안에서만 사용이 가능하다는 뜻입니다.
그래서 text,cg,char 명령어는 시나리오 스크립트(아주 일반적으로 사용됨)에 사용됨을 알 수 있으나,
text나 char 명령어는 시나리오 스크립트 이외에는 사용할 수 없다는 것을 알수 있습니다.
간혹 동영상 재생을 위와 같이 하지 않고 아래와 같이 타이핑하시는 분들이 많습니다.
<잘못된 사용법>
※ 시나리오 스크립트인 scenario.txt 파일 안에서는 movie 명령어가 작동하지 않으므로 재생이 안되는 것입니다.
이제, 스크립트들의 차이를 아시겠습니까?
② 메뉴(Menu) 스크립트.
타이틀을 만들때 사용하는 스크립트입니다.
이 스크립트 역시 아래와 같은 사용법으로 이용합니다.
(중요) 위의 쇼스크립트와 동일하게, title.txt파일(타이틀에 관한 명령어가 적혀있는 텍스트)을
menu 명령어로 불러내기 때문에 메뉴 스크립트가 됩니다.
[Lecture 09. 메뉴의 구성.] 강좌를 참조해주세요.
③ 시나리오(Scenario) 스크립트.
지금껏 배워왔던 종류의 스크립트입니다.
시나리오 스크립트는 위의 쇼,메뉴스크립트같이 명령어로 다른 파일을 불러내지 않고 그대로 이용하면 시나리오 스크립트입니다.
가장 많이 이용되니 특수한 경우를 제외하고는 모두 시나리오 스크립트라고 생각하십시오 ^^
※ 시나리오 파일의 관리법.
여러분이 작품을 만드시다 보면, 명령어와 글들이 많아지게 될것입니다.
하지만, 텍스트 파일은 그 용량의 한계도 있고, 긴 글을 한 텍스트 파일 안에 넣으시면 관리가 매우 불편합니다.
수정을 하려면 그 긴 파일을 찾아가며 고쳐야 하니 여간 불편한 것이 아니지요(__)
그렇기 때문에 긴 시나리오 파일을 여러 파일로 나누어서 관리하시는 것이 좋습니다.
예를 들어 1장, 2장 이렇게 나누어진다면 하나의 파일에 그 두개의 내용을 담기보다는 하나의 내용은 하나의 파일에 담는것이
보기도 좋고 관리하기도 편합니다.
아래는 저의 작업폴더 파일을 예시로 들었습니다.
mow_p_log.txt 에서 부터 mow_snr5.txt 파일로 나뉘어져 있는 것을 볼수 있습니다.
이렇게 작업을 하시기 위해서는 loadsnr 명령어를 알고 있어야 합니다.
사용법은 아주 간단합니다.
시나리오 스크립트 안에서만 사용가능하며, 보통 한 파일의 가장 마지막에 위치해서 다른 파일을 불러오는 기능입니다.
이렇게 하면 mow_snr1.txt 파일을 불러오게 되어, 계속해서 글을 이을 수 있습니다.
<명령어 체크>
loadsnr : 다른 시나리오 파일을 불러오는 기능.
분기에 필요한 개념이니 잘 알아두시길 바랍니다.
그리고, 여러분들이 작업중인 폴더에 파일이 늘어나면 대단히 많은 파일 숫자로 헤깔리실 것입니다.
그것을 깔끔하게 만들어 봅시다.
마우스 오른클릭을 하여 아이콘 정렬 순서(I) -> 형식(T) 그룹별로 표시(G)에 체크를 합시다.
파일이 종류별로 정렬되어 매우 깔끔한 폴더가 됩니다^^
2. 자주 묻는 질문과 오류.
VNAP을 사용하면서 지금껏 보아왔던 질문을 모아봤습니다.
1) 파일이름을 찾을수가 없어요.
[scenario.txt]가 아니라 [scenario]로 보이는데 왜 scenario.txt라고 부르지요?
- 윈도우즈는 자주 사용되거나 잘 알려진 확장자에 대해 기본값으로 확장자를 숨겨서 보이지 않게 합니다.
따라서 이것은 옵션에 따라서 scenario.txt로 보일 수도 있고, scenario로도 보일수 있습니다.
폴더의 메뉴에서 도구(T) - 폴더 옵션(O)로 이동하여 폴더 옵션을 엽니다.
폴더 옵션 탭의 <보기>를 선택하고, 고급 선택란에 보시면 [숨김 파일 및 폴더]라는 항목이 있습니다.
기본값은 <알려진 파일 형식의 파일 확장명 숨기기>에 체크가 되어있으므로 자주 알려진 파일 확장자 .txt 는 표시되지 않습니다.
여기서 체크를 해제하면 아래와 같이 표시됩니다.
간혹 위의 사항을 모르시고, 체크가 된 상태에서 scenario.txt라고 모두 써 버리셔서 오류가 나는 경우가 있는데 조심하시길 바랍니다.
그렇게 쓰시면 실제 파일의 이름은 scenario.txt.txt가 됩니다.
<잘못 사용된 예>
2) 그림 파일을 읽을 수 없어요.
윈도우에서는 읽는 파일을 VNAP에서는 읽지 못해요.
정상 파일인데 VNAP에서 오류가 나요.
- 그 경우는 대부분의 경우 2가지로 좁혀집니다.
① 그림파일의 확장자를 임의로 바꾸었을 경우.
VNAP은 정상적인 이미지 파일을 올바르게 인식합니다.
예를 들어 BMP파일의 확장자를 JPG로 바꾸었다고 해봤을 때, 윈도우즈 안에서는 비록 그렇게 확장자가 바뀌어도
그림파일을 읽을 수 있지만, VNAP은 그것이 불가능합니다.
그것은 이름만 JPG파일일 뿐, 실은 BMP파일의 속성을 지니고 있기 때문이죠.
<이와 같은 경우는 잘못 사용된 경우입니다.>
제대로 된 방법을 알아봅시다. 저는 포토샵을 예로 들었지만, 그림판 역시 동일합니다.
이미지 뷰어도 파일 변환 기능을 가지고 있으니 어떤 방법을 사용하셔도 됩니다^^
① 포토샵의 메뉴 중 File-Open을 눌러서 원하는 그림을 불러옵니다.
② File-Save As를 누릅니다.
③ Format 항목에서 원하는 확장자를 선택하여 저장하시면 됩니다.
(다른 파일 역시 동일한 방법으로 바꿀수 있습니다.)
② 배경이 되는 그림파일의 크기가 지원하는 해상도와 다를 경우.
이 경우, 높은 확률로 런타임 오류를 내곤 합니다.
VNAP은 vnap.ini에 저장된 해상도를 기본으로 해서 실행되는데, 배경화면이 될 그림 파일이 그와 다른 크기일 경우 오류를 냅니다.
이에 맞는 크기의 이미지를 사용하시길 바랍니다^^
이미지의 크기 조절은 포토샵의 Crop기능이나 image size를 조정하여 변경이 가능합니다.
<위의 숫자는 가로의 길이, 즉 넓이이고, 아래는 세로의 길이, 즉 높이입니다.>
항목 추가시 업데이트됩니다...
Copyright ⓒ 2005-2009. 아우름이. All rights Reserved.
미디어 연구소(http://mediastudio.tistory.com/)
전 강좌에 이어 VNAP을 잘 꾸며서 가급적 상용작품처럼 만들어 봅시다.
보기 좋은 떡이 먹기도 좋지요♡
[Lecture 13. 앨범 모드의 구성.]
지금까지의 강좌를 바탕으로 어느정도 수준의 작품을 만들어 내셨을 것입니다.
내용은 잘 준비되었지만, 포장도 정말로 중요하지요 ^^
그 포장 중에서도 타이틀 메뉴의 구성과, 열심히 만들어내신 CG나 BGM을 소개하거나,
자신의 게임 제작 후기 등을 적어둔 앨범 모드는 정말 그 작품을 돋보이게 합니다.
<과거 제작하였던 WA-DE의 소스를 예로 들겠습니다. 조악한 디자인 센스는 봐주세용 ;ㅁ;>
먼저 앨범 모드로의 진입을 위하여 선행될 부분이 있습니다.
[Lecture 10. 다중 시나리오 만들기.] 에서 나온 "엔딩 후 타이틀 바꾸기"와 같은 원리로 사용자가 앨범모드를 볼 수 있도록 시점을 만드는 것입니다. 그것을 하지 않으시려면 타이틀의 처음부터 앨범모드를 활성화시키시면 되고, 엔딩 이후에 앨범을 보게 하시려면 10강의 강좌를 참조하여 만드시면 되겠습니다.
본 강좌는 소스 파일만 제공하고, 그 부분은 설명을 생략하고 앨범 모드의 설명을 하겠습니다.
앨범 모드에서 제공하는 항목은 대부분의 경우 그림(CG), 음악(BGM), 추가 시나리오(오마케) 옵션(OPTION)등입니다만, 오늘 이 자리에서는 모든 쪽의 응용이 가능하도록 아래와 같이 다루어보겠습니다.
1. CG
사용자가 게임을 하면서 보았던 CG를 보여주는 항목입니다.
[Lecture 09. 메뉴의 구성.] 에서 다루었던 타이틀 만들기에서 MENU스크립트의 사용과 button명령어에 대해 다루었던것과 동일하게, CG의 경우는 VNAP에서 cgbutton 명령어를 이용하여, 그 파일 이름으로, CG를 본 것의 여부를 알 수가 있습니다.
따라서 CG를 보여주는 것의 기능의 핵심은 바로 cgbutton 명령어입니다.
① CGBUTTON
이 명령어의 사용법은 매우 간단합니다.
준비물은 해당 CG가 출력되지 않았을 때(즉, 아직 사용자가 게임상에서 CG를 보지 못했을 때) 보여줄 이미지가 필요합니다.
그리고 이 이미지는, 사용자가 게임 상에서 해당하는 CG를 보았을 때 해당하는 CG로 대체되고,
그것을 클릭하면 원래 사이즈로 돌아가서 볼 수 있게 합니다.
CG모드의 스크립트 실행 순서는 아래와 같습니다.
scenario.txt파일이 MENU스크립트로 title.txt를 불러오고, 나머지는 위의 순서대로 CG모드의 스크립트는 실행됩니다.
BUTTON과 CGBUTTON은 MENU스크립트 안에서만 실행되기 때문에 도중 도중에 MENU스크립트로 파일들을 불러옵니다.
나머지는 아시리라 믿고 마지막 부분을 설명드리겠습니다.
cgbutton (340,100,468,196) eve_cg_01.png cg_mode_cover.png
cgbutton (478,100,606,196) eve_cg_02.png cg_mode_cover.png
먼저 cgbutton 옆의 좌표는 익숙하신 좌표의 설정입니다.
<여기서의 좌표 사이즈는 정격 해상도의 배율입니다.>
예시의 좌표는 (340,100) 좌표를 기준으로 하여, 128*96 사이즈의 미니 화면을 표시하게 합니다.
즉, 340+128=468
100+96=196 이기 때문에 (340,100,468,196) 로 나왔습니다.
두번째 줄은 그 옆에 배치하기 위하여 그렇게 했습니다.
즉, 간격 10을 포함하여 왼쪽 버튼의 크기를 고려하면 340+128+10 = 478의 x좌표
y좌표는 이동하지 않기 때문에 동일하게 (100,196)이기 때문에 (478,100,606,196)로 나왔습니다.
여기서 미니화면을 가로 정렬하시려면 y좌표를 동일한 원리로 수정해주시면 되겠습니다.
eve_cg_01.png는 게임에 실제 등장하는 CG이고, 만약 출력된 적이 있으면 작게 표시되고, 클릭하면 커집니다.
cg_mode_cover.png는 해당 CG가 출력되지 않았을 때 임시로 보여주는 CG로, 클릭해도 커지지 않습니다.
첨부파일의 테스트법은 메인 타이틀에서 시작하기를 눌러 시나리오 파일을 진행한 후에 확인해보시면 됩니다.
2. BGM
사용자가 게임을 하면서 들었던 음악들을 다시 들을수 있게 한 항목입니다.
BGM의 경우 유감스럽게도 위의 CGBUTTON이 가지고 있는 실행 여부를 체크할 수 있는 기능이 없습니다.
따라서 우리는 두 가지의 방법으로 이를 구현해야 합니다.
① 조건 여부에 관계없이 모든 BGM을 듣게 한다.
② 상용 작품처럼 BGM을 들을 때 마다 리스트를 추가하고 싶다.
①의 경우 매우 쉽고 간단히 구현이 가능하며, 처음 접하는 분이시라면 가급적 이 방법을 추천합니다.
②의 경우 타이틀 변화를 구현하는 것과 같이, 음악 파일 하나가 추가시 텍스트 파일이 그때마다 늘어납니다.
매우 노가다성이 짙고, 소스가 섞이면 코딩시간보다 수정시간이 더 길어집니다.
나는 무조건 상용작품처럼 재생시마다 추가하고 싶고, 조금 더 고레벨(?)의 VNAP노가다를 원하셔도 이 방법을 비추합니다 ㄱ-;;
모두가지 모두 구현해 두었으니[...] 저의 삽질을 감상해보시길 바랍니다;;
먼저 ①의 경우를 구현해봅시다.
① 조건 여부에 관계없이 모든 BGM을 듣게 한다.
이 경우는 굉장히 간단한 구조로 되어있습니다.
(사실 강좌 소스를 너무 간단히 구성해서 ㄱ-...는 아니라고 주장(?)하고 있습니다.)
<조악한 실행화면은 미공개했습니다 ㄱ->
시작하자마자, MENU명령어로 bgm_mode.txt라는 파일을 불러왔습니다.
타이틀 부분을 생략하고 바로 넘어갔기에 이점 유의하시구요,
이번 부분은 BGM항목 구현의 기초 뼈대만을 구현했으니 타이틀과의 접목은 아래에서 다루겠습니다.
bgm_mode.txt에서 BGM을 고를 수 있는 버튼을 제공하기 때문에 이 역시 MENU스크립트로 불러왔습니다.
그리고 어느 하나의 버튼을 누르면 화살표처럼 연결된 스크립트로 이동하여, 먼저 재생되고 있는 음악을 정지시킨 후
해당하는 음악을 재생하게 합니다. cg명령어나 text명령어 등의, 화면을 넘기는 기능이 없기에
사용자의 컴퓨터는 상용 작품의 그것처럼 음악의 제목을 누르면 바로 재생되는 구조로 만들어졌습니다.
이것을 반복하여 좌표 설정하면 BGM항목은 마무리가 되겠지요.
하지만, 이와 같은 방식이 싫다고 하신다면 아래와 같은 노가다의 세계에 뛰어들어야 합니다.
② 상용 작품처럼 들을 때마다 추가하고 싶다!
Welcome to 『NOGADA』!
환상적인 노가다의 세계로 당신을 초대합니다!
입장료는 성의껏<- 퍽퍽
이번에 구현할 부분의 결과물부터 보시면 아래와 같습니다.
위의 결과와 별 다를것 없는 화면이긴 합니다만, 예제로 겨우 2개를 구현한 이유는 위에서 말한 것처럼,
파일 하나당 스크립트 파일이 추가적으로 계속 필요하기 때문입니다.
그리고 여기에서의 가정은, 트랙 1과 트랙 2는 순서대로 게임상에서 등장한다는 것입니다.
그렇게 해야, 순서대로 나타나지요(엄밀히 말하면 이 방법이 완전하지는 않다는 이야기입니다 OTL)
scenario.txt파일이 MENU스크립트로 title.txt를 불러오고, 나머지는 위의 순서대로 CG모드의 스크립트는 실행됩니다.
실행 순서는 CG모드의 실행 순서와 같습니다.
따라서 special_mode.txt 즉, 모든 앨범 모드의 시작이 되는 스크립트부터 설명드리겠습니다.
위의 스크립트는 최초 실행되어서, 1번 트랙의 BGM이 재생되었을 때의 동작입니다.
CG와는 다르게 bgm_flag_check.txt라는 파일을 불러오는 것을 보실 수가 있는데, 이는 사용자가 게임을 진행하면서 음악을 들으면 그 하나 하나의 음악당 하나의 플레그를 설정하셔서 일일이 생성여부를 판단하기 위함입니다.
bgm_flag_check.txt에서 플레그를 검사하는 것을 볼 수 있는데, 1번 트랙이 재생되면 시나리오 파일에
미리 bgm_01_played이라는 플레그를 세워두워서, 이 BGM이 실행되었는지 체크해둡니다.
그러면, bgm_01_played는 bgm_01_play_mode.txt라는 파일을 불러오게 되지요.
bgm_01_play_mode.txt에서는 2개의 버튼만이 동작합니다.
바로, 1번 트랙을 재생하도록 하는 loadsnr bgm_01.txt명령어와
이 파일에서 나올 수 있게 하는 동작인 loadsnr special.txt이지요.
(중간을 보시면 2번 트랙은 "// (주석처리)"가 되어 실행이 안됩니다.)
이번에는 2번 트랙까지 재생이 된 것으로 가정해 봅시다.
그러면 bgm_02_played라는 플레그가 생성되고, bgm_02_play_mode.txt라는 파일을 불러오게 되지요.
bgm_02_play_mode.txt라는 파일에서는 3개의 버튼이 동작하고, 위의 경우에 2번 트랙까지 재생하게 하는 항목이
추가 실행될 수 있습니다.
그렇기 때문에 실행된 음악만을 골라서 체크한 후에 BGM항목에 추가시키는 것이 가능하지요.
하지만 이 방법은 음악 하나가 추가 될 때마다
bgm_XX_played라는 플레그와
bgm_XX_play_mode.txt라는 파일을 필요로 합니다.
그래서 노가다지요[...] 고로 추천하지는 않습니다<-
첨부한 강좌 파일을 잘 참고 하시길 바랍니다.
그리고 용량과 저작권상 음악은 첨부시키지 않았습니다.
VNAP폴더에 bgm_01.mp3 , bgm_02.mp3 로 이름을 바꾸어 음악 파일을 넣어서 테스트 해보시길 바랍니다.
<첨부 파일에는 없습니다.[...]>
3. 추가 시나리오 및 후기 삽입과 오마케의 이용.
추가 시나리오의 삽입에 대해서는 [Lecture 10. 다중 시나리오 만들기.] 에서 다루었기 때문에 그것을 참조해주세요.
흔히 올클리어를 하여 모든 이야기를 본 후에 추가로 제공되는 스토리 모드나 게임을 올클리어 상태로 만들어 주는 것을 흔히
오마케(おまけ [御負け]:덤)이라고 부릅니다.
VNAP에서의 오마케 기능에 대해 알아봅시다...라고 하고 싶지만, 상용 프로그램과 같이 CG와 읽은 텍스트 정보가 담긴
.CFG파일을 복사하는 것입니다.
클리어를 모두 한 PC의 .cfg파일을 다른 유저의 컴퓨터의 VNAP폴더로 복사하면 됩니다.
같은 원리로 게임을 초기화하려면 .cfg파일을 지우면 됩니다(12강에서 강조했었죠^^)
<노파심으로 다시 한번! vnap.ini파일을 고치실때도 언제나 지워주셔야 합니다! 강조 또 강조!>
수고하셨습니다.
첨부된 강좌 파일을 보시고 응용하시고, 혹시 안되는 부분이 있으면 질문해주세요^^
강좌 파일
Copyright ⓒ 2005-2009. 아우름이. All rights Reserved.
미디어 연구소(http://mediastudio.tistory.com/)
지금까지 기능 위주로 다루어 왔지만, VNAP의 기본 형태는 많이 투박한 것이 사실입니다.
후속으로 나온 바실리어트나, 외국계 프로그램들은 좀 더 세련된 디자인을 제공하고 있지요.
VNAP도 예쁘게 치장해 봅시다!
이번 강좌의 핵심은 vnap.ini파일의 설정 세팅입니다.
물론 매뉴얼에 상세한 기능이 소개되어있지만, 일단 많이 궁금해하시고, 자주 쓰는 기능부터 이야기 드리겠습니다.
[Lecture 12. VNAP 튜닝하기]
1. VNAP 해상도와 윈도우 모드 설정하기.
VNAP의 기본 설정은, 창 크기는 640*480에 윈도우 모드입니다.
많은 분들이 이 기본 사이즈를 그냥 이용하시더군요, 아마 VNAP이 출시되었을 시점을 보면 이 사이즈가 적절했던것 같으나,
최근에는 와이드 모니터를 많이 이용하시니, 크기에 불만이 있었던 분들도 계셨을 거라 생각합니다.
먼저 창 크기 변경에 대해 알아보지요.
창 크기는 vnap.ini파일에서 조절이 가능합니다.
먼저 vnap.ini파일을 열면 메모장에 여러 글씨들이 적혀있습니다.
그 중에 아래 스크린 샷에 적힌 부분을 찾아봅시다.
빨간 선 안에 들어있는 부분이 바로 해상도를 조절하는 옵션입니다.
여기서는 기본값인 640*480이 아닌 다른 해상도를 선택하였습니다.
추천하는 해상도는 그래픽 카드가 구현하는 정격 해상도로, 640*480 , 800*600 , 1024*768입니다.
정격 해상도가 아니면 풀 스크린 모드로 변경은 불가능하다고 하네요.
앞에서 이야기했듯, VNAP의 기본값은 윈도우 모드입니다.
SCREEN MODE값이 WINDOW로 되어있을때는 윈도우모드, FULL로 되어있을때에는 풀 스크린 모드가 됩니다.
2. 작품의 이름과 시나리오 파일 이름 변경하기.
여러분이 제작하시고 계시는 작품들의 이름은 다 있을테지만 아무런 설정을 하지 않으면 무정하게도[...]
"제목없음"이라는 타이틀이 적혀있을겁니다. 이를 바꾸어봅시다.
GAME_TITLE항목에 따옴표를 포함해서 원하는 제목을 적습니다.
그리고 반드시 저장을 합니다.
다음, VNAP 폴더에 가서 제목없음.cfg파일을 지웁니다.(중요합니다.)
그리고 VNAP을 실행시켜봅시다.
vnap.ini파일에 적은 그대로의 제목이 타이틀에 나타났고, WHITE ALBUM Dramatic Edition.cfg 라는 파일이 새로이 생겨난 것을 볼 수 있습니다.
앞으로 vnap.ini파일을 변경시에는 정상 작동을 위하여 이전의 .cfg파일을 지워주는 것을 잊지 마셔야 합니다.
이전 .cfg파일이 있으면 변경된 결과가 제대로 적용되지 않습니다.
다음에는 VNAP 시나리오 핵심 파일인 scenario.txt파일의 이름을 바꾸는 법을 알아봅시다.
이름이 마음에 안들어! 하시는 분들은 바로 바꾸시면 되겠습니다;
예제에서는 start.txt로 바꾸었습니다. 오류를 방지하기 위하여 알파벳 이름을 권장합니다;
그리고 .cfg파일을 지우고 실행하면 친숙한[...] 오류가 발생합니다.
그때는 모르는 척 하시지 마시고[...] scenario.txt파일을 지정한 start.txt파일로 바꾸시면 됩니다.
3. 텍스트 창 설정 및 스킨 변경하기.
<화려하거나 혹은 깔끔한 상용작품의 텍스트 창에 비하면 다소 투박한 VNAP의 기본 스킨.>
그동안 VNAP의 기본 텍스트 인터페이스에 많은 아쉬움을 가지고 계셨을 것입니다.
이미 변경은 가능했으나, 변경에 대한 언급이나 강좌는 많이 없었지요.
그 때문에 자세히 알아보도록 하겠습니다.
VNAP의 텍스트 창 구조는 포토샵의 레이어 개념과 동일하게 구성되어있습니다.
표지에 해당하는 공간인 텍스트 창이 가장 아래에 깔려있고, 그 위가 스킨, 가장 위가 텍스트입니다.
텍스트 창은 window ON 혹은 OFF로 보이기 / 숨기기를 하더라도 텍스트는 표시할 수 있는 이유가 위의 구조이기 때문이죠.
먼저 기본값으로 제공되는 텍스트 창은 아래와 같은 세부 속성이 합쳐져서 표현되어있습니다.
사실 현란하게 적혀있다고 보일뿐이지 실은 간단합니다(...정말이에요;;)
① 텍스트 창 색 설정
텍스트 창의 색을 지정해 줄수 있는 항목입니다.
TEXTWINDOWCOLOR1=(0,0,0)
TEXTWINDOWCOLOR2=(255,255,255)
라고 되어있는데요,
TEXTWINDOWCOLOR1 가 가장 위, TEXTWINDOWCOLOR2가 그 아래에 깔리도록 되어있습니다.
가로 안의 숫자는 RGB(Red / Green / Blue)값으로, 255가 최대치입니다.
RGB값이 모두 0이면 검은색을 의미합니다. 그래서 기본 텍스트 창의 색은 검정색이 되지요.
괄호 안의 숫자를 변경시키면 텍스트 창의 색이 변합니다.
TEXTWINDOWCOLOR2의 기본값은 (255,255,255). 즉 흰색이 되고, 검은 색과 흰색이 섞여서 최초의 모습이 되는 것이죠.
마찬가지로 값을 변경시켜보시면서 익히시길 바랍니다^^
② 텍스트 창 효과 설정
텍스트 창의 효과를 설정하는 부분입니다.
순서대로 대사창의 투명도 , 그라데이션 스타일, 테두리 스타일을 설정하는 것입니다.
예제에서는
TEXTWINDOWALPHA=2
TEXTWINDOWGRADATION=1
TEXTWINDOWOUTLINE=0
라고 되어있는데, 이에 대해 자세히 알아보도록 합시다.
1) TEXTWINDOWALPHA
대사창의 투명도를 조절하는 것으로 5단계에 걸쳐서 변경이 가능합니다.
0 = 0%
1 = 12.5%
2 = 25%
3 = 50%
4= 100%
의 단계값을 가지고 있으며, 실제로 변경되는 값에 따라 변화를 보면 아래와 같습니다.
숫자의 값이 올라갈수록 투명해짐을 알 수 있습니다.
(투명해지니 텍스트 창의 검정색이 진해지는 것이지요.)
그리고, 나중에 스킨을 적용하실때, 주셔야 할 값은 4. 즉 투명도 100%입니다.
그렇게 하셔야 스킨 파일의 색이 지정하신대로 나타납니다.
알아두셔야 할 점은 포토샵에서의 투명도는 불투명도(Opacity)로, 값이 높을수록 불투명합니다.
즉, 포토샵에서 투명 처리를 하실 때에는 값을 낮추어야 하는 것을 잊지 마시길 바랍니다 ^^;
2) TEXTWINDOWGRADATION
대사창의 그라데이션 스타일을 설정하며, 5단계로 이루어져 있습니다.
기본값은 1로, 세로 방향으로 TEXTWINDOWCOLOR1 과 TEXTWINDOWCOLOR2의 값이 그라데이션 처리되어
나타나며, 0으로 지정하면 투명도 100으로 고정되며, 텍스트 창은 색을 가지지 못합니다.
0 = 없음.
1 = 세로 방향
2 = 가로 방향
3 = 왼쪽 위 -> 오른쪽 아래 방향
4 = 왼쪽 아래 -> 오른쪽 위 방향
3) TEXTWINDOWOUTLINE
대사창의 테두리의 모양을 설정하며, 4단계로 이루어져 있습니다.
0 = 보통테두리
1 = 간이테두리
2 = 없음
3 = 자체스킨 사용
보통테두리는 기본값이며 볼록한 모양을 가지고 있고,
간이 테두리는 보통 테두리에 있던 입체 효과(볼록한 모양)이 사라지며,
없음은 테두리의 모양이 사라지고, 다른 설정에 의해 텍스트 창의 모양이 결정되며,
자체 스킨 사용시 그에 맞는 파일을 준비해야 합니다. 없을 시에는 아래 스샷과 같이 에러가 나지요;
4) TEXT_WINDOW_RECT
텍스트 창의 위치를 설정하는 부분입니다.
TEXT_WINDOW_RECT=(10,350,625,450)
괄호 안의 숫자는 기존의 버튼 좌표를 설정하는 것과 동일하게 (왼쪽,위쪽,오른쪽,아래쪽)순서입니다.
기본값인 640*480에서는 건드릴 필요가 없으나 해상도를 바꾸거나 특별한 모양의 스킨을 사용하고 싶을때 변경합니다.
주의할 점은 텍스트 창은 설정해둔 해상도 이상의 크기로 만들면 에러가 난다는 점입니다.
예를 들어 640*480의 해상도에서 텍스트 창은 615*440 아래의 크기로 만들어야 합니다.
(텍스트 창은 자동으로 간격을 설정하기 때문에 위와 같은 제한 범위가 있습니다.)
같은 원리로 800*600의 추천 크기는 778*560 아래입니다.
이 설정의 자세한 이용법은 아래에 더 자세히 서술하도록 하겠습니다.
⑤ TEXT_WINDOW_SKIN
TEXT_WINDOW_SKIN_POS
텍스트 스킨 파일의 파일 이름과 게임상에서 표현될 좌표를 설정하는 부분입니다.
TEXT_WINDOW_SKIN="skin.bmp"
TEXT_WINDOW_SKIN_POS=(0,348)
먼저, 스킨을 이용하기 위해서는 TEXTWINDOWOUTLINE를 3으로 지정하여 자체 스킨모드로 만들어야 합니다.
그 다음에는 스킨 파일을 제작하여 TEXT_WINDOW_SKIN에 파일 이름을 지정합니다.
스킨은 보통 하단 아래부분의 일부분에 적용되며, 대부분 투명한 색을 기본으로 하기 때문에 투명값을 지니는 PNG파일을 추천합니다.
스킨 제작디자인은 독자님들의 미적 센스에 맞기고(^^;;) 전 아래와 같은 형태의 스킨을 구현해보도록 하겠습니다.
많이 질문하시는 유형의 모양이고, 아래의 형태를 구현하는 것을 배우시면 응용으로 다른 것도 구현이 가능하시겠지요.
텍스트 창 왼쪽에 케릭터의 소형 화상이 나오고 그 오른쪽에 글이 나오는 형태를 가장 궁금해하시는 분들이 많더군요.
위와 같은 형태를 구현하기 위하여 저는 아래와 같은 구조로 만들기로 하였습니다.
먼저, VNAP의 해상도를 조절하여 크게 만듭니다.
(예제는 800*600입니다. 해상도 조절을 안해도 상관없습니다.)
다음, 텍스트 창의 가로 사이즈를 전체 해상도보다 줄입니다.
(남는 왼쪽 공간에 소형 화상 이미지를 배치하기 위해서입니다.)
다음, 텍스트 창의 시작 좌표를 오른쪽으로 이동합니다.
결과적으로 왼쪽은 캐릭터 CG와 같은 형태의 소형 이미지가 텍스트 창의 왼쪽에 위치하여,
위의 스크린샷과 동일한 패턴의 스킨을 완성하는 것이지요.
그럼 이와 같은 텍스트 창의 구성을 위해 단계별로 알아보도록 하겠습니다.
먼저 전체 윈도우 창의 해상도를 800*600으로 조절하였습니다.
그리고 vnap.ini파일의 설정 중에 반드시 아래와 같이 값을 조절합니다.
TEXTWINDOWALPHA=4 : 대사창의 투명도를 100%로 합니다.
TEXTWINDOWOUTLINE=3 : 테두리 사용 모드는 스킨 모드로 합니다.
그리고 스킨의 사이즈를 정해보았는데, 이 부분은 여러분의 재량에 맡기도록 하겠습니다.
예제에서는 왼쪽 하단에 나올 소형 이미지의 사이즈는 200*180 , 스킨 창의 사이즈는 600*180으로 하였습니다.
이때 스킨은, 텍스트가 잘 보일 정도로 불투명도를 조절하는 것이 중요합니다.
저는 60%를 주었습니다.
다음, 아래의 값을 이렇게 지정하였습니다.
TEXT_WINDOW_RECT=(210,422,789,579)
TEXT_WINDOW_SKIN="skin.png"
TEXT_WINDOW_SKIN_POS=(200,420)
그 이유는 스크린 샷을 보면서 설명드리지요.
일단 소형 이미지는 char 명령어에 좌표를 설정하여 나오게 할 것이기 때문에 scenario.txt에 0 420의 값을 줍니다.
텍스트는 소형 이미지가 나오는 부분을 피해서 나와야 하므로, 소형 이미지가 차지하는 x좌표와, 간격 10을 생각해서
x좌표는 210(200+10), y좌표는 422를 주었습니다.
(이는 스킨 파일의 형태에 따라 사이즈 조절에 따라 조금씩의 차이가 날 수 있습니다. 저의 경우는 예입니다.)
마지막의 값 789, 579는 에러 발생을 막기 위한 텍스트 창 좌표의 최대값입니다. (800*600기준)
따라서 텍스트 창의 스킨 좌표가 (210,422,789,579)로 나왔습니다.
텍스트 스킨은 그 크기가 게임의 해상도에 정확하게 맞추시면 됩니다.
따라서 가로 크기 총 800에서 소형 이미지의 가로 크기 200을 감안하여 x좌표는 200.
세로 크기 총 600에서 소형 이미지의 세로 크기 180을 감안하여 y좌표는 420이 됩니다.
자, 여기까지 따라오셨으면 예쁜 여러분만의 스킨을 적용하셨습니다!
4. 실행 아이콘과 커서, 대기 이미지(Caret) 변경하기.
VNAP 튜닝도 마지막의 단계에 왔습니다.
바로 실행 아이콘과 커서, 대기 이미지의 변경인데요,
아이콘 파일의 확장자는 .ico 커서 파일의 확장자는 .cur이며, 대기 이미지는 통상의 이미지 파일을 씁니다.
아이콘과 커서는 구하셔도 되고, 프로그램으로도 제작이 가능합니다.
저는 IconXP라는 프로그램을 사용해서 만들어보았습니다.
사용법이 매우 간단하니 아래의 그림을 참조해서 만드시거나, 원하는 이미지를 불러와서 커서 혹은 아이콘 파일로
저장만 하시면 되겠습니다. 커서는 다른이름으로 저장하실때 창이 하나 더 뜨는데 기본값으로 나두고 ok를 누릅니다.
대기 이미지는 글을 읽을때 넘기라는 표시를 말하고, vnap.ini에 아래와 같이 한줄을 더 추가 시켜줍니다.
CARET_FILE = "caret.png"
그리고 만든 이미지의 이름을 쌍 따옴표 안에 적어주시면 됩니다.
실행하여 결과를 확인해보세요.
이 강좌로 더 예쁜 여러분들만의 작품을 만들수 있으면 좋겠네요^^
강좌 파일 / 커서 및 아이콘 제작 프로그램(쉐어웨어)
Copyright ⓒ 2005-2009. 아우름이. All rights Reserved.
미디어 연구소(http://mediastudio.tistory.com/)