이미지 표시하기

비주얼 노벨이라는 이름에서도 알 수 있듯이 시각적 표현은 이 장르를 규정하는 요소입니다. Ren'Py는 이미지 표시를 제어하는 네 가지 문과 이미지의 표시 순서를 정하는 모델을 제공합니다. 이를 통해 비주얼 노벨이나 다른 스토리 중심 게임에 적합한 방식으로 이미지를 편리하게 표시할 수 있습니다.

이미지를 다루는 네 가지 문은 다음과 같습니다.

  • image - 새 이미지를 정의합니다.

  • show - 레이어에 이미지를 표시합니다.

  • scene - 레이어를 비우고, 필요하면 해당 레이어에 이미지를 표시합니다.

  • hide - 레이어에서 이미지를 제거합니다.

이미지가 갑자기 바뀌면 사용자가 어색하게 느낄 수 있으므로 Ren'Py는 장면 변경 시 효과를 적용할 수 있는 with 문을 제공합니다.

이 페이지에 나오는 문은 대부분 또는 전부 린트의 검사 대상이지만, 이에 해당하는 Python 코드는 그렇지 않습니다.

개념

이미지

이미지는 show 문으로 화면에 표시할 수 있는 대상입니다. 이름과 디스플레이어블로 구성됩니다. 레이어에 이미지를 표시하면 연결된 디스플레이어블이 해당 레이어에 표시됩니다.

이미지 이름은 공백으로 구분한 하나 이상의 이름으로 구성됩니다. 첫 번째 구성 요소를 이미지 태그라고 하며, 두 번째 이후의 구성 요소를 이미지 속성이라고 합니다.

예를 들어 mary beach night happy라는 이미지 이름에서 이미지 태그는 mary이고 이미지 속성은 beach, night, happy입니다.

디스플레이어블은 화면에 표시할 수 있는 대상입니다. 가장 흔히 표시하는 것은 정적 이미지이며, 이미지 파일명을 문자열로 지정하면 됩니다. 위 예제에서는 파일명으로 mary_beach_night_happy.png를 사용할 수 있습니다. 하지만 이미지는 정적 이미지뿐 아니라 Ren'Py가 지원하는 모든 디스플레이어블을 참조할 수 있습니다. 따라서 이미지 표시 문을 애니메이션, 단색 및 다른 종류의 디스플레이어블에도 사용할 수 있습니다.

레이어

레이어는 화면에 표시할 디스플레이어블의 목록입니다. Ren'Py는 사용자 정의 레이어를 포함하여 여러 레이어를 지원합니다. 게임 안에서 레이어의 순서는 고정되어 있으며 config.layers 변수로 제어합니다. 레이어 안의 디스플레이어블 순서는 scene 문과 show 문의 호출 순서 및 그 문에 지정한 속성으로 제어합니다.

Ren'Py에는 다음 레이어가 정의되어 있습니다.

master

scene, show, hide 문이 사용하는 기본 레이어입니다. 일반적으로 배경과 캐릭터 스프라이트에 사용합니다.

transient

ui 함수가 사용하는 기본 레이어입니다. 각 상호작용이 끝날 때 비웁니다.

screens

스크린 시스템이 사용하는 레이어입니다.

overlay

오버레이 함수 안에서 ui 함수를 호출할 때 사용하는 기본 레이어입니다. 상호작용을 다시 시작할 때 비웁니다.

renpy.add_layer()를 호출하고 레이어 관련 설정 변수를 사용하여 레이어를 추가로 정의할 수 있습니다. camera 문으로 레이어에 하나 이상의 트랜스폼을 적용할 수 있습니다.

이미지 정의

이미지를 정의하는 방법은 두 가지입니다. 이미지 디렉터리에 이미지 파일을 넣거나 image 문으로 정의할 수 있습니다. 전자는 올바른 이름의 파일을 디렉터리에 넣기만 하면 되어 간단합니다. 후자는 정의 방식을 더 세밀하게 제어할 수 있고 이미지 파일 이외의 이미지도 사용할 수 있습니다.

image 문으로 정의한 이미지는 이미지 디렉터리에서 정의한 이미지보다 우선합니다.

이미지 디렉터리

