엔피시 대화 · 프롬프트, 변형, 검토

엔피시 대화 생성기: 사람처럼 들리는 캐릭터 대사를 쓰는 법

나만의 엔피시 대화 생성기 만들기

실전 엔피시 대화 워크플로: 페르소나, 목표와 제약 프롬프트, 변형 생성, 검토 체크리스트, 그리고 엔피시가 세계 속에서 말하는 라이브 3D 데모.

✦게임
만들기: 엔피시 대화 생성기

엔피시 대화 생성기는 작성된 설명을 캐릭터가 할 법한 대사 후보로 바꿔 줍니다. 페르소나와 상황, 목표를 주면 초안을 돌려줍니다. 어떤 초안이 출시될지는 정하지 않습니다. 그 결정은 작가의 몫으로, 작가는 대사를 잘라내고 다듬고 실제로 들릴 장면 안에서 시험합니다.

이 페이지는 반복할 수 있는 워크플로를 다룹니다. 세 부분으로 된 프롬프트를 만들고, 문구가 아니라 상황을 바꿔 세에서 다섯 개의 변형을 생성하고, 다섯 항목 검토 목록을 돌린 뒤, 승인된 대사를 걸어 다닐 수 있는 세계에 배치합니다. 마지막 단계가 중요합니다. 텍스트 파일에만 존재하는 대사는 플레이어에게 전달될 때 서술처럼 읽힙니다. 자리에 서 있는 캐릭터에 트리거 반경과 말풍선을 붙인 대사는 대화처럼 읽힙니다.

빠른 답변: 엔피시 대화 생성기가 하는 일

엔피시 대화 생성기는 페르소나, 상황, 목표라는 세 가지 입력을 받아 대사 후보를 돌려줍니다. 페르소나는 누가 말하는지, 무엇을 아는지를 정합니다. 상황은 플레이어가 어디에 있고 방금 무슨 일이 일어났는지를 정합니다. 목표는 엔피시가 이 대화에서 무엇을 원하는지를 정합니다. 셋 중 하나만 바꿔도 출력이 달라집니다. 아무것도 바꾸지 않으면 거의 같은 대사가 나옵니다.

다만 대사를 완성하지는 않습니다. 생성기는 초안, 즉 길이는 맞고 목소리는 그럴듯하며 목표도 향하지만 어딘가 틀린 대사를 만듭니다. 그 틀린 점은 소리 내어 읽거나 화면에서 어떻게 보이는지 볼 때에야 드러납니다. 작가는 여전히 후보 중에서 고르고, 설명이 과한 대사를 잘라내고, 남은 하나를 사람이 실제로 할 법한 말이 될 때까지 다듬습니다. 출력은 빠르고 지치지 않으며 약간 지나치게 직역적인 동료가 건넨 1차 초안으로 다루세요.

게임에서 대화가 진짜처럼 느껴지게 하는 것

네 가지 속성이 대부분의 일을 합니다. 짧은 대사입니다. 플레이어는 움직이면서 읽고, 두 번 숨을 쉬어야 하는 대사는 건너뜁니다. 대사 하나에 의도 하나입니다. 경고와 질문을 동시에 하는 대사는 둘 다 아닌 것처럼 전달됩니다. 캐릭터마다 일관된 목소리, 즉 어휘와 문장 길이, 그리고 그 캐릭터가 말하기 거부하는 것을 지키는 일입니다. 그리고 지식의 한계입니다. 엔피시는 세계에서 자기 위치가 알려 줄 법한 것만 알아야 합니다. 부두 하역부는 왕의 건강을 모릅니다. 북문 경비병은 누군가 말해 주지 않았다면 하수도에서 무슨 일이 있었는지 모릅니다.

지식의 한계는 작가들이 가장 자주 깨는 규칙이자 플레이어가 가장 먼저 알아차리는 부분입니다. 모든 캐릭터가 모든 질문에 답할 수 있으면 세계는 장소가 아니라 검색 상자처럼 느껴집니다. 무언가를 생성하기 전에 각 캐릭터가 그럴듯하게 알 수 있는 범위를 정하세요. 그 결정은 머릿속이 아니라 페르소나 프롬프트에 들어가야 합니다.

같은 요청을 두 가지 방식으로 쓴 예입니다. 건조한 버전: '다리가 끊어졌고 동쪽 길로 가야 한다고 플레이어에게 알려라.' 잠을 못 잔 뱃사공의 목소리로: '밤새 다리가 무너졌어. 이제 물이 안 고인 길은 동쪽밖에 없어. 돈이 있으면 건네줄게, 하지만 어둠 속에서 노를 젓지는 않아.' 두 번째 버전은 같은 정보를 담으면서 한 사람의 인격도 담습니다. 값과 한계, 기분을 암시합니다. 그 어느 것도 건조한 버전에는 없습니다.

