Korea Digital Contents Society

Journal Archive

Journal of Digital Contents Society - Vol. 22 , No. 12

[ Article ]
Journal of Digital Contents Society - Vol. 22, No. 12, pp. 1969-1976
Abbreviation: J. DCS
ISSN: 1598-2009 (Print) 2287-738X (Online)
Print publication date 31 Dec 2021
Received 08 Nov 2021 Revised 30 Nov 2021 Accepted 30 Nov 2021
DOI: https://doi.org/10.9728/dcs.2021.22.12.1969

챗봇 기반의 인터랙티브 스토리 구현에 관한 연구
장수지1 ; 배병철2, *
1홍익대학교 게임학부 석사과정
2홍익대학교 게임학부 조교수

A Study of Implementing a Chatbot-Based Interactive Story
Suji Jang1 ; Byung-Chull Bae2, *
1Master Program, School of Games, Hongik University, Sejong-ro 2639, Korea
2Assistant Professor, School of Games, Hongik University, Sejong-ro 2639, Korea
Correspondence to : *Byung-Chull Bae Tel: +82-044-860-2074 E-mail: byuc@hongik.ac.kr


Copyright ⓒ 2021 The Digital Contents Society
This is an Open Access article distributed under the terms of the Creative Commons Attribution Non-CommercialLicense(http://creativecommons.org/licenses/by-nc/3.0/) which permits unrestricted non-commercial use, distribution, and reproduction in any medium, provided the original work is properly cited.
Funding Information ▼

초록

본 논문은 챗봇을 활용하여 실시간으로 NPC와 자유로운 대화를 할 수 있는 인터랙티브 스토리를 소개한다. 콘텐츠 구현을 위하여 유니티 게임 엔진과 챗봇 API인 Amazon Lex를 사용하였으며, 플레이어에게 채팅 형식의 UI를 제공하여 텍스트 형식의 대사를 입력받았다. 구현한 대화 시스템은 플레이어에게 입력받은 텍스트의 의도와 감성을 분류하여 NPC의 호감도와 답변이 변화하도록 설계하였다. 감성은 긍정, 부정, 중립 중 하나로 분류되며, 사전에 정의된 챗봇의 의도는 약 20종류이다. 본 인터랙티브 스토리의 사용성과 대화의 자연스러움을 평가하기 위해 총 7명의 참가자를 대상으로 간단한 예비 실험(pilot study)을 진행하였다. 그 결과, 약 57%의 참가자가 채팅 형식의 자유로운 대화 시스템 사용에 별다른 불편함을 느끼지 않았다. 또한, 모든 질문에 랜덤으로 답변하는 경우와 비교했을 때, 챗봇을 활용한 NPC와의 대화가 더 자연스럽다는 평가 결과를 확인할 수 있었다.

Abstract

In this paper, we introduce an interactive storytelling content that enables real-time conversation between NPCs and the player. To implement this content, we used the Unity game engine and Amazon Lex, a chatbot API. We also provided a chat-style UI for players to receive conversations in text format. The implemented dialog system that we propose is designed to classify the intention and sentiment of the text entered by the user to change the NPC's likability and response. The sentiment is classified into positive, negative, and neutral, and there are about 20 types of predefined chatbot intentions. As a result of an experiment with 7 participants, about 57% of participants did not feel any discomfort in using the chat-type UI conversation system. Also, we found that conversations with chatbots were considered to be more natural than the randomized version which answered all questions at random.


Keywords: Interactive storytelling, Chatbot, NPC dialog system, Intent classification, Multi-Ending content
키워드: 인터랙티브 스토리텔링, 챗봇, NPC 대화 시스템, 의도 분류, 멀티 엔딩 콘텐츠

Ⅰ. 서 론

스토리는 거의 모든 문화권에서 교육, 도덕적 가치 전달, 엔터테인먼트의 도구로써 활용되었으며, 정보 전달의 의미를 넘어서 효과적으로 스토리를 이해시키고 정서적 몰입을 이끌어내는 전달 장치로 다양한 스토리텔링 기법이 등장하였다[1]. 특히, 디지털 스토리텔링은 디지털 환경에서 소리, 이미지, 동영상 등 멀티미디어 요소를 적극적으로 활용하여 스토리를 전개한다. 효과적인 디지털 스토리텔링을 위해 다양한 서사 장치(예: 시점 변화, 사건의 재배치 등)를 사용할 수 있는데, 예를 들어, 플래시백(Flashback)은 현재의 사건이 전개되는 도중 과거의 시점으로 전환되어 과거에 일어난 일을 회상한다. 주로 미디어 분야에서 사용되며, 현재의 사건의 인과 관계를 설명하거나 캐릭터의 성격을 해명하는 도구로 효과적이다[2].

또 다른 기법으로 인터랙티브 스토리텔링이 있다. 전통적인 선형 스토리 구조와 달리, 인터랙티브 스토리텔링은 상호작용성을 바탕으로 능동적이고 가변적인 특징을 갖는다. 주로 컴퓨터 게임 분야에서 스토리 전개를 위해 활용되며, 인터랙티브 스토리텔링 구조를 갖는 게임은 플레이어에게 다양한 선택지를 제공하며 플레이어의 선택에 따라 다양한 열린 결말을 제공한다[3]. 인터랙티브 스토리텔링은 단순히 콘텐츠를 체험하는 것이 아니라, 플레이어의 선택에 따른 캐릭터의 행동으로 만들어지는 스토리이다. 이 때문에 플레이어가 같은 콘텐츠를 체험하더라도, 매번 다른 선택을 한다면 새로운 스토리를 경험할 수 있다[4]. 이러한 특징으로 인하여 인터랙티브 스토리텔링이 적용된 콘텐츠는 플레이어가 능동적으로 스토리 분기에 참여할 수 있는 환경을 제공할 뿐만 아니라 구축된 환경에 따라 스토리에 대한 몰입감과 흥미를 향상시킬 수 있는 여러 방안을 모색할 수 있다는 장점이 있다.

인터랙티브 스토리텔링 콘텐츠에서 플레이어의 선택을 제공하는 방법으로 게임 오브젝트, 카드 혹은 버튼 UI 등을 제공한다[5]. 플레이어가 고른 선택지에 따라 스토리 분기가 나누어지며 최종적으로 누적된 선택지의 결과에 따라 다양한 결말을 체험할 수 있다. 이때, 선택지의 내용은 대화의 대사가 될 수도 있으며, 게임 오브젝트의 특별한 의미가 될 수도 있다. 예를 들면, Bioware사의 게임 Dragon Age[6]는 NPC와의 대화에서 플레이어가 생성한 캐릭터의 종족이나 정치적, 성격적 성향에 따른 다양한 선택지를 제공한다. 이외에도, Bethesda사의 게임 The Elder Scrolls V:Skyrim[7]은 플레이어가 퀘스트를 어떠한 방식으로 수행할지에 대한 다양한 선택지를 제공한다. 플레이어는 NPC와의 대화를 통해 퀘스트를 해결하거나, 퀘스트와 관련된 아이템을 NPC에게 전달하지 않고 파괴하는 등의 다양한 선택을 할 수 있다. 반지하 게임즈에서 개발한 서울 2033[8]은 핵전쟁으로 멸망한 서울에서 생존하는 텍스트 어드벤처 게임이다. 특정 스토리 분기로 진입하기 위해서는 게임 진행 시 얻을 수 있는 스탯과 아이템이 필요하다. 획득한 스탯과 아이템에 따라 다양한 대화를 제공한다는 특징이 있다. 세 종류의 게임 모두 선택에 따른 결과를 엔딩에서 확인할 수 있다.

다양한 선택지를 제공하는 인터랙티브 스토리텔링 콘텐츠는 플레이어가 스토리에 개입할 기회를 제공할 뿐만 아니라 플레이어가 콘텐츠 속의 주체가 된 것 같은 느낌을 제공하는 장점이 있다. 그러나, 개발자의 입장에서 선택지가 많아질수록 개발 기간이 그만큼 늘어나며, 일부 허술한 스토리 분기를 생성할 수도 있다는 단점이 있다. 플레이어로서는 다른 분기에 비해 허술한 스토리로 진입하였을 경우, 그만큼의 재미를 보장받지 못한다. 또한, 선택지 시스템을 사용한 인터랙티브 스토리텔링은 사전에 정해진 스토리 흐름을 따라갈 수밖에 없으며, 플레이어에게 일방적으로 스토리를 전달하는 방식의 콘텐츠는 해당 콘텐츠를 반복적으로 체험하였을 경우 흥미와 몰입감을 유지하기 어렵다.

본 연구는 사전에 정의된 스토리 흐름을 따라가는 것이 아닌, 플레이어가 직접 스토리를 이끌어갈 수 있는 실시간 채팅 형식의 인터랙티브 스토리를 구현한다. 스토리 속 NPC의 실시간 대화 시스템을 구현하기 위하여 챗봇 API와 게임 엔진을 사용하며, NPC와 채팅 형식의 대화로 스토리를 전개하였을 때에 대한 사용 편리성과 대화의 자연스러움을 간단한 실험을 통해 평가 및 분석한다.


Ⅱ. 관련 연구

대화의 다양성을 위하여 기존 선택지 시스템에 새로운 요소를 추가한 대화 기반 인터랙티브 스토리텔링 콘텐츠 사례가 있다. 데브캣 스튜디오에서 개발한 RPG 게임 마비노기[9]는 기존의 선택지만 제공하는 대화 시스템과는 다르게 키워드 선택에 따른 대화 분기 시스템을 제공한다. 플레이어는 대화를 위한 선택지를 고를 수 있으며, 플레이어가 선택한 키워드에 따라 NPC의 답변이 달라진다. Bioware사의 Mass Effect[10]는 NPC와의 호감도에 따라 등장하는 선택지가 달라진다. 따라서, 해당 NPC와의 해피 엔딩을 체험하고 싶다면 NPC와의 긍정적인 관계를 유지해야 한다. 이는 대부분의 연애 시뮬레이션 콘텐츠에서 사용되는 방식이다. 이처럼 대화의 다양성과 확장성을 위하여 대화 시스템에 다양한 변형이 이루어지고 있다.

AI와 자연어 처리 기술의 발달과 함께 자연어처리 기술을 이용하여 생성된 대화를 기반으로 스토리가 전개되는 인터랙티브 스토리텔링 콘텐츠를 구축한 사례가 있다. 예를 들면, Facade[11] 시스템에서 플레이어는 친구 부부에게 저녁 식사를 초대받고, 시간이 지남에 따라 NPC 부부가 다투는 것을 목격한다. 이때, 플레이어는 키보드로 직접 대사를 입력하여 그들의 싸움을 중재하거나 부추길 수 있다. 최종적으로, 플레이어가 입력한 대사에 따라 결말이 달라지는 멀티 엔딩 구조를 갖는다. Facade 속 대화 시스템은 사전에 구축된 템플릿을 이용하여 플레이어의 입력 텍스트 속 의도를 분류하고, NPC는 의도에 따른 적절한 행동과 대사를 출력한. 이외에도, ‘Talk of the Town’이라는 프로토타입 게임[12]은 NPC와의 호감도에 따라 동적으로 대사를 생성하는 NPC 대화 생성 시스템을 제안한다. 그 밖의 최근 연구 사례로서 ‘Scheherazade’s Tavern’[13]에서 게임 속 NPC는 챗봇과 지식 모델을 활용하여 동적으로 NPC 대사를 생성한다. 세 게임 모두 NPC와의 대화에 초점을 두는 채팅 형식의 인터페이스를 사용한다. 이처럼, 플레이어가 콘텐츠의 스토리에 적극적으로 개입할 방법으로 자연어 처리 기술을 이용한 NPC와의 소통이 대화 기반 콘텐츠에서 중요한 역할을 하고 있다.

대화형 챗봇은 게임 외의 다양한 분야에서 콘텐츠 개발에 활용 가능하다. 우선, 교육 분야에서는 한컴로보틱스에서 제공하는 AI 챗봇을 사용하여 AI 초등 글쓰기 학습 어플리케이션을 구현한 사례가 있다. 플레이어는 AI 챗봇과의 대화를 통해 일기를 작성할 수 있으며, 부모의 도움 없이 자신의 생각을 문장화하고 맞춤법을 확인할 수 있다[14]. 또 다른 사례로, IBM 왓슨 챗봇을 활용하여 노동법 상담 시스템을 구현한 연구의 경우, 고용노동부 사이트에서 추출 데이터를 기반으로 채팅 형식의 상담을 제공한다[15]. <토끼전>은 고전 소설 토끼전과 챗봇을 결합한 인터랙티브 스토리텔링 콘텐츠이다. 챗봇의 트리 구조를 사용하여 고전 소설 토끼전의 스토리를 다양한 분기로 분해하고 이를 재조합하였다. 플레이어는 지도 형식의 퍼즐을 모으고 맞춤으로서 챗봇과 상호작용할 수 있다[16].


Ⅲ. 인터랙티브 스토리 설계 및 구현

실시간으로 NPC와 대화할 수 있는 인터랙티브 스토리를 구현하기 위하여 챗봇과 유니티 게임 엔진[17]을 사용하였다. 챗봇은 Amazon Web Services에서 제공하는 Amazon Lex API[18]를 사용하였으며, 유니티는 Unity 2019.3.7.f1 버전을 사용하였다. Amazon Lex의 경우, 한국어 버전을 지원하지 않기 때문에 플레이어의 입력 텍스트를 Amazon Translate API[19]를 사용하여 영어에서 한국어로 번역한 다음 챗봇의 입력값으로 사용하였다. 최종적으로 본 논문에서 구현한 인터랙티브 스토리는 유니티의 WebGL 빌드 옵션을 사용하여 웹사이트 접근을 통하여 배포하였다.


Fig. 1. 
A Scene for choosing a dialogue system

3-1 스토리 개요 및 시스템 설계

플레이어는 마을 외곽에 자리한 허름한 찻집의 주인이 되어 수상한 손님에게 차를 제공하고 자유롭게 대화를 나눈다. 이야기 속의 주인공 이름은 플레이어의 입력으로 결정되며, NPC의 이름은 ‘홍주’로 정해져 있다. NPC에게 이름을 물어보면, ‘홍주’라고 답해주며, 플레이어가 NPC에게 이름을 알려주었다면 이후 NPC는 플레이어의 이름을 부를 수 있도록 구현하였다.

플레이어는 제공되는 웹사이트 주소에 접속하여 본 논문에서 구현한 인터랙티브 스토리를 진행할 수 있으며, 마우스와 키보드를 이용하여 조작한다. 스토리가 진행되는 인트로 부분과 엔딩 부분은 말풍선 UI를 마우스의 왼쪽 버튼을 클릭하거나 스페이스바를 입력하여 진행하다. NPC와 직접 대화하는 부분은 대사를 입력하는 UI 창에 키보드로 대사를 입력한 뒤 엔터 키를 입력하여 진행한다.

스토리는 크게 인트로, 대화 시스템 선택, NPC-Player 대화, 결말의 4종류의 파트로 구성된다. 플레이어가 스토리를 시작하면 인트로 부분에서 간단한 개요를 텍스트 형태로 제공한다. 이후, 플레이어는 '꽃차' 혹은 '녹차' 중 어떤 차를 NPC에게 제공할지 골라야 한다. 만약, 플레이어가 '꽃차'를 선택하면 어떤 질문을 입력하여도 NPC가 랜덤으로 답변을 제공하는 대화 시스템이 선택된다. 반면, 플레이어가 '녹차'를 선택하면 챗봇 API를 활용한 NPC 대화 시스템이 선택된다.

대화 시스템 선택 이후, 플레이어는 대략 20~30 턴 동안 NPC와 채팅 형식의 인터페이스를 사용하여 대화를 진행한다. 플레이어가 ‘대화 멈추기’ 버튼을 눌러 사전에 콘텐츠를 종료하거나, 30번의 대화를 주고받았다면 대화 파트가 끝난다. 이후, NPC의 호감도 수치에 따라 행복한 결말 혹은 슬픈 결말을 감상할 수 있다. 전체적인 인터랙티브 스토리의 플로우 차트와 스토리 개요는 각각 그림2그림3과 같다.


Fig. 2. 
Interactive Story Flowchart


Fig. 3. 
Interactive Story Synopsis

3-2 시스템 구현

본 인터랙티브 스토리는 크게 유니티 게임 엔진을 사용하여 개발한 클라이언트 부분과 챗봇 API와 유니티 엔진을 연동하는 서버 부분으로 구성된다.

1) 클라이언트