이미지 디렉터리의 이름은 "images"이며 game 디렉터리 아래에 둡니다. 그 안에 .jpg, .jpeg, .png, .webp, .avif, .svg 확장자의 파일을 넣으면 확장자를 제거하고 나머지 파일명을 모두 소문자로 바꿉니다. 같은 이름의 이미지가 아직 정의되지 않았다면 결과 파일명을 이미지 이름으로 사용합니다.

이미지 디렉터리의 모든 하위 디렉터리에서도 이 처리가 이루어집니다. 예를 들어 다음 파일들은 모두 eileen happy 이미지를 정의합니다.

game/images/eileen happy.png
game/images/Eileen Happy.jpg
game/images/eileen/eileen happy.png

이미지 파일명을 지정했는데 이미지를 찾지 못하면 images 디렉터리에서 찾습니다.

config.image_directories와 config.image_extensions로 이미지 디렉터리 설정을 바꿀 수 있습니다.

오버샘플링

기본적으로 이미지의 픽셀 크기가 표시 크기를 결정합니다. 예를 들어 이미지가 1920x1080 픽셀이고 gui.init()으로 게임 해상도를 1920x1080으로 설정했다면 화면 전체를 채웁니다.

오버샘플링을 사용하면 이미지의 실제 크기보다 작게 표시합니다. 예를 들어 이미지가 3480x2160이고 오버샘플링 배수가 2이면 각 축의 크기를 절반으로 줄여 같은 1920x1080 창을 채웁니다.

이미지를 확대할 수 있어서 더 높은 세부 묘사가 필요할 때 유용합니다. 또한 config.physical_width 및 config.physical_height와 함께 사용하여 게임을 더 높은 해상도의 그래픽으로 다시 제작할 때도 유용합니다.

확장자 바로 앞에 @와 숫자로 끝나는 이미지 파일명은 자동으로 오버샘플링을 사용합니다. 예를 들어 eileen happy@2.png는 2배, eileen happy@3.png는 3배 오버샘플링을 사용합니다. Image()에 oversample 키워드 인수를 지정할 수도 있습니다.

디렉터리 이름으로 그 안의 이미지에 적용할 오버샘플링 배수를 지정할 수도 있습니다. 예를 들어 images/@2/eileen happy.png는 2배 오버샘플링을 사용합니다.

이미지에 오버샘플링을 지정하지 않으면 Ren'Py가 사용할 오버샘플링 이미지를 자동으로 찾으려고 합니다. 예를 들어 게임 배율이 1배 초과 2배 이하이면 eileen happy.png를 로드할 때 eileen happy@2.png를 찾아 있으면 사용합니다. 2배를 넘으면 eileen happy @4.png, eileen happy@3.png, eileen happy@2.png 순서로 찾아 처음 발견한 파일을 사용하며, 모두 없으면 eileen happy.png를 사용합니다.

image 문

image 문은 이미지를 정의하는 데 사용합니다. 키워드 image, 이미지 이름, 등호 =, 디스플레이어블로 구성된 하나의 논리적 줄입니다. 예를 들면 다음과 같습니다.

image eileen happy = "eileen_happy.png"
image black = "#000"
image bg tiled = Tile("tile.jpg")

image eileen happy question = VBox(
    "question.png",
    "eileen_happy.png",
    )

이미지 파일이 game 디렉터리 바로 아래에 있지 않으면 하위 디렉터리도 지정해야 합니다. 예를 들어 이미지가 game/eileen/happy.png에 있으면 다음과 같이 작성할 수 있습니다.

image eileen happy = "eileen/happy.png"

image 문은 메뉴가 표시되거나 start 레이블이 실행되기 전인 초기화 시점에 실행됩니다. init 블록 밖에 있는 image 문은 우선순위 500의 init 블록 안에 있는 것처럼 실행됩니다.

image 문의 ATL 형식도 참조하세요.

show 문

show 문은 레이어에 이미지를 표시하는 데 사용합니다. 키워드 show, 이미지 이름, 선택적인 속성들로 구성된 하나의 논리적 줄입니다.

