Skip to content

시네마챗과 렌더링

시네마챗의 동작 원리와 렌더링의 개념을 이해합니다.

동작 원리

시네마챗은 모든 이미지를 한 장 한 장 만들어내는 원리가 아닙니다.
입력당 여러 개의 로그가 출력되고, 그 로그를 순차적으로 실행하는 방식으로 동작합니다.

각각의 로그는 어떤 변수의 값을 바꾸는 역할을 합니다.
변수에는 현재 어떤 값을 보여줄 지를 담는 역할을 맡게 됩니다.

위의 시네마챗의 경우 아래와 같이 3개의 변수가 할당되어 있습니다.
이 중 유저 입력 변수의 경우, 모든 시네마챗에서 {user}가 보낸 메시지가 들어가게 됩니다.

로그 실행

채팅을 진행하면 전체 채팅 내용은 로그로 쌓이게 됩니다.
로그는 반드시 만들어진 순서대로 실행되며, 로그를 되돌리면 가장 최근에 변경된 변수를 다시 돌려놓습니다.

아래는 구체적인 예시를 통한 설명입니다.
현재 장면과 로그가 아래와 같이 있는 상태입니다.

md

  대사: *아직 이른 시간이라 그런 지 아무도 없는 듯 하다.*

  대사: *도서관을 둘러보던 중, 저 구석에서 조용히 공부 중인 한 학생이 보인다.*

  대사: *어색한 정적이 이어지다, 린이 먼저 {user}를 발견하고 조용히 말을 건다.*

로그를 하나 실행합니다. 남은 로그 중 가장 순서가 빠른 첫 번째 로그를 실행합니다.

대사 변수가 로그에 의해 변경되었습니다. 로그 상태는 아래와 같이 변경됩니다.

md
  대사: *아직 이른 시간이라 그런 지 아무도 없는 듯 하다.*

  대사: *도서관을 둘러보던 중, 저 구석에서 조용히 공부 중인 한 학생이 보인다.*

  대사: *어색한 정적이 이어지다, 린이 먼저 {user}를 발견하고 조용히 말을 건다.*

다시 로그를 한 번 더 실행합니다. 남은 로그 중 가장 순서가 빠른 두 번째 로그를 실행합니다.

대사 변수가 로그에 의해 변경되었습니다. 로그 상태는 아래와 같이 변경됩니다.

md
  대사: *아직 이른 시간이라 그런 지 아무도 없는 듯 하다.*

  대사: *도서관을 둘러보던 중, 저 구석에서 조용히 공부 중인 한 학생이 보인다.*

  대사: *어색한 정적이 이어지다, 린이 먼저 {user}를 발견하고 조용히 말을 건다.*

기본값과 인트로

기본값은 로그를 하나도 실행하지 않았을 때 변수값을 의미합니다.
채팅에 처음 들어갔을 때 (재접속 제외) 어떤 값을 담아 보여줄 지를 설정할 수 있습니다.

인트로는 처음에 주어지는 로그들을 의미합니다.
노벨챗의 시작 대화와 동일한 개념이며, 시작 대화를 꾸리는 데에 사용됩니다.

공개 템플릿

코멧에서는 템플릿 시스템을 별도로 구성하여, 시네마챗에서는 온전히 캐릭터의 정보만 담도록 구성되었습니다.
제작자 분이 템플릿을 공개해 두었다면, 해당 템플릿을 등록하여 자신의 시네마챗에 사용해볼 수 있습니다.