MyShorts - 콘티가 좋다고, 구성이 좋은건 아니다...

AI 협업 EP02의 콘티를 처음 받아봤을 때, 내용에는 별다른 불만이 없었다. 금융도 파이썬도 모르는 개발자가 MyStock을 시작하고, 요구사항을 정하면 ChatGPT가 분석과 설계를 보완하고 Codex가 구현하는 이야기였다. 마지막에는 세 캐릭터가 서로 반응하는 장면까지 들어갔다. 내가 전달하려던 메시지인 ‘코딩은 AI가, 방향은 내가’도 살아 있었다.

 

문제는 이 콘티를 실제 MyShorts 영상으로 옮기면서 시작됐다. 콘티에서 말하고 싶은 내용이 무엇인지는 알겠는데, 정작 1080×1920 세로 화면에서 어떻게 배치하고 움직이게 할지에 대한 기준이 부족했다. 결과적으로 기획 단계에서 보이지 않던 문제가 YPUB 패키지로 발행하고 실제 화면을 확인하는 순간 드러났다.

1차 콘티와 1080×1920 제작 화면

처음 받은 것은 일곱 장면을 한눈에 볼 수 있는 가로로 넓은 콘티 보드였다. 장면별 상황과 대사가 정리되어 있으니 기획을 검토하기에는 괜찮았다. 그래서 처음에는 그대로 다음 단계로 넘어갔다.

하지만 이 보드에 그려진 장면 구도는 MyShorts가 실제 사용하는 세로 템플릿을 기준으로 충분히 설계된 것이 아니었다. 콘티 보드 전체가 가로형이라는 사실 자체가 문제는 아니다. 여러 세로 장면을 한 장에 모아 보여줄 수도 있다. 문제는 각 장면을 애초부터 1080×1920 화면에서 구현할 공간과 비율로 계산하지 않았다는 점이었다.

 

MyShorts는 상단 제목 220px, 본문 1160px, 하단 대사 540px을 사용하는 구조다. 이 안에서 캐릭터 GIF와 정보 카드, 자막, 전환 동작이 각자의 역할을 해야 한다. 그런데 콘티를 패키지로 발행해 보니 카드가 지나치게 작거나 본문에 여백이 크게 남고, 대사와 본문 연출의 균형도 어긋났다. 콘티에 있던 이야기는 그대로인데, 영상으로 보면 내가 상상했던 장면과 달랐다.

 

여기서부터는 새로운 콘티가 필요한 게 아니었다. 이미 괜찮게 나온 콘티를 실제 템플릿으로 표현하는 방법을 고쳐야 했다.

수정 논의와 또 다른 이미지

그래서 장면별 크기와 위치, 어떤 요소를 유지하고 어떤 요소를 옮길지 하나씩 이야기했다. 특히 분석 중인 ChatGPT와 개발 프롬프트를 설명하는 장면에서는 화면 구도를 구체적으로 조정해야 했다. 그런데 다시 받아본 결과물은 실제 MyShorts 템플릿이 아니라, 별도로 만들어진 만화식 장면 이미지였다.

그림만 보면 나름대로 그럴듯하다. 하지만 내가 원한 건 새로운 캐릭터 일러스트나 멋진 만화 컷이 아니었다. 이미 사용하는 배경, 캐릭터 GIF·PNG, JS 연출이 있고 그 안에서 수정해야 할 문제도 특정되어 있었다. 무엇을 고치자고 논의했는데 결과물이 아예 다른 화면으로 나오니, 당연히 열받을 수밖에 없었다. ㅡㅡ;;

 

다시 말해 이 문제는 이미지 생성 능력이나 그림의 완성도와는 관계가 없었다. 수정할 대상이 실제 제작 화면이라는 제약을 AI가 끝까지 지키지 못한 것이 핵심이었다. 말로 다시 설명해도 같은 일이 반복될 수 있겠다는 생각이 들었다.

실제 화면을 기준으로 한 주석형 검토

그래서 ChatGPT에게 머릿속 그림을 다시 상상해서 보여 달라고 하지 않고, 실제 YPUB 패키지에서 렌더링한 화면을 기준으로 이전 버전과 수정 버전을 나란히 비교하기로 했다. 먼저 번호를 붙여 문제를 지적할 수 있는 리뷰 양식을 잡았다. 장면에서 잘못된 위치에 번호를 표시하고, 아래에는 번호별로 ‘무엇이 문제인지’와 ‘어느 방향으로 수정할지’를 짝지어 기록하는 방식이다.

중요한 것은 이 양식 자체가 아니라 그 안에 들어가는 자료였다. 콘셉트 이미지나 새로 그린 캐릭터가 아니라 실제 MyShorts 템플릿으로 렌더링한 장면을 넣어야 했다. 그래야 수정 지시가 이미지 예쁘게 그리는 방향으로 새지 않고, 다음 패키지에서 그대로 확인할 수 있는 요구사항이 된다. 그렇게 패키지 v5와 v7을 비교하면서 어떤 장면은 전체 비율을, 어떤 장면은 상태 전환을, 또 어떤 장면은 캐릭터 간 행동의 연결을 수정했는지 기록했다.

Scene 01 · 화면 전체 비율

