비주얼노벨 강좌

#001

 2년 만에 다시 만진 피니엔진... 명령어같은 건 하나도 기억 안 나고 대충 작동원리만 기억나서 더듬더듬 거려가면서 대충 틀을 만들었다. 혹시나 또 나중에 피니엔진을 만질 일이 있을까 싶어, 그때를 위해 여기에 기록해둔다. 

 

#002

 우선 기본 작동방식.

캡처1.PNG

 ▲메인.lnx 스크립트 페이지. 맨 처음 엔진이 읽어들이는 스크립트 페이지다. 달리 설정하지 않는다면.. 

 

 피니엔진은 스크립트가 1000줄인가 2000줄 이상으로 넘어가버리면 엔진 자체가 아주 끔찍할 정도로 느릿느릿해지기 때문에 파트별로 나눠서 만드는 게 낫다. 또 기능별로 나눠만드는 게 관리하기도 좀 더 편하기도 하고. 그런데 엔진이 읽어들이는 파일이 메인.lnx 밖에 없기 때문에, 스크립트를 여러 개의 파일에 나눠서 작성한다면 엔진한테 다른 파일도 읽으라고 해야한다. 그게 '메인_시작'이라는 북마크와 '메인_불러오기후'라는 북마크 사이의 과정이다.

 

 다만 주의할 점이 있다. 이 과정은 스크립트 파일의 내용을 저 위치에 복사 붙여넣기를 했다고 생각해야한다. 그러니까 저기에 있는 파일의 북마크로 이동을 할 땐 세심한 주의를 기울여야한다. 

 

 그럼 이제 머릿속으로 컴파일을 해보자. 우선 상상의 화살표를 왼쪽 바의 숫자 왼편에 떠올린다. 따로 설정하지 않았다면 메인.lnx의 1번 줄부터 내려가면 된다. 주석은 그냥 무시하고 쭉 내리면 6번 줄에서 '메인_시작'이라는 위치를 기억해두고, 그 다음 줄에서 z001_타이틀.lnx의 내용을 저 위치에 붙여넣으면 된다. 

 

캡처2.PNG

 ▲z001_타이틀.lnx의 내용.

 

 그럼 이제 화살표는 z001_타이틀.lnx의 첫번째줄 옆에 있으리라. 다음 줄로 내려가면 '@매크로'라는 명령어를 만드는 명령어가 나온다. 이 매크로라는 존재가 피니엔진에서 가장 흥미로운 부분이다. @매크로는 포스트잍을 우주 저편에 만든다고 상상하면 편하다. 여기서는 '타이틀화면으로'라는 이름을 가진 포스트잍과 '시작버튼작동', '불러오기버튼작동', '불러오기버튼작동', '종료버튼작동'이라는 포스트잍을 만들었고 그 속에 각각의 내용을 채웠다고 생각하면 된다. 그러니까 상상의 화살표가 1번 줄에서 34번 줄을 내려가면서 총 다섯장의 메모를 작성한 것이다. 얼핏보면 '스크립트'라는 명령어와 비슷해보이지만, '@매크로' 속의 모든 것은 끝나고 나면 남아있는 게 아니라 사라지는 차이점이 있다. 즉 말 그대로 포스트잍을 잠시 붙였다 떼어놓는 개념으로 생각하면 된다.

 

*참고로 @매크로 명령어 밑에는 바로 북마크를 만들 수 없기 때문에 pass라는 빈 값을 넣은 것이다. pass 자체는 별 다른 의미가 없음

 

 z001_타이틀.lnx의 끝에 다다른 화살표는 어디로 갈까? 아까 말했던 것처럼 메인,lnx에 z001_타이틀.lnx를 붙여넣은 거니까 메인.lnx의 8번 줄로 가면 된다. 메인_불러오기후라는 위치를 기억하고 쭉 내려가면 '@조건'이라는 명령어가 나온다.  만약 현재 상태에 따라서 진행방향을 이리저리 비틀 수 있게 해주는 게임 제작(사실 대부분의 프로그램)의 뼈대라고 할 수 있는 명령어다. 그냥 쭉 흘러갈 뿐인 걸 만드는 게 아니라면.

 

 여기선 '타이틀온오프'라는 변수가 0이란 숫자값을 가지고 있다면 '타이틀화면으로'라는 명령어를 실행한다. 만약 0이외의 값을 가지고 있다면 그 사이 과정을 뛰어넘고 다음 과정으로 간다. 여기선 @그외가 '@조건'뭉치의 다음 과정이므로 화살표가 거기로 갔다가 '멈춤'이라는 명령을 받고 화살표가 거기서 정지하게 된다.

 

 개인적으로는 '멈춤'이라는 명령어가 상당히 중요하다고 생각한다. 왜냐하면 이 명령어가 없다면 화살표가 그대로 쭉 흘러가 마지막까지 가버리는데, 북마크이동으로 여러 파일을 왔다갔다하는 상태가 되면 나중에는 화살표가 어디로 가버렸는지 떠올리기 어렵기 때문이다. 그러므로 플레이어가 뭔가를 하기 위해 선택하는 시간이 필요한 지점에는 습관적으로 이 명령어를 쓰는 게 좋다.

 

 일단 지금은 타이틀온오프란 변수에 0의 숫자값이 있기 때문에 '타이틀화면으로'라는 포스트잍을 임시로 그 줄에 붙여보자. '화면초기화' 명령어를 통해 지금까지 남아있는 모든 이미지와 텍스트가 사라지고 텅빈 상태가 된다. 그리고 타이틀온오프 변수에 1의 숫자값을 대입한다. 그 뒤 각종 이미지를 만들고 화살표가 메인.lnx의 14번 줄로 가서 정지하는 동시에 포스트잇이 우주 저편의 대기열로 간다. 모든 과정이 정상적으로 처리된다면 아래와 같은 화면이 등장할 것이다.

 

