개발 취재 노트

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가 성격을 설명하는 대사를 쓴다"는 이번 글의 문제와는 다른, 변환기 코드의 파싱 버그다.

취재 후기 — 캐릭터가 자기 자랑을 할 때

박도은
이 대본 대사 하나가 자꾸 걸려. "…계산은 제가 하는 건데." 이거 뭐가 문제인지 말로는 안 잡히는데
정바다
그냥 농담한 거 아니야? 자기가 계산 빠르다고 어필하는 거지
정하늘
어필이 아니라 설명이야. 얘 원래 뭐든 숫자로 바꾸는 버릇 가진 캐릭터잖아. 근데 그 버릇을 지 입으로 짚어 버리면 그건 설명이지
박도은
잠깐, 그 버릇이 어디서 나온 거야?
정하늘
캐릭터 설정 문서들. 페르소나 파일엔 말투·입버릇이, 톤 가이드엔 인물별 개그 패턴이 적혀 있어. 대본 쓰는 AI가 둘 다 그대로 참고하거든
정바다
그럼 그 문서가 문제네. 그냥 지우면 되는 거 아냐?
박도현
문서를 지우면 캐릭터 자체가 사라져. 문제는 문서가 아니라, 문서에 적힌 특징을 대사로 "설정 설명"처럼 꽂아 넣은 거야
박도은
맞아, 비교해보자. 같은 소재 2차 대본에선 그 버릇을 말로 안 하고 행동으로만 보여줬는데 그건 안 어색했어
정하늘
어떻게 보여줬는데?
박도은
혼날 때 금액을 하루치로 쪼개서 작아 보이게 하고, 엄마가 그걸 그대로 한 달치로 되돌리는 식이야. 둘 중 누구도 "넌 숫자로 바꾸는 애"라고 말 안 해
정바다
아… 그러네. 행동으로 버릇이 보이면 시청자가 스스로 알아채는 거고, 대사로 말하면 작가가 떠먹여 주는 거고
박도현
근데 그거 하나로 안 끝나. 마지막 줄도 걸렸잖아, "엄마가 괜히 그러는 줄 알아?"
정하늘
그것도 같은 문제야? 입버릇 아니었어?
박도현
입버릇 맞는데, 장면이 필요해서 나온 말이 아니라 마무리 장식으로 붙인 거야. 직전 질문 "보고해요?"에 대답도 안 하고 결론만 선언해
박도은
그럼 둘이 같은 원인이네. 장면이 요구하지도 않는데 자기 특징을 말로 꺼낸다는 거
정바다
그럼 간단하네, 지시문에 "특징 말하지 마라" 한 줄만 넣으면 끝 아니야?
정하늘
그거 말고 하나 더 있어. 정보도 같은 식으로 새고 있었어 — 상대가 대신 정보를 챙겨주는 대사 말이야
박도현
그건 오늘 범위 밖이야. 지금 건 자기 특징 자기 언급이랑 입버릇 마무리 두 개로 좁히자. 둘 다 "성격은 보여지는 거지, 말해지는 게 아니다"라는 같은 규칙으로 잡혀
박도은
그거 지시문에 박아 뒀어?
정하늘
박았지. 좋은 예·나쁜 예까지 넣어서 기준 10개로 작업 지시문에 반영했어
박도현
결국 한 줄로 정리하면, 설정 문서를 AI한테 그대로 참고시키면 AI는 그 설정을 캐릭터 입으로 설명하는 대사로 바꿔 버려. 성격은 장면에서 드러나야지, 캐릭터가 자기 입으로 짚으면 그 순간 설명충이 된다.