본문 바로가기

전체 보기

엔진 업데이트 되기 전까지는 포스팅을 잠시 쉽니다. 새 글이 너무 없어서 블로그 주인장이 죽은 것이 아닌가; 오해하시는 분들이 있을 것 같아 새롭게 글 남깁니다. 일전에 게임 관련 포스팅을 하겠다는 얘기를 해놓고 이렇게 휴식기에 들어가게 되었네요; 블로그는 수시로 확인하고 있으니 질문 주시면 확인하는대로 답변 드리겠습니다. 강의 요청도.... 요청받아도 실제로 작성하기까지는 시간이 조금 걸릴 지도 모르겠습니다만; 스크립트 안내라든지 특정 기능에 대한 요청도 언제나 환영입니다. 더보기
HELL YEAH! The Wrath of the Dead Rabbit 더보기
용어집 만들기 용어집.. 이라고 하나요? 여튼 게임 내의 사전 시스템입니다. 용어가 적힌 버튼을 클릭하면 옆에 설명이 뜨는 방식이며, 기타 위치 지정이나 디자인등은 지정하지 않은 생 뼈대(..) 스크립트입니다. 1. $ dictionary = [['???', ''] for x in range(0,9)] screen dictionary: vbox: for name, desc in dictionary: hbox: # name 은 용어의 명칭 # desc 는 용어 설명문 textbutton name action If(desc != '' and [name, desc] in dictionary, Show('description', desc_text = desc), None) # 위의 Show 에서 desc_text 로 받은 용.. 더보기
버튼에서 글자와 이미지를 겹쳐 쓰는 법 screen xxx: textbutton "[month]월 [day]일" background "button.png" #........ $ ui.textbutton('글자', background = "button.png") 넵..보시다시파, 해당 버튼에서 background 라는 스타일 속성을 사용하고픈 이미지 이름으로 바꿔주면 되겠습니다. 예전에도 같은 질문을 받은 적이 있는데 그 때는 안 된다고 말씀드렸습니다만.. 두 번째로 질문을 받으니까 방법이 생각나더군요;; 예제라고까지 할 건 없지만 대략 방법을 적어봤습니다. 더보기
아날로그 어 헤이트 스토리 따라하기 - 6 세이브/로드 목표 오른편에 있는 세이브 로드 화면을 따라 만들어봤습니다. 스크립트 screens.rpy screen main_menu: #..... # 로드 스크린을 부르는 대신 환경설정 스크린을 불러오도록 바꿈 textbutton "이어서 하기" action ShowMenu("preferences") xpos 380 ypos 415 # 세이브/로드 버튼을 만드는 스크린 screen file_picker: window: # 이 스크린에서 사용하는 모든 gui의 스타일 이름을 # filepicker로 만듬 style_group "filepicker" has vbox # 레이블은 환경설정 때와 마찬가지로.. label '{color=#fff}저장 파일{/color}' xpadding 20 ypadding 5 backgr.. 더보기
시연 삼국지화 공식 홈페이지 http://www.si-yeon.com/ 블로그 http://blog.naver.com/studionoop/ 트위터 @studionoop 덴더라이언에 이어 렌파이로 제작된 새로운 여성향 연애시뮬레이션 게임입니다. 올해 드라마 등에서 자주 쓰였던 시간여행이라는 소재와 삼국지 이야기를 엮어 만든 게임이네요. 시스템은 맵 이동 방식이고, 미니게임도 준비되려나봅니다. 공식 홈페이지의 Download 메뉴에서 체험판을 다운로드하실 수 있습니다. 더보기
아날로그 어 헤이트 스토리 따라하기 - 5 환경 설정 목표 이번엔 환경설정 메뉴입니다. 우선 왼편에 있는 "환경설정" 화면만 따라 만들어보았습니다. 준비물 스크립트 screen preferences: tag menu # 네비게이션은 안 쓰니까 뺐습니다. add 'bg mainmenu' # 환경설정 배경. 나중에 수정해야.. window: style_group "prefs" has vbox label '{color=#fff}환경설정{/color}' xpadding 20 ypadding 5 frame: background Null() xpadding 30 ypadding 20 has vbox text '음악 볼륨' bar value Preference("music volume") null height 15 text '효과음 볼륨' bar value Prefer.. 더보기
아날로그 어 헤이트 스토리 따라하기 - 4 메인 메뉴 범위 체험판(..) 의 메인 메뉴를 따라 만들어봤습니다. 준비자료 메인 메뉴 꾸밀 이미지들입니다. 아이콘/버튼/배경은 게임 캡쳐 따서(..) 만들었고, 로고는 일부러 다르게 만들었습니다. 그림 파일 이름은 스크립트에서 그대로 사용했으니 이왕이면 바꾸시지 않는 게 스크립트 시험해보기엔 편하실 듯. 스크립트 options.rpy #.... config.screen_width = 1024 # config.screen_height = 640 ## 다시 보니 게임창 크기가 600이 아니라 640이라서 수정(.. #... script.rpy #.... screen skip_intro: textbutton "인트로 넘기기" action MainMenu(confirm = False) align ( .95, .95) #.. 더보기
ATL knot 속성 사용법 transform knot_example: align (.0, .0) # knot : 포물선을 그리며 이동한다 # 사용법 # 위치속성(ex: pos, align ...) (최종 도착 위치) knot (x방향 정점, y방향 정점) on show: linear 1 align (0.0, 1.0) knot (0.5, 0.5) image mouse = 'mouse.png' label start: show text '(0.0, 0.0)' at topleft show mouse at knot_example '' 더보기
Revised - GUI 기반 렌파이 에디터 http://jancoding.wordpress.com/revised/ Qt(큐트)라는 툴킷을 이용한 렌파이 에디터라고 합니다. 아직은 새 프로젝트를 만들어 캐릭터와 이미지를 정의하고 그림이나 대사를 넣는 것만 가능하지만(정말 이것만 됩니다;;) 점점 기능을 업데이트해나간다면 정말로 유용한 툴이 되겠네요. Qt는 예전에 딱 한 번 호기심에 만져본 것 빼고는 다뤄본 적이 없는 툴이라 자세한 사용법은 저도 잘 모르겠네요. -_-; 게다가 아직 그렇게 유용하진 않은 상태라 업데이트가 좀 더 진행되어 쓸만해지고 난 다음에 다뤄봐야겠습니다. * 현재는 리눅스에서만 작동한다고 합니다. 더보기
아날로그 어 헤이트 스토리 따라하기 - 3 인트로 대사 모양 수정 목표 겉모양을 조금 수정했습니다. 배경이 원작과 아주 많이 다른 건 신경쓰지 마세요(.......) 스크립트 init python: style.nvl_window.background = None # 인트로의 nvl 배경그림을 없애는 스크립트.. intro = Character(kind=nvl, what_font = "soonchunhyang.ttf", # 폰트 바꿈 window_xmargin = 100, # 인트로 텍스트 좌우 여백 window_ymargin = 100 # 문단간의 상하 여백 ) #인트로용 임의 캐릭터를 수정해서 인트로 메시지 모양 수정 #.... label splashscreen: #...... show text 'Incoming message': easein .5 alpha 0 # 메.. 더보기
아날로그 어 헤이트 스토리 따라하기 - 2 인트로 뼈대 범위 인트로 부분 뼈대만 만들었습니다. (영상 앞부분 몇 초간 인트로 화면이 나와있습니다.) 스크립트 options.rpy ### 기본 options.rpy 에서 수정 config.developer = True ## These control the width and height of the screen. config.screen_width = 1024 # config.screen_height = 600 # ## This controls the title of the window, when Ren'Py is ## running in a window. config.window_title = u"아날로그 어 헤이트 스토리 따라하기" config.default_text_cps = 80 # 글자 표시 속도 ###.. 더보기
아날로그 어 헤이트 스토리 따라하기 - 1 이 트윗을 보고 모작해볼 게임으로 아날로그: A Hate Story를 골랐습니다. (어떻게 이렇게까지 한 건지 놀랐다는 얘길 보고 제가 더 놀랐다는 게 함정입니다;..) 그냥 배울 목적이니까 본편 게임 스크립트 한번 쭉 뜯어보면 간단하겠지만 아무래도 막무가내로 부딪혀봤는데 얼추 비슷하게 만들어지는 모습을 눈으로 보는 게 가장 확실할테니까요 음음.. GUI에 쓸 이미지까지 직접 준비해서 GUI 쪽을 주로 다룰 생각입니다. 물론 이번에도 알맹이는 안 채웁니다; 저는 그저 스팀에서 세일하기를 오매불망 기다리고 있는 궁상 게이머.. 이므로; 데모에서 확인할 수 있는 만큼의 GUI만을 대상으로 만들어 볼 생각입니다. 더보기
디스플레이어블 뜻 디스플레이어블이란 플레이어/유저의 눈에 보이는 객체입니다. 객체라는 말이 어려우시면 그냥 잊어버리시고, 렌파이에서 눈으로 볼 수 있는 무언가가 있으면 그것이 이미지든 버튼이든 글씨든 뭐든 '디스플레이어블'이라고 생각하시면 편합니다. 디스플레이어블에는 다음과 같은 종류가 있습니다. 종류 이미지 # 아래의 두 행은 똑같은 동작을 한다. 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" 처럼 이미지 파일을 배정해 만든 이미지 이름 -.. 더보기
화면 전환 효과 - 트랜지션 (3) 심화 심화라고 적었지만 별 건 아닙니다. 다만 제가 써야할 설명이 많아서 따로 분류했을 뿐입니다; 물론 그만큼 조금 복잡하기도 합니다. 디졸브 계열 ImageDissolve ImageDissolve(image, time, ramplen=8, reverse=False, alpha=True, time_warp=None) 설정한 이미지에 따라 다양한 모양의 디졸브를 만들 수 있는 트랜지션 클래스입니다. 기본 트랜지션인 squares 나 blinds 는 모두 ImageDissolve 클래스로 만들어진 트랜지션입니다. image - 디졸브 트랜지션에 적용할 이미지. 밑바탕이라고 보시면 됩니다. 보통은 흑백 이미지를 사용합니다. 이 클래스로 만든 트랜지션을 사용하면 이 이미지의 하얀색 픽셀과 겹쳐있는 게임 화면의 픽셀이.. 더보기