인터랙티브 스토리텔링은 플레이어가 스토리의 전개에 적극적으로 개입할 수 있는 구조를 지닌다. 스토리 분기를 위해 여러 방법을 이용할 수 있지만, 본 논문에서는 Inkle 사에서 개발한 narrative scripting language인 유니티 에셋 Inky[20]를 사용하여 플레이어의 입력과 선택에 따라 여러 분기를 갖는 멀티 엔딩 스토리 구조를 구현하였다. Inky에서 기본적으로 제공하는 선택지 버튼 시스템 대신 별도로 플레이어의 입력을 텍스트 형식으로 받는 UI와 함수를 작성하였다.

본 논문에서 구현한 인터랙티브 스토리는 NPC와 Player 간의 대화를 통해 NPC의 호감도가 증가 혹은 감소하는 NPC호감도 시스템이 존재한다.

콘텐츠 속 NPC는 변화한 호감도 수치에 따라 긍정, 부정, 중립의 3가지 종류의 표정 중 하나로 변한다. 처음 NPC의 호감도는 20에서 시작하며 플레이어와의 대화를 통해 +2 ~ -2 범위 중 하나의 값으로 증가 혹은 감소한다. 모든 대화가 끝났을 때, 호감도 수치가 50점 이상이면 행복한 결말을 감상할 수 있으며, 50점 미만이면 슬픈 결말을 감상할 수 있다. NPC의 감정 변화에 따른 일러스트 변화는 그림 4와 같다.