건조한 버전도 쓸모가 없지는 않습니다. 그것이 사양서입니다. 먼저 건조한 대사를 쓰고, 그다음 캐릭터의 입에 맞게 다시 쓰세요. 페르소나 없이 목표만으로 바로 생성하면 맞지만 서로 바꿔 써도 되는 대사가 나옵니다.

프롬프트 패턴: 페르소나, 목표, 제약

세 부분 템플릿은 페르소나, 목표, 제약입니다. 페르소나는 누가 말하고 무엇을 아는지입니다. 목표는 이 대화가 무엇을 위한 것인지입니다. 제약은 길이와 어조, 그리고 대사가 해서는 안 되는 일입니다. 매번 셋을 모두 채우세요. 목표만 있는 프롬프트는 일반적인 대사를 만들고, 페르소나만 있는 프롬프트는 기능 없는 독백을 만듭니다.

채운 예시: '페르소나: 마르타, 뱃사공, 강에서 사십 년, 어젯밤 다리가 무너진 것과 동쪽 길이 만조에 잠긴다는 것을 안다. 목표: 다리가 끊겼고 값을 받으면 건네줄 수 있다고 플레이어에게 알린다. 제약: 서른 단어 이내, 과거에 대한 설명 금지, 왕 언급 금지, 구어체, 그녀는 지쳐 있다.' 이 프롬프트는 쓸 만한 후보를 돌려줍니다. 제약을 빼면 한 문단이 나옵니다. 페르소나를 빼면 표지판이 나옵니다.

항목들어갈 내용흔한 실수
페르소나이름, 역할, 이 캐릭터가 아는 것과 모르는 것, 현재 기분지식의 한계 대신 과거사를 나열해서 엔피시가 답하면 안 되는 질문에 답하게 됨
목표이 대화가 플레이어를 위해 반드시 달성해야 하는 단 한 가지두 가지 목표(경고와 판매)를 겹쳐서 대사가 둘 다 제대로 하지 못함
제약단어 수, 말투, 금지 주제, 밝히면 안 되는 것이를 빼서 4초 말풍선에 60단어 문단이 들어감

목소리를 잃지 않고 변형 생성하기

세에서 다섯 개의 변형을 요청하세요. 열 개는 아닙니다. 세 개 미만이면 선택지의 공간이 보이지 않고, 다섯 개를 넘으면 쓰는 시간보다 읽는 시간이 더 듭니다. 기능성 대사에는 세 개면 충분하고, 플레이어가 반복해서 들을 대사에는 다섯 개가 적당합니다.

문구가 아니라 상황을 바꾸세요. 같은 페르소나, 목표, 제약으로 같은 프롬프트를 다시 돌리면 모델은 거의 같은 결과를 돌려줍니다. 문장 구조는 같고 형용사만 바뀝니다. 그것은 버그가 아니라 입력이 변하지 않았을 때 결정론에 가까운 샘플러가 하는 일입니다. 진짜 다양성을 얻으려면 캐릭터가 반응하는 대상 하나를 바꾸세요. 플레이어가 새벽에 도착한 경우와 밤에 도착한 경우. 플레이어가 부상당한 경우. 플레이어가 같은 질문을 세 번째 한 경우. 같은 목소리, 다른 압박, 다른 대사입니다.

변형들 사이에서 페르소나 블록은 고정하세요. 실행할 때마다 페르소나가 흔들리면 한 캐릭터의 변형을 만드는 것이 아니라 이름만 같은 여러 캐릭터를 만드는 셈입니다. 페르소나는 고정하고 상황만 바꾸면 출력을 서로 비교할 수 있습니다.

출시한 대사를 만든 프롬프트를 저장하세요. 육 주 뒤 같은 캐릭터의 두 번째 대사가 필요할 때 기억에서 목소리를 재구성하는 대신 그 프롬프트를 다시 불러오면 됩니다. 프롬프트 파일은 대화 데이터와 함께 버전 관리에 두세요.

대사 출시 전 검토 목록

다섯 가지 점검을 순서대로 합니다. 대화 표에 들어가기 전에 모든 대사에 적용하세요.

1

01

화면 위 길이. 단어 수를 세고 대략 초당 세 단어로 읽는 시간을 가늠하세요. 스무 단어가 넘는 대사는 타이머를 늘리지 않는 한 말풍선이 닫히기 전에 끝나지 않습니다. 늘리지 말고 잘라내세요.

2

02

