본문 바로가기

렌파이/스크립트 예제

아날로그: 어 헤이트 스토리 소스 스크립트가 공개되었습니다

설명 및 다운로드


아날로그: 증오록(Analogue: A Hate Story)의 제작자 크리스틴 러브가 게임 스크립트를 "영구 공개"했습니다. 위 트윗의 링크를 따라가시거나 아래의 링크를 클릭하면 아날로그의 스크립트를 다운로드할 수 있습니다.


http://loveconquersallgam.es/post/49592102340/ive-been-meaning-to-release-the-source-code-to


게임에 쓰인 이미지나 효과음/배경음 파일은 없으며 한국어로 번역된 파일이 원작 스크립트와 함께 동봉되어있으니 글 읽기는 어렵지 않을 거라 생각합니다. 어차피 소스 코드 공개의 의미는 게임 내용을 읽는 게 아니라 스크립트 확인용에 있는 것이니 관계 없을지도 모르겠습니다만..


주의

출처 사이트에 적힌 주의 내용을 번역하면 다음과 같습니다.


1. set_flag.nd.rpy 파일을 수정하여 데모 버전을 정식 버전으로 바꾸지 마세요. 제대로 안 될 거니까요. 파일 용량을 줄이려고 빼놓은 파일이 굉장히 많습니다. 중간쯤 가서 에러가 뜰 겁니다. (불법 다운로드를 하려면 더 쉬운 방법이 있으니까요, 뭐.)


2. 이 스크립트 파일에 있는 파이썬 코드는 마음대로 사용해도 됩니다. 대사도 그대로 놔뒀지만 맥락 파악용으로만 놔둔 거예요. 그러니 제가 게임에 적었던 글에 있는 법적 권리를 포기했다는 뜻으로  받아들이지 말아주시길! (이런 말까지 해서 죄송하지만, ....아시죠? 변호사 말이에요.)


스크립트 구조

스크립트를 받아서 잠깐 읽어봤습니다만 주석 설명문이고 뭐고 전혀 없어서 무슨 기능이 어느 파일에 정의되어있는지 확인하기가 힘드네요. 일단은 스크립트를 읽으실 분들의 편의를 위해 제가 임의로 구조를 간단하게 파악해봤습니다. 참고로 아날로그의 데모 버전이라도 한번 진행하셔야 스크립트도 그렇지만 아래 적힌 설명을 어느 정도 이해하실 수 있을 겁니다. 데모 버전은 스팀이나 아날로그 홈페이지에서 다운로드하실 수 있습니다.



00message.rpy

크리스틴 러브가 직접 제작한 렌파이 스크립트 명령문 message 와 tl_message 가 작동하기 위해 필요한 스크립트가 적혀있습니다.


script.rpy

게임에서 사용되는 클래스와 함수가 정의되어 있으며 게임 시작부터 엔딩 판정 까지 게임 흐름을 제어하는 뼈대 스크립트가 잡혀있습니다.


 - start 레이블

   게임 흐름 제어에 필요한 변수들이 설정되어있습니다.


act1.rpy ~ act3-mute.rpy

편지 왼편에 있는 버튼을 눌렀을 때에 나타나는 대사와 버튼을 눌렀을 때 실행할 기능들이 적혀있습니다. (실행할 블록 처리나 한번 클릭한 버튼의 흑백 처리)


block1.rpy ~ block12.rpy

메시지 화면에서 확인할 수 있는 내용들이 적혀있는 파일입니다. 이 파일들에서 message와 tl_message 명령문이 사용되었습니다. 파일 이름 뒤에 _kr 이 붙어있는 파일은 한국어로 번역된 block 파일입니다.


bonus.rpy

엔딩 다시보기, 갤러리, 제작자의 말 등 덤 메뉴에서 사용하는 스크린이 정의되어있습니다.


costumepack.dlc1.rpy

현애의 의상을 교체할 때 띄울 대사들이 적혀있습니다.


screens.rpy

게임에서 사용하는 스크린이 정의되어있습니다.


images.rpy

게임에서 사용하는 이미지 파일이 정의되어있습니다. 캐릭터 스탠딩 CG는 표정이 여러 가지라 표정 이미지 따로 맨얼굴 이미지 따로 합성하는 식으로 정의되어있고, 트랜스폼, 트랜지션 및 트랜스폼이 적용된 배경이미지와정의되어있습니다.


options.rpy

게임에서 사용하는 스타일 및 기타 설정 변수가 적혀있습니다.


firstrun_kr.rpy / korean.rpt / Key_hangul_inputter121002.rpy / script_kr.rpy

한국어판에 사용하는 번역문 및 스크립트가 적혀있습니다.


기타 레이블과 함수에 대한 건 알아보는대로 차차 적도록 하겠습니다.


기타

....애써 자신이 만든 게임의 스크립트를 공개한 제작자에게 이런 말 하면 안 되는 거겠지만 진짜 하나도 못알아보겠습니다-_-; 스크립트를 공개한다는 글에 굳이 "네 스크립트 스타일 마음에 안 든다"고 댓글을 남긴 어떤이의 심정이 이해가 갑니다;; 하지만 크리스틴 러브가 전업 프로그래머가 아니라 아마추어 작가라는 점을 생각한다면 서투른 이 정도의 기능을 구현한 것만으로도 굉장하다고 느껴지며, 더불어 아마추어도 이런 게임을 만들 수 있게 렌파이의 위대함(..)도 다시 깨닫네요. 아무튼 그 동안 아날로그에 포함되었던 이런 저런 기능들이 어떤 스크립트로 어떻게 구현된 것인지 확인해보고 싶은 분들에게는 희소식임이 분명하겠죠.