본문 바로가기
C.W.K.
Lesson 07 of 10 · published

말하기 전엔 아무것도 안 떠

~14 min · timing, motion, visual-design, evolution

Level 0불 꺼진 작업장
0 XP0/58 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete

중복 규칙의 나머지 절반

이 트랙 첫 강의는 내레이션이 이미 한 말을 화면에 띄우지 말라고 했어. 에피소드 몇 편 뒤에 작업장은 그 규칙을 거울에 비춘 짝을 찾아냈는데, 둘 중에 더 위험한 건 오히려 이쪽이야. 목소리를 되풀이하는 화면은 두 번째 채널을 낭비해. 목소리보다 앞서가는 화면은 더 나쁜 짓을 해. 목소리가 아직 이유를 쌓고 있는데 결론부터 찍어버리거든. 앞질러 읽은 시청자한텐 발견할 게 하나도 안 남아.

처음 드러난 건 이 형식을 대표하는 순간에서였어. 초기 편집본에선 수정 장면마다 마디에 줄이 이미 그어져 있고 대체할 내용까지 들어앉은 채로 시작했어. 대체 내용 하나는 내레이션이 거기 닿기 여덟 큐 전부터 화면에 떠 있었고. 화면이 수정을 연기하는 대신 보고하고 있었던 거지. 합성 전에 대본을 읽던 리뷰어가 잡았고, 그 수정이 형식의 법이 됐어. 수정은 장면 셋에 나눠 올린다. 전제, 줄 긋기, 대체. 각자 그걸 말하는 큐에 나타나게.

그다음엔 여기저기서 드러났어. 나중 에피소드 하나에선 한꺼번에 세 가지로 터졌어. 이름이 불리기 서른세 큐 전에 도착한 그래프 마디, 목소리가 닿기 일곱 큐 전부터 마지막 줄을 찍어둔 카드, 반전을 미리 누설한 차트 제목. 이걸 찾으려던 첫 점검은 카드를 자기 장면의 큐하고만 비교해서 하나도 못 찾았어. 결국 자리 잡은 검사는 앞을 내다봐. 화면이 찍는 것, 그러니까 카드의 줄, 그래프에 새로 들어앉은 마디, 차트 제목, 생성 보드의 라벨을 바로 다음 장면 셋의 큐와 비교하고, 같은 글자가 길게 이어지면 실패로 쳐. 읽는 건 그 필드뿐이야. 그중에서도 문장 부호를 걷어낸 뒤 글자나 숫자가 아홉 개 이상 남고 한글이 든 문자열만 비교해. 짧은 라벨이나 영어로만 된 줄은 아예 안 봐. 길게 이어진다는 건 겹치는 글자가 아홉 개 이상이면서 화면 문자열 길이의 4 분의 3(소수점은 버려) 이상이라는 뜻이야. 그래서 열세 글자짜리 문자열이면 아홉 글자만 겹쳐도 걸려. 이 검사는 대화 시리즈의 대본 점검에서 돌아.

페이지는 가만히, 요소가 움직여

장면을 나눠 올리는 걸로 수정 문제는 풀렸는데, 그림은 여전히 거칠었어. 그래프는 다 완성된 채로 나타나고, 카드는 줄을 한꺼번에 찍고, 데이터 도표는 처음부터 다 그려진 채였지. 프레임 전체를 움직이는 카메라와 가만히 서 있는 보드 사이엔 아무것도 없었어. 그래서 2026-09-05 에 작업장이 그 빠진 조각을 채웠어. 서로 다른 두뇌 다섯이 가면을 쓴 채 같은 과제를 풀었던 실험에서 건져 온 거야. 목소리 시계에 맞춘 요소 단위 움직임.

이제 장면마다 어느 요소가 어느 큐에 떨어질지 이름으로 지정할 수 있어. 카드의 줄, 그래프의 마디와 그 마디에 긋는 줄, 도표의 점 같은 것들이야. 줄 긋기도 자기 큐에 떨어뜨릴 수 있으니, 이제 그래프 장면 하나가 전제, 줄 긋기, 대체를 각자 그걸 말하는 큐에 올리면서 수정 하나를 통째로 연기할 수 있어. 아래 예시가 딱 그렇게 해. 장면 셋에 나눠 올리던 규칙이 지키려던 게 바로 그거였고. 시계는 큐지 초가 아니야. 그래서 테이크를 다시 녹음해서 타이밍이 밀리면 떨어지는 시점도 같이 밀려. 이름 안 붙인 요소는 첫 프레임부터 떠 있어. 그리고 이 설계는 멈춘 그림을 전제로 이미 지어둔 것들을 하나도 안 깨. 마지막으로 자리 잡은 프레임은 판 그대로야. 그래서 썸네일 출처도, 다시 읽기도, 미리 누설 검사도 늘 보던 걸 그대로 봐. 숨어 있던 요소는 자기 자리를 비워둔 채 기다리니까, 떨어질 때 아무것도 안 밀려나.