캡처3.PNG

 ▲완성된 타이틀 화면! 물론 사용한 이미지에 따라서 모양은 다르겠지만.

 

 여기까지 따라왔다면 타이틀화면은 완성이다!

 

 타이틀 화면 하나를 만드는데 왜 이렇게 복잡한 과정을 거쳐야하는 지 의문이 들 수 있다. 타이틀 화면이란 거 사실 별거 없고 그냥 바탕 이미지에 버튼 이미지 몇 개 있으면 되는 건데. 다른 이유는 없고 게임 플레이 도중에 타이틀 화면으로 가는 상황이 생기는 등 여러 상황에 유연하게 쓸 수 있게 하기 위해서다. 또 크레디트 페이지를 만들어서 버튼을 없앴다가 다시 만드는 등 미세하고 유연하게 대처하기 위해서는 이 방식이 유리할 것이란 생각이 문득 들었기 때문이다. 다른 좋은 방법이 있다면 소개좀... 

 

#003

 사실 버튼이 작동하는 것까지 설명해야 타이틀 화면을 진정으로 구현했다고 할 수 있겠지만 그건 다음에 시간이 나면 하겠다. 오늘은 너무 지쳤거든! 그럼 안녕~

Who's 하늘바라KSND

profile

하늘바라KSND

하늘

하늘이

늘바

바라

하바

하바케이

하바케이엔

하느님 

------------------------------

현재 하는 일 :



허걱님과 함꼐하는 하늘섬 환상세계 시나리오 작성 중.

자세한 경과는 이야기 연재란에서.

 

Lighna형과 함께하는 프로젝트, D.A 시나리오 작성 중.

프로젝트 D.A 많은 관심 부탁드려요~

http://projetda.tistory.com/

-------------------------------

 

ㅎㅎ. 안녕하세요 하늘바라 KSND 입니다. 

(96년생)

성별 : 남

사용툴 : VX

주요 활동 : 소설쓰기, 댓글, 뻘글, 글소글

 

블로그 주소 : http://hb_tjdtn.blog.me/                 

 

이전 준비 중

http://habakn.tistory.com/         

 

 

Atachment
첨부 '3'

List of Articles
분류 제목 글쓴이 날짜 조회 수
Ren'Py 렌파이 관련 유용한 링크 모음 3 file 습작 2012.12.02 17640
Nekonovel 네코노벨 관련 유용한 링크 모음 1 file 습작 2012.11.19 11979
Visual Novel Maker 한글 텍스트 입력 file 러닝은빛 2017.11.21 1462
피니엔진 기본 틀 만들기 : 타이틀화면 file 하늘바라KSND 2017.11.15 1841
TyranoBuilder TyranoBuilder Visual Novel Studio Pro버전 한글패치 6 file 습작 2016.05.28 2191
피니엔진 FAL.노드이름에 관해서 알아보자. file 하늘바라KSND 2015.08.17 633
피니엔진 타이틀+클릭메뉴 예제 file 하늘바라KSND 2015.07.11 1110
피니엔진 애니메이션-스프라이트 간단한 팁 몇가지 하늘바라KSND 2015.07.11 1293
VNAP char로 캐릭터 출력 2 FNS키리토 2015.06.01 901
피니엔진 피니엔진 타이틀 만들기 예제(구버전) 1 file 하늘바라KSND 2015.01.27 1774
기타 비주얼 노벨을 처음 제작하시는 분들께 1 file FNS키리토 2015.01.11 13785
VNAP 선택지 발생 3 file FNS키리토 2015.01.11 2018
피니엔진 텍스트, 대화, 독백 명령어 하늘바라KSND 2014.12.21 1570
피니엔진 안드로이드로 배포판을 만들기 위해 필요한 것들 하늘바라KSND 2014.12.20 1530
Vasilriot 바실리어트 메뉴얼(3) 하늘바라KSND 2014.12.20 870
Vasilriot 바실리어트 메뉴얼(2) 하늘바라KSND 2014.12.20 702
Vasilriot 바실리어트 메뉴얼(1) 하늘바라KSND 2014.12.20 1423
Neko:기타 쓰레드에 '대기' 명령어를 넣었을 때 나타날 수 있는 현상 file 하늘바라KSND 2014.11.27 1031
Neko:응용 네코노벨 미니게임 관련 스크립트-글라스 스노우 하늘바라KSND 2013.06.27 3367
Vasilriot 해상도 조절에 관한 간단한 고찰 2 하늘바라KSND 2013.05.18 3145
Vasilriot 바실리어트의 최신 버전 file 하늘바라KSND 2013.05.11 4001
Vasilriot 바실리어트 기본 설정하기 - 폰트 :: font.ini file 하늘바라KSND 2013.05.11 3030
Board Pagination Prev 1 2 3 Next
/ 3