show 문에 기존 이미지의 정확한 이름을 지정하면 해당 이미지를 표시합니다. 그렇지 않으면 Ren'Py는 다음 조건을 만족하는 유일한 이미지를 찾으려고 합니다.

  • show 문에 지정한 태그와 같은 태그를 가집니다.

  • show 문에 지정한 모든 속성을 가집니다.

  • 같은 태그의 이미지가 이미 표시 중이면 해당 이미지와 공유하는 속성이 가장 많습니다.

이미지를 하나로 결정할 수 없으면 예외가 발생합니다.

레이어에 같은 이미지 태그를 가진 이미지가 이미 표시 중이면 새 이미지가 이를 교체합니다. 그렇지 않으면 레이어의 다른 모든 이미지 위, 즉 사용자에게 가장 가까운 곳에 배치합니다. zorder와 behind 속성으로 이 순서를 바꿀 수 있습니다.

show 문 자체는 상호작용을 발생시키지 않습니다. 실제로 사용자에게 이미지가 표시되려면 say, menu, pause, with 문처럼 상호작용을 발생시키는 문이 실행되어야 합니다.

show 문은 다음 속성을 받습니다.

as

as 속성은 이름을 받습니다. 이미지를 표시할 때 이미지 태그 대신 이 이름을 사용합니다. 이를 통해 같은 이미지를 화면에 두 번 표시할 수 있습니다.

at

at 속성은 쉼표로 구분한 하나 이상의 단순 표현식을 받습니다. 각 표현식은 트랜스폼으로 평가되어야 합니다. 트랜스폼은 이미지에 왼쪽에서 오른쪽 순서로 적용합니다.

at 절이 없으면 Ren'Py는 이미지에 이미 적용된 트랜스폼 중 ATL이나 Transform으로 만든 것을 유지합니다. 트랜스폼을 지정하지 않으면 default 트랜스폼으로 이미지를 표시합니다.

태그에 연결된 트랜스폼을 교체할 때 트랜스폼 속성이 어떻게 바뀌는지는 트랜스폼 교체 절을 참조하세요.

behind

쉼표로 구분한 하나 이상의 이름을 받습니다. 각 이름은 이미지 태그입니다. 현재 표시 중인 해당 태그의 모든 이미지 뒤에 이미지를 표시합니다.

onlayer

이름을 받습니다. 해당 이름의 레이어에 이미지를 표시합니다.

zorder

정수를 받습니다. 레이어 안에서 이미지의 상대적인 순서를 지정하며 숫자가 클수록 사용자에게 가깝습니다. Ren'Py 게임에서 일반적으로 사용하지는 않지만 다른 엔진의 비주얼 노벨을 이식할 때 유용할 수 있습니다. 또한 다른 레이어에 배치하는 수고 없이, 이후 표시될 zorder가 없는 모든 이미지보다 위에 이미지를 표시할 때도 유용합니다.

다음 이미지들이 정의되어 있다고 가정하겠습니다.

image mary night happy = "mary_night_happy.png"
image mary night sad = "mary_night_sad.png"
image moon = "moon.png"

show 문의 사용 예제는 다음과 같습니다.

# Basic show.
show mary night sad

# Since 'mary night sad' is showing, the following statement is
# equivalent to:
# show mary night happy
show mary happy

# Show an image on the right side of the screen.
show mary night happy at right

# Show the same image twice.
show mary night sad as mary2 at left

# Show an image behind another.
show moon behind mary, mary2

# Show an image on a user-defined layer.
show moon onlayer user_layer

속성 관리

앞서 살펴본 것처럼 속성을 설정하고 추가하거나 교체할 수 있습니다.

빼기 기호로 속성을 제거할 수도 있습니다.

# show susan being neutral
show susan

# show susan being happy
show susan happy

# show susan being neutral again
show susan -happy

show expression

show 문의 다른 형식에서는 이미지 이름 대신 expression 키워드 뒤에 단순 표현식을 작성합니다. 표현식은 디스플레이어블로 평가되어야 하며, 그 디스플레이어블을 레이어에 표시합니다. 나중에 숨기려면 as 절로 태그를 지정해야 합니다.

예를 들면 다음과 같습니다.

show expression "moon.png" as moon

show layer

show layer 문은 아래에서 camera 문과 함께 설명합니다.

scene 문