Fig. 4. 
NPC Emotion Sheet and Likeability Score

NPC의 감정 변화는 플레이어의 입력 텍스트에 대한 감성을 분류하여 구현한다. 시스템이 문장의 감성을 판단하는 방법으로 Amazon Lex API의 감성 분석 모델을 사용하였다. 감성의 종류는 총 3가지로 긍정, 부정, 중립이 있다. 예를 들어, ‘오늘 날씨가 정말 좋네.’라는 문장이 입력으로 들어오면 시스템은 해당 문장을 긍정으로 판단하고 NPC의 표정을 긍정(positive) 일러스트로 교체한다. 반대로, 플레이어가 ‘아니, 정말 별로야.’라는 문장을 입력하면 시스템은 해당 문장을 부정으로 판단하여 NPC의 일러스트를 부정(negative)으로 교체한다. 그 외의 경우는 중립(neutral)로 판단하였다.

NPC 대화 시스템은 2가지 종류가 있다. 첫째는, 랜덤 답변을 생성하는 랜덤 대화 시스템이다. 사전에 약 100가지의 답변을 스크립트 형식으로 미리 작성하였으며, 플레이어의 질문에 랜덤으로 하나의 답변을 골라 NPC의 대사로 제공한다. 이 시스템은 대화의 자연스러움을 평가하는 실험에 대한 평가 기준으로 사용된다. 두 번째는, 챗봇을 활용한 대화 시스템이다. 챗봇 대화 시스템은 플레이어의 질문에 대한 의도(intent)를 사전에 정의된 의도 중 하나로 분류한다. 분류된 의도에 따라 미리 작성된 샘플 발화 중 하나를 골라 NPC의 대사로 사용한다. 본 인터랙티브 스토리에서 정의한 챗봇의 의도는 20종류이며, 그중 일부 예시는 표 1과 같다. 의도마다 대략 10종류의 샘플 발화(sample utterances)가 정의된다. 본 논문에서 사용한 Amazon Lex API는 플레이어의 입력 문장과 사전에 정의된 샘플 발화의 문장 중에서 가장 비슷한 문장을 찾고 그 문장이 속한 의도(inent)로 입력 문장을 분류한다. 이후, 해당 의도(inent)에 정의된 사전 답변 중 하나를 랜덤으로 골라 플레이어의 입력에 대한 결과로 제공한다.

