스크립트는 두 개의 파일로 나뉘어있습니다.
# 이 게임에서 사용할 이미지를 선언합니다.
image bg lecturehall = "lecturehall.jpg"
image bg uni = "uni.jpg"
image bg meadow = "meadow.jpg"
image bg club = "club.jpg"
image sylvie normal = "sylvie_normal.png"
image sylvie giggle = "sylvie_giggle.png"
image sylvie smile = "sylvie_smile.png"
image sylvie surprised = "sylvie_surprised.png"
image sylvie2 normal = "sylvie2_normal.png"
image sylvie2 giggle = "sylvie2_giggle.png"
image sylvie2 smile = "sylvie2_smile.png"
image sylvie2 surprised = "sylvie2_surprised.png"
# 이 게임에서 사용할 캐릭터를 정의합니다.
define s = Character('실비', color="#c8ffc8")
define m = Character('나', color="#c8c8ff")
# 게임은 여기에서부터 시작합니다.
label start:
$ bl_game = False
play music "illurock.ogg"
scene bg lecturehall
with fade
"뭐, 아이린 교수님의 강의는 흥미롭긴 했다."
"하지만 솔직히 말해서 난 그다지 집중할 수가 없었다."
"마음 속에 너무나 많은 생각들이 있었다."
"그리고 그 생각들은 결국 하나의 질문으로 향하고 있었다."
"내가 누군가에게 물어보려고 했던 하나의 질문."
scene bg uni
with fade
"학교 밖으로 나왔을 때, 그녀를 보았다."
show sylvie normal
with dissolve
"그녀는 멋진 사람이었다."
"나는 그녀를 어렸을 때부터 알고 지냈다."
"그녀는 언제나 좋은 친구로 있어주었다."
"그런데..."
"요즘 들어..."
"내 생각에는..."
"내가 특별한 것을 바라는 것 같다."
"단지 대화하는 것보다 특별한 것... 수업이 끝나고 같이 집에 걸어가는 것보다 특별한 무언가를..."
"그래서 결심했다..."
menu:
"... 지금 그녀에게 물어보자.":
jump rightaway
"... 나중에 물어보자.":
jump later
label rightaway:
show sylvie smile
s "아, 안녕, 집까지 같이 갈래?"
m "그래..."
"내 목소리는 벌써부터 떨리고 있었다."
scene bg meadow
with fade
"우리는 동네 밖 초원까지 다다랐다."
"이 곳의 가을은 정말 아름다웠다."
"어렸을 때 우린 종종 이 곳에서 놀았었지."
m "저기... 음..."
show sylvie smile
with dissolve
"그녀는 나를 향해 돌아섰고 웃어보였다."
"나는 그녀에게 물었다...."
m "음... 너..."
m "너 내 비주얼 노벨의 원화가가 되어줄래?"
show sylvie surprised
"침묵."
"그녀는 놀랐다. 그리고..."
show sylvie smile
s "물론이지, 근데 \"비주얼 노벨\"이 뭐야?"
menu:
"그림이 있는 이야기야.":
jump vn
"야한 게임이야.":
jump hentai
label vn:
m "그림와 음악이 함께 있는 이야기야. 그리고 선택지를 골라서
이야기 흐름에 영향을 줄 수 있어."
s "그러니까 어드벤처 책 같은 거야?"
m "맞아! 짧은 로맨스 소설을 만들까 생각중이야. 그래서
네가 날 도와줄 수 있을 거라고 생각했어.. 네 그림솜씨 알고 있으니까."
show sylvie normal
s "음, 한번 해볼게. 네가 실망하지 않았음 좋겠다."
m "내가 너한테 실망할 리 없잖아."
jump marry
label hentai:
$ bl_game = True
m "섹스를 많이 하는 게임이야."
s "그럼 BL 게임같은 거 말하는 거야?"
s "나 전부터 진짜 만들고 싶었는데.
s "지금 당장 시작해야지!"
hide sylvie
with dissolve
"..."
m "이게 아닌데."
jump marry
label marry:
scene black
with dissolve
"--- 몇 년 후---"
scene bg club
with dissolve
"그리고 우리는 비주얼 노벨 제작팀이 되었다."
"우리는 게임들을 만들면서 아주 즐겁게 지냈다."
if bl_game:
"뭐, 그녀가 만드려고 고집했던 BL게임은 논외라고 치자."
show sylvie2 normal
with dissolve
"그러던 어느 날, 그녀가 내게 물었다..."
s "저기..."
m "응?"
show sylvie2 giggle
s "결혼하자!"
m "뭐???"
show sylvie2 surprised
s "... 나 사랑하지 않아?"
m "사랑해, 정말로."
show sylvie2 smile
s "그치? 우리 그동안 로맨틱 비주얼 노벨을 만들고, 함께 시간을 보내고, 서로를 도왔잖아... "
s "다른 사람에게 사랑을 주면, 그 사랑이 네게도 온다고."
m "흠, 그거 멋진 발상이네."
show sylvie2 giggle
s "방금 전에 생각난 거야."
m "어쨌든 멋져."
show sylvie2 normal
s "나도 알아. 그러니까, 나랑 결혼해줄래?"
m "으음, 물론이지. 사실 원래 그걸 물어보려고 했었는데, 네가 그 얘길 꺼내서..."
s "알아. 근데 너 너무 우유부단해서, 내가 먼저 말 꺼내야겠다고 생각했어."
m "내 생각엔... 적절한 질문을 적절한 타이밍에 해야 하는 것 같아."
show sylvie2 giggle
s "맞아. 그치만 지금은 토론은 그만두고 나한테 키스해줘!"
scene black
with dissolve
"그 후로 얼마 안 있어서 그녀와 나는 결혼했다."
"우리는 그 뒤로 많은 비주얼 노벨을 만들었다."
"그리고 서로 함께 행복하게 살았다."
".:. 굿 엔딩."
return
label later:
scene black
with dissolve
"그래서 나는 그녀에게 나중에 묻기로 결정했다."
"하지만 내가 우유부단했던 거다."
"그날 그녀에게 물을 수도 없었고, 나중에 물을 수도 없었다."
"그녀의 대답은 영영 알 수 없을 것 같다."
".:. 배드 엔딩."
return
## 이 파일은 당신의 렌파이 게임을 꾸미기 위해 변경할 수 있는
## 일부 옵션을 포함하고 있습니다. 흔히 사용되는 옵션만 포함하고 있으며
## 이 외에도 여러가지 옵션이 있습니다.
##
## 두 개의 #으로 시작하는 줄은 주석입니다. 그러므로 주석을 풀지 마세요.
## 하나의 # 마크로 시작하는 라인은 임시로 주석처리한 코드로,
## 해당 코드를 사용하고 싶다면 적절히 주석을 풀어
## 이용하시기 바랍니다.
init -1:
python hide:
## 개발자 도구를 활성화시켜야 합니까? 게임이 배포되기 전에 False로 설정해서
## 사용자가 개발자툴을 이용하여 속임수를 쓰지
## 않도록 하세요.
config.developer = True
## 화면 해상도를 제어합니다.
config.screen_width = 800
config.screen_height = 600
## 렌파이가 창 모드에서 실행중일 때 표시할
## 창 제목을 제어합니다.
config.window_title = u"The Question"
## 테마 기능은 게임 외관을 꾸미는 데 사용됩니다.
## themes.roundrect은 둥근 모서리의
## 사각형을 사용하는 테마입니다.
##
## 테마 기능은 색상 체계를 꾸밀 수 있는 여러 개의
## 매개변수를 받습니다.
theme.roundrect(
## 일반적인 위젯의 겉모습.
widget = "#F8AD00",
## 마우스가 올려진 위젯의 겉모습.
widget_hover = "#E97F00",
## 위젯 내의 텍스트 색상.
widget_text = "#581A00",
## 선택된 위젯 안에 있는 텍스트의 색상.
## (예를 들면, 환경설정의 현재값)
widget_selected = "#58A1FF",
## 비활성화중인 위젯의 겉모습.
disabled = "#404040",
## 비활성화중인 위젯의 텍스트 색상.
disabled_text = "#FFC89A",
## 정보 제공용 레이블의 색상.
label = "#ffffff",
## 위젯을 포함하고 있는 프레임의 색상.
frame = "#95850F",
## 이것이 True라면 게임 내 메뉴가 화면의
## 중간에 표시됩니다. False라면 화면의 맨 밑바닥에 있는
## 윈도우 안에 표시됩니다.
button_menu = True,
## 메인 메뉴의 배경 그림. #으로 시작하는
## 색상코드이거나 이미지 파일 이름이 올 수도 있습니다.The latter
## 후자는 화면의 최대 가로, 세로 길이를 충분히 덮을 수 있어야 합니다.
mm_root = "menu.jpg",
## 게임 메뉴의 배경 그림. #으로 시작하는
## 색상코드이거나 이미지 파일 이름이 올 수도 있습니다.The latter
## 후자는 화면의 최대 가로, 세로 길이를 충분히 덮을 수 있어야 합니다.
gm_root = "menu2.jpg",
## 이로써 테마 설정은 모두 마쳤습니다. 테마는 다양한 스타일로
## 꾸며질 수 있으므로 그것들을 변경하고 싶다면,
## 이 밑에서도 그것들을 설정해야 합니다.
)
## 아래의 설정들은 대사창을 이미지로 교체하여
## 대사나 나래이션이 표시되는 대사창을 꾸미도록 해줍니다.
## 대사창의 배경그림. Frame에서 두 숫자는
## 각각 좌우와 상하 경계의 크기를
## 뜻합니다.
# style.window.background = Frame("frame.png", 12, 12)
## margin은 대사창의 배경 그림이 그려지지 않는
## 대사창 주변의 여백입니다.
# style.window.left_margin = 6
# style.window.right_margin = 6
# style.window.top_margin = 6
# style.window.bottom_margin = 6
## 대사창 안 쪽, 배경이 그려지는 공간에 빈 공간을
## 추가합니다.
# style.window.left_padding = 6
# style.window.right_padding = 6
# style.window.top_padding = 6
# style.window.bottom_padding = 6
## 빈 공간과 여백을 포함한 대사창의
## 최소 높이입니다.
# style.window.yminimum = 250
## 메인 메뉴의 위치를 변경할 수 있습니다.
## 위치를 변경하는 방식:
## 디스플레이어블 내에서 앵커를 찾고, 화면에서 위치(pos)점을 찾습니다.
## 그 후 디스플레이어블을 위치시켜
## 앵커와 위치점을 같은 곳에 위치시킵니다.
## 앵커/pos 는 정수나 부동 소수점 숫자 형태로
## 지정할 수 있습니다. 정수는 왼쪽 위 모서리로부터
## 떨어져있는 픽셀 숫자로 처리됩니다. 부동 소수점이라면
## 그 숫자는 디스플레이어블이나 스크린의 비율로
## 해석됩니다.
# style.mm_menu_frame.xpos = 0.5
# style.mm_menu_frame.xanchor = 0.5
# style.mm_menu_frame.ypos = 0.75
# style.mm_menu_frame.yanchor = 0.5
## 아래의 설정들을 이용하면 렌파이에서 사용되는 텍스트를 꾸밀 수 있습니다.
## 기본 폰트.
# style.default.font = "DejaVuSans.ttf"
## 텍스트의 기본 크기.
# style.default.size = 22
## 위의 설정은 일부 텍스트의 크기만을 변경합니다.
## 다른 버튼 텍스트들은 고유의 스타일을 가지고 있습니다.
## 아래의 설정들을 이용하면 렌파이에서 사용되는 소리들을
## 변경할 수 있습니다.
## 게임에 효과음이 없다면 False로 설정하세요.
config.has_sound = True
## 게임에 배경음악이 없다면 False로 설정하세요.
config.has_music = True
## 게임에 음성이 없다면 False로 설정하세요.
config.has_voice = True
## 버튼이나 이미지맵이 클릭될 때 사용되는 효과음.
# style.button.activate_sound = "click.wav"
# style.imagemap.activate_sound = "click.wav"
## 게임 메뉴에 진입하거나 빠져나올 때 사용될 효과음.
# config.enter_sound = "click.wav"
# config.exit_sound = "click.wav"
## 효과음 볼륨을 체크할 때 재생되는 샘플 효과음.
# config.sample_sound = "click.wav"
## 사용자가 메인 메뉴에 있을 때 재생되는 음악.
# config.main_menu_music = "main_menu_theme.ogg"
## 기타
## 게임 메뉴에 진입하거나 빠져나올 때 트랜지션을
## 변경합니다.
config.enter_transition = dissolve
config.exit_transition = dissolve