scene 문은 레이어의 모든 디스플레이어블을 제거한 뒤 해당 레이어에 이미지를 표시합니다. 키워드 scene, 이미지 이름, 선택적인 속성들로 구성됩니다. 이미지를 표시하는 방식은 show 문과 같으며 같은 속성을 받습니다.

scene 문은 주로 배경 레이어에 이미지를 표시하는 데 사용합니다. 예를 들면 다음과 같습니다.

scene bg beach

scene expression. show 문과 마찬가지로 scene 문도 이미지 이름 대신 표현식을 받을 수 있습니다.

레이어 비우기. 이미지 이름을 완전히 생략하면 다른 디스플레이어블을 표시하지 않고 레이어의 모든 디스플레이어블을 지웁니다.

hide 문

hide 문은 레이어에서 이미지를 제거합니다. 키워드 hide, 이미지 이름, 선택적인 속성 하나로 구성됩니다. 이미지 이름에서 이미지 태그를 가져와 레이어에서 해당 태그의 이미지를 숨깁니다.

hide 문이 필요한 경우는 드뭅니다. 스프라이트가 캐릭터를 나타낸다면 캐릭터가 장면에서 나갈 때만 hide 문이 필요합니다. 캐릭터의 감정이 바뀔 때는 같은 태그의 이미지를 자동으로 교체하는 show 문을 사용하는 편이 좋습니다.

hide 문은 다음 속성을 받습니다.

onlayer

이름을 받습니다. 해당 이름의 레이어에서 이미지를 숨깁니다.

예를 들면 다음과 같습니다.

e "전 이만 갈게요."

hide eileen

다음처럼 작성하지 마세요.

hide eileen
show eileen happy

다음과 같이 작성하면 됩니다.

show eileen happy

with 문

with 문은 장면이 바뀔 때 화면 전환 효과를 적용하여 이미지의 등장과 퇴장을 자연스럽게 합니다. 키워드 with 뒤에 화면 전환 객체나 특수 값 None으로 평가되는 단순 표현식을 작성합니다.

화면 전환 효과는 이전 상호작용이 끝났을 때의 화면 내용(일시적인 스크린과 디스플레이어블은 숨긴 상태)과 show 및 hide 문을 실행한 뒤의 현재 장면 내용 사이에 적용합니다.

with 문은 상호작용을 발생시킵니다. 사용자가 이 상호작용의 지속 시간을 제어하며 일찍 끝낼 수 있습니다.

사용할 수 있는 화면 전환의 전체 목록은 화면 전환 장을 참조하세요.

with 문의 예제는 다음과 같습니다.

show bg washington
with dissolve

show eileen happy at left
show lucy mad at right
with dissolve

화면 전환이 두 번 발생합니다. 첫 번째 with 문은 dissolve 화면 전환으로 이전 화면을 washington 배경으로 바꿉니다. dissolve 화면 전환은 기본적으로 .5초 디졸브로 정의되어 있습니다.

두 번째 화면 전환은 Eileen과 Lucy 이미지를 표시한 뒤 발생합니다. 배경만 있는 장면에서 세 이미지가 모두 있는 장면으로 디졸브하므로 새 이미지 두 개가 동시에 서서히 나타납니다.

with None

위 예제에서는 디졸브가 두 번 발생합니다. 배경은 즉시 표시하고 이어서 두 캐릭터만 디졸브로 나타내려면 어떻게 해야 할까요? 첫 번째 with 문을 생략하기만 하면 세 이미지가 모두 디졸브로 나타납니다. 첫 번째 이미지는 즉시 표시하도록 지정할 방법이 필요합니다.

with 문에 특수 값 None을 지정하면 동작이 바뀝니다. with None 문은 사용자에게 보이는 내용을 바꾸지 않고 축약된 상호작용을 발생시킵니다. 다음 화면 전환은 이 축약된 상호작용이 끝났을 때의 장면에서 시작합니다.

예를 들어 다음 코드에서는:

show bg washington
with None

show eileen happy at left
show lucy mad at right
with dissolve

washington 배경에서 세 이미지가 모두 있는 장면으로 화면 전환이 한 번만 발생합니다.

scene, show, hide 문의 with 절