Table 1. 
Example of Chatbot Intent and Dialogue Text
Sample Utterances Intent Dialogue Text
What would you like to drink? GetDrink What can you recommend?
What is your name? AskName You, first. What is yours?
How have you heen? AskRecentDay Pretty busy. How about you?
Do you have boyfriend? AskHasLover No, I don’t have.
Can you leave now? GetOut Why? I want to be more.
You are a monster, right? AskMonster What are you talking about? That’s rude.
Is there anyone you are friendly with? AskHumanthing Hmm...Once you are there.
Hang in there. It will be fine. ToEncourageNPC Thanks. You are so kind.
Yes, I think so. SayYes Oh, I didn’t know that you have the same thought.

2) 서버

서버와 챗봇을 포함한 각종 딥러닝 API는 Amazon에서 제공하는 클라우드 컴퓨팅 서비스인 Amazon Web Service[21]를 이용하였다.

본 인터랙티브 스토리를 구현하기 위해 사용된 Amazon Web Service의 API 종류는 크게 5가지이다.

  • 1. Amazon Simple Storage Service(Amazon S3) : 객체 스토리지 서비스로 클라이언트에서 웹 빌드한 Java Script 파일을 Amazon S3에 업로드하여 웹사이트 형식으로 콘텐츠를 배포하였다.
  • 2. Amazon Translate : 다양한 언어로 번역할 수 있는 신경망 기계 번역 서비스로 본 콘텐츠에서 플레이어에게 입력받는 한국어 텍스트를 영어로 번역한 다음 챗봇 API에 전달하기 위해 사용하였다.
  • 3. Amazon Lex : 자연어 처리(NLU) 기능을 제공하는 대화형 인터페이스를 구축하는 챗봇 API 서비스로 NPC와 Player 간의 실시간 대화 시스템 구현을 위해 사용되었으며, 현재 한국어는 지원하지 않는다.
  • 4. Amazon Lambda : 런타임 없이 코드를 실행할 수 있는 서버리스 컴퓨팅 서비스로 챗봇 API와 클라이언트와 연동하기 위해 사용하였다. 유니티의 UnityWebRequest 함수를 이용하여 Lambda에서 배포한 엔드포인트의 HTTP를 통해 데이터를 요청하면, POST로 수신한다.
  • 5. Amazon API Gateway : RESTfull API를 사용하여 실시간 양방향 통신 어플리케이션 구축을 도와주는 서비스로 본 콘텐츠의 백엔드 서비스 담당한다.

