VNAP (비공식) 관리위원회

블로그 이미지
VNAP Unofficial Support Page.
by pilza2

ARTICLE CATEGORY

전체 (47)
보관 (18)
정보 (5)
강좌 (16)
작품 (6)
  • 52,765Total hit
  • 0Today hit
  • 0Yesterday hit

강좌에 이어 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/)

TRACKBACK 0 AND COMMENT 1
  1. B.B 2012.01.20 16:56 address edit/delete reply

    정말 많이 도움이 되고 있습니다 ^^ 감사합니다. 그런데 왜 저는 CGBUTTON 이란 명령어 자체가 없다고 뜨는것일까요? 다른 명령어가 잘못된것은 아닌데 ...