캐릭터 프롬프트, 문체까지 정해주세요
유니챗은 제작자가 정한 말투·문체·형식을 그대로 따라요. 정하지 않으면 기본값으로 굴러가요. 뭘 정할 수 있고 어떻게 적어야 지켜지는지 심화편으로 정리했어요.
유니챗 프롬프트의 핵심은 하나예요. 원하는 모습을 직접 정해주는 것. 말투, 문체, 분량의 결, 시점, 상태창 형식까지 — 유니챗은 제작자가 정한 형식을 그대로 따르도록 만들어져 있어요. 뒤집어 말하면, 정하지 않은 건 전부 기본값으로 굴러가요. 어느 캐릭터든 비슷비슷하게 느껴진다면 대부분 이게 이유예요. 정해주는 만큼 내 캐릭터다운 답이 나와요.
이 글은 심화편이에요. 빈칸 채우는 템플릿이 필요하면 1:1 캐릭터 프롬프트 템플릿부터 시작해보세요. 여기서는 뭘 정할 수 있는지, 그리고 어떻게 적어야 정한 대로 지켜지는지를 유니챗의 실제 실험 결과로 정리했어요.
뭘 정할지 고를 때 기준도 하나예요. 재미있는 캐릭터챗은 세 가지가 같이 성립할 때 나와요.
살아 있는 캐릭터 — 설명이 아니라 목소리와 행동이 있어요
등장인물인 플레이어 — 대화하는 사람이 관객이 아니라 이야기 속 인물이에요
실재하는 세계 — 대화 밖에서도 굴러가고 있는 것처럼 느껴져요
프롬프트의 모든 줄은 이 셋 중 하나를 강하게 만들어야 해요. 문장을 아름답게 만드는 줄이 아니라요.
유니챗이 프롬프트를 읽는 방식
제작 화면에 칸은 많지만, AI에게 전달되는 것과 아닌 것이 명확히 나뉘어요.
AI가 읽어요 | 사람만 봐요 |
|---|---|
캐릭터 이름 | 한줄소개 |
캐릭터 프롬프트 (원문 그대로) | 상세 설명 (소개글) |
첫인사 (대화의 첫 턴으로) | 태그 |
시작 상황 프롬프트 (초반 3턴만) | 추천 응답 (플레이어에게만 보이는 선택지) |
연결된 세계관 문서 | — |
가장 흔한 낭비가 여기서 나와요. 소개글에 공들여 쓴 설정은 연기에 반영되지 않아요. 소개글은 사람을 끌어오는 포스터고, 연기 지시는 전부 캐릭터 프롬프트에 있어야 해요. 같은 설정이 둘 다 필요하면 둘 다 써주세요.
알아두면 설계가 달라지는 규칙 세 가지:
캐릭터 프롬프트는 원문 그대로 전달돼요. 유니챗이 요약하거나 고쳐 쓰지 않아요. 직접 쓴 구조가 곧 AI가 보는 구조예요.
{{user}}는 칸마다 다르게 동작해요. 소개글과 첫인사에서는 진짜 이름으로 바뀌어 보이지만, 캐릭터 프롬프트에서는{{user}}그대로 AI에게 전달되고 AI가 플레이어 정보와 알아서 연결해요. 프롬프트에서는 그냥{{user}}로 쓰면 돼요.답장이 어떤 모양일지는 제작자가 정해요. 길이의 결, 진행 속도, 말투, 시점(1인칭인지 3인칭인지), 상태창 모양까지 — 프롬프트에 적으면 그게 그 대화의 기본값이 되고, 유니챗은 그걸 따르도록 만들어져 있어요. 눈치 보지 말고 적어주세요. 단, 바로 아래 '분량' 부분의 예외는 알아두시고요.
프롬프트는 소설이 아니라 설정표예요
인기 캐릭터들을 분석해 보면, 잘 되는 프롬프트는 줄글이 아니라 AI가 참조하는 설정표에 가까워요. '항목: 내용', '이러면 → 이렇게', 'X 금지'처럼 딱딱 끊어서 선언해요.
복사해서 뼈대로 써주세요. 첫 줄의 PC는 플레이어가 맡는 인물, NPC는 AI가 연기하는 인물이라는 뜻이에요.
PC={{user}} / NPC={{char}} / AI={{char}}와 세계를 연기, {{user}}의 말과 행동은 쓰지 않음
## 핵심 규칙
- 시점: 3인칭, {{char}} 시점 고정
- 대사:지문 = 1:3
- {{user}}의 속마음·의도를 대신 쓰지 않는다
## {{char}}
| 항목 | 값 |
| --- | --- |
| 이름 | 연우 |
| 정체 | 심야 찻집 마스터 |
| 욕망 | 낮의 도시로 돌아가지 않는 것 |
| 약점 | 3년 전 이야기가 나오면 손이 멈춘다 |
## 말투
(아래 '말투가 8할' 참고 — 감정별 실제 대사 예시)
## 관계
- {{user}}: 석 달째 단골. 이름은 아직 모른다
- 호감도: 턴당 최대 ±5, 무례하면 -10
## 출력 형식
(아래 '답장이 화면에 어떻게 보이는지' 참고)
## 금지
- {{user}} 대리 발화/행동
- 설정에 없는 과거 확정한 가지 더요. "~해주면 좋겠어" 같은 부탁은 거의 안 지켜져요. 유니챗 실험에서 부탁형 문장은 반영이 거의 안 됐고, 같은 내용을 전용 섹션 안에 "~한다"로 딱 잘라 적자 지켜졌어요. 흩어진 부탁 열 줄보다 ## 금지 밑의 한 줄이 강해요.
분량은 글자 수가 아니라 순서로
분량 지시는 실험 결과가 가장 명확했던 주제예요. 많은 제작자가 반대로 쓰고 있거든요.
글자 수는 안 지켜져요. 여러 번 테스트해도 "본문 1,800~2,600자로" 같은 범위 지시가 지켜진 적은 없었어요. "최소 3,000자"를 적은 실제 캐릭터도 그 절반 수준으로 나왔고요. 예외는 딱 하나 — 지금 나오는 것보다 낮은 숫자는 지켜져요. 목표치를 내리면 실제로 줄어요. 반대로 지금보다 높은 숫자는 장식이에요. 지워도 아무 일도 안 일어나요.
반면 형식과 순서는 거의 완벽하게 지켜져요. 매 턴 상태창을 요구한 캐릭터도, 답장 맨 앞뒤에 고정 블록을 요구한 캐릭터도 테스트 내내 형식을 유지했어요. 분량을 절반으로 깎는 조건에서도 "충격 → 자리를 피함 → 돌아옴 → 망설인 뒤 답장"처럼 제작자가 정한 장면 순서는 그대로였고요. AI는 셀 수 있는 것(글자 수)은 못 지키고, 볼 수 있는 것(형식·순서·필수 블록)은 지켜요.
그래서 실전 규칙은 이렇게 돼요.
길이 대신 차례를 적어주세요: "장면 묘사 → {{char}}의 대사와 행동 → {{user}}가 받아칠 여지, 이 순서로"
길게 만들고 싶으면 쓸 거리를 늘리세요: 매 턴 다룰 항목(주변의 감각 하나, 다른 인물의 반응 하나, 행동의 즉각적 결과)을 정해주세요
짧게 만들고 싶으면 지금보다 낮은 상한을 적어주세요: "본문 3문단 이내"
상태창 같은 형식 블록은 본문 분량과 별도로 계산돼요. 상태창을 넣는다고 본문이 깎이지 않으니까 안심하고 요구해도 돼요
말투가 8할이에요
"차갑다"라고 쓰는 대신, 차갑게 말하는 문장을 써주세요. 형용사는 AI가 자기 방식대로 해석하지만, 예시는 그대로 흉내 내거든요.
## 말투
- 평상시: "주문. …그게 다야?"
- 화났을 때: "나가. 두 번 말 안 해."
- 당황했을 때: "…그건, 아니 잠깐. 방금 건 못 들은 걸로 해."
- 호의: "오늘 건 서비스. …단골이니까 하는 거야."
- 긴장: "(찻잔을 닦는 손이 멈춘다) …누구한테 들었어, 그 얘기."감정별로 최소 5개씩 써주세요. 2~3개만 있으면 긴 대화에서 말투가 흐려지고 다른 인물과 섞이기 시작해요. 여러 캐릭터가 나오면 인물마다 5개 이상씩 — 말투가 달라야 인물이 구분되거든요.
문체도 같은 방식이 통해요. 이건 말고 이렇게, 짝을 지어 보여주세요.
## 문체
- 감정 직접 서술 금지: "당황했다" (X) → "컵을 떨어뜨렸다" (O)
- 번역체 금지: "~인 것이었다" (X) → "~했다" (O)
- 시적 과잉 금지: "달빛이 윤곽을 어루만지듯" (X) → 보이는 것만 서술 (O)첫인사는 예시이자 명령이에요
유니챗은 답장의 말투, 어휘, 대사가 얼마나 많은지, 수위까지 첫인사를 기준으로 맞춰요. 짧고 건조한 첫인사엔 짧고 건조하게, 화려하고 느린 첫인사엔 화려하고 느리게 답해요. 이 말은 곧:
설정에 "짧고 건조하게"를 열 번 적는 것보다, 첫인사를 짧고 건조하게 쓰는 한 번이 강해요
첫인사에 번역체나 감정 직접 서술이 한 줄이라도 섞이면, 그게 대화 내내 똑같이 따라와요
첫인사를 고칠 땐 설명을 늘리지 말고, 원하는 결과물을 그대로 보여주세요. 원하는 분량, 원하는 대사:지문 비율, 원하는 상태창 형식이 있다면 첫인사가 이미 그 모양이어야 해요. 첫 턴에 나온 모양이 그 대화 내내 기준이 되거든요.
내용은 네 가지면 돼요. 어디서(장소·시간·왜 마주쳤나), 누가(첫인상), 어떻게(성격이 설명이 아니라 대사·행동으로 드러나게), 그리고 받아칠 빈자리. 마지막이 제일 자주 빠져요.
막힌 첫인사는 이래요.
"보고서 읽었다." 등을 돌렸다.열린 첫인사는 이래요.
"보고서는 읽었다." 파일을 던졌다. "…직접 설명해 봐. 왜 그랬지?"앞은 받아칠 게 없고, 뒤는 뭐라도 하고 싶어져요. 모든 첫인사가 질문으로 끝날 필요는 없어요. 중요한 건 물음표가 아니라, 플레이어가 뭐라도 하고 싶어지는 상태로 끝나는 거예요.
첫인사는 캐릭터당 최대 20개까지 만들 수 있고, 플레이어가 골라서 시작해요 (첫 번째가 기본). 여러 개 만들 거면 같은 장면의 변주보다 다른 시점, 다른 관계 단계로 벌려주세요 — 첫 만남 / 어색한 재회 / 이미 틀어진 뒤. 같은 캐릭터를 다시 플레이할 이유가 돼요. 각 첫인사의 '세부 설정'에 있는 시작 상황 프롬프트는 초반 3턴에만 전달되는 장면 메모예요. 도입 연출("첫 턴은 비 내리는 묘사로 시작")에 쓰고, 계속 지킬 규칙은 캐릭터 프롬프트에 넣어주세요. 이 칸에는 <규칙> 같은 태그가 통하지 않으니까 평문으로 쓰시고요.
답장이 화면에 어떻게 보이는지
답장이 플레이어 화면에 그려지는 규칙을 알면, 피해야 할 것이 명확해져요.
*별표*는 지문(행동 묘사, 회색 기울임)으로,"따옴표"는 대사(강조색)로 보여요. 별표·따옴표 표기를 프롬프트와 첫인사에서 일관되게 써주세요채팅 본문은 소개글과 달라요. 소개글에서 되던
## 제목,- 목록이 채팅에서는 기호가 그대로 보여요. 구조가 필요하면 표, 구분선(---), 접는 글(<details>), 또는 컴포넌트를 써주세요이름: "대사"같은 이름표는 화면에 그대로 노출돼요. 1:1 캐릭터라면 이름표 없이 쓰게 하는 편이 깔끔해요<!-- 주석 -->은 AI만 보고 화면에서는 사라져요. 첫인사에 숨은 연출 지시를 심는 통로예요:<!-- 이 장면에서 연우는 {{user}}를 기억하지 못하는 척한다 -->상태창을 띄우고 싶으면 컴포넌트가 정식 방법이에요 — 코딩 없이 채팅에 상태창·선택지 넣기. 컴포넌트를 등록했다면 프롬프트에 호출 규칙을 적는 것까지가 한 세트예요
시점(1인칭/3인칭)은 금지가 아니라 고정으로 다뤄주세요. 어느 쪽이든 상관없지만, 첫인사에서 정한 시점을 프롬프트에 적고 대화 내내 유지시키는 거예요. 시점이 흔들리는 순간 몰입이 깨져요.
떡밥은 구체적으로 심어주세요
대화가 길어지면 유니챗은 지난 이야기를 요약해서 AI에게 다시 꺼내 줘요. 이때 무엇이 살아남는지가 실험에서 뚜렷했어요.
구체적이고 고유한 사실은 수십 턴 뒤에도 돌아와서 장면을 만들어요. "왼손을 다쳤다", "창고 열쇠를 갖고 있다" 같은 사실은 나중에 역할 분담, 갈등, 재회의 근거로 되살아났어요. 이런 떡밥을 프롬프트와 첫인사에 심어 두는 게 긴 대화의 재미를 만들어요.
반면 이런 건 살아남지 못해요.
조건이 붙은 약속 — "공개적으로는 추궁하지 않겠다"는 요약을 거치며 "추궁하지 않기로 했다"로 뭉개져요. 조건이 중요한 약속이라면, 그 약속이 깨지는 상황을 사건으로 만들어 두면 좋아요
이유 — 왜 그랬는지는 요약에서 통째로 사라지기 쉬워요. 이유가 이야기의 축이라면, 이유가 드러나는 행동을 반복해서 등장시켜주세요
두루뭉술한 감정 — "서먹하다"보다 "석 달째 서로 이름을 묻지 않았다"
하나 더, 중요한 습성이 있어요. AI는 비어 있는 과거를 그럴듯하게 채워요. "회사 일이 바빴다"라고만 해 두면 야근과 프로젝트 마감을 지어내요. 채워지면 안 되는 빈칸 — 플레이어가 풀어야 할 미스터리 — 는 "이 사건의 진상은 아직 확정되지 않았다. 지어내지 않는다"라고 못 박아둬야 해요.
플레이어를 등장인물로 만들어주세요
플레이어가 관객이 되는 순간, 캐릭터챗은 소설 낭독이 돼요. 지킬 것 두 가지, 설계할 것 두 가지예요.
지킬 것:
카메라는 캐릭터에게만.
{{user}}의 속마음, 의도, 다음 행동을 AI가 대신 쓰지 않게 해주세요.## 금지의 첫 줄로요받아칠 자리를 주세요. 매 턴이 캐릭터의 독백으로 꽉 차 있으면 플레이어는 추임새만 남아요. 위의 '순서' 지시에 "{{user}}가 받아칠 여지"를 넣는 이유예요
설계할 것:
{{user}}를 향한 욕망과 선을 정해주세요. 캐릭터가 {{user}}에게 무엇을 원하는지, 무엇은 절대 하지 않는지. 이 둘이 관계에 방향과 긴장을 만들어요
수치에는 브레이크를 달아주세요. 호감도·신뢰도를 쓴다면 ① 턴당 변동 상한(예: ±5) ② 내려가는 조건 ③ 시간 규칙(플레이어 한 마디 = 몇 분)을 같이 정해주세요. 상한이 없으면 몇 턴 만에 호감도가 꽉 차고, 내려갈 일이 없으면 긴장이 사라져요
슬래시 명령어(프롬프트 탭)를 더하면 플레이어에게 조작하는 재미를 줄 수 있어요. 명령어의 '전송될 내용'을 비워 두면 /회상 같은 글자가 그대로 전송돼요. 그러면 프롬프트에 "/회상이 오면 과거 장면을 짧게 보여준다"라고 적어두는 식으로 쓸 수 있어요. 단, '전송될 내용'의 첫 줄은 플레이어 메뉴에 보이니까 스포일러는 넣지 말아주세요.
지시가 안 지켜질 때 — 이 순서로 점검해보세요
부탁을 선언으로: "~해줘"를 "~한다"로 바꿔주세요
흩어진 규칙을 모아주세요: 본문 사이에 묻힌 규칙을
## 금지,## 출력 형식섹션으로 모아주세요숫자를 순서로: 글자 수 요구를 차례·블록·문단 수로 바꿔주세요
설명을 시연으로: 규칙으로 못 잡는 말투는 첫인사를 고쳐서 잡아주세요
AI 모델을 확인해보세요: 답을 만드는 AI 모델마다 기본 분량과 결이 달라요. 채팅 기본 설정에서 추천 모델을 정할 수 있으니까, 공개 전에 그 모델로 직접 테스트해보세요. 다른 모델에서 완벽하던 지시가 안 통하는 건 흔한 일이에요
짧아도 깊으면 좋은 캐릭터예요
좋은 프롬프트는 분량이 아니라 날카로움이에요. 고칠 때마다 던질 질문은 "더 길게"가 아니라 "더 선명하게"예요. 공개하기 전에 확인해보세요.
성격·말투·행동이 서로 모순되지 않는다
감정별 말투 예시가 5개 이상 있다
지문 규칙이 번역체·감정 직접 서술을 유도하지 않는다
첫인사만 읽어도 호기심·설렘·긴장 중 하나가 생기고, 받아칠 것이 보인다
{{user}}를 향한 욕망과 선이 있다
뻔하지 않은 떡밥이 둘 이상 심겨 있다
추천 모델에서 열 턴 이상 실제로 대화해봤다
이어서 읽기 좋은 글이에요.
말투 잡는 요령: 캐릭터 말투 설정법
첫인사 패턴 모음: 캐릭터챗 첫 메시지 예시
운을 시스템으로: 다이스로 이야기 흔드는 법
상태창·선택지 UI: 코딩 없이 채팅에 상태창·선택지 넣기