본 인터랙티브 스토리의 서버는 클라이언트에서 입력받은 플레이어의 대사를 챗봇 API로 전달하고, 이에 따른 입력 대사의 감성 수치와 분류된 의도의 종류, 의도에 따른 적절한 답변을 JSON 형식으로 다시 클라이언트에 전달하는 역할을 한다.

챗봇 API는 Amazon Lex를 사용하였는데, 현재 Amazon Lex는 한국어를 지원하지 않기 때문에 별도로 한영 번역 과정을 거쳐 챗봇 API로 전달된다. 전체적인 클라이언트와 서버 간의 상호작용은 그림5와 같다.


Fig. 5. 
Interaction Flow between Client and Server

예를 들어, 플레이어가 NPC에게 ‘혹시 짝사랑 중인가요?’라는 질문을 입력하면 신경망 기계 번역 서비스인 Amazon Translate API를 통해 ‘Are you in Love?’라는 문장으로 번역된다. 이후, 해당 문장은 텍스트의 의도를 이해하고 분류하는 딥러닝 서비스를 제공하는 Amazon Lex API를 통해 사전에 정의된 의도 중 하나인 ‘AskHasLover’라는 의도로 분류된다. 분류된 의도에 따른 적절한 대사는 사전에 작성된 분류에 따른 발화 중 하나가 랜덤으로 선택되어 플레이어에게 제공된다. 예시로, ‘AskHasLover’ 의도에 따른 답변으로 ‘글쎄, 괜찮은 사람 있으면 소개해 줄래?’라는 텍스트가 선택된다. 추가로, 플레이어의 입력 대사에 따른 NPC의 감정 변화를 구현하기 위해 Amazon Lex에서 제공하는 감성 분석 모델을 사용하여 해당 문장의 감성 분석 결과(긍정; 부정; 중립)를 같이 Unity에 제공한다.

