본문 바로가기

렌파이

[ver.6.17] 안드로이드용 배포판 만들기 렌파이는 안드로이드 패키지 제작을 지원합니다. 렌파이로 만든 게임을 안드로이드 앱으로 만들 수 있다는 뜻입니다. 렌파이 게임을 안드로이드 앱으로 만들기 * 런처 스샷이 대부분인 관계로 이미지 갤러리 기능으로 업로드했습니다. 모바일 버전에서는 스크린샷 밑의 설명이 안 보일 수도 있습니다. * 상단의 화살표 > 를 누르면 이전 / 다음 이미지로 이동합니다. * 분명히 번역 파일 추출해서 런처 한글화 했는데도 이 부분이 번역이 안 되어 있네요..(-_-) 조만간 제작자에게 제보 예정입니다. FAQ1. build.xml 뭐시기라면서 안드로이드 제작이 안 됩니다.렌파이 설치 폴더/rapt/android-sdk-r... 폴더를 지우고 다시 다운로드 받은 뒤 시도해보세요. 참고로 어디서 폴더를 사용중이라면서 지워지지.. 더보기
SciTE를 렌파이 기본 에디터로 사용하기 6.13.9 이후 버전에서만 적용됩니다. 렌파이 엔진에서 기본적으로 추천하는 에디터는 Editra입니다만, 저는 개인적으로 SciTE라는 에디터를 사용합니다. 이유는 다음과 같습니다. 1. 렌파이에서 추천하는 Editra는 일본어, 중국어, 한국어 IME를 지원하지 않습니다. 한글 입력이 안 되는 건 아닌데.. 직접 써보시면 그 이상한(?) 느낌을 느끼실 수 있을 듯..2. 구동할 때 약간의 로딩이 있는 JEdit과 달리 SciTE는 아주 가볍습니다.3. 스크립트 에디터에서 바로 ctrl + 0 단축키를 눌러 현재 스크립트가 반영된 프로젝트를 간단히 구동해볼 수 있기 때문입니다. 그러나 이 텍스트 에디터는 기본 렌파이 런처에서 제공하지 않으므로, 이를 등록해서 사용하려면 약간 조작이 필요합니다. 1. 위.. 더보기
렌파이 6.17 업데이트 렌파이가 버전업했습니다. 무려 6.17이라는, 뒷자리 수가 바뀔 정도의 업데이트가 이루어졌네요. 공식 홈페이지에 따르면 새로 추가되거나 변경된 점은 다음과 같습니다. 스타일 시스템이 재작성되어 렌파이 성능이 향상되었습니다. 스타일을 더 쉽게 정의할 수 있는 새로운 스타일 명령문이 추가되었습니다. 스타일을 살펴볼 수 있는 shift + I 키를 눌러 나타나는 스타일 조사기가 재작성되었습니다. "show layer" 명령문이 추가되어 전체 레이어에 트랜스폼과 ATL 트랜스폼을 쉽게 적용할 수 있게 되었습니다. "window auto" 명령문이 추가되어 대사창을 자동으로 관리할 수 있게 되었습니다. 일부 구문이 향상되었습니다. 프랑스어와 러시아어 번역이 추가되었습니다. 렌파이 안드로이드 패키징 툴 RAPT 가.. 더보기
렌파이 6.16 선공개 http://lemmasoft.renai.us/forums/viewtopic.php?f=32&t=23691 안드로이드 지원 기능이 향상됐습니다. 런처에서 프로젝트를 apk 파일로 만들 수 있고 확장 APK도 지원하며 OUYA 같은 텔레비전 기반 콘솔도 지원합니다.JSON 정보를 세이브 파일과 연결짓는 기능, 로드/세이브 스크린에 있는 정보에 접근 공유 디렉토리에서 렌파이가 실행중일 때 세이브 파일을 동기화게임 제작자가 대사 텍스트를 홀랑 뽑아내고 더해서 그에 적합한 음성 파일을 자동으로 재생하는 기능.갤러리(네비게이션 오버레이 추가)와 뮤직룸(무작위 재생, 반복, 한 트랙만 반복)기능 향상 라고 합니다. 자세한 내용은 이쪽에서 영문으로 확인하실 수 있습니다. http://www.renpy.org/dev-.. 더보기
바의 모양을 수정하기 개요바의 경우에는 한 UI에 여러 구성요소가 있어 스타일을 이용한 모양 수정이 조금 까다롭게 느껴질 수 있습니다. 그러나 일단 각 부분의 명칭을 알고 나면 어렵지 않습니다. 이것이 렌파이의 기본 바입니다. 테마를 무엇으로 설정했느냐에 따라 모양이 조금씩 다르기는 합니다만 구조는 동일합니다. 위 그림에서 각 부분의 명칭을 확인한 다음 스타일로 모양을 수정해봅니다. 스타일을 이용해 변경한 모습입니다. 스크립트 init python: style.newBar =Style(style.bar) # 썸 이미지 # 바보다 높은 곳에 나타나도록 하려면 # 바의 세로길이보다 더 긴 이미지를 만들고 그 윗부분에 썸이 나타나도록 하면 됩니다. # 무슨 의미인지는 첨부한 "thumb.png" 이미지를 참고하세요. style.n.. 더보기
호감도 표시창 만들기 연애 시뮬레이션에서 호감도 수치를 표시할 때에는 주로 텍스트/아이콘/막대그래프 형태로 표시합니다. 렌파이에서 이 작업을 어떻게 처리하는지 스크립트 예제를 적어봤습니다. 어려운 것은 없으니 설명은 주석을 참고하시고 더 자세한 설명은 매뉴얼을 참고하시면 되겠습니다. 수치로 표시하기init python: # 호감도 변수 eileenLove = 0 lucyLove = 0 billyLove = 0 init: screen lovePoint: vbox: # 세로로 hbox를 정렬 hbox: # 가로로 밑의 두 text를 정렬 text "아이린" text "[eileenLove]" # 변수를 텍스트에서 표시할 때에는 # "[변수이름]" hbox: text "루시" text "[lucyLove]" hbox: text ".. 더보기
루비 텍스트로 윗첨자를 쓰자 렌파이에서는 루비 텍스트 기능으로 후리가나 등 윗첨자를 표시할 수 있습니다. 사용 방법 먼저 스타일을 이용하여 문장과 문장 간격을 설정해 윗첨자가 표시될 공간을 설정합니다. 그 다음에는 윗첨자의 글씨 크기와 위치 등을 설정해줍니다. init python: style.say_thought.line_leading = 12 # ADV 내래이션 문장 간격 설정 # 루비 텍스트 스타일 style.ruby_style = Style(style.default) style.ruby_style.size = 12 # 스타일 크기 style.ruby_style.yoffset = -20 # 문장에서 윗첨자가 떨어진 간격. # -20이면 밑글자에서 위로 20픽셀 떨어진 곳에 윗첨자가 적힌다. style.default.ruby_s.. 더보기
게임에서의 버벅임을 최소한으로 줄이는 법 가끔 렌파이로 제작된 게임을 플레이하다보면 미묘하게 버벅인다든지 잠깐 동안 프레임이 떨어진다든지 하는 상황을 겪을 때가 있습니다. 아래의 함수와 변수를 이용하면 이런 현상을 다소 개선할 수 있습니다. 렌파이 자체가 성능이 좋아지거나 빨라지게 하는 방법이 아닙니다. 아래에 나와있는 것들은 렌파이 게임의 부드러운 동작을 위해 필요한 작업들입니다. 방법이미지 캐시 사이즈 늘리기config.image_cache_size 라는 변수의 값을 조정하면 늘릴 수 있습니다. 예를 들면 이 변수는 기본값이 8인데 이는 게임 화면 크기에 8배 되는 크기만큼 이미지를 미리 복사해놓을 수 있다는 의미입니다. 게임 화면 크기가 800x600 이고 config.image_cache_size가 8이면 800x600 짜리 그림파일은 .. 더보기
엔딩 목록 화면 만들기 플레이어가 확인한 엔딩 이름을 표시하는 스크린입니다. init: # 엔딩이 몇 안 되는 경우 screen endingList: frame: align (0.5, 0.5) vbox: if persistent.goodEnding: text '굿엔딩: 맛있는 자장면' else: text '???' if persistent.badEnding: text '배드엔딩: 인생은 Birth와 Death 사이의 Choice' else: text '???' label start: menu: '그냥 자장면인가 자장면 곱배기인가 그것이 문제로다.' '저는 그냥 자장으로 주세요': '먹음직스러운 자장면 등장!' '잘 먹겠습니다.' $ persistent.goodEnding = True '곱배기 하나요.': '호리병 안에 자장면 .. 더보기
제작자 정의 디스플레이어블 - 3 미니게임 Sharon 스크립트 짜기 5 개요뭔가 허전한 듯해서 이미지를 추가했습니다. 음악도 넣고 배경도 좀 꾸미면 그럴싸하겠네요. 스크립트 init: ## 미니게임 Sharon에서 쓸 이미지 ## image playerMoving: 'player1.png' pause 0.05 'player2.png' pause 0.05 'player3.png' pause 0.05 'player4.png' pause 0.05 repeat image playerStop: 'player1.png' image enemyMoving: 'enemy1.png' pause 0.05 'enemy2.png' pause 0.05 'enemy3.png' pause 0.05 'enemy4.png' pause 0.05 repeat image enemyStop: 'enemy1.png.. 더보기
제작자 정의 디스플레이어블 - 3 미니게임 Sharon 스크립트 짜기 4 개요 영원히 고통받을 줄 알았던 무궁화꽃이 피었습니다 미니게임의 마지막입니다. 스크립트 지난주까지 짰던 스크립트가 오작동했던 것은 단순히 이프문이 꼬였겠거니 생각했습니다만 수정하고나서 다시 보니 완전 엉망진창이었습니다.... 길어서 접었으니 클릭하면 펼쳐집니다. init python: class Sharon(renpy.Displayable): def __init__(self): renpy.Displayable.__init__(self) # 게임에서 사용할 디스플레이어블 self.ready = Text("준비") self.go = Text("시작") #self.sharon = Text("무궁화 꽃이 피었습니다") self.s = "무궁화꽃이피었습니다" self.sharon = [] for i in self.. 더보기
제작자 정의 디스플레이어블 - 3 미니게임 Sharon 스크립트 짜기 3 개요지난 강의의 계속입니다. 이번에 추가한 내용은 술래의 판정 부분입니다. 스크립트수정한 부분이 너무 많아서 하이라이트 표시하기가 힘드네요-.- 49번째 줄 ~ 73번째 줄, 92번째 줄 ~ 153번째 줄, 163번째 줄, 201번째 줄을 주로 살펴보시면 되겠습니다. 지난 글에 첨부했던 이미지를 빼면 전부 텍스트니 복붙해서 실행하보면 어떤 모양새인지 감 잡으실 수 있을 듯. init python: class Sharon(renpy.Displayable): def __init__(self): renpy.Displayable.__init__(self) # 게임에서 사용할 디스플레이어블 self.ready = Text("준비") self.go = Text("시작") self.sharon = Text("무궁화 .. 더보기
제작자 정의 디스플레이어블 - 3 미니게임 Sharon 스크립트 짜기 2 개요지난번의 무궁화꽃이 피었습니다 미니 게임의 계속입니다. 스크립트 예제 init python: class Sharon(renpy.Displayable): def __init__(self): # 렌파이가 디스플레이어블을 만들 때 반드시 포커스 계산을 하는 것 같습니다. # 이 라인을 안 적어주니 그 작업을 못 해서 에러가 나는 듯합니다. renpy.Displayable.__init__(self) # 게임에서 사용할 디스플레이어블 # 는 결국 텍스트만으로 .. self.ready = Text("준비") self.go = Text("시작") self.sharon = Text("무궁화 꽃이 피었습니다") self.judge = Text("플레이어님 움직였어요~") self.tagger=Text("술래", co.. 더보기
이미지에 원근법을 적용시키는 CDD 렌파이에는 이미지에 원근법을 적용해 표시하는 기능이 없습니다. 그래서 만들어봤네요. 렌파이슈타인이라는 레이 캐스팅 예제를 참고해서 CDD로 만들어봤습니다. 미술로 따지자면 1점 투시도 기법(-_-;) 을 통해 이미지에 원근법을 적용하는 CDD입니다. 예제에서 사용한 이미지는 이곳에서 구했습니다. > http://www.loftwork.com/developertest/2012/08/28/%E3%82%A2%E3%83%83%E3%83%97%E3%83%86%E3%82%B9%E3%83%88/ init python: class persTile(renpy.Displayable): def __init__(self, tile, width, height, vp = (0.5, 0.5), top = 0, **kwargs): .. 더보기
제작자 정의 디스플레이어블 - 3 미니게임 Sharon 스크립트 짜기 제작자 정의 디스플레이어블을 이용하여 미니게임을 직접 만들어봅시다. 이번에 만들어볼 게임은 무궁화 꽃이 피었습니다를 변형한 미니 게임입니다. 게임 규칙 (7분 25초부터) 1. 술래 캐릭터가 뒤돌아본 동안 플레이어 캐릭터를 조금씩 전진시킵니다. 컴퓨터 캐릭터보다 먼저 결승선에 도달하면 승리. 2. 캐릭터를 전진시키는 건 마우스를 움직이는 것으로 판별. 한번 마우스가 왔다갔다 할 때마다 캐릭터는 아주 조금씩 움직입니다. 3. 플레이어 캐릭터가 술래에게 들키면 일정 거리를 되돌아갑니다. 뭐 하다 보면 어떻게 되지 않겠습니까 분석 이 미니게임에서 필요한 정보가 무엇인지 대략 생각해봅시다. 이미지 플레이어 캐릭터 / 컴퓨터 캐릭터 게임 시작 전 대기 이미지 이동 이미지 멈춤 이미지 (들켜서)되돌아감 이미지 승리.. 더보기