개발 취재 노트
AI가 쓴 대화가 어색한 이유 — 캐릭터가 자기 특징을 스스로 말할 때
세대와 가계도를 가진 AI 캐릭터들이 일상 소재로 티격태격하는 쇼츠 영상(personaverse)은 대본을 AI가 자동으로 쓴다. 대화 구조를 고쳐 "자연스럽다"는 평가까지 받았는데, 다음 소재에서는 캐릭터가 자기 개그 포인트를 스스로 설명해 버리는 새로운 종류의 어색함이 나왔다.
결론
AI에게 캐릭터의 말투·개그 패턴을 적은 설정 문서(페르소나 파일·톤 가이드)를 그대로 참고시키면, AI는 그 설정을 "캐릭터가 직접 언급하는 대사"로 꽂아 넣는 경향이 있다. 사람의 대화에서 성격은 드러나는 것이지 말해지는 것이 아니라서, 이렇게 쓰면 설명충 대사가 된다.
❌ 도현: …계산은 제가 하는 건데.
(무엇이든 숫자로 바꾸는 버릇을 캐릭터가 직접 언급함)
✅ 도현: 칠만 원이면… 하루 이천삼백 원이네요.
선영: 하루 이천삼백 원이 한 달이면 칠만 원이야.
(같은 버릇을 행동으로만 보여주고, 아무도 "넌 숫자로 바꾸는 애"라고 말하지 않음)
고치는 법은 간단하다. 지시문(프롬프트)에 "캐릭터가 자기 성격적 특징·말버릇을 대사로 설명·언급하지 않는다"를 명시하고, 특징은 장면 속 행동이나 반응으로만 보여주게 한다 . 같은 원리로, 입버릇을 장면과 무관하게 대사 끝에 마무리 장식으로 붙이는 것도 같은 문제다 .
상황
personaverse는 세대·가계·한국 현대사를 가진 AI 캐릭터들이 그날그날의 생활 소재(가전제품, 생활비 등)로 티격태격하는 대화를 대본부터 렌더링까지 만드는 프로젝트다. 대본 한 편은 작업 지시문(episode.md)이 대본 작법 문서(SKILL.md), 캐릭터별 페르소나 파일(말투·캐논 원본을 적은 400~1,100줄짜리 문서), 톤 가이드(인물별 개그 패턴·"웃음 무기"를 적은 문서)를 읽게 한 뒤, 변환기(script_to_scene.py)와 렌더러가 이를 영상으로 바꾸는 구조다 .
증상
2026-10-14 검수 중, 자동 제작된 대본 2편(가습기, 김치냉장고)을 본 사람이 "주고받는 대사가 자연스럽지 못해. 티키타카인척 하고 있지만 내용 이해도 어렵고"라고 지적했다 . 대화가 사실 목록을 순서대로 낭독하는 구조, 캐릭터가 서로 원하는 게 없어 질문-답변만 오가는 구조 등 네 가지 구조적 문제를 고치자 가습기 편은 "훨씬 자연스럽다"는 승인을 받았다 .
그런데 같은 기준으로 다시 쓴 다음 소재(난방비, 엄마×아들)에서 구조를 고쳐도 안 잡히는 새로운 어색함이 나왔다. 아들 캐릭터가 "숫자로 바꾸는" 버릇을 가진 설정인데, 대사에서 "…계산은 제가 하는 건데."라고 그 버릇을 스스로 짚어 말했다 . "웃음 포인트가 억지스럽네. 숫자로 바꾼다는 건 시청자가 자연스럽게 느껴야 하는 부분이야. '계산은 제가 하는 건데'라는 식으로 본인의 포인트를 본인이 언급하면 진짜 별로야"라는 지적이 나왔다 .
원인
가습기 편에서 고친 구조 문제(① 사실 목록 낭독 ② 서로 대신 챙겨주는 대사 ③ 원하는 것 없음 ④ 압축 규칙이 전제를 자름)는 "대화가 굴러가는 방식"의 문제였다 . 이번에 나온 문제는 그와 다른 층위다. 작업 지시문이 캐릭터별 설정 문서(페르소나 파일의 말투·캐논, 톤 가이드의 인물별 개그 패턴·"웃음 무기")를 그대로 참고하게 했는데, 대본을 쓰는 AI가 그 안에 적힌 특징을 "캐릭터가 이런 말을 하는 설정"으로 읽고, 그 특징을 설명하는 대사를 직접 써 넣었다 . 사람의 실제 대화에서는 성격이 상황 속 행동으로 드러나는 것이지, 본인이 "나 이런 사람이야"라고 짚어 말하지 않기 때문에 부자연스럽게 들렸다.
같은 소재의 2차 대본에서 또 다른 사례가 나왔다. 엄마 캐릭터의 마지막 대사 "엄마가 괜히 그러는 줄 알아?"도 같은 문제로 지적받았다. 분석 결과 이 대사는 ① 캐릭터의 입버릇 목록(페르소나 문서에 있다 )에서 가져와 장면 필요와 무관하게 마무리 장식으로 붙인 것, ② 직전 질문("보일러 끈 걸 문자로 보고해요?")에 답하지 않고 일반론으로 넘어간 것, ③ 훈계처럼 결론을 선언하며 끝난 것, 세 가지가 겹쳐 있었다 .
해결
확정된 지침은 다음과 같다 :
- 캐릭터의 성격적 특징(버릇·개그 패턴)은 대사가 "그 특징을 보여주는 장면"이 되게 쓴다. 캐릭터가 자기 특징을 말로 설명·언급하지 않는다.
- 입버릇을 장면과 무관하게 마무리 장식으로 붙이지 않는다. 마지막 대사는 상대의 직전 질문에 답하거나 결론을 선언하지 않고, 장면에서 자연스럽게 멈춘다.
- 다른 사람이 "그리고 ~야"로 정보를 대신 얹어 주지 않고, 정보를 원하는 사람이 직접 발견하게 한다.
- 출처를 캐릭터가 직접 밝히지 않는다("에너지공단에서 그러는데" 대신 "뉴스에서 그러는데" 식으로 자연스럽게, 혹은 생략한다).
이 기준은 메모리와 작업 지시문(episode.md)에 좋은 예·나쁜 예(칠만 원 쪼개기 대사, "계산은 제가 하는 건데")와 함께 반영됐다 .
덤 — 같은 사건의 곁가지: 지문 표기가 화면에 그대로 노출되는 버그
같은 검수에서 별개 층위의 문제도 하나 더 발견됐다. 대본에 쓴 연출 지문 (뜸)(다음 대사 전 0.3초 멈춤)이 화면에 글자로 그대로 노출된 것이다. 원인은 대본 표에 지문 전용 열이 따로 있을 때, 변환기(script_to_scene.py)가 대사 칸 맨 앞에 붙은 (뜸)·(발끈) 같은 레거시 표기를 걸러내지 못한 것이었다. 지문 전용 열이 있어도 대사 칸 앞의 레거시 괄호 표기를 분리해 연출 데이터로 옮기도록 코드를 고쳤다 . 이건 "AI가 성격을 설명하는 대사를 쓴다"는 이번 글의 문제와는 다른, 변환기 코드의 파싱 버그다.