클라이언트를 구현한 Unity 게임 엔진과 챗봇 API를 위한 서버의 데이터 전달 핵심 코드는 그림 6과 같다. Unity에서 제공하는 입력 필드(Input Field) UI를 통하여 플레이어의 입력 텍스트를 받는다. 이후, 챗봇 서버에 해당 텍스트를 전달하기 위하여 JsonUntility 라이브러리의 ToJson() 함수를 사용하여 Json 파일로 변환 후 Coroutine 함수를 이용하여 서버에 전달한다. 매 프레임마다 업데이트되는 Update 함수 대신 Coroutine 함수를 사용하면 서버로 데이터를 전송하고 결괏값을 반환할 때까지 일정 시간 기다릴 수 있다는 장점이 있다. 플레이어의 입력 텍스트를 담은 Json 파일과 챗봇 서버의 주소를 UnityWebRequest() 함수를 이용하여 전송한다. 챗봇 서버에서 해당 입력값에 대한 결과를 Json 파일로 Unity에게 전달한 데이터를 downloadHandle를 통하여 수신받는다.


Fig. 6. 
Unity and AWS communication core code


Ⅳ. 사용자 평가
4-1 실험 디자인

챗봇을 활용한 NPC와의 실시간 대화가 얼마나 자연스러운지 평가하기 위하여 총 7명의 참가자(남 5, 여 2)를 모집하여 간단한 예비 실험(pilot study)을 진행하였다. 참가자들은 제공되는 게임 웹사이트 주소를 통해 인터랙티브 스토리를 체험한 다음 온라인 설문지를 작성하였다. 총 실험에 소요된 시간은 콘텐츠 체험 및 설문지 작성을 포함하여 대략 50분 정도였으며, 실험 참가의 보상으로 1만 원 상당의 모바일 상품권을 모든 참가자에게 증정하였다.

예비 실험은 실험 참가자 수가 적기 때문에, 모든 참가자는 랜덤 모델과 챗봇 모델 두 가지 모두 참가하는 반복 측정(repeated measures) 방법을 사용하였다.

설문지의 문항은 총 3개의 문항으로 구성되었다. 첫째는 콘텐츠의 사용 편리성에 관한 문항으로, 채팅 형식의 자유로운 대화 시스템 사용에 불편함이 없었는지 조사하였다. 두 번째 문항은 대화의 자연스러움에 대한 평가로 NPC와의 대화 중 이상함은 없었는지 조사하였다. 마지막 문항은 열린 질문으로 자유롭게 본 콘텐츠에 대한 의견을 작성하도록 하였다. 사용 편리성과 대화의 자연스러움에 대한 문항은 1-5 사이의 점수를 선택할 수 있는 리커트 척도 방식으로 구성하였으며, 열린 질문 문항은 장문의 텍스트를 입력하도록 구성하였다.


Fig. 7. 
Examples of survey questions

4-2 결과 및 분석

전체적인 실험 결과를 정리한 표와 그림은 표2그림8 그리고 그림9와 같다.

