대형 언어 모델(Large Language Model, LLM) 기반 대화를 통해 경험에서 역동적인 캐릭터 상호작용을 만들어 보세요.
UEFN의 씬 그래프 persona_component와 페르소나 모디파이어의 조합은 플레이어가 개발자의 섬에서 음성 채팅을 통해 상호작용할 수 있는 LLM을 제공합니다. 음성이 있는 아이덴티티는 섬에 있는 비플레이어 캐릭터 (NPC) 역할을 하는 사용자 인터페이스(UI)의 아이콘으로 표시됩니다.
역동적인 캐릭터를 만들기 위해 이러한 기능을 조합하는 것을 대화라고 합니다.
LLM 인터페이스는 플레이어가 이러한 NPC와 대화와 상호작용을 맞춤화할 수 있다는 뜻으로, 모든 플레이 세션에서 독특한 경험이 만들어집니다. 이러한 경험은 플레이어가 카페에서 경쟁심 넘치는 바리스타와 상호작용하는 것부터 심술궂은 고양이가 주인을 찾도록 돕는 것까지 다양합니다. 캐릭터 프롬프트를 제공하여 이러한 캐릭터의 페르소나를 정의할 수 있습니다.
대형 언어 모델(LLM) 정보
LLM은 인간 언어를 처리하고 출력하도록 학습된 모델입니다. LLM은 언어가 어떻게 사용되는지를 보여주는 거대한 라이브러리라고 할 수 있는 방대한 텍스트 데이터 세트를 통해 학습합니다.
모델은 다음 텍스트 단위(토큰이라고 함)를 단계별로 예측하여 프롬프트에 대한 완전한 응답을 구축함으로써 언어를 생성합니다. 훈련 중 LLM은 알고리즘을 사용해 언어의 패턴과 관계를 학습합니다. 이러한 훈련 시스템을 머신 러닝이라고 합니다.
LLM의 기능
LLM:
언어를 처리하고 이해합니다.
텍스트를 생성합니다.
질문에 대답합니다.
텍스트를 요약하고 번역합니다.
UEFN의 페르소나 컴포넌트와 함께 사용하면 다음을 수행합니다.
플레이어에게 상호작용적 LLM 세션을 제공합니다.
입력에서 성격을 생성합니다.
플레이어와 NPC 간 스크립트가 없는 대화를 위한 메커니즘을 제공합니다.
플레이어가 페르소나를 들을 수 있도록 텍스트에서 오디오를 생성하고, LLM이 플레이어의 말을 들을 수 있도록 오디오를 텍스트로 생성합니다.
프로그램의 응답에 따라 이벤트를 생성합니다.
피직스로 할 수 있는 일
LLM 기반 기능을 사용하면 다음이 가능합니다.
페르소나 제작을 위한 설명을 입력합니다.
LLM의 응답에 따라 트리거되는 이벤트를 추가합니다.
페르소나를 NPC 캐릭터 정의를 사용하여 물리적 NPC에 바인딩합니다.
LLM 대화는 스크립팅된 단어에 의존하는 캐릭터 제작의 장벽을 없애, 반응하며 적응하는 캐릭터를 만드는 수단을 제공합니다.
이 동적 비헤이비어는 대화 장치로 만드는 사전 지정된 대화 및 옵션과는 다릅니다. 대화 장치의 경우 NPC 응답 방식의 핵심 비헤이비어를 수동으로 설정해야 하지만, LLM은 유기적이고 스크립팅되지 않은 대화를 생성합니다.
또한 해당 기능에는 플레이어가 페르소나 기반 NPC를 식별하고, 대화 시작 방법을 이해하고, 이러한 NPC와 대화할 때 알 수 있도록 기본 UI가 포함되어 있습니다.
캐릭터 프롬프트로 페르소나 정의하기
페르소나는 섬의 LLM 캐릭터가 가진 성격과 특징을 담아냅니다. 페르소나 생성의 핵심은 장치의 프롬프트와 팩트를 사용하는 것입니다. 프롬프트와 팩트는 NPC가 누구인지(어떤 역할을 하는지), NPC가 무엇을 아는지에 대해 컨텍스트를 제공합니다. LLM은 개발자가 정의하는 페르소나와 플레이어 입력을 등록하여 응답 역할을 수행합니다.
예를 들어, 다음과 같은 페르소나를 생성할 수 있습니다.
플레이어가 버튼을 누르도록 설득하려는 수상한 우주적 존재.
경쟁 가게의 문을 닫게 하려는 맹렬한 바리스타.
외계인이 주인을 납치했다고 확신하는 심술궂은 고양이.
플레이어에게 포트나이트 건설의 기초를 알려주는 재미있는 포트나이트 강사.
토끼 강도단을 반드시 피하겠다고 결심한 겁먹은 당근.
스테이트 오브 언리얼 2025 프레젠테이션에서 미스터 버튼 LLM 게임플레이 예시를 확인해 보세요.
캐릭터 정의당 하나의 페르소나를 만들 수 있습니다. 프롬프트를 사용해 섬에 있는 다른 페르소나를 알릴 수 있습니다.
다음은 프롬프트를 만드는 팁입니다.
명확한 아이덴티티, 값, 특성이 있는 페르소나를 정의하여 LLM이 수행할 역할을 이해하도록 합니다.
프롬프트를 모듈식 섹션으로 나눠 LLM이 아이디어를 명확한 청크로 분류하여 보다 효율적으로 참조할 수 있게 합니다. 아이덴티티, 출신, 동기, 대화, 게임플레이와 같은 섹션을 고려합니다.
설명은 짧고 구체적이고 관련성이 있도록 합니다.
필수적인 디테일의 경우 반복합니다. 팩트를 반복적으로 알리면 LLM이 요점을 더 잘 이해할 수 있습니다.
대화 예시와 캐치프레이즈를 제공해 LLM에 톤, 리듬, 반복적인 언어 패턴을 적용합니다.
LLM은 마크다운 구문이라는 작성 스타일을 통해 학습합니다. 이러한 학습 스타일 덕분에, LLM이 구문을 고려하여 프롬프트를 작성할 수 있습니다. 예를 들어, 이중 별표를 사용하면 강조를 위해 단어를 굵게 표시합니다.
패턴 인식에는 일관성이 중요합니다. LLM은 구문을 처음 처리할 때 등록합니다. LLM이 일치하는 구문을 추가로 인지할 때마다, LLM의 패턴 처리는 더 나은 강조를 위해 학습하고, 구문에 의미를 지정합니다.
성격 프롬프트
캐릭터의 핵심 성격 어트리뷰트와 캐릭터가 아는 정보를 정의하려면 성격 프롬프트를 추가합니다. 프롬프트에는 응답을 단어 10개로 제한하는 등, LLM의 처리 제약이 포함될 수 있습니다.
추가할 성격을 고려할 때는 LLM 기반 캐릭터를 어떻게 활용하고 캐릭터가 경험을 어떻게 향상시킬 수 있을지 고민해 보세요. 플레이어가 물어볼 수 있는 질문(예: "넌 왜 여기 있지?")을 예상해야 합니다.
제공할 수 있는 팩트의 수에는 제한이 없습니다. LLM은 개발자의 팩트와 플레이 세션 중 플레이어의 프롬프트를 받습니다. 이 모든 정보는 LLM이 플레이어에게 응답하기 전 LLM을 통해 파싱됩니다.
아래 표에는 성격 프롬프트 예시가 나와 있습니다.
| 페르소나 NPC | 프롬프트 예시 |
|---|---|
수상한 우주적 존재(미스터 버튼) |
|
당근 숨기기 |
|
이벤트 중 활성화되는 추가 프롬프트의 경우, Verse를 사용하세요. 예를 들어 플레이어가 버튼을 누르지 않고 방을 떠나려 하는 경우의 프롬프트 응답을 만들 수 있습니다.
캐릭터 정의의 프롬프트는 런타임에만 사용할 수 있습니다. Verse를 사용하면 동적인 이해를 위해 프롬프트를 추가할 수 있습니다.
프롬프트 편집기 도구를 사용하거나 섬을 플레이테스트해 페르소나가 어떻게 응답하는지 확인하고, 보다 확고한 결과를 위해 프롬프트에 반복작업을 실시하세요.
음성 모델
36개의 포트나이트 의상에 자신만의 음성과 페르소나가 추가되었으며, 앞으로 더 추가될 예정입니다. 이 포트나이트 캐릭터들은 별도 설정 없이도, 예상하는 그대로 답하고 반응합니다.
포트나이트 캐릭터를 선택하면 성격 프롬프트에 소통 방식, 목소리 톤, 캐릭터 원형, 유머 스타일 등 캐릭터에 대한 정보가 미리 채워집니다.
포트나이트 캐릭터를 선택하면 다음을 수행할 수 있습니다.
재생(Play) 버튼을 선택해 캐릭터의 음성을 듣습니다.
페이셜 애니메이션을 추가합니다.
중단 규칙을 추가합니다.
대부분의 포트나이트 캐릭터는 편집 가능한 성격을 가지고 있습니다. 즉, 기존 성격 특성 및 음성 특성 목록에 추가하거나, 성격 프롬프트에서 성격을 완전히 편집할 수 있습니다.
41.30부터 포트나이트 IP 캐릭터는 편집할 수 없습니다. 편집할 수 없는 포트나이트 IP 캐릭터의 전체 목록은 다음과 같습니다.
존시 요원
필리
붉은 파멸 조니
피시스틱
헤일리 스카이
코르
맨케이크
메카팀 리더
마이다스
이매진드
레이븐
트리거피시
지기
토마토 머리(Tomatohead)
영리한 폭탄병
포옹팀 리더
영웅 호프
규정 및 검토 절차
대화를 사용할 경우, 페르소나, 프롬프트 및 캐릭터 디자인은 포트나이트 개발자 규정, 에픽 커뮤니티 규칙 및 에픽 콘텐츠 가이드라인을 준수해야 합니다. 캐릭터 응답이 에픽의 포트나이트 개발자 규정을 준수하도록 모델 위에 안전 레이어를 추가했습니다.
대화 사용 규칙에 대해 자세히 알아보려면 포트나이트 개발자 규정의 1.22항을 참고하세요.
이러한 규칙을 위반하는 개발자는 계정 정지를 포함한 제재 조치를 받을 수 있습니다.
LLM 대화는 현재 어떤 브랜드 섬에서도 지원되지 않습니다. 브랜드 섬 제작에 대한 자세한 내용은 게임 컬렉션을 참고하세요.
프롬프트 편집기 도구 및 Verse API
시스템 및 캐릭터 프롬프트는 프롬프트 편집기 도구와 Verse를 통해 기능합니다.
프롬프트 편집을 시작하려면 NPC 캐릭터 정의를 생성하고 페르소나 모디파이어를 추가해야 합니다. 모디파이어는 LLM이 제어하는 페르소나 컴포넌트를 추가합니다. 이 모디파이어는 커스텀 NPC 캐릭터 유형에만 사용할 수 있습니다. 캐릭터 정의를 생성하여 뷰포트로 드래그하면 NPC 생성 장치(NPC Spawner)에 자동으로 연결됩니다. 캐릭터 정의에 대해 자세히 알아보려면 NPC 캐릭터 정의를 참고하세요.
모디파이어에는 성격 프롬프트를 추가할 수 있는 캐릭터 팩트 드롭다운이 포함되어 있습니다. 이 섹션은 프롬프트 편집기 도구에 대한 액세스도 포함합니다.
프롬프트가 오버라이드되는 것을 방지하려면 캐릭터 프롬프트를 캐릭터 정의 창이나 NPC 생성 장치의 디테일(Details) 패널에 추가하세요.
프롬프트 편집기 도구를 사용하면 페르소나를 테스트하기 위해 세션을 시작하지 않아도 되어 캐릭터 디자인을 빠르게 반복작업하여 페르소나를 만들 수 있습니다. 예를 들어, 페르소나에 프롬프트를 추가하여 레스토랑의 계산원으로 정의합니다. 응답에서 해당 캐릭터가 주방에서 솜씨를 갈고닦고 있음을 알 수 있습니다. 이를 조정하려면 계산대만 담당하는 직원에 대한 한 줄과 주방에서 근무하는 직원에 대한 한 줄을 추가하면 됩니다.
플레이어가 페르소나와 대화하려면 캐릭터 정의에서 커스텀 Verse 비헤이비어를 설정해야 합니다.
컴포넌트의 Verse API는 정의와 동일한 설정을 포함하지만, 다음과 같은 추가 옵션이 있습니다.
기본 런타임 외부에서 프롬프트를 생성합니다. 이는 이벤트 프롬프트용 옵션을 제공합니다.
런타임 시 프롬프트를 추가하거나 제거합니다. 이는 성격 변화나 지식 오염 등 발전하는 내러티브를 추가로 만드는 데 도움이 됩니다.
구조화된 출력을 생성합니다. 게임 종료 시점 등 게임플레이를 추가로 제어합니다.
페르소나 컴포넌트는 플레이어에게 지속되지 않습니다. LLM 세션은 게임 중 매 라운드가 끝날 때마다 지워집니다.
에디터와 Verse에 대해 자세히 알아보려면 프롬프트 편집기 도구 사용하기 및 대화 모듈 Verse API 레퍼런스를 참고하세요.
다음 단계
나만의 몰입형 페르소나 기반 NPC를 생성해 보세요. 진행하면서 커스텀 비헤이비어를 생성하는 방법에 대해 자세히 알아볼 수 있습니다!