절차적 생성 방법을 이용한 실시간 갯벌 모델링
박상현*
Realtime Tidal Flat Modeling using Procedural Generation Method
Sang-Hyun Park*
요 약
메타버스에 대한 관심이 증가하면서 가상현실을 간접 체험에 접목하려는 많은 노력이 이루어지고 있으며, 게임과 같은 오락뿐만 아니라 학생들의 교육에 활용하고자 하는 시도도 증가하고 있다. 간접 체험의 핵심적인 기술은 사용자가 실제와 같이 느낄 수 있게 대상을 모델링하는 것이다. 갯벌과 같은 자연환경은 시간에 따라 수시로 변하고, 많은 생명체들도 서식한다. 본 논문에서는 갯벌의 생태 환경을 사실적으로 표현하는 체험 콘 텐츠를 제작하는 방법을 제안한다. 제안하는 방법에서는 갯벌이 시간적으로 변화하는 모습을 자연스럽게 모델 링하는 방법을 설명하고, 갯벌에 서식하는 생명체인 게를 행동 트리를 이용하여 NPC 형태로 모델링하는 방 법을 설명한다. 구현 결과는 제안하는 방법이 간단한 알고리즘을 사용하지만 갯벌의 모습을 잘 표현하는 것을 보여준다.
ABSTRACT
As an interest in metaverse increases, there are many studies to apply virtual reality to indirect experiences. Virtual reality is increasingly being used not only for entertainment such as games but also for educational content. A key technology of indirect experience is modeling an object to provide a realistic experience to the user. Natural environments such as tidal flats change with time, and many living things also live there. In this paper, we propose a method for creating experiential content that accurately models the ecological environment of tidal flats. The proposed method explains how to naturally model the temporal change of tidal flats. We also explain how to model a crab, a creature that inhabits the tidal flat, in the forms of an NPC using the behavior tree. Implementation results show that the proposed method uses simple algorithms but expresses the shapes of tidal flats well.
키워드
3D Modeling, Behavior Tree, Perlin Noise, Tidal Flat Modeling 3차원 모델링, 행동 트리, 펄린 노이즈, 갯벌 모델링
* 교신저자: 순천대학교 ICT융합공학부 ㆍ접 수 일 : 2021. 08. 26 ㆍ수정완료일 : 2021. 09. 21 ㆍ게재확정일 : 2021. 10. 17
ㆍReceived : Aug. 26, 2021, Revised : Sep. 21, 2021, Accepted : Oct. 17, 2021 ㆍCorresponding Author : Sang-Hyun Park
Dept. ICT Convergence Engineering, Sunchon National University, Email : [email protected]
http://dx.doi.org/10.13067/JKIECS.2021.16.5.947
Ⅰ. 서 론
2020년 발생한 코로나19 팬데믹이 장기화 되면서 언택트 사회로의 전환이 급속하게 이루어지고 있다.
언택트 사회에서는 학생과 직장인들의 재택 수업과 재택 근무의 비중이 증가하게 되고 쇼핑과 문화생활 등의 일상도 온라인에서 이루어지는 비중이 증가하게 된다. 이런 새로운 패러다임으로 인해 디지털 기술을 활용한 비대면 문화가 확산되었고, 사람들은 소통이 가능한 공간을 온라인에서 찾게 되었다. 이런 시대 상 황과 함께 가상현실과 증강현실 등의 기술 발전으로 현실과 가상의 경계가 무너진 3차원 가상 세계, 메타 버스가 주목받기 시작했다[1].
일반적으로 메타버스는 현실세계가 가상공간과 결 합하여 현실이 가상공간으로 확장되는 것을 의미한다.
메타버스는 하나의 기술적 개념이라기보다는 포괄적 인 개념으로 다양한 형태의 메타버스가 존재한다[2].
메타버스는 크게 증강과 시뮬레이션으로 구분할 수 있다. 증강은 현실세계에 가상의 정보를 추가하는 개 념이며, 시뮬레이션은 새로운 가상의 공간을 만드는 것이다. 시뮬레이션은 다시 기존의 가상현실과 가상공 간에 현실세계를 반영한 거울세계로 구분될 수 있다.
증강 기술의 경우 비교적 단순한 형태의 모델링이 적 용되지만 시뮬레이션의 경우는 하드웨어 환경에 따라 달라지지만 일반적으로 매우 사실적인 모델링을 적용 한다. 가상의 공간에서 사람들이 만나 서로 소통하기 위해서는 몰입감이 중요하기 때문에 시뮬레이션 응용 의 경우 사실적으로 배경 공간을 표현하는 것이 매우 중요하다.
메타버스를 구현하기 위한 모델링의 핵심 요소는 가상공간과 사용자의 상호작용이다. 사용자의 행동이 나 시간, 공간적인 변화를 공간에 잘 반영하는 것이 중요하다. 3D 모델링 기술도 이런 추세를 반영하고 있는데, 전통적인 방법은 최종적인 형태를 특정하지 만, 최근의 동향은 매개변수를 적용하여 동적으로 모 델을 생성하는 파라메트릭 모델링 방법들이 주목을 받고 있다[3-5]. 가상의 공간을 구성하는 모델들을 실 시간으로 파라미터를 조정하여 사용자와의 상호작용 결과로 반영함으로써 가상공간의 사실성이 증가하여 사용자에게 몰입감을 주게 되는 것이다.
메타버스는 다양한 분야에 적용가능하며, 교육용 콘
텐츠를 활용하기 위한 공간으로서도 많은 가능성을 가 지고 있다. 본 논문에서는 메타버스를 교육과 같은 간 접 체험에 적용하는 사례로서, 학생들에게 갯벌을 교 육하는 콘텐츠를 만드는 방법을 설명한다. 간접 체험 을 위한 콘텐츠는 정적으로 동작하는 것이 아니라 상 황에 맞게 동적으로 대응하는 것이 중요하다. 즉, 시간 과 기후에 대한 반응이나 사용자와의 상호작용이 콘텐 츠에 반영되어야 한다. 갯벌의 경우 다양하지만 완만 한 곡면의 형태를 가지는 지형과 시간의 흐름에 따른 밀물과 썰물의 영향으로 지형의 색깔이 바뀌는 특성이 있기 때문에 배경이지만 동적인 특성을 가진다. 또한, 다양한 생명체가 서식하는 공간이다. 본 논문에서는 배경을 이루는 가상의 공간이지만 동적으로 자유롭게 콘텐츠의 내용을 제어함으로써 보다 사실적이고 학생 들에게 흥미를 유발할 수 있는 콘텐츠를 만드는 방법 을 제안한다. 먼저, 동적으로 파라미터를 설정하여 갯 벌의 형태를 자유롭게 만드는 방법과 동적으로 재질을 변경하는 방법을 제안한다. 다음으로, 갯벌에 서식하는 동적인 배경 요소인 게를 행동트리를 이용하여 모델링 하고 이벤트를 이용하여 중앙에서 관리하는 방법을 제 안한다.
Ⅱ. 관련 연구
본 논문에서는 가상공간으로 갯벌을 모델링하는 방 법을 설명한다. 갯벌 모델링은 크게 갯벌 지형을 모델 링하는 것과 갯벌에 서식하는 생명체인 게를 모델링 하는 것으로 나누어 구현한다.
2.1 지형 모델링
일반적으로 게임과 같은 가상공간에서 배경을 이루 는 요소는 정적인 특성을 가지며 미리 만들어진 상태 로 실행 중에는 모델의 변화가 없거나 상호작용에 따 라 약간의 변형이 이루어지는 정도이다. 하지만 갯벌 과 같이 밀물과 썰물에 따라 갯벌의 색깔이 변하는 배 경을 모델링하기 위해서는 실시간으로 텍스쳐의 파라 미터를 변경하여 적용하는 것이 필요하다.
가상공간에서 일련의 규칙을 반복적으로 수행하여 실행 중에 필요에 따라 콘텐츠를 생성하는 것을 절차 적 생성 방법(Procedural Generation Method) 이라고
한다. 절차적 콘텐츠 생성은 주로 게임 분야에서 많이 사용되며, 게임 디자이너가 아니라 시스템이 상황에 맞게 자동으로 콘텐츠를 생성하는 것을 말한다[6]. 갯 벌의 색깔뿐만 아니라 갯벌 지형도 실시간으로 모델 링하는 것이 필요한데, 갯벌 지형을 실시간으로 모델 링하는 것은 지형이 시간이 지남에 따라 변하는 것을 표현하는 것이 아니라 플레이어가 이동함에 따라 필 요한 지형을 실시간으로 만들기 위한 것이다.
지형을 모델링 할 때 많이 사용되는 것이 펄린 노 이즈(Perlin-Noise)이다. 펄린에 의해 개발된 펄린 노 이즈는 자연스러운 표면을 모델링할 때 많이 사용된 다. 지형의 불규칙한 표면을 모델링할 때 의사 난수를 사용할 수도 있지만 자연에서 표현되는 불규칙성은 유사성도 함께 포함하고 있어, 인접한 지형과 유기적 이면서도 불규칙한 자연적인 특성을 잘 표현하는 펄 린 노이즈가 지형 생성에 적절하다[7-9].
갯벌 지형은 부드러운 곡면으로 이루어져 있어 펄 린 노이즈를 이용하여 표현하기 적절한 자연 지형이 다. 따라서 본 논문에서는 갯벌 지형의 기본적인 형태 를 모델링하기 위하여 펄린 노이즈 함수를 절차적 생 성 방법에 적용하고, 보다 자연스러운 형태를 표현하 기 위하여 여러 개의 펄린 노이즈를 사용한다.
2.2 NPC 모델링
본 논문에서는 자연스러운 갯벌을 표현하기 위하여 갯벌에 서식하는 대표적인 생물인 게를 갯벌 가상공 간의 배경에 포함한다. 게는 플레이어의 제어를 받지 않고 시스템의 환경에 맞게 스스로 움직임을 연출해 야 한다. 게임에서는 이렇게 플레이어가 직접적으로 제어하지 못하는 객체를 Non-Player Character(:
NPC)라고 한다. 게임 환경이나 플레이어를 공격하는 적 캐릭터들이 대표적인 NPC이다.
NPC는 인공지능으로 구현되어 스스로 자율성을 가지고 동작하게 된다. 게임과 같은 가상공간에서 동 작하는 NPC에 적용되는 인공지능은 규칙 기반 시스 템, 유한상태기계(FSM : Finite State Machine), 동물 의 행동패턴 등 다양한 방법이 사용된다. 간단한 패턴 을 가지는 NPC의 경우 FSM이 가장 일반적으로 적 용된다. FSM은 여러 개의 상태(행동)들을 정의하고, 상태들 사이의 인과 관계를 그래프로 표현한다. FSM 은 상태의 구성과 전이에 대한 이해가 쉽지만, 상태와
전이가 많아질수록 관리가 어려워진다는 문제점이 있 다[10-11].
FSM의 단점을 개선하여 다양한 상태를 효과적으 로 관리할 수 있게 개발된 것이 행동 트리(Behavior Tree)이다. FSM과 유사하게 전체 동작 방식을 쉽게 표현할 수 있고, 행동 패턴의 수정도 용이하다. 또한, 상태와 상태 사이의 관계가 많아질수록 관리가 힘든 FSM의 단점을 보완하고 있기 때문에 복잡한 행동 패턴을 가진 캐릭터를 구현하기에 적합하다[12-13].
갯벌에 서식하는 게는 스스로 환경에 맞추어 동작하 여야 하기 때문에 NPC로 구현되어야 하며, 본 논문에 서는 행동 트리를 적용하여 NPC로 모델링한다. 갯벌에 대한 교육 콘텐츠로서 게의 자연스러운 모습을 표현하 기 위해서는 다양한 동작을 효과적으로 표현하여야 하 고, 향후 게의 행동을 쉽게 추가 및 수정할 수 있어야 하기 때문에 행동 트리 방식이 적합하다.
Generate Terrain
Select Action
Generate
Holes Generate
Terrain Paint
Textures 그림 1. 갯벌 지형 생성을 위한 세부 기능 Fig. 1 Detailed functions for generating terrains
Ⅲ. 갯벌 지형 모델링
갯벌 지형 모델링은 세 가지 기능으로 구성된다.
갯벌의 기본 지형은 펄린 노이즈를 이용하여 생성하 고, 게들이 사는 구멍은 랜덤하게 위치를 정하여 높이 값을 조절한다. 또한, 갯벌의 상황에 맞게 갯벌에 텍 스쳐를 입히는 기능이 포함된다. 그림 1은 지형과 관 련된 세 가지 기능의 관계를 보여준다. 전체 지형의 형태는 구멍을 만들고, 지형을 만들고, 텍스쳐를 입히 는 기능은 필요할 때마다 반복적으로 선택할 수 있는 적용하는 구조를 가진다.
3.1 구멍 만들기
갯벌에서 구멍은 게가 사는 곳이다. 게는 플레이어 의 움직임이 없으면 구멍에서 나오고, 플레이어가 움 직이면 다시 구멍으로 숨는 행동을 보인다. 각 구멍에 는 한 마리의 게가 살고 있게 설정한다. 따라서 구멍 의 개수는 모델링에 사용될 게의 개수와 일치하며 게 는 생성될 때 자신의 집에 해당하는 구멍의 위치를 속성으로 가진다.
그림 2. 구멍 생성 Fig. 2 Hole generation
(a)
(b)
그림 3. 노이즈 크기에 따른 옥타브의 형태 (a) 작은 스케일의 노이즈, (b) 큰 스케일의 노이즈 Fig. 3 Octave shape according to the noise scale (a)
small scale noise, (b) large scale noise 지형은 기본적으로 높이 맵을 이용하여 표현되는 데, 주어진 지형에 대해서 구멍을 추가하면 기존 지형 의 높이 정보에 일정한 크기만큼을 빼서 구멍을 표현 한다. 구멍의 위치는 트레인에 대한 높이 맵의 해상도
를 기준으로 게의 개수만큼 랜덤하게 결정하며, 이때 기존 구멍과의 거리가 너무 가깝지 않게 조절한다. 랜 덤하게 선택된 지점만 높이 값이 주변 값보다 작으면 부자연스럽기 때문에 가우시안 블러링을 적용하여 구 명이 자연스러운 형태가 되도록 한다.
그림 2는 랜덤으로 지형에 300개의 구멍을 생성한 결과를 보여준다. 이 경우 게도 300마리를 생성하게 된다. 지형을 만들 때 순서는 중요하지 않으며, 그림 2의 경우 평평한 지형에 구멍만 생성한 결과이다.
3.2 갯벌 지형 생성
펄린 노이즈는 1980년대 초반에 펄린에 의해 개발 된 것으로 자연스러운 표면을 모델링할 때 많이 사용 된다. 펄린 노이즈는 여러 개의 노이즈를 병합하여 최 종적인 결과물을 만드는데, 이때 각각의 노이즈를 옥 타브라고 한다. 펄린 노이즈를 구성하는 옥타브의 주 파수는 노이즈의 크기를 나타내는데 주파수가 작으면 인접 지형과의 유사도가 높아 노이즈가 작아지고 주 파수가 커지면 노이즈가 증가하여 인접 지형과의 유 사도가 낮아진다. 그림 3은 노이즈 크기에 따른 결과 를 보여준다.
그림 3처럼 하나의 펄린 노이즈는 여러 개의 옥타 브를 가지지만 스케일에 따라 전체 노이즈의 크기 패 턴은 달라지게 된다. 갯벌의 경우 기본적인 형태는 그 림 3(a)처럼 완만한 곡선 형태를 띠지만 이 형태로만 갯벌을 모델링하면 각 영역을 확대하여 세부적인 부 분을 보면 너무 매끄러운 곡면을 이루고 있어 인위적 인 느낌을 주게 된다.
본 논문에서는 단일 스케일의 펄린 노이즈의 한계 를 극복하기 위하여 FBM (:Fractional Brownian Motion) 방법을 적용한다. FBM 방법의 기본 개념은 서로 다른 스케일의 노이즈를 결합하는 것이다. 하나 의 펄린 노이즈는 하나의 스케일을 표현하며, 다양한 스케일을 가지는 펄린 노이즈를 결합하면 세밀한 갯 벌 지형을 표현할 수 있다[14]. FBM 방법을 이용한 지형의 높이 맵 계산은 식 (1)과 같다.
⋅ (1)
는 위치 에서의 최종 노이즈 값을 의미한
다. 최종 노이즈의 구성을 보면, 먼저 위치 에 대한
번째 펄린 노이즈 값은 위치값 , 스케일 값
, 오프셋 로 결정된다. 위치 값은 지형에 대한 높이 맵의 좌표이고, 스케일 값은 각 펄린 노이즈가 표현하고자 하는 표면의 곡률에 관한 것이다. 오프셋 은 플레이어가 이동함에 따라 새롭게 지형을 생성할 때 연속적으로 지형을 만들기 위한 값이다. 개의 펄 린 노이즈를 이용하여 지형을 생성할 때는 식 (1)과 같이 각 펄린 노이즈에 가중치 를 적용한 합으로 최종적인 지형의 높이를 계산한다. 그림 4는 세 개의 서로 다른 스케일을 가지는 펄린 노이즈를 FBM 방 법에 적용하여 생성한 갯벌 지형을 보여준다. 전 단계 에서 생성한 구멍이 있는 지형에 그대로 펄린 노이즈 를 적용하여 구멍과 펄린 노이즈에 이한 지형이 함께 보이는 것을 볼 수 있다.
그림 4. FBM 방법을 이용한 갯벌 지형 생성 Fig. 4 Tidal flat terrain generation using FBM
1
0 lmin lmax hmin hmax
Height Weight
그림 5. 이미지의 가중치 설정 파라미터 Fig. 5 Parameters for weights of image 3.3 텍스쳐 입히기
높이 맵이 완성된 지형에 갯벌 표면을 표현할 수 있는 이미지를 이용하여 가상공간에 컬러를 입힌다.
갯벌은 다양한 모습을 가지기 때문에 여러 이미지를
텍스쳐로 이용하는 것이 필요하다. 본 논문에서는 시 간에 따라 젖은 땅과 마른 땅의 변화를 보여주고자 한다. 따라서 텍스쳐는 지형의 높이에 따라 다른 형태 를 가져야 하며, 이를 위해 여러 이미지를 사용할 수 있다. 여러 이미지를 이용하여 텍스쳐를 입힐 경우 최 종적인 컬러 값은 여러 이미지를 합하여 결정하게 되 는데, 이때 각 이미지에 가중치를 적용하여 최종 컬러 값을 결정한다. 각 이미지에 대한 가중치는 그림 5와 같이 네 개의 파라미터를 이용하여 결정한다.
(a)
(b)
그림 6. 텍스쳐에 사용된 이미지 (a) 젖은 영역, (b) 마른 영역
Fig. 6 Images for texturing (a) wet area, (b) dry area 각 이미지는 적용될 위치의 높이 값에 따라 다른 가중치를 가진다. 예를 들어, 젖은 땅을 표현하는 이 미지는 낮은 높이에서 높은 가중치를 가지고 마른 땅 을 표현하는 이미지는 높은 높이에서 높은 가중치를 가지게 설정한다. 각 이미지의 높이에 따른 가중치 설 정을 위해 네 개의 파라미터를 사용한다. 높이 맵의 값이 m ax와 m in 사이에 위치할 경우 이미지는 가 중치 값 1을 가진다. 그리고 m in보다 높이 맵 값이 작거나 m ax보다 큰 경우에는 가중치 값 0을 가진
다. 그 사이의 값을 선형적으로 가중치가 변하도록 설 정한다. 특정 위치에서의 텍스쳐는 그 위치의 높이 값 에 대한 각 이미지의 가중치를 적용하여 최종 컬러 값을 결정한다. 이때 가중치의 합이 1이 되도록 각 이 미지의 가중치들을 정규화한 후 가중치를 적용한다.
그림 6은 갯벌의 텍스쳐로 두 개의 이미지를 사용 한 예를 보여준다. 그림 6(a)는 젖은 땅을 표현하기 위한 것이고, 그림 6(b)는 마른 땅을 표현하기 위한 것이다. 시간의 경과에 따라 각 이미지의 파라미터를 업데이트하면 젖은 땅과 마른 땅의 경계가 올라가기 도 하고 내려가기도 하게 된다.
그림 7. 이미지를 이용한 텍스쳐링 Fig. 7 Texturing using images
그림 7은 갯벌 지형에 텍스쳐를 입힌 결과를 보여 준다. 그림 6(a) 이미지는 물기가 많은 아래쪽에 주로 사용되고, 마른 지역은 그림 6(b) 이미지가 주로 사용 되었다. 물기가 많은 영역과 마른 영역의 경계 부분은 선형적인 가중치 변화를 적용하여 두 이미지를 통합 함으로써 자연스럽게 두 영역이 연결되는 것을 볼 수 있다.
Game Manager
Player Crab 00 Crab 01
…
Move Alert
그림 8. 이벤트 처리 구조 Fig. 8 Structure of event handling
Ⅳ. 게 모델링
갯벌 생태 체험을 효과적이고 흥미 있게 제공하기 위해서는 단순히 갯벌 지형만 보여주는 것이 아니라 갯벌에 서식하는 생물의 모습을 함께 보여주는 것이 필요하다. 갯벌은 다양한 생명체가 서식하고 있지만 모든 생명체는 생태 체험 콘텐츠에서 NPC 형태로 동 작한다. 본 논문에서는 갯벌 생물 중 게를 선정하고 이를 갯벌 지형에 적용한다.
NPC로 구현된 게들은 스스로 자신의 행동을 실행 하지만 외부의 이벤트에 대해서도 반응하는 것이 필 요하다. 본 구현에서는 플레이어의 움직임이 크면 근 처의 게들이 자신의 구멍으로 숨고, 플레이어의 움직 임이 크지 않으면 다시 구멍에서 나와 자신의 행동 루틴을 수행하게 한다. 사용자의 움직임에 대한 이벤 트를 처리하기 위해 게임 매니저를 활용한다. 사용자 의 움직임에 대한 정보를 게임 매니저에 업데이트하 고, 큰 움직임이 발생하였을 때 게임 매니저를 통해 여러 마리에 게들에게 이벤트를 전달하는 구조로 설 계한다. 그림 8은 게임 매니저를 통해 사용자의 움직 임을 게들에게 전달하는 구조를 보여준다.
표 1. 행동트리 노드 Table 1. Behavior tree nodes
Node Symol
Root Root
Selector Selector Conditional
Sequence
ConSequence (condition)
Action Action
다음으로 게들의 행동 패턴을 설정한다. 게들은 위 험 상황이 감지되면 구멍으로 숨고 그렇지 않으면 구 멍에서 나와 주위를 돌아다니며 갯벌에서 먹이 활동 을 한다. 그리고 다른 게와 만나게 되면 서로 위협하 는 행동을 한다. 이런 행동 패턴을 행동 트리를 이용 하여 표현한다. 행동 트리는 NPC의 행동에 대한 패 턴을 기본 액션으로 구분하고 기본 액션들을 조건이 나 인과관계, 우선 순위 등의 제어 노드를 이용하여 통합하는 구조이다. 따라서 NPC의 행동 패턴을 행동
트리로 구성하면 하나의 트리 형태로 표현이 가능하 며, 액션을 추가하거나 재활용하기가 용이한 장점을 가지게 된다.
본 구현에 사용한 노드는 네 가지로 표 1과 같다.
Root 노드는 시작을 의미하는 노드이다. Selector 노 드는 행동 트리에서 일반적으로 사용되는 노드로, 자 식 노드들을 두 개 이상 가지며 순차적으로 실행하여 실행 성공한 노드가 있으면 종료하는 노드이다. 순차 적으로 실행된다는 의미는 하나의 노드가 실행 실패 하면 다음 노드를 실행하는 것을 의미한다.
Conditional Sequence는 행동 트리에서 일반적으로 사용되는 Sequence 노드를 게의 행동 패턴을 효과적 으로 표현하기 위하여 변형한 노드로, 자식 노드를 순 차적으로 실행하면서 이벤트를 감시하는 기능을 수행 하게 구현한다. 게는 사용자가 움직이게 되면 무조건 구멍으로 숨어야 하는데 이를 행동 패턴을 표현하기 위해 지속적으로 이벤트를 감지하는 기능을 추가한 노드이다. 마지막으로 Action 노드는 실제로 게의 구 분된 행동을 표현한다. Action 노드는 성공, 수행 중, 실패의 세 가지 결과를 반환하며, 수행 중 상태일 때 는 이벤트에 따른 노드 이동이 아니면 다른 노드로 실행이 넘어가지 않는다.
그림 9는 게의 행동 패턴을 행동 트리로 구성한 내 용을 보여준다. 첫 번째 Selector 노드는 사용자의 움 직임에 의해 발생한 Alert 이벤트를 처리하는 기능으 로 Alert가 발생하면 구멍으로 숨는 액션이 수행되게 한다. 첫 번째 Conditional Sequence는 게가 이동하고 먹는 행동을 순차적으로 수행하는 것을 의미하며, 두 번째 Selector 노드는 게가 움직인 장소가 다른 게가 있는 영역인지를 만나는지를 판단하여 먹이 활동을 하거나 싸우는 행동을 선택하게 하는 기능을 수행한 다. 두 번째 Conditional Sequence 노드는 먹이활동 중 다른 게가 자신의 영역을 침범하는지를 감시하는 기능을 수행한다.
그림 9. 게에 적용된 행동트리 Fig. 9 Behavior tree applied to crab
그림 10. 지형에 생성된 게 Fig. 10 Generated crabs on the terrain 그림 10은 지형에 게를 생성한 모습을 보여준다.
콘텐츠가 시작되면 게들이 구멍에서 나와 랜덤하게 이동을 하고 먹이 활동을 시작한다. 게는 동일한 모델 에 텍스쳐를 바꾸어 두 종류로 적용하였고, 크기도 랜 덤하게 설정하여 다양한 게를 표현하였다.
각 액션은 여러 개의 애니메이션을 적용하여 보다 자연스러운 행동을 보여준다. Fight 액션의 경우 다섯 개의 애니메이션을 사용하였고, FSM을 이용하여 자 연스러운 모습을 표현하였다. 그림 11은 Fight 액션에 적용된 게의 애니메이션을 보여준다. 양손을 들어 위 협하는 것을 기본 애니메이션으로 하여 랜덤하게 오
른손으로 공격, 왼손으로 공격, 오른손 들기, 왼손 들 기의 애니메이션을 수행하게 하였다. 그림 12는 게 두 마리가 서로 공격하는 모습을 보여준다.
그림 11. 게에 적용된 애니메이션 컨트롤러 Fig. 11 Animation controller applied to crab
그림 12. 게의 Fight 애니메이션 Fig. 12 Fight animation of crab
Ⅴ. 결 론
본 논문에서는 메타버스와 같은 가상현실 응용에 활용될 수 있는 교육용 가상 체험 콘텐츠 제작 방법 을 제안한다. 제안하는 방법은 갯벌이라는 가상공간을 동적으로 생성하고 환경에 맞게 변경하는 방법을 설 명한다. 또한, 가상공간의 자연스러움을 연출하기 위 하여 가상공간에 서식하는 생명체를 모델링하는 방법 도 설명한다. 가상공간의 지형을 생성할 때는 파라미 터를 이용하여 생성하도록 하여 실시간으로 파라미터 를 변경함으로써 지형이 자연스럽게 수정되도록 하였 다. 그리고 갯벌에 서식하는 생명체는 기본 액션들을 정의하고 이를 구조화하는 행동 트리 방법을 적용하 여 향후 기본 액션의 추가 및 새로운 행동 패턴의 추
가가 용이하도록 하였다.
본 논문에서 설명한 내용은 가상공간을 만드는데 초점을 두었고, 실제로 메타버스에 적용하기 위해서는 가상현실 응용에 맞게 플레이어를 구현하는 것이 추 가되어야 한다. 가상현실은 개발환경이 다양하고 서로 상이하기 때문에 사용되는 하드웨어에 따라 별도로 개발되어야 하고, 사용자 입력 장치에 따라 플레이어 의 기능이 제한되어 콘텐츠의 시나리오도 달라진다.
향후 연구를 통해 다양한 하드웨어 환경과 사용자 입력 환경을 반영한 가상현실 갯벌 체험 콘텐츠를 완 성할 예정이다.
References
[1] S. Woo and D. Chang, “A Study on Metaverse Brand Communication in Trans-media Environment,” J. of Brand Design Association of Korea, vol. 19, no. 2, 2021, pp. 29-48.
[2] W. Seok, “Analysis of Metaverse Business Model and Ecosystem,” Electronics and Telecommunications Trends, vol. 36. no. 4, 2021, pp. 81-91.
[3] Y. Lee, “A Study on Parametric Modeling,”
Cartoon and Animation Studies, no. 59, 2020, pp. 131-153.
[4] S. Lee, “Changes and Challenges of Media Content in the 5G Era,” J. of Cybercommunication Academy Society, vol. 36.
no. 4, 2019, pp. 5-40.
[5] D. Ahn, S. Cho, and H. Kim, “A Study on the Dynamics of Police Motorcycle Simulator,” J.
of the Korea Institute of Electronic Communication Sciences, vol.15, no. 3, 2020, pp.
533-541.
[6] Y. Jeong and B. Bae, “Procedural Content Generation in Games,” Communications of the Korean Institute of Information Scientists and Engineers, vol. 31. no. 7, 2013, pp. 16-25.
[7] J. Ko, B. Kyung, S. Ryu, D. Lee, W. Lee, and D. Lee, “Create 3-Dimension Game World used Procedural Generation Algorithm,” J. of Industrial Convergence, vol. 16. no. 1, 2018, pp.
35-40.
[8] K. Jeong, “Implementation of a 3D Terrain Map Editor Based on Height Map,” J. Korea
Game Society, vol. 2, no. 23, 2010, pp. 79-85.
[9] Y. Sim, H. Kang, and J. Han, “Multi-resolution Perlin Noise Decomposition and Procedural Texture Synthesis by Example,” In Proc. The HCI Society of Korea, Jeongseon, Korea, Jan.
2016, pp. 382-388.
[10] S. Park, “NPC Modeling of Plants for Farm Simulation Game,” J. of the Korea Institute of Electronic Communication Sciences, vol. 15, no.
5, 2020, pp. 939-948.
[11] H. Yoo and S. Kim, “3D Virtual Space Agriculture Education Game based on Historic Environment Simulation and Guiding NPC,” J. of the Korean Society for Computer Game, no. 18, 2009, pp. 65-71.
[12] M. Lee, “A Proposal on Game Engine Behavior Tree,” J. of Digital Convergence, vol.
14, no. 8, 2016, pp. 415-421.
[13] J. Seo and U. Yang, “Behavior Tree-based Scenario Development Technology to Induce Various Experiences of VR content,” J. of Multimedia Information System, vol. 7, no. 4, 2020, pp. 263-268.
[14] M. Sung, “GPU-based modeling and rendering techniques of 3D clouds using procedural functions,” J. of the Korea Institute of Information and Communication Engineering, vol. 23. no. 4, 2019, pp. 416-422.
저자 소개
박상현(Sang-Hyun Park) 1995년 고려대학교 전자공학과 졸업(공학사)
1997년 고려대학교 대학원 전자 공학과 졸업(공학석사)
2002년 고려대학교 대학원 전자공학과 졸업(공학 박사)
2004년 순천대학교 ICT융합공학부 교수
※ 관심분야 : 영상처리, 패턴인식, 가상현실