Table 2. 
The average score of the experimental results
Model Version Ease of Use Awkwardness of Dialogue
Random 2.00 4.57
Chatbot 2.85 4.29


Fig. 8. 
Results of Ease of Use


Fig. 9. 
Results of Fluency of Dialogue

사용 편리성의 결과로 랜덤 모델의 평균 점수는 2점이고, 챗봇 모델의 평균 점수는 2.85점이었다. 두 모델 모두 ‘채팅 형식의 자유로운 대화 시스템 사용에 불편 또는 어려움을 느꼈나요?’ 질문에 ‘느끼지 않았음’ 결과를 얻었다.

대화의 부자연스러움 결과로 랜덤 모델의 평균 점수는 4.57점이고, 챗봇 모델의 평균 점수는 4.29점이었다. 이는 평균적으로 ‘NPC와의 대화에 이상한 점은 없었나요?’ 질문에 ‘많이 이상함’ 결과를 얻었다.

콘텐츠의 사용 편리성에 관한 결과로, 7명중 4명(57.1%)의 참가자가 채팅 형식의 자유로운 대화 시스템 사용에 별다른 불편함을 느끼지 않았다고 답변하였다. 대화의 자연스러움의 평가 결과는 랜덤 대화 시스템보다 챗봇을 활용한 대화 시스템이 좀 더 자연스러웠다는 참가자들의 의견이 더 많았다. 랜덤 대화 시스템을 사용한 NPC와의 대화는 질문에 대한 대답이 아닌 NPC의 혼잣말이 주를 이루기 때문에 대화한다는 느낌이 들지 않았다고 답변하였다. 반면, 챗봇을 활용한 대화 시스템은 대화가 이어지다가 어느 부분에서 뚝 끊긴다는 의견이 많았다. 또한, 참가자 대부분이 비슷한 질문과 대답이 반복된다는 느낌을 받았다. 열린 질문에 대한 참가자들의 의견으로 대화의 주제 선정이 쉽지 않아서 일정 시간 동안 입력을 하지 않으면 예시 질문이 주어지면 좋을 것 같다는 의견이 있었다.

우리는 본 실험을 통하여, 랜덤 대화 시스템보다 챗봇을 활용한 NPC와의 대화 시스템이 더 자연스럽다는 결과를 확인하였다. 그러나, 사전에 정의한 20종류의 의도(intent)는 참가자들이 입력한 대사의 의도를 충분히 반영하기에는 부족하였다. 참가자가 사전에 정의한 의도를 반영한 질문을 하면 NPC는 적절한 반응과 답변을 해주지만, 정의하지 않은 의도의 질문을 입력하면 NPC가 제대로 된 답변을 할 수 없으므로 대화가 끊겨버리는 문제점이 발생하였다.


Ⅴ. 결 론

본 논문은 챗봇 API를 활용하여 NPC와의 자유로운 대화를 제공하는 인터랙티브 스토리를 소개한다. 본 인터랙티브 스토리는 유니티 게임 엔진을 사용하여 클라이언트 부분을 구현하였으며, Amazon Web Service에서 제공하는 Amazon Lex API를 사용하여 서버 부분을 구현하였다. 또한, 본 논문에서 제안하는 챗봇을 활용한 대화 시스템은 플레이어의 질문에 대한 의도를 분류한 다음 사전에 작성된 여러 텍스트 중에서 적절한 답변을 선택하며, 플레이어의 입력 텍스트에 대한 감성을 긍정, 부정, 중립 중 하나로 분류하여 NPC의 표정과 호감도가 변화하도록 설계하였다.

총 7명의 참가자를 대상으로 간단한 예비 실험(pilot study)을 진행한 결과, 모든 질문에 랜덤으로 답변하는 대화 시스템보다 챗봇을 활용한 대화 시스템이 사용성과 대화의 자연스러움 측면에서 더 좋은 평가를 받았다. 그러나, 사전에 정의한 의도가 충분하지 않으면 같은 질문과 답변이 반복된다는 문제점을 확인할 수 있었다.

향후 연구로 사전에 참가자들의 동의를 받아 콘텐츠에서 생성된 질문과 답변 스크립트를 분석하여 참가자들의 의도를 분석한 후, 자연스러운 NPC와의 대화를 위한 의도 리스트를 구축하여 추가할 예정이다. 또한, 챗봇과 사전 학습된 대용량 언어 모델을 결합하여 플레이어가 사전에 정의되지 않은 의도의 질문을 하더라도 NPC가 적절한 답변을 생성할 수 있는 인터랙티브 스토리텔링 콘텐츠를 설계할 계획이다.


Acknowledgments

