본문 바로가기

렌파이/GUI 꾸미기

대사 꾸미기

say 문

렌파이에서 대사를 만들 때 다음처럼 문장을 적어 대사를 나타내도록 했습니다.

이렇게 렌파이에서는 대사를 표시할 때 쓰는 문장을 가리켜 say 문이라고 합니다. 다르게 말하자면 대사도 명령문의 일종이라고 할 수 있죠. say 문은 위처럼 3가지 형태가 있습니다. 하나는 대사만 적힌 문장①, 하나는 따옴표에 적힌 이름과 대사가 있는 문장②, 세 번째는 Character()를 연결한 특수한 문자와 대사가 있는 문장③입니다.

하지만 알고 보면 세 가지는 모두 같은 형태라고 할 수 있습니다. ①은 narrator 라는 변수에 지정된 Character()가 관리하는 것이고, ②는 따옴표 안에 적힌 이름을 Character()에 저장해서 사용하는 것입니다. 따라서 위 예제로 쓴 세 문장은 다시 다음처럼 적을 수 있습니다.


따라서 Character를 능숙하게 다룰 수 있다면, 그 Character로 만들어진 대사를 적절하게 꾸밀 수 있습니다. 이에 대해서는 Character 의 이용이라는 글에 적어놓았으니 확인해보세요.

변수를 대사에 표시하기

게임을 진행하다보면 캐릭터의 이름을 사용자에게 입력 받거나 게임 상의 화폐 등 어떤 데이터를 변수에 저장해서 대사에 나타내야 할때가 있습니다. 이 때는 다음과 같이 적어 대사에 변수를 나타낼 수 있습니다.
"[변수이름]"


대사 안에 특수한 문자 적기

대사 안에 따옴표를 적어야 할 때가 있는데, 이것이 난감할 때가 있습니다. 대사는 따옴표 안에 적어야 하는데, 그 안에 또 따옴표가 있으면 다음과 같이 대사가 중간에 완성되어 이대로 실행할 경우 에러가 발생합니다.


또한 위에 적었듯 % 문자는 변수를 대사에서 나타낼 때 쓰는 문자입니다. 그래서 100% 같은 단어를 적으려고 하면 에러가 발생하며, { 기호는 아래 설명할 텍스트 태그라는 기능을 쓸 때 사용하는 문자라서 함부로 쓸 수 없습니다.

그러므로 특별한 기능을 하는 문자를 대사 안에 적으려면 다음처럼 해당 문자 앞에 백슬래시(\)를 적어야 합니다.


이 외에도 \ 기호를 이용하면 한 줄로 이루어진 대사를 두 줄에 나누어 표시할 수 있습니다. 이 때는 \n 이라고 적어줍니다.


그리고 위처럼 \또한 특수한 기능을 하는 문자라서, 문장에서 원 단위를 나타내려면 같은 문자를 두 개(\\) 적어주어야 합니다.


위에 \를 사용해 적은 문자들을 이스케이프 코드라고 합니다. 더 자세한 사항을 알고싶으시다면 이 페이지에 있는 이스케이프 코드 항목을 참조하세요. 사실 여기 적힌 것 외의 이스케이프 코드는 자주 쓰이지 않습니다.

텍스트 태그

텍스트 태그는 대사로 쓰이는 글자를 일부만 꾸며줄 때 사용할 수 있는 기능입니다. 사용법은 HTML 태그와 비슷한데, < 대신 { 기호로 사용해야 합니다. 텍스트 태그를 이용하면 글씨를 굵게, 기울어지게 만들 수 있고 글씨 색을 바꾸거나, 밑줄을 긋거나, 일부 글자에 사용할 폰트를 아예 바꾸거나, 크기를 바꾸거나 할 수 있으며, 또한 대사에 웹페이지로 링크를 걸 수도 있습니다.

아래는 렌파이에 사용 가능한 텍스트 태그 종류입니다. 

모든 글자에 적용할 수 있는 텍스트 태그


 {a = 링크할 웹페이지 주소나 레이블} 글자 {/a}

 지정된 웹페이지 주소나 렌파이 게임에 지정된 레이블로 링크하는 글자를 만든다. 웹페이지의 경우는 PC 에 지정된 기본 웹브라우저에서 웹페이지를 열게 된다.

 {b} 글자 {/b}

 글씨를 굵게

 {i} 글자 {/i}

 글씨를 기울인다

 {u} 글자 {/u}

 밑줄을 긋는다

 {s} 글자 {/s}

 취소선을 긋는다

 {color= #컬러코드 } 글자 {/color}

 지정된 색상으로 글씨 을 바꾼다. 컬러 코드는 RGB 색상 코드.

 {font = 파일이름.ttf} 글자 {/font}

 지정된 폰트로 글자의 폰트를 바꾼다

 {size = 숫자 } 글자 {/size}

 지정된 크기만큼으로 글자 크기를 바꾼다
 +숫자, -숫자를 적으면 기본 크기에서 정해진 만큼 가감한 사이즈로 글자를 표시한다.
ex) {size=+ 10} :현재 글자 크기에서 10 만큼 큰 크기로 글자를 키운다.

 {plain} 글자 {/plain}

 아무런 효과가 없는 평범한 글씨로

 {=스타일 이름} 글자 {/=스타일 이름}

 따로 지정된 스타일대로 글씨를 표시한다
(스타일에 대한 자세한 설명은 이쪽에)

 {image = 파일이름.jpg}

 대사창 안에 지정한 이미지를 출력
 {cps=숫자}글자{/cps} {cps=*숫자}글자{/cps}
초당 글자 표시 속도를 설정. 숫자 앞에 * 기호를 붙이면 현재 텍스트 속도에 해당 숫자만큼 곱한 값이 표시 속도가 된다.

예를 들어 {cps=* 2}글자{/cps}라고 적으면 사이에 적은 글자는 현재 텍스트 표시 속도의 두 배 빠른 속도로 나타난다.
 
{rb}글자{/rb} 이 태그로 감싸인 글자는 루비텍스트의 아랫글자가 된다.
{rt}글자{/rt}  이 태그로 감싸인 글자는 루비텍스트의 윗글자가 된다. 
{rb}와{rt}태그에 대한 자세한 내용은 이 페이지를 참조해주세요. 
글자. {space=숫자}글자 글자 사이에 가로로 빈 공간을 넣는 태그. 숫자가 가리키는 것은 픽셀 수.
첫 번째 줄. {vspace=숫자}두 번째 줄 문장 사이에 세로로 빈 공간을 넣는 태그. 숫자가 가리키는 것은 픽셀 수.

대사에만 적용할 수 있는 텍스트 태그

아래는 대사로 나타나는 글자에만 사용할 수 있는 텍스트 태그입니다.

 {w}, {w=숫자}


 이 태그의 오른쪽에 적힌 글자는
사용자의 입력을 기다렸다가 출력한다

 숫자를 지정하면 그 시간만큼 대기한 뒤에 글자를 표시


 {nw}

 문장의 끝에 사용하면 사용자의 입력을 기다리지 않고 다음 줄을 실행한다

 {p}, {p=숫자}

 이 태그 뒤에 출력되는 문장은 새 줄에 출력된다는 것 외에는 {w}태그와 성질이 같다

 {fast}

 문장의 끝에 오면 그 문장을 한순간에 출력한다

사용시 주의점

위 예제에서 확인할 수 있듯, 텍스트 태그 중에는 태그 사용 후 반드시 닫아야 하는 태그가 있습니다. 혹시 텍스트 태그를 여럿 사용했을 때에는 반드시 가까운 태그부터 닫아줘야 문제가 일어나지 않습니다.