show, scene, hide 문에는 선택적으로 with 절을 붙여 이미지 표시나 숨기기와 화면 전환을 결합할 수 있습니다. 같은 논리적 줄의 끝에 작성하며, 키워드 with 뒤에 단순 표현식을 지정합니다.

with 절은 해당 줄 앞에 with None 문을 쓰고, 뒤에 with 절의 내용을 사용하는 with 문을 쓰는 것과 같습니다. 예를 들어:

show eileen happy at left with dissolve
show lucy mad at right with dissolve

다음과 같습니다.

with None
show eileen happy at left
with dissolve

with None
show lucy mad at right
with dissolve

이 동작은 show screen 문과 hide screen 문에도 적용되지만 call screen 문은 다르게 동작합니다.

camera 문과 show layer 문

camera 문은 "master" 같은 레이어 전체에 트랜스폼이나 ATL 트랜스폼을 적용합니다. 다음과 같은 구문을 사용합니다.

# The flip transform needs to be defined once, at the start of the game.
transform flip:
    xzoom -1 yzoom -1
camera at flip

또는:

camera:
    xalign 0.5 yalign 0.5 rotate 180

레이어에 트랜스폼 적용을 중단하려면 다음과 같이 작성합니다.

camera

camera 문은 선택적으로 camera와 at 또는 : 사이에 레이어 이름을 받습니다.

camera mylayer at flip

show layer 문은 camera의 이전 형식으로, 몇 가지 차이가 있으며 여전히 유용합니다.

show layer master:
    blur 10

차이는 다음과 같습니다.

  • camera는 트랜스폼 상태를 이어받지만 show layer는 트랜스폼 상태를 초기화합니다.

  • show layer로 적용한 트랜스폼은 다음 scene 문에서 지워집니다. 반면 camera 트랜스폼은 명시적으로 지울 때까지 유지됩니다.

  • show layer에는 레이어 이름이 필수이지만, camera는 기본적으로 master 레이어를 사용합니다.

대사창 숨기기와 표시

window 문은 캐릭터가 말하지 않을 때, 예를 들어 화면 전환 중이나 일시 정지 중에 대사창을 표시할지 제어합니다. window show는 대사창을 표시하고 window hide는 숨깁니다.

선택적으로 화면 전환을 지정하면 대사창을 표시하거나 숨길 때 사용합니다. 지정하지 않으면 config.window_show_transition 및 config.window_hide_transition을 기본값으로 사용합니다. None을 지정하면 화면 전환을 사용하지 않습니다.

대사창 자체는 config.empty_window를 호출하여 표시합니다. 기본적으로 서술자가 빈 문자열을 말하도록 합니다.

show bg washington
show eileen happy
with dissolve

window show dissolve

"이렇게 말을 하다가..."

show eileen happy at right
with move

"... 대사창을 띄워 둔 채 움직일 수도 있어요."

window hide dissolve

이미지 함수

renpy.add_layer(layer, above=None, below=None, menu_clear=True, sticky=None)

화면에 새 레이어를 추가합니다. 이미 존재하는 레이어이면 아무 동작도 하지 않습니다.

behind 또는 above 중 하나를 지정해야 합니다.

layer

추가할 새 레이어의 이름을 나타내는 문자열입니다.

above

None이 아니면 새 레이어를 그 위에 배치할 기준 레이어의 이름을 나타내는 문자열입니다.

below

None이 아니면 새 레이어를 그 아래에 배치할 기준 레이어의 이름을 나타내는 문자열입니다.

menu_clear

참이면 게임 메뉴 컨텍스트에 진입할 때 이 레이어를 비우고 나갈 때 복원합니다.

sticky

참이면 이 레이어에 추가한 태그는 숨겨질 때까지 이 레이어를 기본 레이어로 사용합니다. None이면 다른 sticky 레이어가 이미 있는 경우에만 이 레이어도 sticky가 됩니다.

renpy.can_show(name, layer=None, tag=None)

name으로 이미지를 표시할 수 있는지 확인합니다. name을 태그와 속성으로 해석하고, layer에 현재 표시 중인 tag 이미지의 속성과 조합하여 표시할 이미지를 하나로 결정하려고 합니다. 표시할 이미지를 하나로 결정할 수 있으면 이미지 이름을 튜플로 반환하고, 그렇지 않으면 None을 반환합니다.

