본문 바로가기

렌파이

제작자 정의 디스플레이어블 - 2 미니게임 퐁 스크립트 분석 개요 CDD 두 번째 예제 스크립트 분석입니다. 이번 스크립트는 렌파이 길라잡이 게임에 있는 미니게임 퐁의 스크립트입니다. 렌파이 설치 폴더/tutorial/game/demo_minigame.rpy 파일에서 찾아볼 수 있습니다. 일단 런처를 켜고 튜토리얼을 실행해서 minigames 메뉴를 누르고 퐁 게임을 실행해 몇 판 해본 뒤에 이 글을 읽으시는 게 이해에 도움이 될 겁니다. 또한 이 스크립트는 미니게임을 만들기 위한 스크립트라 지난번에 봤던 스크립트와 다른 점이 많습니다. 두 스크립트를 비교해서 살펴보세요. expand source를 클릭하면 엄청난 양의 스크립트가 펼쳐집니다. 지난 글은 괜찮았지만 이번 글은 물흐르듯 읽으면 이해하기 힘듭니다. 옆에 스크립트를 펼쳐놓고 스크롤을 위 아래로 왔다갔다 .. 더보기
RAPT 6.15.5 업데이트 http://lemmasoft.renai.us/forums/viewtopic.php?f=8&t=21805&sid=4a017fc4ef0bdcc5cdeb32bd1c60d3bb 번역+정리입니다. RAPT가 렌파이 6.15.5 버전에 맞춰 업데이트되었습니다. 6.15 버전에 맞게 업데이트 된 것은 처음이므로 이 버전의 rapt는 렌파이 6.15 버전 이후로 추가된 기능들을 새롭게 지원하게 됩니다. RAPT가 OpenGL ES2를 사용하게 되어 이미지 디졸브와 가산 혼합을 지원합니다.이 때문에 OpenGL ES2 를 지원하는 기기에서만 렌파이가 동작합니다. 구글 플레이스토어를 이용했을 때 RAPT가 apk 확장자를 지원하게 되어 2GB 짜리 게임도 업로드할 수 있습니다. ----이건 업데이트와 관련 없는 이야기지.. 더보기
비주얼노블 모드에서 읽은 문장은 흐릿하게 나타나게 하기 "마법사의 밤" 화면입니다. 보시면 이미 표시된 문장은 글씨색이 회색으로 변했습니다. 직접 플레이해본 분은 아시겠지만 이 글씨가 그냥 회색으로 바뀌는 게 아니라 서서히 회색으로 바뀝니다. 렌파이로도 한번 비슷하게 구현해봤습니다. 트랜스폼으로는 글씨 색을 바꿀 수 없어서 대신 그와 비슷하게 보이도록 투명도값을 줄여봤습니다. 먼저 트랜스폼을 두 개 만듭니다. transform alpha_down: linear 0.5 alpha 0.5 transform alpha_half: alpha 0.5 screens.rpy서 screen nvl: 를 검색하고 그 블록을 살펴보면 이런 부분이 있습니다. # Display dialogue. for who, what, who_id, what_id, window_id in di.. 더보기
렌파이 엔진 폴더 구조 렌파이 엔진의 어디에 무엇과 관련된 파일이 있는지 적어봤습니다. 엔진에 쓰인 스크립트가 어디에 있는지 확인할 때 참고하세요.(렌파이 설치 파일에 포함된 폴더만 적었습니다) doc/엔진 매뉴얼 파일이 들어있습니다 launcher/렌파이 런처를 구성하는 스크립트 파일이 들어있습니다. lib/렌파이 엔진이 배포판을 만들 때 사용하는 라이브러리가 들어있습니다. module/렌파이 엔진이 사용하는 모듈이 들어있습니다. renpy/렌파이 엔진을 구성하는 스크립트 파일이 들어있습니다. angle/렌파이를 angle/DirectX로 렌더링할 때 필요한 파일이 들어있는 폴더..인 듯합니다. ㅇ 더보기
렌파이 6.15.5 업데이트 http://www.renpy.org/doc/html/changelog.html#ren-py-6-15-5 - GL 렌더러가 가산 혼합을 지원하게 되어 트랜스폼 속성으로 addtive 를 사용할 수 있게 됐습니다. 이 속성은 하드웨어 기반 렌더러를 사용할 때에만 적용됩니다. init: image kowalski = 'kowalski.gif' label start: show eileen happy show kowalski at truecenter: additive 1.0 'additive 1.0' hide kowalski show kowalski at truecenter: alpha 0.5 'alpha 1.0' 알파값을 .5로 주고 1.0이라고 적었네요; 알파값 1.0이면 불투명상태로 포개집니다. addit.. 더보기
Pygame Subset for Android 도움말 http://pygame.renpy.org/index.html 파이게임 섭셋 포 안드로이드, 줄여서 PGS4A 의 도움말이 실린 페이지입니다. 파이게임을 이용하여 만든 프로그램을 안드로이드 용으로 포팅하게 해주는 툴입니다. PGS4A는 렌파이 엔진 제작자 파이톰이 만든 것으로 렌파이 안드로이드 패키징 툴도 이 PGS4A 를 이용하여 만들어진 것입니다. 렌파이 매뉴얼에서 부족한 안드로이드 관련 설명은 이곳에서 확인할 수 있습니다만 이 매뉴얼도 아직 완성된 건 아니니 이 점을 감안하고 살펴보셔야 할 것 같습니다. 더보기
제작자 정의 디스플레이어블 - 1 단순 디스플레이어블 생성 소스 분석 정의렌파이의 기본 기능들로는 구현할 수 없는 디스플레이어블 - 미니 게임 등을 직접 만들기 위해서는 제작자 정의 디스플레이어블, 줄여서 CDD을 이용합니다. 명칭이 붙어 있어서 특별하고 특정한 기능처럼 보이지만 그냥 사용자가 임의로 필요한 디스플레이어블을 직접 만들기 위해 필요한 방법 정도로 보면 됩니다. CDD를 이용해 만든 기능이 튜토리얼에 있는 미니 게임인 퐁이고 또 하나는 제가 만들었던 한글 입력기입니다. 저도 잘 모르는데다 ㅇ 더보기
나만의 렌파이 명령문 만들기 - 사용자 정의 명령문 렌파이에서는 이미 정의된 명령문 외에 사용자가 임의로 명령문을 만들어 사용할 수 있습니다. 다음은 아날로그: 증오록 스크립트에서 사용된 사용자 정의 명령문입니다(안에 적힌 영문은 게임에 사용된 한국어로 바꿨습니다). message "2-1288" "아름다운 꽃" "하나" "321년 12월 5일" "321년 12월 5일" "아름다운 꽃이여, 누가 너를 심고서\n화단에 버려두었는고?\n매일 나는 걸음을 멈추고 너의 향기에 경탄하노라.\n정원사가 이를 꺼려할 것인가?\n밤마다 나는 내 꽃잎을 잡아뜯으며\n너의 꽃잎이 만개하기를 꿈꾸노니." 렌파이를 어느 정도 사용해왔다면 알겠지만 위에서 사용된 message 라는 명령문은 기존의 렌파이에서 볼 수 없었던 명령문입니다. 제작자가 자신이 만든 서신 시스템을 편하게.. 더보기
아날로그: 어 헤이트 스토리 소스 스크립트가 공개되었습니다 설명 및 다운로드I’ve been meaning to release the source code to Analogue for ages; sorry about taking so long! Here are a... tmblr.co/Z4sLZykBwst4— Christine Love (@christinelove) 2013년 5월 4일 아날로그: 증오록(Analogue: A Hate Story)의 제작자 크리스틴 러브가 게임 스크립트를 "영구 공개"했습니다. 위 트윗의 링크를 따라가시거나 아래의 링크를 클릭하면 아날로그의 스크립트를 다운로드할 수 있습니다. http://loveconquersallgam.es/post/49592102340/ive-been-meaning-to-release-the-source-co.. 더보기
쪽지 시스템 saguaro 라는 유저가 만든 쪽지 시스템입니다. 1. 쪽지를 표시하기 2. 쪽지 상태 (읽음/읽지 않음) 표시 3. 쪽지에 답장하기 4. 쪽지 삭제/복구하기 같은 기능이 포함되어있네요. 유용할 것 같아 설명을 몇 마디 덧붙입니다. 데모 http://lemmasoft.renai.us/forums/viewtopic.php?f=51&t=19295 새 프로젝트를 만들고 위 링크로 접속해 message.rpy, screens.rpy, script.rpy 를 새 프로젝트에 복사+덮어쓴 후 프로젝트를 실행하여 이 시스템을 테스트해봅시다. 그리고 내려받은 스크립트의 내용도 확인해보세요. 설명 add_message(제목, 보내는 사람 이름, 내용, 답장 버튼을 눌렀을 때 표시할 내용이 적힌 레이블 이름) 새 쪽지를 .. 더보기
[6.17 이전] 안드로이드용 배포판 만들기 * 구버전을 기준으로 작성된 글입니다. 6.17 버전 이후의 렌파이에서 안드로이드용 배포판 만들기에 대한 내용은 다음의 글을 참고해주시기 바랍니다. 안드로이드용 배포판 만들기 (ver.6.17) 더보기 렌파이는 RAPT(Renpy Android Packaging Tool) 을 이용하여 렌파이 게임을 안드로이드 디바이스에서 구동할 수 있는 패키지로 압축하는 것을 지원합니다. * 제가 사용하는 환경이 윈도우즈이므로 모든 과정은 윈도우즈를 기본으로 글을 작성했습니다. * 안드로이드 포팅은 강의글을 작성하기 위해 처음 시도해보았기 때문에 잘 이해가 안 된다던지 설명이 부족하다거나 잘못된 부분이 있을 수 있습니다. 그런 부분은 댓글로 지적해주시면 감사하겠습니다. 과정을 압축하면 네 가지로 요약할 수 있습니다. 1.. 더보기
대화형 디버그 콘솔 이용하기 대화형 디버그 콘솔이란 대화형 디버그 콘솔은 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로 설정해도 콘솔만은 사용할 수 있습니다. 그 후 게임을 .. 더보기
이벤트 다시보기 메뉴 만들기 이벤트 다시보기 기능을 만들고 싶다면 Replay 스크린 액션과 renpy.call_replay 함수를 이용하면 됩니다. '다시보기' 를 만들기 위해 스크립트를 다시 작성할 필요 없이 기존 스크립트를 재활용하여 다시보기를 만들 수 있습니다. 다시보기 만들기 레이블 준비 ### "마침내, 나는 마법사를 만났다." label meaning_of_life: scene "마법사" "삶의 의미는 무엇이라 생각해?" "마법사" "나는 줄곧 열심히 그 생각만 해왔지. 줄곧, 바로 그것만을 생각하며 시간을 보냈어." "마법사" "그리고 내 대답, 삶의 의미란 바로..." "마법사" "43이다." $ renpy.end_replay() "마법사" "어쨌든 뭐 그런 거지." 다시보기에서 사용할 레이블이 있다면 다시보기 모드.. 더보기
퀵 메뉴를 수정해보자 퀵 메뉴퀵메뉴란 게임 화면에서 바로 세이브/로드/게임 종료 등의 기능을 수행할 수 있게 해주는 간편 메뉴입니다. 따로 만들어놓지 않아도 이미 기본 적용 상태이며 상세 설정은 screens.rpy 스크립트의 screen quick_menu: 블록을 수정하여 관리할 수 있습니다. screen quick_menu: hbox: # 스타일 그룹 설정 style_group "quick" # 위치 설정 xalign 1.0 yalign 1.0 # 퀵 세이브 (1) textbutton _("Q.Save") action QuickSave() # 퀵 로드 (2) textbutton _("Q.Load") action QuickLoad() # 세이브 메뉴 표시 (3) textbutton _("Save") action ShowM.. 더보기
렌파이 6.15.1 버전이 공개되었습니다. 런처 실행-> Update 버튼을 누르면 다운받을 수 있습니다. 변경사항을 요약하면 이렇습니다. 1. 대화형 콘솔(interactive console) 기능이 추가되었습니다. 렌파이나 파이썬 명령어를 입력하여 그 결과를 렌파이 게임에서 실시간으로 결과를 확인할 수 있습니다. ` 버튼이나 쉬프트 + o 를 누르면 대화형 콘솔을 실행할 수 있습니다. -> 콘솔에서 직접 명령어를 입력하여 여러가지 결과물을 즉시 확인해볼 수 있게 되었군요. 2. 스크린에서 지정 매개변수를 입력할 수 있습니다. -> 특정한 값을 스크린에 직접 전달할 수 있게 되었습니다.. screen top_text(s, size=36): text s xalign 0.5 size size show screen top_text("It works!.. 더보기