엔피시가 가져서는 안 될 지식. 이 캐릭터가 자기 위치와 최근 역사로 미루어 그럴듯하게 알 수 있는 것이 무엇인지 물으세요. 한 번도 들은 적 없는 것을 대사가 드러낸다면, 대사를 자르거나 그가 들은 장면을 추가하세요.

3

03

이름과 세계관 일관성. 철자를 캐릭터 표와 대조하고 모든 고유명사를 세계관 문서와 대조하세요. 생성기는 그럴듯하게 들리지만 지도와 모순되는 지명을 만들어 냅니다.

4

04

대사가 출구를 주는지. 분기나 퀘스트 갱신, 퇴장 없이 대화를 끝내는 대사는 플레이어를 다음에 할 말이 없는 캐릭터 앞에 세워 둡니다. 모든 대화 대사에는 출구가 필요합니다. 그 출구가 '더 할 말은 없다'일지라도요.

5

05

소리 내어 읽기 시험. 말하는 속도로 대사를 소리 내어 말하세요. 화면에서는 괜찮아 보이는 대사도 자음군과 어색한 강세에서 걸립니다. 당신이 막히면 성우도 막히고, 플레이어는 건너뜁니다.

승인된 대사를 캐릭터의 입에 넣기

승인된 대사 하나를 가져오세요. 캐릭터를 자리에 배치합니다. 걸어 다닐 수 있는 장면의 고정 위치에서, 그 일에 맞는 방향을 바라보게 하세요. 뱃사공은 길 한가운데가 아니라 부두 가장자리에 섭니다. 트리거 반경을 붙이세요. 캐릭터 주위의 구나 캡슐로, 플레이어가 가까이 왔을 때만 대사가 나오고 길 건너편을 지나갈 때는 나오지 않을 만큼 작아야 합니다. 그다음 말풍선을 캐릭터의 머리 앵커에 붙여 캐릭터를 따라가고 지오메트리에 올바르게 가려지게 하세요.

자리가 없는 대사는 서술처럼 읽힙니다. 플레이어는 보이는 근원 없이 목소리를 듣고 뇌는 그것을 캐릭터가 아닌 해설자로 분류합니다. 첫 단어가 나오기 전에 누가 말하는지 알려 주는 것이 자리입니다. 도착에 대한 반응처럼 느껴지게 하는 것이 트리거 반경입니다. 플레이어가 움직이는 동안 대사를 몸에 붙어 있게 하는 것이 말풍선입니다.

배치는 목업이 아니라 실제 3D 장면에서 시험하세요. Neta Studio 3D 게임 빌더에서는 캐릭터를 걸어 다닐 수 있는 세계에 넣고, 트리거 반경을 설정하고, 승인된 대사를 말풍선에 묶고, 플레이어를 그 앞으로 걸어가게 할 수 있습니다. Mini World는 바로 이런 점검을 위한 작은 장면입니다. 말풍선이 벽을 뚫거나 광장 건너편에서 트리거가 발동하면 열 초만 걸어 봐도 알 수 있습니다. Cyclops' Island는 플레이어와 캐릭터 사이에 더 많은 지오메트리를 두고 같은 대사를 시험할 수 있는 더 큰 장면입니다.

  • 자리캐릭터의 고정 위치와 바라보는 방향으로, 몸이 그 장소에 속한 것처럼 보이도록 고릅니다.
  • 트리거 반경접근 시 대사가 나오는 근거리 볼륨입니다. 방 건너편에서 대사가 재생되지 않도록 조정하세요.
  • 말풍선캐릭터의 머리에 고정된 월드 공간 요소로, 플레이어가 움직여도 대사가 붙어 있게 합니다.
  • 말풍선 지속 시간단어 수를 기준으로 초당 약 세 단어로 설정하세요. 대사를 자른 뒤에만 타이머를 늘리세요.

대화가 엔피시 행동에서 차지하는 위치

대화는 하나의 층입니다. 그 위에는 인지(무엇을 보고 들을 수 있는가), 결정(다음에 무엇을 할지 고르는 것), 애니메이션(그 선택이 몸에서 어떻게 읽히는가)이 있습니다. 말해지는 대사는 그 층들의 눈에 보이는 출력이지, 그 층들을 대체하는 것이 아닙니다. 경고를 말하면서 같은 방향으로 계속 걸어가는 엔피시는 대화 층이 애니메이션 층과 어긋난 것이고, 플레이어는 그것을 고장으로 읽습니다.

