본문 바로가기

렌파이/개발 편의

SciTE를 렌파이 기본 에디터로 사용하기 6.13.9 이후 버전에서만 적용됩니다. 렌파이 엔진에서 기본적으로 추천하는 에디터는 Editra입니다만, 저는 개인적으로 SciTE라는 에디터를 사용합니다. 이유는 다음과 같습니다. 1. 렌파이에서 추천하는 Editra는 일본어, 중국어, 한국어 IME를 지원하지 않습니다. 한글 입력이 안 되는 건 아닌데.. 직접 써보시면 그 이상한(?) 느낌을 느끼실 수 있을 듯..2. 구동할 때 약간의 로딩이 있는 JEdit과 달리 SciTE는 아주 가볍습니다.3. 스크립트 에디터에서 바로 ctrl + 0 단축키를 눌러 현재 스크립트가 반영된 프로젝트를 간단히 구동해볼 수 있기 때문입니다. 그러나 이 텍스트 에디터는 기본 렌파이 런처에서 제공하지 않으므로, 이를 등록해서 사용하려면 약간 조작이 필요합니다. 1. 위.. 더보기
게임에서의 버벅임을 최소한으로 줄이는 법 가끔 렌파이로 제작된 게임을 플레이하다보면 미묘하게 버벅인다든지 잠깐 동안 프레임이 떨어진다든지 하는 상황을 겪을 때가 있습니다. 아래의 함수와 변수를 이용하면 이런 현상을 다소 개선할 수 있습니다. 렌파이 자체가 성능이 좋아지거나 빨라지게 하는 방법이 아닙니다. 아래에 나와있는 것들은 렌파이 게임의 부드러운 동작을 위해 필요한 작업들입니다. 방법이미지 캐시 사이즈 늘리기config.image_cache_size 라는 변수의 값을 조정하면 늘릴 수 있습니다. 예를 들면 이 변수는 기본값이 8인데 이는 게임 화면 크기에 8배 되는 크기만큼 이미지를 미리 복사해놓을 수 있다는 의미입니다. 게임 화면 크기가 800x600 이고 config.image_cache_size가 8이면 800x600 짜리 그림파일은 .. 더보기
렌파이 엔진 폴더 구조 렌파이 엔진의 어디에 무엇과 관련된 파일이 있는지 적어봤습니다. 엔진에 쓰인 스크립트가 어디에 있는지 확인할 때 참고하세요.(렌파이 설치 파일에 포함된 폴더만 적었습니다) doc/엔진 매뉴얼 파일이 들어있습니다 launcher/렌파이 런처를 구성하는 스크립트 파일이 들어있습니다. lib/렌파이 엔진이 배포판을 만들 때 사용하는 라이브러리가 들어있습니다. module/렌파이 엔진이 사용하는 모듈이 들어있습니다. renpy/렌파이 엔진을 구성하는 스크립트 파일이 들어있습니다. angle/렌파이를 angle/DirectX로 렌더링할 때 필요한 파일이 들어있는 폴더..인 듯합니다. ㅇ 더보기
나만의 렌파이 명령문 만들기 - 사용자 정의 명령문 렌파이에서는 이미 정의된 명령문 외에 사용자가 임의로 명령문을 만들어 사용할 수 있습니다. 다음은 아날로그: 증오록 스크립트에서 사용된 사용자 정의 명령문입니다(안에 적힌 영문은 게임에 사용된 한국어로 바꿨습니다). message "2-1288" "아름다운 꽃" "하나" "321년 12월 5일" "321년 12월 5일" "아름다운 꽃이여, 누가 너를 심고서\n화단에 버려두었는고?\n매일 나는 걸음을 멈추고 너의 향기에 경탄하노라.\n정원사가 이를 꺼려할 것인가?\n밤마다 나는 내 꽃잎을 잡아뜯으며\n너의 꽃잎이 만개하기를 꿈꾸노니." 렌파이를 어느 정도 사용해왔다면 알겠지만 위에서 사용된 message 라는 명령문은 기존의 렌파이에서 볼 수 없었던 명령문입니다. 제작자가 자신이 만든 서신 시스템을 편하게.. 더보기
대화형 디버그 콘솔 이용하기 대화형 디버그 콘솔이란 대화형 디버그 콘솔은 6.15 버전에 새로 추가된 기능으로, 스크립트 수정하고 재시작(Shift + r) 하는 과정을 거치지 않고 게임에서 사용되는 함수나 변수값, 간단한 스크립트 명령문 등을 디버그 콘솔을 통하여 바로 확인할 수 있도록 해줍니다.사용법 대화형 디버그 콘솔을 사용하려면 config.developer 또는 config.console 을 True 로 설정합시다. #options.rpy #.... init python: config.developer = True # 혹은 # config.console = True # config.console 을 True로 설정했다면 # config.developer 를 False로 설정해도 콘솔만은 사용할 수 있습니다. 그 후 게임을 .. 더보기
Revised - GUI 기반 렌파이 에디터 http://jancoding.wordpress.com/revised/ Qt(큐트)라는 툴킷을 이용한 렌파이 에디터라고 합니다. 아직은 새 프로젝트를 만들어 캐릭터와 이미지를 정의하고 그림이나 대사를 넣는 것만 가능하지만(정말 이것만 됩니다;;) 점점 기능을 업데이트해나간다면 정말로 유용한 툴이 되겠네요. Qt는 예전에 딱 한 번 호기심에 만져본 것 빼고는 다뤄본 적이 없는 툴이라 자세한 사용법은 저도 잘 모르겠네요. -_-; 게다가 아직 그렇게 유용하진 않은 상태라 업데이트가 좀 더 진행되어 쓸만해지고 난 다음에 다뤄봐야겠습니다. * 현재는 리눅스에서만 작동한다고 합니다. 더보기
디스플레이어블 뜻 디스플레이어블이란 플레이어/유저의 눈에 보이는 객체입니다. 객체라는 말이 어려우시면 그냥 잊어버리시고, 렌파이에서 눈으로 볼 수 있는 무언가가 있으면 그것이 이미지든 버튼이든 글씨든 뭐든 '디스플레이어블'이라고 생각하시면 편합니다. 디스플레이어블에는 다음과 같은 종류가 있습니다. 종류 이미지 # 아래의 두 행은 똑같은 동작을 한다. image logo = "logo.png" image logo = Image("logo.png") # Image 를 사용하면 이미지에 기본 위치를 지정할 수 있다. image logo right = Image("logo.png", xalign=1.0) - image eileen happy = "eileen happy.png" 처럼 이미지 파일을 배정해 만든 이미지 이름 -.. 더보기
웹 업데이터 기능 활용하기 웹 업데이터 기능을 이용하면 온라인 상태일 때 게임 자체에서 웹에 올려진 파일을 받아 플레이어의 디스크에 설치할 수 있습니다. 패치나 DLC 다운로드 기능에 활용하면 유용한 기능입니다. 준비 우선 이 웹 업데이터 기능을 활용하려면 웹 호스팅 계정이 있어야합니다. 티스토리나 클박 같은 곳에 패치 파일을 올려놔도 무의미하니 웹 호스팅 계정을 이용하세요. kth 비즈프리라는 곳에서 회원가입만 하면 무료로 하나 만들 수 있으니 참고하시기 바랍니다. (물론 무료용은 100M 라는 트래픽 제한 및 용량 제한이 있으므로 아무래도 제대로 이용하고자 하시는 분은 유료 호스팅을 이용하셔야 합니다.) 기타 웹 호스팅 서비스는 구글 검색결과 페이지를 참고하세요. 호스팅이 준비가 되었다면 런처를 실행합니다. 패치 기능으로 활용.. 더보기
지속 데이터 Persistent Data 렌파이에서 지속 데이터란 렌파이 게임의 흐름과는 별개로 저장하거나 이용할 수 있는 데이터입니다. 예를 들어 어떤 엔딩을 봤다면 이야기 진행을 처음서부터 아예 바꿔버린다거나, 게임의 현재 진행상태와 관계 없이 특정 조건에 따라 열리는 메뉴같은 것을 만들 때 지속 데이터를 이용해야 합니다. persistent지속 데이터는 persistent 라는 변수를 이용해 관리할 수 있습니다. 말이 굉장히 거창해보이는데 그런 거 없고 그냥 보통 변수 쓰듯 쓰면 됩니다. 다만 아래와같은 모양을 갖추고 사용해야 합니다. persistent.사용하고싶은 이름 = 값 보통 변수처럼 init 블록에서 먼저 지정하지 않아도 됩니다. 만들어지지 않은 persistent변수는 언제나 False값을 가집니다. 미리 지정해도 별 상관은 .. 더보기
렌파이 게임 개발에 유용한 내부 툴을 사용해보자 - 개발자용 도구 개발자용 도구란 렌파이로 게임을 만들 때 유용한 렌파이 프로그램의 기능입니다. options.rpy 에서 config.developer = True 로 설정하면 렌파이로 게임을 만들때 유용한 도구와 개발자용 메뉴를 활성화합니다. 말 그대로 개발자용 도구이니 게임을 배포할 때는 config.developer = False 로 설정해두어야 합니다. 개발자용 도구 스크립트 불러오기 - 쉬프트 + e 게임 진행 중 컨트롤 E를 누르면 해당 부분과 관련이 있는 스크립트 행을 찾아 스크립트 에디터에서 실행합니다. 선택지 건너뛰기 - 쉬프트 + .다음 선택지나 call screen문으로 불러온 화면까지 게임 진행을 건너뜁니다. 정확히는 사용자의 입력을 받는 곳까지 건너뜁니다(대사를 넘기는 입력 제외). 그러니까 게임.. 더보기
게임 시스템 관련 설정은 options.rpy 에서 options.rpy게임을 만들 때는 게임 화면의 크기나 세이브 파일 저장 경로처럼 미리 정해야 하는 것들이 있습니다. 이런 부분은 렌파이에서는 options.rpy 에서 관리할 수 있습니다. 반드시 그래야 할 필요는 없습니다만 관리하기 편리하게끔 config. 로 시작하는 설정은 모두 options.rpy 에 적어주는 것이 좋습니다. 프로젝트를 만들면 options.rpy 파일은 저절로 만들어집니다. 파일을 열어보면 게임에 대한 설정이 기본적으로 들어있는 것을 확인할 수 있습니다. 살펴보기 (6.13의 template 폴더에 들어있는 options.rpy 기준입니다. 처음 프로젝트를 만들었던 렌파이 버전에 따라 options.rpy 의 내용이 달라질 수 있습니다.) (앞에 #이 붙은 설정은 #을 지우면.. 더보기
렌파이에서 위치를 나타내는 방법 렌파이에서 그림을 적극 활용하거나 게임을 꾸미려면 렌파이에서는 위치를 어떻게 나타내는지 알아야합니다. 위치를 나타내는 법은 사실 렌파이 튜토리얼 게임에 전부 나와있습니다. 그래서 이곳에는 튜토리얼 게임의 내용을 정리해서 적어두려고 합니다. 숫자 위치는 숫자로 나타내는데, 이 때 사용되는 숫자의 종류는 두 가지입니다. 하나는 정수, 다른 하나는 부동소수점수입니다. 정수는 아시다시피 -1, 0, 1처럼 부호와 0부터 9까지의 숫자로 이루어진 수입니다. 부동소수점수란 소수점이 있는 수를 가리킵니다. 그러니까 -123, 0, 50 은 정수고, 0.5, 0.234, -0.4는 부동소수점수입니다. 위치를 나타낼 때 정수를 적으면 그 수는 절대 좌표를 가리킵니다. 그러니까 100이라고 적으면 100 만큼의 위치를 가.. 더보기
레이아웃 이미지맵을 스크린 언어로 컨버팅 http://dev.renpy.org:6112/ 메인 메뉴를 꾸미기 위해 사용한 layout.imagemap 스크립트를 새로 추가된 스크린 언어용 스크립트로 변환해준다. 작업했던 스크립트를 입력하고 밑에 컨버트 버튼을 누르면 됨. 밑에 쓰인 설명 1. 이 컨버터는 아직 덜떨어져서 핫스팟 아래에 키워드 인수(variant)나 추가적인 인수(layout.ARE_YOU_SURE : "yesno_are_you_sure.png")는 변환하지 못한다. 2. 코드 안에 스크린 언어에서 사용될 스타일에 대해 적어두지 마셈. 그건 변환 못함요. 더보기
렌파이에서 쓰이는 용어들 문자열이나 변수, 함수같은 용어랑 렌파이 참고문서에 나와있는 용어들은 뺐습니다. 참고문서에 있는 용어라도 번역을 여러 개의 단어로 한 경우엔 적어놓았습니다. 원래 용어 번역에 사용한 용어 설명.... ... 순으로 적었습니다. Label 라벨, 레이블 1. 라벨이라고 적은 경우는 label 명령문 등을 가리킬 때 사용하고 2. 레이블이라고 적은 경우는 이름표의 의미를 가리킬 때 사용했다. 1의 예: label start: ==스타트 라벨 2의 예: 환경 설정 들어가서 보면 음악 볼륨/ 효과음 볼륨/ 음성볼륨 이렇게 각 옵션에 대한 기능이 써있는 텍스트가 있다. 그걸 레이블이라고 번역. 물론 원래 발음은 레이블이 더 가까움..-.- (Logical) Line (논리)행. 라인. 쉽게 말하자면 스크립트 작성.. 더보기