스크린샷

Ren'Py에는 게임 화면 전체나 개별 디스플레이어블의 스크린샷을 찍는 기능이 내장되어 있습니다. 디스플레이어블 캡처는 여러 요소로 조합한 캐릭터를 파일로 저장하는 아바타 제작기 같은 기능에 적합합니다.

화면 전체든 디스플레이어블이든 스크린샷은 창 배율과 고해상도(High DPI) 조정을 적용한 실제 그리기 크기로 찍습니다. 원본 에셋의 크기보다는 플레이어에게 보이는, 또는 보일 모습이 캡처됩니다.

기본 스크린샷 단축키는 's'입니다.

스크린샷과 관련된 액션과 스크린 함수도 제공됩니다.

함수

다음 함수로도 스크린샷을 찍을 수 있습니다.

renpy.render_to_file(d, filename, width=None, height=None, st=0.0, at=None, resize=False)

디스플레이어블이나 Render를 렌더링해 파일로 저장합니다. Ren'Py 화면 시스템을 사용하므로 창이 확대되어 있으면 결과도 확대됩니다.

d

렌더링할 디스플레이어블 또는 Render입니다. Render를 전달하면 width, height, st, at는 무시합니다.

filename

저장할 파일 이름 문자열입니다. 기본 디렉터리를 기준으로 해석하며 반드시 .png로 끝나야 합니다.

width

d에 제공할 너비로, 단위는 가상 픽셀입니다. None이면 config.screen_width를 사용합니다.

height

d에 제공할 높이로, 단위는 가상 픽셀입니다. None이면 config.screen_height를 사용합니다.

st

표시 시간 기준의 렌더링 시각입니다.

at

애니메이션 시간 기준의 렌더링 시각입니다. None이면 st를 사용합니다.

resize

True이면 디스플레이어블이나 렌더의 가상 크기로 이미지 크기를 조정합니다. 결과 품질이 낮아질 수 있습니다.

Ren'Py 화면 시스템이 시작된 뒤에만 호출할 수 있습니다. 초기화 단계나 첫 상호작용 전에는 호출할 수 없습니다.

게임 실행 중에는 파일 목록을 다시 검색하지 않으므로, 게임에서 사용할 에셋을 동적으로 만드는 용도로 쓰면 안 됩니다.

renpy.render_to_surface(d, width=None, height=None, st=0.0, at=None, resize=False)

디스플레이어블이나 Render를 받아 pygame Surface를 반환합니다. Ren'Py 화면 시스템을 사용하므로 창이 확대되어 있으면 결과도 확대됩니다.

d

렌더링할 디스플레이어블 또는 Render입니다. Render를 전달하면 width, height, st, at는 무시합니다.

width

d에 제공할 너비로, 단위는 가상 픽셀입니다. None이면 config.screen_width를 사용합니다.

height

d에 제공할 높이로, 단위는 가상 픽셀입니다. None이면 config.screen_height를 사용합니다.

st

표시 시간 기준의 렌더링 시각입니다.

at

애니메이션 시간 기준의 렌더링 시각입니다. None이면 st를 사용합니다.

resize

True이면 디스플레이어블이나 렌더의 가상 크기로 Surface의 크기를 조정합니다. 결과 품질이 낮아질 수 있습니다.

Ren'Py 화면 시스템이 시작된 뒤에만 호출할 수 있습니다. 초기화 단계나 첫 상호작용 전에는 호출할 수 없습니다.

renpy.screenshot(filename)

filename에 스크린샷을 저장합니다.

저장에 성공하면 True, 어떤 이유로든 실패하면 False를 반환합니다.

저장할 파일은 config.screenshot_pattern과 _screenshot_pattern 변수로 제어합니다.

renpy.screenshot_to_bytes(size)

im.Data()에 전달할 수 있는 bytes 객체로 스크린샷을 반환합니다. PNG 이미지 데이터이므로 다음과 같이:

$ data = renpy.screenshot_to_bytes((640, 360))
show expression im.Data(data, "screenshot.png"):
    align (0, 0)

이미지를 표시할 수 있습니다. 반환된 bytes 객체는 저장 파일과 영구 데이터에도 넣을 수 있습니다. 다만 크기가 클 수 있으므로 너무 많이 넣지 않도록 주의하세요.

size

스크린샷을 조정할 크기입니다. None이면 크기를 별도로 바꾸지 않고 레터박스 영역을 제외한 플레이어 창 크기를 사용합니다.

속도가 느릴 수 있으므로 저장용 스크린샷 등에 적합하며 실시간 효과용은 아닙니다.