tag

속성을 가져올 이미지 태그입니다. 지정하지 않으면 name의 첫 번째 구성 요소가 기본값입니다.

layer

확인할 레이어입니다. None이면 tag의 기본 레이어를 사용합니다.

renpy.change_zorder(layer, tag, zorder)

layer의 tag의 zorder를 zorder로 바꿉니다.

renpy.check_image_attributes(tag, attributes)

지정한 태그와 속성을 가진 이미지가 유일한지 확인합니다. 유일하면 속성들을 순서대로 반환하고, 그렇지 않으면 None을 반환합니다.

renpy.clear_attributes(tag, layer=None)

tag 이미지의 모든 이미지 속성을 지웁니다. 연결된 이미지 속성이 없으면 아무 동작도 하지 않습니다.

layer

확인할 레이어입니다. None이면 tag의 기본 레이어를 사용합니다.

renpy.copy_images(old, new)

특정 접두사로 시작하는 이미지들을 다른 접두사로 시작하는 이미지들로 복사합니다. 예를 들어:

renpy.copy_images("eileen", "eileen2")

"eileen"으로 시작하는 모든 이미지에 대해 "eileen2"로 시작하는 이미지를 만듭니다. "eileen happy"가 있으면 "eileen2 happy"가 생성됩니다.

old

기존 이미지 이름의 구성 요소를 공백으로 구분한 문자열입니다.

new

새 이미지 이름의 구성 요소를 공백으로 구분한 문자열입니다.

이 함수는 init 블록 안에서만 실행할 수 있습니다. 게임이 시작된 뒤 실행하면 오류가 발생합니다. image 문은 초기화 우선순위 500으로 실행되므로 일반적으로 이 함수는 우선순위 501 이상에서 호출해야 합니다.

renpy.flush_cache_file(fn)

파일 fn을 참조하는 이미지 캐시 항목을 모두 비웁니다. 디스크의 이미지 파일이 바뀌었을 때 Ren'Py가 새 버전을 사용하도록 강제하기 위해 호출할 수 있습니다.

renpy.get_attributes(tag, layer=None, if_hidden=None)

이미지 tag의 이미지 속성들을 튜플로 반환합니다. 해당 이미지 태그를 마지막으로 숨긴 뒤 연결된 속성이 없다면 if_hidden을 반환합니다.

layer

확인할 레이어입니다. None이면 tag의 기본 레이어를 사용합니다.

renpy.get_available_image_tags()

정의된 이미지 태그의 리스트를 반환합니다.

renpy.get_hidden_tags(layer='master')

layer에서 현재 숨겨져 있지만 속성 정보가 아직 연결되어 있는 이미지 태그의 집합을 반환합니다.

renpy.get_image_bounds(tag, width=None, height=None, layer=None)

layer에 tag 이미지가 있으면 해당 이미지의 경계 상자를 반환합니다. 이미지를 찾지 못하면 None을 반환합니다.

경계 상자는 (x, y, width, height) 튜플입니다. 각 요소는 픽셀 단위이며 부동 소수점 수일 수 있습니다.

width, height

이미지가 포함되는 영역의 너비와 높이입니다. None이면 각각 화면 너비와 높이를 기본값으로 사용합니다.

layer

None이면 tag의 기본 레이어를 사용합니다.

renpy.get_ordered_image_attributes(tag, attributes=(), sort=None)

사용자에게 제시하기 적합한 순서로 정렬한 이미지 속성 리스트를 반환합니다.

attributes

지정하면 주어진 속성들과 호환되는 속성만 고려합니다. 호환된다는 것은 하나의 이미지에 동시에 포함될 수 있다는 뜻입니다.

sort

None이 아니면 반환할 속성 리스트를 정렬합니다. 인수 하나를 받는 함수이며 동률일 때 순서를 결정하는 용도로 사용해야 합니다. 자세한 내용은 이 튜토리얼을 참조하세요.

renpy.get_placement(d)

디스플레이어블 d의 배치 정보를 가져옵니다. 이 정보는 렌더링할 때 바뀔 수 있고 처음 렌더링하기 전에는 없을 수도 있으므로 정확성을 거의 보장하지 않습니다.

