I. 서론
시뮬레이션 게임이나 절차적 에듀게임 또는 interactive storytelling 등의 일반적 narrative system[1-3]들이 일관성 있는 스토리 따라 극적인 재미를 추구하는 것과는 달리, 외국어 교육 등과 같은 선언적 지식을 학습하기 위한 가상세계 기반 교육 시스템[4]은 실감나는 상황들 속에서 몰입적 교육 경험을 제공하는 것을 목표로 한다. 이러한 몰입형 교육 시스템의 성패는 가상세계에서 전개되는 교육적 상황들의 다양성과 사실성(fidelity)에 달려있다[5]. 본 연구에서는 이러한 교육학적 상황들의 공간적 측면에서의 다양성과 사실성을 최대화하는 시뮬레이션 방법을 개발하고자 한다.
우선 현실세계를 실감나게 모사하기 위해서는 그 속에서 벌어지는 물리적이거나 사회적인 다양한 현상과 복잡한 사건들을 실제와 유사하게 체계적으로 구현해야 한다 [6][7]. 이러한 가상세계는 객체(Object)들 간의 상호작용과 외부 환경 요인에 의해서 상황이 형성되고 구성된다. 수많은 사건들은 시간축을 따라 나열되면서 공간축과 더불어 모든 상황들의 역사적 맥락 (historical context)을 형성한다. 이러한 가상세계 상 황들 속에서 가상인간들 또는 학습자들은 다양한 경험을 하여 지식을 형성하고 그 지식을 토대로 판단하여 행위를 선택하고, 주변 환경의 다양한 변화에 적절하게 대처할 수 있게 된다[8][9]. 가상세계상에 존재하는 모든 객체들은 각자의 고유한 공간을 가지게 되며 공간들 사이에서도 다른 객체들을 포함하는 계층적인 구조를 가지고 있다[10]. 이러한 공간들은 상황 속에서 가상인간들이 존재하고 이동하고 다양한 행동을 하는데 토대가 된다.
본 논문에서는 가상세계의 상황을 구성하는 에이전트들의 행동의 공간적 측면을 모사하는데 필요한 지식 구조와 행동방법을 개발하는데 중점을 둔다. 먼저 공간적 측면을 표현하기 위한 네 가지 지식구조들 즉, 공간 분포를 2.5차원으로 표현하는 Contour Map(CM), 복잡한 공간관계를 표현하기 위한 Spatial Relation Graph(SRG), 객체들과 그들 사이의 관계에 대한 정보를 종합적으로 표현하는 Instance Graph(IG), 사건들을 시공간적 맥락 속에 위치시키기 위한 Spatio-Temporal Graph(STG)[11][12] 들을 개발한다. 상황의 시청각적 사실성(audio/visual realism)보 단 상황 전개의 다양성(variability)에 초점을 맞추는 면에서 기존의 가상현실 연구와 차별이 된다. 이러한 목표는 외국어 교육을 위한 몰입형 가정교사 시스템 요구에 기인한다. 이를 위해서 예기치 못한 돌발 상황들 (emergent situations)을 최대화하면서 저작 확장성 (authoring scalability)을 확보하는 것이 긴용하다[13]. 또한 기존 연구에서 개별적으로 구현되어 있던 CM, IG, SRG, STG의 구조를 서로 연동시켜 행동 스케쥴링과 priority queue[14]를 더해 event planning을 실행하는 구조를 구현한다.
먼저 IG에는 사건과 행위의 주체로서의 객체들의 존재, 상태, 특성을 나타내고 상황들의 공간적 측면은 거리와 방향과 같은 기본적인 내용은 CM에 그 외의 통로, 공간 속 객체 존재 유무 등과 같은 복잡한 공간관계들은 SRG에 표현된다. 객체의 구성관계는 IG, SRG 양쪽 모두에 표현되지만 구성요소의 상세한 공간적 구조는 SRG에 표현된다. STG는 가상세계를 객체들과 그들 간의 관계의 변화를 사건의 흐름에 따라 종합적으로 모사한다. 사건의 전개를 객체들의 행동을 기본 단위로 시간에 따라 표시하여 가상 세계에 역사적 맥락을 제공 한다.
한편 가상인간(에이전트)들의 개별적 지식을 구축하기 위해 역사적 상황을 체계적으로 표현하기 위한 지식 구조로서도 사용된다. 이러한 지식을 바탕으로 가상 인간들은 단순히 정해진 절차를 따라가는 것이 아닌 행동을 자주적으로 계획(planning)하게 된다.
이러한 구조들을 종합적으로 적용하여 공간적 행동을 수반하는 상황에 능동적으로 대처하는 방법을 개발한다. 이를 위해 에이전트가 plan을 실현하는 알고리즘을 priority queue 에 기반하여 개발한다. 이러한 지식구조들과 행동 방법을 예제상황에 적용하여 가상인간의 지능적 행동의 실현가능성을 보여준다.
Ⅱ. 관련연구
1. 시공간 데이터
시공간 데이터는 시간 흐름에 대한 시간 정보와 공간에 대한 정보가 합쳐져 객체가 시간의 흐름에 따라 공간상의 변화를 기록한 데이터이다[14]. 예를 들면, 태풍의 이동 경로를 기록하는 재난 데이터가 대표적인 시공간 데이터라고 할 수 있다. 시공간 데이터의 분석은 시간에 따라 지도 위에 점을 찍어가며 데이터를 표현하고, 이를 이용하여 시간에 따른 상관관계와 패턴을 찾아내는 과정으로 시공간 데이터를 분석해왔다[15]. 하 지만 위와 같은 시스템에서는 처리해야 할 행위가 한정되어 있으며, 시간에 따른 변화의 의미 등을 표시할 수 없다. 우리 시스템에서 사용되는 STG의 데이터 형식도 시공간 데이터베이스를 바탕으로 만들어져야 한다. 이는 시간과 공간에 대한 데이터들을 저장하고 이를 처리할 수 있는 데이터베이스를 통해서 이를 계산하고 평가하기 위함이다. 이런 기본적인 데이터베이스를 전제로 해서 STG는 설계되고 구체화 되어야 한다[11].
2. 2.5 차원 공간 표현
2.5차원 표현은 3차원 공간을 2차원에서 나타내기 위한 하나의 방법이다[16][17]. 이러한 표현법은 일상 생활에 쓰이는 지도에서 흔히 볼 수 있다. 2차원의 평면 이미지에 등고선과 같이 높이에 따라 색깔을 달리하여 입체적으로 표현하고 수직 방향으로 이동을 예외적으로 표현하게 된다. 기존의 2.5차원 표현은 정적인 공간 위치 표현이 주로 이루어져왔지만 CM과 STG에 서의 표현은 실제 세계에서 일어나는 대부분의 행위들이 2차원에서 일어난다는 사실에 기초하여 동적인 공간 위치 표현을 직관적으로 표현하고자 한다. 예외적으로 포물선이나 대각선 운동 같은 복잡한 운동은 유형별로 따로 처리한다. 결과적으로 복잡한 3차원 공간정보를 2.5차원으로 간략화 함으로써 효율적인 표현이 가능하게 된다. 여기에 중력, 공기, 빛과 같은 외부 환경 변수들을 추가하여 실제 세계에 존재하는 물리 현상들을 종합적으로 표현하고자 한다.
중력 : 중력의 경우 예시 상황 속에서 행동(Action)이 일어나기 전과 후를 물체간의 SRG의 관계 링크가 변화됨으로써 중력이 작용된 결과를 나타낸다. 이를 위해 지구상의 모든 객체에 중력이 아래로 작용하도록 CM에 표시된다.
공기 : 공기의 경우 등고선을 사용한 기압의 분포도와 고도에 따른 공기밀도로써 나타낸다. 그 외의 기체들로서 연기나 황사 등도 표시된다. 에이전트가 이동할 때, 경로 상에 연기가 퍼진다면 이를 피해 Re-planning을 통해서 경로를 변경하는 등 다양한 상황 표현에 활용할 수 있다.
3. 인터랙티브 스토리텔링
기존에 존재하는 인터랙티브 스토리텔링 기반의 게임들은 큰 스토리라인을 중심으로 각 상황마다 분기점을 주어 유저의 선택에 따라 다른 결과들을 경험함으로써 몰입감을 준다[18-20]. 하지만 상황을 전개함에 있어 이전 상황과의 연관성이 있어야하고 개발자가 미리 만들어놓은 분기점으로만 진행할 수 있기 때문에 다양한 상황을 표현하기에 한계가 있다. 본 연구에서는 교육학적 경험을 위한 시뮬레이션을 위해 보다 다양하고 예측 못한 상황(emergent situation)[1][2]을 표현해야 한다. 여기에서 사용자는 상황을 주도하는 것이 아닌 주어진 상황을 경험할 뿐 상황을 변화시키는 것은 극히 제한적이다. 본 연구에서는 상황의 다양성과 예측 못한 상황들을 표현하기 위해 상황의 재활용과 파급효과를 사용한다. 재활용이란 최소 단위의 상황 요소들 (schematic events) 을 준비해놓고 변화하는 배경세계에 따라 구체화하고 행동 스케쥴링을 함으로서, 같은 장소나 환경에서도 다양한 상황이 연출된다. 파급효과는 가상인간 여러 명이 각자 planning에 의한 결과가 서로에게 영향을 주어 예기치 못한 다양한 결과가 나타나게 된다.
Ⅲ. 공간적 지식표현 구조들의 개요
1. Contour Map
가상현실 공간의 배치를 나타내기 위한 CM은 2.5차원으로 표현한 공간으로 건물, 나무, 정류장, 버스와 같은 객체들이 점유하는 공간을 표시함으로써 원시적 공간 속성들, 즉 평면적 범위 및 높이를 표시한다. 위치와 고도들이 직접적으로 표시되고 객체 상호간 거리 및 방향 등이 추론될 수 있다.
수평 방향 외의 치수와 이동은 기본적으로 수직으로만 허용하고 그 외의 방향은 포물선이나 나선형 등의 정형화된 이동만 예외적으로 허용하기로 한다. 구체적으로 객체의 높이를 색상의 명도 차에 의해서 나타내게 된다. [그림 1]에서처럼 객체의 높이에 따라 color coding하는 방식을 사용한다[11].
그림 1. 2.5차원 높이 표현
2.5차원에서 높이에 대한 기준점을 마련하기 위해서 [그림 2]와 같이 바탕을 등고선 형식으로 표현하게 된다. 각각의 등고선도 하나의 객체와 같이 표현함으로써 ST 그래프에서는 고도가 일정한 높이의 디스크를 층을 이루어 쌓아올려 전체 높이를 이룬다. 이때 각각의 디스크는 동일한 높이를 가지게 되고, 이러한 디스크들이 층을 이루어 쌓이는 형상을 가짐으로서 높이의 차이를 표현하게 된다. 이렇게 함으로써 3차원 공간의 복잡한 객체들을 추상화하여 2.5차원 상에 간단하게 표현할 수 있고, 객체 이동이나 충돌의 검출도 가능하다.
그림 2. CM 그래픽 표현
2. Spatial Relation Graph
지역의 명칭과 범위처럼 인위적으로 정해진 공간 또한 [그림 3]에 표현된 것처럼 계층구조를 가질 수 있고, 어느 지역에 속해있거나 어느 지역들과 관련되어 있는 지 표시된다. [그림 3]의 계층구조를 다음과 같이 표현할 수 있다.
Earth ∋ Asia ∋ South Korea ∋ Daegu ∋ Buk-gu = {Kyungpook uni, … , }
그림 3. SRG의 관계도
이와 같이 공간을 계층적으로 표시함으로써 동일 레벨의 공간에서 서로 만나거나 객체의 위치를 찾을 수 있다. [그림 3]를 보게 되면 건물 내부구조가 내부 공간들 사이의 수많은 관계가 계층적으로 표시되어 있다. 건물이 방 3개, 화장실 2개, 거실, 부엌이 구성되어 있다고 가정을 해보자. 방은 내부 공간을 제공하는 hollow object와 열고 닫는 기능을 하는 door(object)가 합쳐진 composite object이다. 방1의 구조상 한 단계 낮은 레벨의 (부속)화장실이 있고 방 1과 방 2가 동일 레벨로 Door로 연결되어 있다. 이러한 건물내부에서의 공간관계는 구성된 방의 속성의 하나로 계층에 대한 Level 값을 할당하여 구별한다. 예를 들어, 학생(A1)이 고층건물 내에 다른 강의실을 찾아간다고 가정할 때 단순히 CM만으론 건물 외부만 나타나므로 건물 내부의 복잡한 구조를 따로 구별할 수 있는 방법이 필요하다. 말하자면, A1이 Level3의 방 3에서 방2로 이동하기 위해선 현재 위치하고 있는 공간에서 Door3(D3)의 존재를 확인 후 D3의 위치로 이동해서 D3이 닫혀 있다면 열고 복도로 나간 후 SRG를 이용하여 2층 복도와 1층 복도를 연결하고 있는 Stair1을 이용하거나 승강기를 이용하여 1층 복도로 이동 후 방2로 이동 후 D2를 필요에 따라 열고 들어간다. 이러한 공간에 대한 Level은 IG에서 방의 속성에서 확인이 가 능하다.
각각의 공간은 지표면 G가 Level 0의 값을 가지고 있고 tree depth가 증가할 때마다 1씩 값이 증가되어서 가지게 된다. 각각의 공간은 자신과 직접 연결된 공간에 대한 정보만 가지고 있다. 따라서 간접적 연결은 필요에 따라 직접적 연결 정보를 조합하여 얻어야한다.
3. Instance Graph
배경세계를 구성하는 객체와 관계들과 그것들의 존재와 상태를 표현하는 지식구조 IG이다. [그림 4]에서 IG는 기본적으로 속성, 기능, 구성으로 이루어져 있다. 속성에는 객체의 존재(및 수량), 상태, 기능, 구성이 포함되고 객체 간의 관계들에 관한 내용을 표시한다. 존재는 객체가 생성된 시점부터 소멸될 때까지 지속되는 생명선으로 나타낸다. 상태는 Agent의 경우 sick, tired, hungry 등이고 door일 경우 닫혀 있거나 열린 상태가 포함될 것이다. 기능은 Agent의 domain을 이루는 인간의 경우 기본동작들로 see(), talk(), walk(), eat(), think() 등이 필요하고 추가적 행위들이 주체와 객체에 대한 입장에 따라 정의된다. 예를 들어, door와 관련해서 open(), close()과 같은 행위 또는 현상들이 규정된다. 구성은 객체의 구성요소와 그들 사이의 관계로 나타낸다. 예를 들어, desk일 경우 구성요소는 panel 한 개와 leg 네 개로 구성되어져 있다. panel에 leg 네 개가 각각 수직으로 nail이라는 object로 연결되어 있다고 표시할 수 있다. 관계는 또한 물리적, 사회적, 심리적, 관계를 포괄한다. 이 구현에서는 앞서 말한 그래프 들에 표시된 바와 같이 여러 측면들에서의 관계들을 연동해서 사용하여 객체의 상태, 위치, 공간관계 등에 대한 수치들을 실시간으로 표시하고 있다.
IG로 표현되는 개체들과 그들 사이의 관계를 보여주고 있다. 예를 들어 고객 에이전트가 자전거 가게에서 판매자 에이전트에게서 자전거를 구매하게 되면 그 순간부터 소유 관계가 바뀌게 되며 그 자전거를 처분할 때 까지 지속됨이 표시된다. 그 외에도 에이전트 간의 신뢰, 사랑, 우정과 같은 심리적 관계 그리고 객체들의 구성과 함께 상태도 표시되게 된다. 이러한 구성은 관련 객체들이 SRG에서 물리적 객체들 사이의 공간적 관계를 표시하기 위해 중복적으로 사용될 수도 있다. 그 외의 공간적 관계들 중 일부 중요한 것들은 SRG에 추상화된다. 도로와 빌딩 객체는 공간객체로서[9] IG에서는 유사하게 표시되지만 평면과 입체공간의 차이는 SRG와 CM에서 상세히 표현된다. 건물 내부구조 등이나 복잡한 공간관계들은 추가로 IG에 표현된 건물 속성값 과 SRG에 표현된 관련 데이터를 함께 참조해야 한다.
예를 들어 주문한 물건을 연구실로 배달 받은 후 집으로 가지고 가는 경우에 필요한 이동에 관련된 공간적 정보를 포함한 배경세계의 수많은 정보를 필요로 한다. [그림 4]에서 음영으로 처리된 부분이 IG에 표현된 객체들과 관련된 사건들이 표현된 STG의 일부분을 보여 준다. [그림 4]에서 인식은 사건진행에서 중요한 부분이지만 본 논문의 연구범위를 벗어난다[21].
그림 4. IG에 표현된 객체와 관계 및 관련된 STG
Ⅳ. 에이전트의 행동 스케쥴링
현실 세계에선 업무를 수행하는 중에 예기치 않은 수많은 상황들에 부딪히게 된다. 하지만 업무의 담당자들이 이러한 상황들을 모두 사전에 예상하여 계획하는 것은 불가능하다. 따라서 이러한 예상치 않은 돌발 상황들에 실행단계에서 대처할 수 있도록 하기 위한 구현 방법으로서 공통적인 배경세계를 매개로 개별 사건들이 유기적으로 연계되는 방법을 사용한다[22][23].
기본적으로 이벤트의 계획은 목표(Goal)를 만족하는 전제조건(precondition)인 세부사건(sub event)들을 실제 실행할 수 있는 행동(Action)에 해당하는 단말노드(leaf-node)가 될 때까지 재귀적으로 분해하여 만들어지고 최종적으로 행동들의 연쇄로 구성된다[24]. 이 때 전제조건이 필수적이냐 선택적이냐에 따라 검색경로가 달라진다. [그림 5]과 같은 과정을 통해 Goal Event에 대한 행동들이 Event Queue에 역순으로 들어가게 된다.
그림 5. 에이전트의 이벤트 스케쥴링
행동들 단위로 Event가 구성되고 각 Queue는 각 에이전트의 행동계획에 상응하게 된다. 기존에 실행 예정인 Event보다 우선순위가 높은 Event가 생길 시 관련한 행동들을 적절한 queue들에 interrupt로 하고 그에 따라 아래 [그림 6]과 Re-planning을 함으로써 돌발 상황을 유연하게 구현할 수 있다. interrupt는 Event 또는 Action 단위로 생길 수 있다. 또한 Event는 안에 속한 행동들이 Event 단위로 통째로 순서가 변경될 수 있지만 Event를 구성하는 개별 행동들 간의 상대적 순서는 변경될 수 없다. 기본적으로 planning은 선형구조가 아닌 tree 구조로 구성된다.
그림 6. 행동 중 예외 상황에 대한 Re-planning
기존에 계획했던 이벤트를 실행 중에 예외 상황으로 interrupt가 발생하여 다른 이벤트를 먼저 실행하고 난 뒤에 중단된 부분에서 다시 실행을 할 경우 이전에 실행을 완료했던 부분이 외부 요인(ex. 다른 에이전트)에 의해 변경되어 조건이 만족되지 않는다면 Re-planning을 해서 만족되지 않는 부분을 다시 실행하게 된다[25].
Ⅴ. 구현 및 적용 결과
본 구현의 목표는 앞서 언급한 정보표현구조, 객체와 공간 모델링 방법, 행동 모델링 등을 통합적으로 사용하여 가상세계 속에서 가상인간들의 공간적 활동을 시뮬레이션 하는데 있다. 기본적으로 CM, IG, SRG와 STG 등의 네 가지의 정보구조들은 유기적으로 연계되어 같은 물리적 세계의 다른 측면들을 상호 보완적으로 표현한다. 구현에는 Visual C++(MFC) 와 Open GL을 사용하였으며, 시간에 따른 객체에 관한 정보와 지식을 데이터베이스의 틀을 벗어나 유연하게 저장하기 위해 메모장을 이용하여 구현하였다.
공간 정보가 구체적으로 여러 정보구조들에 걸쳐 어떻게 표현되고 활용되는지를 예제 상황을 통해 살펴보자. 각 상황 속 등장하는 객체들은 Human#1(H1), Desk#1(D1), Coffee pot#1(CP1), 외에 추가로 Building#1(Bd1), Room#3(R3), Floor in room#3(F), Door#3(Dr3), Lift#1(L1), 1st floor hall(F1), 2nd floor hall(F2), Stair#1(St1), Gate#1(G1) Bus#1(B1), 그리고 Ground(G) 와 Bus stop#1(BS1)이 포함된다.
예제상황들 중 첫 번째는 중력과 복잡한 공간관계가 관련된 상황이다. H1이 R3에서 F2로 이동 중에 R3 안에 있던 D1 위에 놓여있는 CP1의 케이블에 다리가 걸려 CP1이 바닥에 떨어지는 상황이다. 이러한 상황을 모사하기 위해서는 기본적으로 CP1이 D1 위에 D1은 F 위에 있는 사실, CP1의 코드와 소켓간의 연결여부 등은 SRG에 표현되고 객체들의 공간적 분포와 중력은 CM에 표시되어있다. 중력 외에 객체(내부)의 저항력이나 가상 인간의 힘 등은 물체에 작용하면 물리법칙에 따라 이동, 파손 등의 여러 가지 현상으로 나타난다. 구체적으로 D1 위에서 CP1 이 떨어지고 담겨있던 물이 쏟아지는 현상이 연쇄적으로 나타난다. 중력의 작용의 결과로, CP1으로 부터 쏟아지는 액체는 CM에 반영되고 SRG상에서 on(CP1, D1)가 on(CP1, F)로 변화될 것 이다.
두 번째 상황은 학생이 학교에서 집으로 가기 위해 시간에 맞추어 버스정류장으로 가는 상황이다. 첫 번째 상황과 같은 우연한 동작이 아닌 경우에는 에이전트가 목적을 달성하기 위해서 먼저 행동 단위로 planning을 하게 된다[12]. 이에 필요한 정보들을 살펴보면, H1이 버스를 탑승하기 위해선 자신의 현재 위치와 버스정류장들의 위치, 타고자 하는 버스의 경로와 운행스케줄을 알아야 하고 현재 위치에서 가장 가까운 버스정류장을 찾게 될 것이다. 그리고 고려해야 할 사항으로 H1의 걸음속도, B1의 이동 속도, 도로상태, 날씨 등을 고려해야 한다. 현재 H1이 R3에 있다고 가정을 하면 R3는 F2에 있다는 걸 [그림 7]에 주어진 SRG를 통해 알 수 있다. H1이 BS1으로 가기 위해서는 F2의 level을 BS1의 level(L1)과 같아지도록 먼저 H1이 L1으로 이동해야 한다. H1은 R3에서 F2의 복도로 이동하기 위해 필요한 행동(walk())를 실행한다. 방을 나가기 위해 먼저 Dr3 이라는 공간객체를 통과하기 위해서 open()/close() 기능을 실행해야 한다. 3절에서 상세하게 보여준 IG에서 표시된 Dr3 의 상태에 따라 필요하면 H1이 open()을 정상적으로 실행하게 되면 Dr3은 open 상태로 변하게 된다. H1이 Bd1을 나오기 위해서는 F1의 G1을 통해야 건물 밖으로 나갈 수 있기 때문에 먼저 승강기 또는 계단를 통해서 F1로 내려가야 한다. 이때 L1 대신 St1을 선택하기 위한 조건은 예를 들어, 정전이거나 L1의 너비보다 더 큰 물건을 운반해야 되는 경우를 들 수 있다. 정전여부나 물건의 상대적 크기는 건물의 상태를 표시한 IG와 공간적 분포를 표현한 CM에서 각각 인식할 수 있다. 이때 SRG에 표현된 L1의 연결 관계를 통해 아무 층으로라도 이동할 수 있음을 알 수 있다. 그리고 소재링크를 확인해보면 Bd1과 목적지인 BS1이 함께 G상에 위치한다는 걸 알 수 있다. H1은 소재링크를 검색하며 자신이 현재 속해 있는 공간과의 Level이 근접해 있는 연결된 공간을 찾아 한 층씩 이동하며 G로 이동할 수 있다. 다시 말해, 공통된 공간 G까지 Level3에서 Level0으로 단말노드에서 루트로 이동했다면 G에서는 Level0에서 Level1로 역순으로 구체화하여 목적지 S1로 이동을 하면 된다.
그림 7. SRG의 계층적 표현
일단 planning이 끝나면 목적지까지 이동하기 위해 필요한 행동들을 순서에 맞추어 [그림 8]에 보는 바와 같이 Queue에 넣어 실행한다[12]. 즉, 버스를 타기 위해 필요한 행동들로는 see(), talk(), walk(), hop(), open() 들이 필요하다. 그 외에 주위상황에 따라 search(), wait(), talk(), close() 등의 행동들이 필요할 수 있다. 예를 들어, 에이전트가 길을 걷다가 구덩이에 발을 접질렸을 경우 부상으로 인해 walk()가 limp()로 되어 속도가 느려지거나 걷지 못할 수 있다. 이러한 객체의 상태는 IG에 표현되고 확인할 수 있다.
그림 8. 행동 단위 event planning
이렇게 만들어진 Event Queue는 실행되고 있는 도중에도 condition이 변경되면 re-planning을 통해서 변경될 수 있다. 예를 들어, 에이전트가 버스정류장까지 이동하는 중 자주 다니던 도로가 공사 중임을 발견한 경우 에이전트 지식 속의 도로상태가 갱신되고 우회로를 찾기 위해 SRG를 검색하여 일단 현재 위치로부터 목표 위치를 포함하는 장소로 갈 수 있도록 re-planning을 하게 된다. 결과적으로 에이전트에게 미리 입력한 행동만을 실행하는 것이 아닌 실행 중에도 기존의 상태와 달라진 상태를 비교하여 예기치 않은 상황에는 관련 지식 속의 IG의 상태들과 SRG의 위치정보를 기반으로 re-planning을 함으로써 동적인 대처가 가능하다[12][22]. 이에 관련해 변경된 데이터는 STG[11]를 사용하여 관련된 에이전트의 지식에 저장되어 추후 planning에 이용되게 된다. 예를 들어, 버스를 타기 위해 처음 가보는 길과 버스 시간을 알게 되었다면 다음에 다시 그 버스를 타기 위해 그 전에 이용했던 길과 버스 시간을 이용 가능하다. STG에의 저장 시점은 필요에 따라 Zoom in/out을 가능하기 위해서 특정 부분이 시작될 때와 종료될 때 저장하고 있다. [그림 9]과 같이 여러 사건 단위를 계층적으로, 먼저 각각의 Event 로부터 Event를 구성하는 Sub Events 로 재귀적으로 쪼개지고 마지막으로 최소단위인 Actions 들의 단위들에 대해 시작부분과 종료부분을 저장하고 있다. STG에는 Event 과거와 현재뿐만 아니라 예정되거나 예상된 미래의 Event 또한 기준시점이 다를 뿐 동일한 형태로 표시 된다.
그림 9. STG에서 Events 표시
각각의 저장시점은 [그림 10]처럼 STG의 각 프레임 상응하는 CM이 존재하며 의미론적으로 연결된 프레임들이 하나의 사건을 구성한다. 각 프레임마다 저장하고 있는데이터를 이용하면 상황들을 연속된 형태로 구성해낼 수 있다. 측면에서 볼 때는 각 사건의 시간적인 흐름이 (관찰 시간 단위에 따라) 보여지게 되고 정면에서 볼 때는 시간축이 압축되어 관련된 모든 객체들이 압축되어서 보이게 된다. CM에 기반한 입체적 animation과 함께 세 개의 관점에서 가상 인간의 지식상태를 나타내는데 사용할 수 있다. 정면과 측면 방향에서의 관점은 개념적인 지식에 해당한다. 결과적으로 입체적인 그림책과 유사한 형태로 나타난다.
그림 10. STG에서 CM 표시
[그림 11]는 두 번째 상황의 한 시점으로서 가상 인간이 방을 빠져 나온 순간을 STG 상에서 표현된 모습 이다.
그림 11. 가상인간이 방에서 빠져나온 부분 표시
[그림 12]은 가상 인간이 건물을 빠져나와 버스정 류장을 찾아가고 있는 시점을 STG에서 선택한 상황이다. 이러한 시점의 기록들은 가상 인간의 기억 속에 남아 추후에 유사한 상황에서 이용할 수 있다. 결과적으로 시간적 공간적 줌인 기능 등을 가지게 됨으로써 시공간을 통합한 역사적 문맥을 입체적으로 나타내고 계층적인 구조를 갖는 인간의 지식구조를 기능적인 면에서 실제와 유사하게 동작하도록 시뮬레이션하게 해준다.
그림 12. 가상인간이 건물을 빠져나온 부분 표시
위에 설명한 시뮬레이션에 대한 전체적 구조 속에서 생길 수 있는 세부적 상황들에 지식구조들이 적용되는 과정을 구체적으로 설명하고자 한다. 전제 조건으로 가상 인간이 과거에 이미 탔던 적이 있는 버스이며 따라서 버스가 정류장에 도착하는 시간과 정류장까지의 길에 대한 지식이 STG를 통해 저장되어 있다.
CM과 SRG의 실시간 변화를 비교하기 위해 가상 인간이 들고 가는 짐이 있는지 또는 앞서 언급한 돌발 상 황(emergent situation)의 예로서, 도로가 예기치 못하게 공사 중인 경우들을 비교해서 SRG의 해당 변화를 살펴보고자 한다. 등장 객체로는 Human#1(H1), Human#2, Human#3(H2, H3), Human#4, Human#5(H4, H5), Box#1(Bx1), Room#3(R3), Door#3(Dr3), Lift#1(L1), Stair#1(St1), Bus#1(B1), Driver#1(D1) 이 등장한다. 건물에서 밖으로 나갈 수 있는 방법엔 L1을 이용하는 방법과 St1을 이용하는 두 가지 방법이 있다.
[그림 13]은 주문한 Bx1이 R3로 배달([그림 4]의 음 영 부분에 해당)된 이후 상황으로서, 가상인간이 R3에 서 Bx1을 찾아서 들고 밖으로 나가는 상황에 대한 그래프들의 모습을 보여준다. IG에서 Dr3의 상태를 확인할 수 있으며 상태에 따라 close()/open()을 하게 된다. H1은 Dr3을 열고 L1을 타기 위해 이동을 한다.
그림 13. 가상인간이 방에서 짐을 찾는 상황
Bx1의 길이가 L1의 폭보다 길어 타지 못하고 다른 방법인 St1를 이용해서 건물 밖으로 나가게 되는 경우에 대한 그래프들의 모습을 [그림 14]에 보여준다. Bx1이 없는 상황이라면 L1을 이용해서 내려갈 수 있다.
그림 14. 짐이 엘리베이터 폭보다 더 넓은 상황
건물 밖에서 도로의 상태에 따라 결과가 다르게 나타난다. 공사 중이 아닌 경우 H1이 알고 있던 길을 따라서 [그림 15]과 같이 버스 도착 시간에 맞춰 정류장에 도착하여 타는 상황이다.
그림 15. 버스 시간에 맞춰 탑승하는 상황
또 다른 상황으로는 H1의 지식 속에 있는 길이 공사로 인해 막혀 돌아서 가게 되면서 버스 도착 시간에 늦어 [그림 16]의 그래프들과 상응하는 바와 같이 버스를 놓치는 상황이다.
그림 16. 도로공사 중으로 인해 버스를 놓친 상황
이러한 다양한 상황으로 CM의 변화에 따라 실시간으로 SRG의 내용이 상응하여 계속 바뀌게 되며 위와 같은 예상치 못한 상황들에 agent(H1)들이 대응해 나갈 수 있게 된다.
Ⅵ. 결론
가상 인간의 행동을 규율하는 지식의 수많은 측면들 중에서 공간적 측면에 초점을 맞추어 모사하였다. 가상 세계를 구성하는 요소들 중에서 물리적, 공간적 측면들을 표현하기 위하여 CM과 SRG를 개발했다. 이들을 IG와 STG라는 포괄적 지식구조에 연결하여 통합적 지식구조를 구현하였다. 구체적으로, 먼저 물리적 객체의 공간적 특성에 따라 Solid, Hollow, Composite Object들을 규정하고 공간에 관해 추상화된 위치와 공간 사이의 관계에 대한 정의를 하였고 이것을 바탕으로 공간 관계와 물리적 상황을 표현 하였다. 상황을 전개함에 있어 가상인간이 일방적 행동 대신 주변 환경 및 다른 가상인간들과 상호작용하며 주어진 상황에 따른 적절한 판단을 하도록 설계되었다[26]. 이를 위해 다양한 스키마틱 이벤트들을 준비하고 이벤트를 계획할 때 사용될 각 행동에 대한 판단을 내릴 수 있는 알고리즘이 개발되었다. 가상인간은 여건의 변화에 따라 끊임없는 Re-planning을 하게 된다. 공간적 이동을 포함한 가상인간의 행동의 결과가 네 개의 그래프에 반영이 되고 이를 이용한 지식의 변화 즉 학습이 자신의 추후 행동과 다른 가상인간들에게도 영향을 미치게 된다. 시간적인 측면을 표현하기 위해 STG에 진행된 모든 사건들을 기록하고 특정 구간에 초점을 맞추어 과거에 실행했던 이벤트를 애니메이션처럼 다시 볼 수 있게 했다.
본 연구에서는 인과관계에 따른 물리적 연쇄반응과 동적으로 움직이는 객체들을 포함하는 상황을 모사할 수 있었지만 가상인간이 이벤트를 계획할 때 현재 상황에 맞는 행동을 선택하기 위해 각 행동에 대한 평가를 하고 선택하는 방법에 대한 연구가 추가로 필요하다. 그리고 STG에서 과거의 상황전개를 분석하여 가상 인 간이 추후의 계획에 활용할 수 있는 구체적 방법에 대한 연구가 필요하다.
참고문헌
- M. Cavazza, F. Charles, and S. Mead, "Emergent situations in interactive storytelling," In G. Lamont (Ed.), Proceedings of the 2002 ACM symposium on applied computing, ACM, pp.1080-1085, 2002.
- R. Figueiredo, A. Brisson, R. Aylett, and A. Paiva, "Emergent Stories Facilitated," In: U. Spierling and N. Szilas (eds), Interactive Storytelling, ICIDS 2008, Lecture Notes in Computer Science, Vol.5334, Springer, Berlin, Heidelberg, 2008.
- R. Hodhod, P. Cairns, and D. Kudenko, "Innovative integrated architecture for educational games: challenges and merits," Transactions on edutainment, Springer Berlin Heidelberg, pp.1-34, 2011.
- T. Kim and J. Park, "Authentic Simulation of Spatial Environment in Cyber-Microcosm as the Ultimate Virtual-Reality Context for situated Language Learning," 13th Proc. of Laval Virtual, Laval, France, Apr. 8-11, 2011.
- 한형종, 임철일, "가상현실 기반 교육용 시뮬레이션 설계원리 개발," 교육공학연구, 제36권, 제2호, pp.221-264, 2020.
- T. Gruber, "A translation approach to portable ontologies," Knowledge Acquisition, Vol.5, No.2, pp.199-220, 1993. https://doi.org/10.1006/knac.1993.1008
- T. Finin, KQML as an agent communication language, University of Maryland Baltimore County, 1995.
- J Choi and J Park, "A student directed immersive intelligent tutoring system," 13th International Conference, ITS 2016, Zagreb, Croatia, Jun. 7-10, 2016.
- J Park, "Implementation of an Agent-centric Planning of Complex Events as Objects of Pedagogical Experiences in Virtual World," International JOURNAL OF CONTENTS, Vol.12, No.1, pp.25-43, 2016. https://doi.org/10.5392/IJoC.2016.12.1.025
- S. H. Choe, J. H. Park, and S. S. Pyo, "Hierarchical Spatial Relation Based on a Contiguity Graph," INTERNATIONAL JOURNAL OF INTELLIGENT SYSTEMS, Vol.20, No.9, pp.867-892, 2005. https://doi.org/10.1002/int.20096
- 조규명, 시공간 그래프를 이용한 가상현실 속의 상황 표현 방법, 경북대학교, 석사학위논문, 2010.
- 조규명, "가상현실 속의 상황 표현을 위한 시공간 그래프," 한국콘텐츠학회논문지, 제12권, 제8호, pp.1-12, 2012. https://doi.org/10.5392/JKCA.2012.12.08.001
- 박종희, 최준성, "A Situation Simulation Method for Achieving Situation Variability and Authoring Scalability based on Dynamic Event Coupling," International Journal of Contents, Vol.16, No.1, pp.25-33, 2020. https://doi.org/10.5392/IJoC.2020.16.1.025
- 박종희, 최준성, "A real-time simulation mechanism for unlimited variability of situations based on dynamic event coupling and parameterized animation against a background virtual world," Int'l Journal of Information Engineering and Electronic Business, Vol.7, No.2, pp.55-61, 2017. https://doi.org/10.18178/IJIEE.2017.7.2.661
- J. Park, The Ontology about the Microcosm, Tech. report #9, Kyungpook National Univ, AIMM Lab, 2001.
- Gehrke Ramakrishnan, Database Management Systems, 3rded., McGraw-Hill Co., pp.606-607, 2003.
- 김석연, 연한별, 장윤, "중력 모델을 이용한 시공간 데이터의 시각화," 정보과학회논문지, 제43권, 제2호, pp.135-142, 2016.
- M. Baur, U. Brandes, and M. Gaertler, Drawing the AS Graph in 2.5 Dimensions, Graph Drawing, 2005.
- M. P. Kwan and J. Y. Lee, "Geovisualization of Human Activity Patterns Using 3D GIS: A Time-Geographic Approach," Spatially integrated social science, Vol.27, pp.721-744, 2004.
- Yu-Tao Mo and Seok-Kyoo Kim, "Study of Game Interactive Storytelling Design : Focusing on The Elder Scrolls 5 Skyrim," Journal of The Korean Society for Computer Game, Vol.31, No.4, pp.17-28, 2018.
- 손용균, 김석규, "Design and Implementation of Character interaction based storytelling authoring tool," 한국컴퓨터게임학회논문지, 제31권, 제1호, pp.11-18, 2018.
- F. Charles, M. Lozano, S. Mead, A. F. Bisquerra, and M. Cavazza, "Planning formalisms and authoring in interactive storytelling. In Technologies for interactive digital storytelling and entertainment," TIDSE 03 proceedings Fraunhofer IRB Verlag, 2003.
- 박재우, 가상 세계 거주자의 지각 메커니즘 설계 및 구현, 경북대학교, 석사학위논문, 2011.
- 박종희, 최준성, "A Simulation Method For Virtual Situations Through Seamless Integration Of Independent Events Via Autonomous And Independent Agents," International Journal of Contents, Vol.14, No.3, pp.7-16, 2018. https://doi.org/10.5392/IJoC.2018.14.3.007
- A. Zook, Stephen Lee-Urban, Mark O. Riedl, Heather K. Holden, Robert A. Sottilare, and Keith W. Brawner, "Automated scenario generation: toward tailored and optimized military training in virtual environments," Proc of Int'l Conference on the Foundations of Digital Games, ACM, 2012.
- A. Shoulson, Francisco M. Garcia, Matthew Jones, Robert Mead, and Norman I. Badler, "Parameterizing Behavior Trees," In Motion In Games, Springer, pp.144-155, 2011.
- M. Kapadia, S. Singh, G. Reinman, and P. Faloutsos, "A behavior-authoring framework for multiactor simulations," Computer Graphics and Applications, Vol.31, No.6, pp.44-55, 2011.
- S. Ji, A knowledge Model for simulating Human-like Behavior of virtual Inhabitant, Tech. report, AIMM Lab., Kyungpook Nat'l Univ., 2007(12).