읽기 규칙, 그리고 경계 사례 둘

그 가면 실험과 심사단은 글자 주위에서 움직임이 어떻게 굴어야 하는지도 규칙으로 남겼어. 글자가 시간과 화면을 나눠 쓰는 곳이라면 어디든 가져갈 만해. 떨어진 건 전부 머물 시간을 줘. 읽히는 동안 글자는 안 움직여. 배경은 흘러가도 되지만 문장은 안 돼. 카메라는 다음에 이름 불릴 것 쪽으로만 움직이고, 그 큐가 말해지기 전에 멈춰. 그리고 줄이 큐마다 연달아 떨어지는 카드는 움직임 설계가 아니야. 자막이지. 이 트랙 첫 강의가 이미 거절한 그거.

그 경계는 실패 둘이 그어줬어. 한 에피소드는 모든 검사를 통과했는데, 첫 큐가 빈 바탕 위에서 흘러가는 장면이 스물두 개였어. 요소가 전부 첫 큐 뒤에 떨어지게 걸려 있었거든. 마지막 프레임만 모은 확인표로는 안 보였어. 마지막 프레임은 다 완성돼 있었으니까. 이제 장면은 첫 큐에 뭐든 하나는 떨어뜨려야 해. 그리고 기준 에피소드는 장면 쉰여섯 개 중 마흔 개를 큐에 맞춰 짓고, 사이사이에 통째로 보여주는 생성 보드 열다섯 장을 넣었어. 그런데도 실제 말 타이밍으로 보니 완성된 다이어그램 위에서 화면이 오래 멈춰 있는 구간들이 드러나서, 연출을 일곱 번 고쳐야 했어. 큐에 맞춘 계획은 보통 속도로 본 영화랑 같은 게 아니야. 그래서 연출은 진짜 편집본으로 판정해.

너무 이른 것도 중복이야. 목소리가 닿기 전에 답을 보여준 화면은 채널을 두 번 쓴 거야. 지금 한 번, 그리고 시청자가 이미 읽은 걸 내레이션이 뒤늦게 말하러 올 때 또 한 번. 도착은 전부 그 뜻이 말해지는 순간에 걸어. 그리고 화면은 이미 한 말하고만이 아니라 뒤에 올 말하고도 대조해.

Code

수정이 목소리에 맞춰 떨어지는 그래프 장면·json
{
  "key": "gB3",
  "kind": "graph",
  "nodes": [
    { "key": "b1", "text": "local inference feels slow", "x": 0.28, "y": 0.32 },
    { "key": "b2", "text": "because the model is too big", "x": 0.28, "y": 0.68, "state": "struck" },
    { "key": "b3", "text": "memory bandwidth sets the pace", "x": 0.72, "y": 0.68, "state": "new" }
  ],
  "edges": [["b1", "b2"], ["b1", "b3"]],
  "motion": {
    "at": { "b2": "k112", "b2:struck": "k117", "b3": "k119" }
  }
}
첫 점검이 놓쳤던 미리 누설 검사·python
LOOKAHEAD = 3   # a screen is compared with the next three scenes


def printed_too_early(scenes: list[Scene]) -> list[str]:
    """No screen may print a sentence that a LATER scene will speak.

    The first version compared each card only with its own scene's
    cues and found nothing. The defect lives across scenes.
    """
    problems = []
    for i, scene in enumerate(scenes):
        # card lines, a graph's NEW nodes, a plot heading, board labels
        for text in scene.screen_strings():
            probe = letters_and_digits(text)
            if len(probe) < 9 or not has_hangul(probe):
                continue          # short or Hangul-free: never compared
            for later in scenes[i + 1:i + 1 + LOOKAHEAD]:
                for cue in later.cues:
                    # a shared run of >= max(9, floor(3/4 of the probe's length))
                    if same_claim(probe, cue.text):
                        problems.append(
                            f"{scene.key}: '{text}' is on screen before "
                            f"{later.key}/{cue.key} says it")
    return problems

External links

Exercise

네가 만든 발표 자료, 데모, 튜토리얼 영상 하나를 골라서 화면에 뭔가가 나타나는 순간을 전부 적어봐. 각각에 대해 그 뜻이 말해지거나 설명되는 순간도 적어. 한 박자 넘게 먼저 나타난 걸 전부 표시해. 그다음 하나씩 판정해봐. 그 이른 등장이 듣는 동안 붙들고 있을 걸 주는지, 아니면 설명이 쌓아가던 걸 미리 누설하는지.
Hint
제목이랑 결론 슬라이드가 단골 범인이야. 발표자가 아직 근거를 하나씩 짚고 있는데 발견을 말해버린 제목이 떠 있는 거지. 제목이 답으로 읽힐 수 있으면, 그 뒤에 이어지는 근거는 이미 귀를 닫은 관객 앞에서 연기하는 셈이야.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인 — 댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.