본문 바로가기

렌파이/GUI 꾸미기

스타일 환경설정

스타일 환경설정을 이용하면 플레이어가 게임의 모양을 바꿀 수 있도록 게임을 만들 수 있습니다.

정확히 말하자면 스타일 환경설정이란, 플레이어가 스타일을 게임내에서 마음대로 바꿀 수 있도록 만든다기 보다는, 미리 만들어둔 스타일 설정 중에서 하나를 선택하도록 만드는 시스템입니다.

그러니까 우선은 플레이어가 선택할 수 있는 스타일을 먼저 렌파이에 등록해야 합니다. 이때 renpy.register_style_preference 를 이용합니다.

renpy.register_style_preference


스타일 환경설정의 이름

환경설정의 이름이란, 스타일 옵션의 대분류쯤으로 생각하시면 됩니다.
글자의 모양을 바꾸는 스타일 옵션들은 모두 "text"라는 이름을 붙여주고, 대사창의 모양을 바꾸는 스타일 옵션은 모두 "textwindow"같은 이름으로 묶어주는 식입니다.

스타일 옵션 이름

말 그대로 스타일 옵션의 이름.. 을 지정해주는 곳입니다. 환경설정의 소분류입니다. 알아보기 쉬운 이름으로 적으면 됩니다.

스타일 환경설정의 이름과 스타일 옵션 이름의 관계를 설명하자면 이런 느낌입니다.

스타일 이름

이 옵션을 골랐을 때 설정이 바뀌어야 하는 스타일의 이름을 말합니다. style.say_dialogue 나 'say_dialogue'로 적어도 됩니다.

바꾸려는 스타일 속성의 이름

말 그대로입니다. text라면 antialias 에서 hyperlink_functions 까지, 윈도우라면 background 에서 size_group 까지가 되겠습니다.

해당 스타일 옵션을 선택했을 때 스타일 속성에 배정하려는 값을 입력하는 자리입니다. text의 color 속성을 바꾼다면 색상값을 적고, window 의 background 를 바꾸려면 디스플레이어블 종류를 값으로 적어야합니다.

StylePreference



이렇게 renpy.register_style_preference 로 등록한 옵션은 스크린 언어에서 버튼에 StylePreference 액션을 적용해서 이용하면 됩니다.
StylePreference에는 버튼을 눌렀을 때 적용할 스타일 환경설정의 이름과 스타일 옵션의 이름을 차례대로 적으면 됩니다.



예제

대사창의 배경을 바꾸는 스타일 옵션입니다.


예제에 사용된 spiky_frame.png입니다.


주의

스타일 환경설정 시스템을 이용할 때는, 옵션으로 만들어둔 스타일 설정 중 하나가 기본으로 세팅이 됩니다. 그러니까 아무리 style.say_window = '#ff0000' 으로 설정해놓아도 style.register_style_preference 로 say_window 에 관한 스타일 옵션을 만들어두면, 스타일 옵션으로 만든 것이 say_window에 적용됩니다. 그러니까 기본 스타일도 style.register~ 로 등록해야 합니다. 참고로 먼저 적은 쪽이 기본으로 적용됩니다.

스타일 환경설정이 쓰인 스크린은 show screen 으로 띄우던 call screen 으로 띄우던 괜찮습니다. 스타일 옵션을 선택한 즉시 변경사항이 적용되기 때문입니다.