본문 바로가기

렌파이/게임 제작하기

텍스트 어드벤처 만들기 (1) 대사 입력하기

대사 입력하기

한글 출력이 제대로 된다면 이제 렌파이로 게임을 만들어봅시다. 렌파이 런처를 실행하고 Create New Project 를 선택해 새 프로젝트를 만듭시다. 제대로 만들어졌다면 런처 윗 부분에 방금 만든 프로젝트 이름이 적히게 됩니다. 확인하시고 Edit Script 를 선택합시다.

스크립트 에디터가 실행되면 script.rpy 파일 내용을 확인할 수 있습니다. 안에 영어로 뭐라 적힌 내용은 전부 지우고 첫 줄에 다음과 같이 적습니다.


label start 는 게임이 시작될 부분을 가리키는 명령어 같은 것입니다.
적었다면 엔터 키를 누르고 인용부호를 써서 아무 말이나 입력해봅시다. 이 때 쓰는 인용부호는 따옴표이던 홑따옴표이던 차이는 없습니다. 물론 같은 인용부호를 써서 문장을 닫아줘야 합니다. 소설 등에서 대사를 쓸 때 그러하듯 말입니다.


들여쓰기

label start: 를 입력하고 엔터 키를 눌렀을 때 자동으로 다음 줄에 들여쓰기가 된 걸 확인하실 수 있습니다. 렌파이에서는 콜론(:)이 적힌 줄의 다음 줄은 들여쓰기를 해줘야 합니다. 스크립트에서 자동으로 처리하니 신경 안 쓰셔도 되지만, 후에 스크립트를 수정하다 보면 들여쓰기 문제로 에러가 발생하는 경우가 종종 있으니 주의해야 합니다.

스크립트에 들여쓰기가 잘못된 부분이 있다면 렌파이 게임을 실행할 때 block 어쩌구 indentation 어쩌구 하면서 에러 메시지가 나타납니다. 이 때는 잘못되었다고 나타난 부분을 찾아서 들여쓰기량을 수정하면 됩니다. 에러 메시지를 눈으로 확인해보고 싶으시다면 일부러 들여쓰기를 엉망으로 적고 실행해보면 됩니다.

여기까지 입력한 스크립트를 실행하려면 런처에서 Launch 메뉴를 누르면 됩니다. 게임이 실행되면 시작 버튼을 누르고, 따옴표로 감싸서 입력한 문장이 게임 화면에 나타나는 것을 볼 수 있습니다. 다시 스크립트로 돌아와서 앞서 했던 대로 대사를 여러개 써주고 게임을 실행해보면, 클릭할 때마다 이전 대사는 사라지고 다음 대사가 차례로 한 줄씩 나타나는 것을 확인할 수 있습니다.

이름 입력하기

따옴표 문장 이용하기

따옴표 문장 하나씩만을 입력한 상태에서 나타나는 대사는 말하는 사람을 알 수 없어 주로 독백이나 해설에 알맞은 모습을 띕니다. 누군가가 말 하는 것을 알리기 위해서는 이름을 나타내야 합니다. 렌파이에서는 다음과 같이 적어주면 말하는 이의 이름을 간단히 나타낼 수 있습니다.


한 줄에 따옴표가 적힌 문장을 두 개 적으면 앞의 문장은 캐릭터의 이름이 되고, 뒤의 문장은 그 캐릭터가 말하는 대사가 됩니다. 하지만 캐릭터가 여럿이고 대사가 많은 캐릭터가 말하는 문장은 번거롭게 이름을 여러 번 입력해야 합니다. 이를 해결하려면 Character를 이용하면 됩니다.

Character 이용하기

스크립트의 맨 윗 줄로 올라가 다음처럼 두 줄 적어줍니다.



첫 번째 문장 init: 는 무언가를 설정할 영역을 만들 때 사용하는 명령문입니다. 그 다음 줄에 들여쓰기 된 채 입력된 내용은 언제든 렌파이 게임에서 사용할 수 있게 됩니다.

두 번째 줄의 의미는 d 에다가 '데이브 그롤'이라는 캐릭터 이름을 지정하겠다는 의미입니다. 여기서 나타난 등호는 수학 기호의 등호와 기능이 다릅니다. 수학 기호의 등호는 왼쪽에서 오른쪽으로 해석하지만 렌파이나 프로그래밍 언어에서는 오른쪽의 것을 왼쪽에 저장한다는 의미입니다. 그러니 여기서는 오른쪽에서부터 왼쪽으로 읽어야 합니다.

등호를 감안하고 두 번째 줄을 다시 읽어보면,
'데이브 그롤' 이라는 캐릭터 이름을 d 라고 정의하겠다.
라고 해석할 수 있습니다.

위처럼 d 에 저장해뒀으니, 대사에서는 "데이브 그롤"이라고 적은 것 대신 다음처럼 d를 이용할 수 있습니다.


게임을 실행하면 전에 문장 두 개를 적었던 때와 똑같이 나타나는 것을 확인할 수 있습니다.
허나 define d = Character('') 는 단순히 이름 입력을 쉽게 하는 기능만 하지 않습니다. "이름" "대사" 로 적었을 때보다는 Character()쪽이 훨씬 다양한 기능을 수행할 수 있습니다.



3번 줄에서는 글씨의 색상을 지정하였으며, 5 번 줄에서는 글씨 색상을 설정함과 동시에 캐릭터의 이름이 별도의 창에 표시되도록 창을 두 개 띄우도록 만들었습니다. 7~8 번 줄에서는 pcname 이라는 곳에 저장한 것을 캐릭터 이름으로 사용하도록 설정한 것입니다(후에 플레이어에게 이름 입력을 받아 캐릭터의 이름으로 사용하도록 만들 수 있다는 얘기가 됩니다). 10 번 줄에서는 캐릭터 이름으로 image.png 파일을 사용하도록 설정한 것입니다.

FAQ

대사가 한 번에 표시됩니다. 한 글자씩 나타내게 하고 싶어요.

   oprions.rpy 파일에서 컨트롤 F 를 누르고 config.default_text_cps 를 검색합니다. 찾았다면 등호 오른쪽의 0을 적당한 숫자로 바꿔줍니다. 못 찾았다면 config.default_text_cps = 적당한 숫자 를 입력합니다.

바꿨으면 저장하고 런처에서 Delete Persistent 를 클릭합니다. 완료하고 게임을 재시작하면 대사가 한 글자씩 나타납니다. 숫자가 클 수록 대사가 빨리 뜹니다.

에러 메시지가 뜹니다.

    1. 들여쓰기가 잘못된 부분이 없는지 살펴보세요.
    2. Character 부분의 철자를 확인하세요. 명령어를 사용할 때는 반드시 대소문자 구분을 해야합니다.

캐릭터 대사창을 마음대로 꾸미고 싶습니다.

    후에 설명할 예정이지만 미리 알고 싶다면 이쪽이나 이쪽을 참조하세요.