이 성과는 2021년도 정부(과학기술정보통신부)의 재원으로 한국연구재단의 지원을 받아 수행된 연구임(No. 2021R1A2C1012377).


References
1. P. J. Lewis, “Storytelling as Research/Research as Storytelling,” The Journal of Qualitative inquiry, Vol. 17, No. 6, pp. 505-510, June, 2011.
2. B. C. Bae and R. M. Young, “A use of flashback and foreshadowing for surprise arousal in narrative using a plan-based approach,” in Proceeding of the Joint international conference on interactive digital storytelling, Berlin, pp. 156-167, November, 2008.
3. M. Cavazza, and D. Pizzi, “Narratology for interactive storytelling: A critical introduction,” in Proceeding of the International Conference on Technologies for Interactive Digital Storytelling and Entertainment, Berlin, pp.72-83, December, 2006.
4. T. Eric and F. Ramsoomair, “Keys to Successful Interactive Storytelling: A Study of the Booming Choose-Your-Own-Adventure Video Game Industry,” The Journal of Educational Technology, Vol. 13, No. 3, pp. 28-34, December, 2016.
5. S. Bedoya-Rodriguez, C. Gomez-Urbano, A. Uribe-Quevedoy, and C. Quintero, “Augmented reality RPG card-based game,” in Proceeding of the IEEE Games Media Entertainment, Toronto, pp.1-4, October, 2014.
6. Dragon Age: Origins [Internet]. Available: https://www.ea.com/games/dragon-age/dragon-age-origins
7. The Elder Scrolls V:Skyrim [Internet]. Available: https://elderscrolls.bethesda.net/skyrim
8. SEOUL 2033 [Internet]. Available: https://www.banjihagames.com
9. Mabinogi [Internet]. Available: https://mabinogi.nexon.com
10. Mass Effect [Internet]. Available: https://www.ea.com/games/mass-effect
11. S. Dow, M. Mehta, E. Harmon, B. MacIntyre, and M. Mateas, “Presence and engagement in an interactive drama,” in Proceedings of the SIGCHI conference on Human factors in computing systems, New York: NY, pp. 1475-1484, April, 2007.
12. J. Ryan, M. Mateas, and N. Wardrip-Fruin, “Characters who speak their minds: Dialogue generation in Talk of the Town,” in Proceeding of the Twelfth Artificial Intelligence and Interactive Digital Entertainment Conference, California, pp. 204-210, October, 2016.
13. R. Aljammaz, E. Oliver, J. Whitehead and M. Mateas, “Scheherazade’s Tavern: A prototype for deeper NPC interactions,” in Proceeding of the International conference on the foundations of digital games, New York: NY, pp. 1-9, September, 2020.
14. H. U. Jin, J. H. Shin and G. D. Kim, “Suggestion of AI Elementary Writing Learning App Service based on Conversational Chatbot Character,” The Journal of Digital Contents Society, Vol. 22, No. 4, pp. 587-596, April, 2021.
15. S. H. Choi, J. Y. Kim, J. h. Song and S. j. Hong, “Labor Law Consulting System With IBM Watson Chatbot,” The Journal of Digital Contents Society, Vol. 20, No. 2, pp. 241-249, February, 2019.
16. Y. J. Kang and M. H. Lee, “Convergence of a Classical Novel and Computing Thinking through the Development of a Tokkijeon Chatbot - A Gamification Chatbot on an Open Source Chatbot Platform - ,” The Studies of Korean Literature, Vol. 70, No,1, pp. 29-64, April, 2021.
17. Unity [Internet]. Available: https://unity.com
18. Amazon Lex [Internet]. https://aws.amazon.com/lex
19. Amazon Translate [Internet]. Available: https://aws.amazon.com/translate
20. Inky [Internet]. Available: http://www.inklestudios.com
21. Amazon Web Services [Internet]. Available: https://aws.amazon.com

저자소개

장수지(Su-Ji Jang)

2015년~2020년 : 홍익대학교 게임학부 게임소프트웨어학과 (이학 학사)

2020년~현 재 : 홍익대학교 일반대학원 게임학부 석사 과정

※관심분야 : 인터랙티브 스토리텔링, 게임 인공지능, NPC 대화 시스템, 인디 게임

배병철(Byung-Chull Bae)

2009년 : 노스캐롤라이나주립대학교 컴퓨터학과 (공학박사)

2009년~2011년 : 삼성전자 종합기술원

2011년~2012년 : 코펜하겐IT대학 방문연구원

2013년~2014년 : 코펜하겐IT대학 시간 강사

2014년~2015년 : 성균관대학교 BK연구교수

2015년~현 재 : 홍익대학교 게임학부 조교수

※관심분야 : 인터랙티브 스토리텔링, 게임 인공지능, HCI