도입부는 개발자가 금융 지식도 파이썬 지식도 없다고 말하면서 시작한다. 처음 화면을 수정할 때 캐릭터가 작아 보인다는 문제가 눈에 띄었지만, 캐릭터만 키운다고 해결되지 않았다.

 

v5에서는 상단의 금융 지식·Python 지식 카드가 작고 본문 윗부분에 힘이 없었다. 캐릭터 크기와 후렴구 ‘그런데 말입니다… / 그냥 시작함 ㅋㅋ’의 위치까지 함께 보니, 화면 전체에서 무엇을 먼저 봐야 할지가 흐릿했다.

 

v7에서는 지식 카드 자체를 크게 만들고, 캐릭터와 카피의 배치를 함께 조정했다. 빈 공간을 무조건 없애기보다 카드 → 캐릭터 → 카피 순서로 시선이 이어지도록 세로 비율을 잡은 것이다. 요소 하나만 키우는 게 아니라 화면 전체의 관계를 조정해야 한다는 기준이 이 장면에서 분명해졌다.

Scene 04 · 분석과 브리핑의 상하 배치

가장 설명이 많이 필요했던 장면은 ChatGPT 역할을 보여주는 Scene 04였다. 이 장면에는 ‘요구사항 4개’와 ‘요구사항 분석 중… → 분석 완료’라는 상단 상태 표시가 있었고, 그 아래에서 분석 화면이 브리핑 화면으로 바뀌어야 했다.

 

v5의 분석 단계에서는 캐릭터 GIF가 작아서 넓은 본문이 비어 보였다. 브리핑 단계에서는 GIF와 개발 프롬프트를 좌우로 놓는 구성이 나왔는데, 내가 생각한 구도와 달랐다. 내가 손으로 설명했던 것은 좌우 분할이 아니라 위쪽에 브리핑 캐릭터, 아래쪽에 프롬프트가 놓이는 상하 구조였다.

 

v7에서는 분석 중 GIF를 중앙에 크게 배치하고, 분석이 끝나면 상단 상태 표시는 유지한 채 GIF를 위쪽으로 줄여 이동시킨 다음 남은 영역에 프롬프트를 펼쳤다. 불필요하게 따로 떠 있던 카드 배경도 정리해 내용이 한 화면 안에서 이어지도록 했다.

이 장면을 고치면서 알게 된 건 단순하다. 사용자가 구체적으로 지정한 화면 구조가 있다면 그것이 우선이다. AI가 보기 좋다고 생각하는 새로운 분할 구도가 그 요구를 대신할 수는 없다.

Scene 05 · 프롬프트보다 전달 동작

개발자가 분석 결과를 Codex에게 넘기는 Scene 05도 비슷했다. 처음에는 개발 프롬프트 자체가 크게 보였다. 하지만 이 장면의 핵심은 프롬프트 문서를 읽게 하는 게 아니었다. 개발자가 요구사항을 Codex에게 전달하고, Codex가 이를 받아 구현을 시작한다는 사건을 보여줘야 했다.

 

v7에서는 프롬프트를 전달할 물체로 작게 만들고 개발자에서 Codex로 향하는 동작을 강조했다. Codex 쪽에는 ‘MyStock 구현 중…’이라는 반응을 연결했다. 같은 정보와 캐릭터를 써도 단순히 요소를 나열한 장면과 누군가 무엇을 건네고 받아서 일을 시작하는 장면은 다르게 느껴졌다. 그래서 이후 장면 구성에서는 ‘무슨 자료를 보여줄 것인가’와 함께 ‘이 장면에서 어떤 사건이 벌어져야 하는가’를 확인하도록 했다.

YPUB·SKILL 0.1.0의 제작 기준

여러 차례 수정하면서 반복적으로 확인한 문제를 그때그때의 대화에만 남겨서는 다음 영상에서 같은 실수를 할 수 있었다. 결국 v5와 v7의 실제 화면 비교 이미지, 각 번호별 문제와 수정 방향을 Google Drive의 제작 레퍼런스로 보관하고, YPUB와 MyShorts SKILL의 0.1.0 기준에 연결했다.

 

핵심은 처음부터 각 장면을 1080×1920 세로 템플릿에 맞춰 설계하는 것이다. 그 위에서 지나치게 정적인 장면을 피하고, 여백을 무작정 없애지 않으면서도 화면에 필요한 요소를 충분히 활용하고, 튀지 않는 작은 움직임과 캐릭터 간 반응을 만든다. 우리가 이야기했던 ‘절제된 병맛’도 결국 이런 실제 연출 기준을 뜻했다. 그리고 검토 방식도 달라졌다. 그럴듯한 새 콘티 이미지를 반복해서 받는 게 아니라, 콘티 승인과 실제 템플릿 기반 장면 검토를 구분하고, 문제가 있으면 기존 렌더 화면에 위치와 수정 방향을 남기는 방식이다. 수정이 끝난 장면은 가능한 한 그대로 유지해야 한다는 기준도 함께 생겼다.

 

최종 EP02 v7 영상은 완성됐다. 이번에는 쇼츠 하나만 남은 게 아니라, 다음 편에서도 다시 꺼내볼 수 있는 실제 화면 비교 자료와 수정 기준이 남았다. 콘티는 처음부터 꽤 괜찮았지만, 문제는 그걸 템플릿 안에서 제대로 표현하는 일이었다.