행동 트리를 쓴다면 대화는 트리가 이미 캐릭터가 대화 중이라고 결정한 뒤 도달하는 리프 노드에 속합니다. 트리는 접근과 방향 전환, 멈춤, 퇴장을 처리합니다. 대화 노드는 대사를 공급합니다. 이렇게 하면 대사 목록은 데이터 기반으로 유지되고 타이밍은 트리가 맡습니다. 트리를 다시 쓰지 않고 고정 대사를 생성된 대사로 바꿀 수도 있습니다.

플레이어 입력에 반응하는 AI 엔피시도 구조는 같습니다. 인지가 트리에 입력을 주고, 트리가 대화 노드를 고르고, 노드는 고정 대사를 가져오거나 런타임에 페르소나, 목표, 제약과 함께 모델을 호출합니다. 이때 Agent Sprite Forge가 유용합니다. 캐릭터의 시각적 정체성과 대화 정체성이 짝을 이루어 유지되므로, 그 목소리를 위해 만들어진 적 없는 스프라이트에 생성된 대사를 얹는 일이 없습니다.

고정 대사 목록이 생각보다 자주 더 나은 선택입니다. 대사를 여러 번 듣는 경우, 정보가 정확해야 하는 경우, 캐릭터가 보장된 상태를 가진 퀘스트 연쇄의 일부인 경우, 지연이 장면을 망칠 경우에 쓰세요. 입력이 열려 있고, 대사를 한 번만 듣고, 약간 틀린 답이 없는 답보다 덜 치명적일 때 모델을 쓰세요.

Mini World — 걸어 다닐 수 있는 장면에 캐릭터를 배치하고 대사가 놓일 위치를 확인하세요.

그 대사가 속한 세계로 걸어 들어가기

스프라이트는 설 자리가 없는 캐릭터입니다. 마지막 단계는 다른 곳에서 제공하지 않는 것입니다. 방금 만든 시트를 누군가 걸어 다닐 수 있는 세계, 작은 섬이나 행성, 비 내리는 길모퉁이에 넣으세요. 이 사이트의 모든 세계는 하나의 글로 된 설명에서 만들어져 플레이할 수 있는 페이지로 게시되었습니다.

FAQ

엔피시 대화 생성기란 무엇인가요? +

페르소나와 상황, 목표를 받아 비플레이어 캐릭터의 대사 후보를 돌려주는 도구 또는 프롬프트 패턴입니다. 초안을 만들 뿐이며, 작가가 여전히 고르고 잘라내고 다듬은 뒤 출시합니다.

엔피시 대화에 대규모 언어 모델이 필요한가요? +

아니요. 데이터 표의 고정 대사 목록만으로도 대부분의 엔피시를 감당할 수 있습니다. 특히 반복해서 듣는 대사나 퀘스트 상태에 묶인 대사는 그렇습니다. 입력이 열려 있고 대사를 한 번만 들을 때만 모델의 지연과 비용을 감수할 가치가 있습니다.

엔피시마다 대사를 몇 개씩 써야 하나요? +

캐릭터의 기능에 필요한 만큼만 쓰고 그 이상은 쓰지 마세요. 배경 엔피시는 두에서 네 개의 대사가 필요합니다. 퀘스트 제공자는 상태마다 대사 하나와 대체 대사 하나가 필요합니다. 대사 수를 세기 전에 상태 수를 세세요.

생성된 대사 사이에서 캐릭터 일관성을 어떻게 유지하나요? +

페르소나 블록을 고정하고 그대로 재사용하세요. 어휘, 문장 길이, 지식 한계, 금지 주제를 담은 캐릭터 시트를 두고, 대화 데이터 옆에 프롬프트를 저장해 이후 대사가 같은 입력에서 시작되게 하세요.

생성된 대화를 상업적으로 사용할 수 있나요? +

사용하는 모델이나 도구의 약관과 자체 검토 과정에 달려 있으며, 생성기만으로 결정되지 않습니다. 특정 제공자의 라이선스를 확인하고 출시 전에 사람의 검토를 거치세요.

게임에서 대화를 어떻게 시험하나요? +

걸어 다닐 수 있는 장면의 자리에 캐릭터를 배치하고, 트리거 반경을 설정하고, 승인된 대사를 말풍선에 묶은 뒤 플레이어를 말하는 속도로 걸어가게 하세요. 읽는 시간, 말풍선 관통, 대사가 출구를 주는지 확인한 뒤 승인하세요.

3D 게임 빌더로 돌아가기

31개의 완성된 3D 세계, 게임, 장면이 한 페이지에 모두 있습니다. 전부 플레이할 수 있습니다.

플랫폼: Neta Studio페이지: 엔피시 대화 생성기: 사람처럼 들리는 캐릭터 대사를 쓰는 법다음으로 읽기: /explore/guide/ai-npc · /explore/guide/npc-behavior · /explore/guide/what-is-a-non-player-character
×