각각 스타일 속성에 대응하는 다음 필드를 가진 객체를 반환합니다.

  • pos

  • xpos

  • ypos

  • anchor

  • xanchor

  • yanchor

  • offset

  • xoffset

  • yoffset

  • subpixel

renpy.get_registered_image(name)

같은 이름의 이미지가 등록되어 있으면 반환합니다. 그렇지 않으면 None을 반환합니다.

renpy.get_say_image_tag()

현재 말하고 있는 캐릭터에 해당하는 태그, 즉 캐릭터에 지정한 image 인수를 반환합니다. 말하는 캐릭터가 없거나 해당 캐릭터에 이미지 태그가 없으면 None을 반환합니다.

renpy.get_showing_tags(layer='master', sort=False)

layer에 현재 표시 중인 이미지 태그의 집합을 반환합니다. sort가 참이면 뒤에서 앞으로 정렬한 태그 리스트를 반환합니다.

renpy.get_zorder_list(layer)

layer의 (tag, zorder) 쌍을 리스트로 반환합니다.

renpy.has_image(name, exact=False)

name 이미지가 있으면 참, 없으면 거짓을 반환합니다.

name

이미지 이름을 나타내는 문자열 또는 이름의 각 구성 요소를 나타내는 문자열 튜플입니다.

exact

이름이 정확히 일치하는 이미지가 있을 때만 참을 반환합니다. 매개변수를 이용한 일치는 포함하지 않습니다.

renpy.list_images()

Ren'Py에 추가된 이미지들의 리스트를 반환합니다. 각 항목은 이름의 구성 요소를 공백으로 구분한 문자열입니다.

renpy.mark_image_seen(name)

지정한 이미지가 현재 사용자의 시스템에서 이미 표시된 것으로 기록합니다.

renpy.mark_image_unseen(name)

지정한 이미지가 현재 사용자의 시스템에서 아직 표시되지 않은 것으로 기록합니다.

renpy.seen_image(name)

지정한 이미지가 사용자의 시스템에서 한 번 이상 표시되었다면 True를 반환합니다. show 문, scene 문 또는 renpy.show() 함수로 표시한 이미지를 본 것으로 간주합니다. show 직후 hide를 실행하는 경우처럼 실제로 사용자가 이미지를 보지 못할 수도 있습니다.

renpy.showing(name, layer=None)

layer에 name과 같은 태그의 이미지가 표시 중이면 참을 반환합니다.

image

이미지 이름을 나타내는 문자열이나 이름의 각 구성 요소를 담은 튜플입니다. 이미지 태그만 나타내는 문자열도 사용할 수 있습니다.

layer

확인할 레이어입니다. None이면 tag의 기본 레이어를 사용합니다.

renpy.start_predict(*args)

하나 이상의 디스플레이어블을 인수로 받습니다. renpy.stop_predict()로 제거할 때까지 모든 상호작용에서 Ren'Py가 해당 디스플레이어블을 예측 로딩하도록 합니다.

디스플레이어블 이름이 하나 이상의 * 문자를 포함하는 문자열이면 별표를 와일드카드 패턴으로 사용합니다. 문자열에 .이 하나라도 있으면 파일명과 비교하고, 그렇지 않으면 이미지 이름과 비교합니다.

예를 들어:

$ renpy.start_predict("eileen *")

이름이 eileen인 모든 이미지의 예측 로딩을 시작합니다. 한편:

$ renpy.start_predict("images/concert*.*")

images 디렉터리에서 concert로 시작하는 모든 파일과 일치합니다.

예측 로딩은 일반적인 게임 진행 중에 이루어집니다. 완료될 때까지 기다리려면 renpy.pause()의 predict 인수를 사용합니다.

renpy.stop_predict(*args)

하나 이상의 디스플레이어블을 인수로 받습니다. 모든 상호작용에서 Ren'Py가 해당 디스플레이어블의 예측 로딩을 중단하게 합니다.

renpy.start_predict()에서 설명하는 와일드카드 패턴을 사용할 수 있습니다.

관련 항목

문에 대응하는 Python 기능: 여기서 설명한 기능 대부분을 Python에서 사용하는 방법입니다.

디스플레이어블: 기본 이미지보다 더 다양한 표시 대상을 설명합니다.