본문 바로가기

렌파이/시스템 추가하기

이벤트 다시보기 메뉴 만들기

이벤트 다시보기 기능을 만들고 싶다면 Replay 스크린 액션과 renpy.call_replay 함수를 이용하면 됩니다. '다시보기' 를 만들기 위해 스크립트를 다시 작성할 필요 없이 기존 스크립트를 재활용하여 다시보기를 만들 수 있습니다.

다시보기 만들기

레이블 준비


다시보기에서 사용할 레이블이 있다면 다시보기 모드에서 표시하려는 내용의 끝에 $ renpy.end_replay() 를 적어줍시다. 다시보기로 레이블을 불러올 때에는 $ renpy.end_replay()가 적힌 곳까지만 다시보기가 재생됩니다. 따라서 위 스크립트의 경우 다시보기로 나타낼 때에는 "43이다." 라는 대사까지만 나타납니다. $renpy.end_replay()는 평범하게 게임을 진행할 때에는 아무런 동작을 하지 않습니다.


다시보기 메뉴 만들기


임의로 스크린 (예제에서는 replay)을 만들어 Replay 액션에 레이블 이름을 적어 레이블을 다시보기 모드로 불러올 버튼을 만들고, 해당 스크린을 띄울 수 있는 버튼을 메인 메뉴 스크린 스크립트에 적당히 끼워넣으면 되겠습니다.


replay 스크린에 적힌 두 번째 Replay 버튼에도 나와있지만 locked = True 로 설정하면 Replay 액션에 적은 레이블을 확인하지 않은 경우에는 해당 버튼이 잠기게 됩니다.


다시보기 종료

게이머가 다시보기를 보던 도중에 나갈 수 있게 하려면 스크린 액션을 이용합시다.




_in_replay 라는 변수에는 현재 다시보기 모드로 진행되고 있는 레이블의 이름이 저장되며, 다시보기 모드가 아닐 경우에는 아무것도 저장되지 않습니다. 따라서 show screen stop 은 일반적인 게임 진행 상황에서는 아무 것도 표시되지 않습니다.


활용

맨 처음에도 적었지만 다시보기로 특정 레이블을 불러오는 것은 스크린언어에서만 가능한 것이 아니라 일반 스크립트를 작성할 때에도 가능합니다. 이야기 진행 중에 어떤 장면이 반복해서 등장하는 경우에는 renpy.call_replay 로 해당 레이블을 다시보기 모드로 불러올 수 있습니다. 사용법은 Replay와 같습니다. 



유의사항

다시보기로 만들 레이블에서는 되도록이면 변수를 조작하여 게임 흐름을 변경하지 않는 게 좋습니다. 다시보기할 때 내용이 달라질 수 있습니다. 

다시보기로 불러온 레이블에서는 저장을 할 수 없습니다. 


참고

다시보기 [매뉴얼]