KR20180031838A - 영상 시뮬레이팅 시스템, 호스트 장치 및 복수시점 기반의 영상 제공 방법 - Google Patents
영상 시뮬레이팅 시스템, 호스트 장치 및 복수시점 기반의 영상 제공 방법 Download PDFInfo
- Publication number
- KR20180031838A KR20180031838A KR1020160119136A KR20160119136A KR20180031838A KR 20180031838 A KR20180031838 A KR 20180031838A KR 1020160119136 A KR1020160119136 A KR 1020160119136A KR 20160119136 A KR20160119136 A KR 20160119136A KR 20180031838 A KR20180031838 A KR 20180031838A
- Authority
- KR
- South Korea
- Prior art keywords
- image
- motion
- information
- platform
- display device
- Prior art date
Links
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/60—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
- A63F13/65—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor automatically by game devices or servers from real world data, e.g. measurement in live racing competition
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/25—Output arrangements for video game devices
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/40—Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/80—Special adaptations for executing a specific game genre or game mode
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/80—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game specially adapted for executing a specific type of game
- A63F2300/8082—Virtual reality
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Processing Or Creating Images (AREA)
Abstract
본 개시는 영상 시뮬레이팅 시스템, 호스트 장치 및 복수시점 기반의 영상 제공 방법에 관한 것으로서, 본 개시의 실시예에 따른 다인승 모션 플랫폼상의 복수의 탑승자가 서로 다른 영상의 시청이 가능한 복수시점 기반의 영상을 제공하는 호스트 장치는, 적어도 하나의 영상표시장치에 구현되는 가상공간 내의 제1 객체 및 제1 객체에 종속되는 제2 객체의 객체 정보를 각각 저장하는 저장부, 및 제1 객체 및 제2 객체 중 적어도 하나의 객체에 이벤트가 발생하면, 저장한 객체 정보를 근거로 이벤트가 반영된 제1 영상 및 제2 영상을 생성하여 적어도 하나의 영상표시장치로 제공하는 프로세서를 포함할 수 있다.
Description
본 개시는 영상 시뮬레이팅 시스템, 호스트 장치 및 복수시점 기반의 영상 제공 방법에 관한 것으로서, 더 상세하게는 가령 다인승 모션 플랫폼상의 복수의 탑승자가 가령 3차원 게임 가상공간상에서 자신이 처한 상황에 따라 서로 다른 내용의 영상을 시청할 수 있는 영상 시뮬레이팅 시스템, 호스트 장치 및 복수시점 기반의 영상 제공 방법에 관한 것이다.
통상적으로 다수의 이용자가 이용하는 라이더 시스템은 전면에 제공되는 영상의 진행에 따라 의자 등에 포함되어 있는 모션 시스템을 통해 이용자들에게 상하/좌우/전후 진동, 가감속 등의 다양한 모션을 제공한다. 한편, 체험형 4D 라이더 시스템의 경우 바람, 물, 냄새, 버블, 눈 등의 다양한 이벤트를 영상의 내용에 따라 제공해 주기도 한다. 라이더 시스템은 3D 프로젝션, 스크린 등의 영상표시장치와 스피커 및 구동부(operating unit)로 구성되며, 구동부는 1인승 및 다인승 의자와 의자에 연결되는 모션 시스템으로 구성된다.
그런데 종래 다인승 라이더의 경우 공용 영상기기를 통해서 동일한 컨텐츠가 제공되고 있고, 이는 공동의 플랫폼(platform) 위에 동일한 움직임에 대한 효과를 받는 경우에는 크게 문제가 없지만, 동일한 플랫폼에 있더라도 앉는 방향이나 바라보는 방향이 다른 경우에는 탑승자의 실감성이 저하되는 문제가 있다.
본 개시의 실시예는, 가령 다인승 모션 플랫폼상의 복수의 탑승자가 가령 3차원 게임 가상공간상에서 자신이 처한 상황에 따라 서로 다른 내용의 영상을 시청할 수 있는 영상 시뮬레이팅 시스템, 호스트 장치 및 복수시점 기반의 영상제공 방법을 제공함에 그 목적이 있다.
본 개시의 실시예에 따른 다인승 모션 플랫폼상의 복수의 탑승자가 서로 다른 영상의 시청이 가능한 복수시점 기반의 영상을 제공하는 영상 시뮬레이팅 시스템은, 복수시점 기반의 영상을 구현하는 적어도 하나의 영상표시장치, 상기 복수시점 기반의 영상을 시청하는 복수의 사용자가 탑승 가능한 다인승 모션 플랫폼, 및 상기 적어도 하나의 영상표시장치에 구현되는 가상공간 내의 제1 객체 및 상기 제1 객체에 종속되는 제2 객체의 객체 정보를 각각 저장하고, 상기 제1 객체 및 상기 2 객체 중 적어도 하나의 객체에 이벤트가 발생하면, 상기 저장한 객체 정보를 근거로 상기 이벤트가 반영된 제1 영상 및 제2 영상을 생성하여 상기 적어도 하나의 영상표시장치로 제공하는 호스트 장치를 포함한다.
또한, 본 개시의 실시예에 따른 다인승 모션 플랫폼상의 복수의 탑승자가 서로 다른 영상의 시청이 가능한 복수시점 기반의 영상을 제공하는 호스트 장치는, 적어도 하나의 영상표시장치에 구현되는 가상공간 내의 제1 객체 및 상기 제1 객체에 종속되는 제2 객체의 객체 정보를 각각 저장하는 저장부, 및 상기 제1 객체 및 상기 2 객체 중 적어도 하나의 객체에 이벤트가 발생하면, 상기 저장한 객체 정보를 근거로 상기 이벤트가 반영된 제1 영상 및 제2 영상을 생성하여 상기 적어도 하나의 영상표시장치로 제공하는 프로세서를 포함한다.
상기 프로세서는 상기 복수의 탑승자 중 제1 탑승자가 착용하는 제1 착용형 영상표시장치로 상기 제1 영상을 제공하고, 제2 탑승자가 착용하는 제2 착용형 영상표시장치로 상기 제2 영상을 제공한다.
상기 저장부는 상기 제1 객체 및 상기 객체를 식별하기 위한 식별 정보 및 상기 제1 객체와 상기 제2 객체의 위치 및 방향에 관계된 모션 정보 중 적어도 하나의 정보를 상기 객체 정보로서 저장한다.
상기 프로세서는, 상기 이벤트로서 상기 제1 객체 및 상기 제2 객체에 움직임이 발생하면, 상기 움직임의 변화량에 매칭되는 상기 저장한 모션 정보를 근거로 상기 제1 영상 및 상기 제2 영상을 제공한다.
상기 다인승 모션 플랫폼은 상기 복수의 탑승자가 상기 움직임을 발생시키기 위해 조작하는 컨트롤러를 포함하며, 상기 프로세서는, 상기 컨트롤러로부터 제공되는 조작 신호에 근거하여 상기 움직임의 변화량을 판단할 수 있다.
상기 다인승 모션 플랫폼은, 상기 복수의 탑승자가 상기 제1 객체 및 상기 제2 객체의 움직임을 동시에 감지하도록 하는 제1 엑추에이터, 및 상기 복수의 탑승자가 상기 제1 객체 및 상기 제2 객체의 움직임을 개별적으로 감지하도록 하는 제2 엑추에이터를 더 포함하며, 상기 프로세서는 상기 움직임의 변화량에 근거하여 상기 제1 엑추에이터 및 상기 제2 엑추에이터를 제어할 수 있다.
한편, 본 개시의 실시예에 따른 복수의 사용자가 서로 다른 영상의 시청이 가능한 영상 제공 방법은 적어도 하나의 영상표시장치에 구현되는 가상공간 내의 제1 객체 및 상기 제1 객체에 종속되는 제2 객체의 객체 정보를 각각 저장하는 단계, 상기 제1 객체 및 상기 2 객체 중 적어도 하나의 객체에 이벤트가 발생하면, 상기 저장한 객체 정보를 근거로 상기 이벤트가 반영된 제1 영상 및 제2 영상을 생성하여 상기 적어도 하나의 영상표시장치로 제공하는 단계를 포함한다.
상기 적어도 하나의 영상표시장치로 제공하는 단계는, 상기 복수의 탑승자 중 제1 탑승자가 착용하는 제1 착용형 영상표시장치로 상기 제1 영상을 제공하고, 제2 탑승자가 착용하는 제2 착용형 영상표시장치로 상기 제2 영상을 제공하는 단계를 포함할 수 있다.
상기 저장하는 단계는, 상기 제1 객체 및 상기 객체를 식별하기 위한 식별 정보 및 상기 제1 객체와 상기 제2 객체의 위치 및 방향에 관계된 모션 정보 중 적어도 하나의 정보를 상기 객체 정보로서 저장할 수 있다.
상기 적어도 하나의 영상표시장치로 제공하는 단계는, 상기 이벤트로서 상기 제1 객체 및 상기 제2 객체에 움직임이 발생하면, 상기 움직임의 변화량에 매칭되는 상기 저장한 모션 정보를 근거로 상기 제1 영상 및 상기 제2 영상을 제공하는 단계를 포함할 수 있다.
상기 다인승 모션 플랫폼은 상기 복수의 탑승자가 상기 움직임을 발생시키기 위해 조작하는 컨트롤러를 포함하며, 상기 컨트롤러로부터 제공되는 조작 신호에 근거하여 상기 움직임의 변화량을 판단하는 단계를 더 포함할 수 있다.
상기 다인승 모션 플랫폼은, 상기 복수의 탑승자가 상기 제1 객체 및 상기 제2 객체의 움직임을 동시에 감지하도록 하는 제1 엑추에이터, 및 상기 복수의 탑승자가 상기 제1 객체 및 상기 제2 객체의 움직임을 개별적으로 감지하도록 하는 제2 엑추에이터를 더 포함하며, 상기 방법은 상기 움직임의 변화량에 근거하여 상기 제1 엑추에이터 및 상기 제2 엑추에이터를 제어하는 단계를 더 포함할 수 있다.
도 1은 본 개시의 실시예에 따른 실감 게임 시뮬레이터 시스템을 도시화하여 나타낸 도면,
도 2a는 본 개시의 실시예에 따른 실감 게임 시뮬레이터 시스템을 나타내는 블록다이어그램,
도 2b는 도 2a에 도시된 일부 구성요소의 구동 메커니즘을 나타내는 도면,
도 3a는 게임 컨텐츠와 시뮬레이터의 연동을 설명하기 위한 도면,
도 3b는 게임 내 3D 모션 정보를 플랫폼으로 전달하는 것을 설명하기 위한 도면,
도 4a는 시뮬레이터의 구조를 예시하여 나타내는 도면,
도 4b는 도 4a의 모션 플랫폼의 구조를 예시하여 나타내는 도면,
도 5는 게임 시뮬레이터를 위한 좌표 체계를 설명하기 위한 도면,
도 6a는 도 1의 플랫폼 제어장치의 세부 구조를 예시하여 나타낸 블록다이어그램,
도 6b는 도 6a의 모션 정보 처리부 내에 구비되는 프로그램을 예시하여 나타낸 도면,
도 7은 게임상의 3차원 모션 정보의 처리 과정을 설명하기 위한 도면,
도 8은 도 1의 플랫폼 제어장치의 다른 세부 구조를 예시하여 나타낸 블록다이어그램,
도 9는 토크 제어 시스템 루프의 일반적인 예를 나타내는 도면,
도 10은 본 개시의 실시예에 따른 플랫폼 제어방법을 나타내는 흐름도,
도 11은 본 개시의 실시예에 따른 다인승 실감 게임 시뮬레이션 시스템을 나타내는 도면,
도 12는 도 11의 다인승 모션 플랫폼을 다시 나타낸 도면,
도 13은 도 11에 도시된 호스트 장치의 세부 구조를 예시하여 나타낸 블록다이어그램,
도 14는 도 11에 도시된 호스트 장치의 다른 세부 구조를 예시하여 나타낸 블록다이어그램,
도 15는 본 개시의 실시예에 따른 복수시점 기반의 영상 시뮬레이팅 과정을 설명하기 위한 도면, 그리고
도 16은 본 개시의 실시예에 따른 복수시점 기반의 영상 제공 방법을 나타내는 흐름도이다.
도 2a는 본 개시의 실시예에 따른 실감 게임 시뮬레이터 시스템을 나타내는 블록다이어그램,
도 2b는 도 2a에 도시된 일부 구성요소의 구동 메커니즘을 나타내는 도면,
도 3a는 게임 컨텐츠와 시뮬레이터의 연동을 설명하기 위한 도면,
도 3b는 게임 내 3D 모션 정보를 플랫폼으로 전달하는 것을 설명하기 위한 도면,
도 4a는 시뮬레이터의 구조를 예시하여 나타내는 도면,
도 4b는 도 4a의 모션 플랫폼의 구조를 예시하여 나타내는 도면,
도 5는 게임 시뮬레이터를 위한 좌표 체계를 설명하기 위한 도면,
도 6a는 도 1의 플랫폼 제어장치의 세부 구조를 예시하여 나타낸 블록다이어그램,
도 6b는 도 6a의 모션 정보 처리부 내에 구비되는 프로그램을 예시하여 나타낸 도면,
도 7은 게임상의 3차원 모션 정보의 처리 과정을 설명하기 위한 도면,
도 8은 도 1의 플랫폼 제어장치의 다른 세부 구조를 예시하여 나타낸 블록다이어그램,
도 9는 토크 제어 시스템 루프의 일반적인 예를 나타내는 도면,
도 10은 본 개시의 실시예에 따른 플랫폼 제어방법을 나타내는 흐름도,
도 11은 본 개시의 실시예에 따른 다인승 실감 게임 시뮬레이션 시스템을 나타내는 도면,
도 12는 도 11의 다인승 모션 플랫폼을 다시 나타낸 도면,
도 13은 도 11에 도시된 호스트 장치의 세부 구조를 예시하여 나타낸 블록다이어그램,
도 14는 도 11에 도시된 호스트 장치의 다른 세부 구조를 예시하여 나타낸 블록다이어그램,
도 15는 본 개시의 실시예에 따른 복수시점 기반의 영상 시뮬레이팅 과정을 설명하기 위한 도면, 그리고
도 16은 본 개시의 실시예에 따른 복수시점 기반의 영상 제공 방법을 나타내는 흐름도이다.
이하, 도면을 참조하여 본 개시의 실시예에 대하여 상세히 설명한다.
본 명세서에서 말하는 복수시점(multi-perspective) 기반 영상의 의미는 복수, 여러 개의 시점의 영상을 제공한다는 것이며, 입체 영상을 생성할 때 이용되는 다시점(또는 멀티뷰) 기반 영상과는 다른 개념에 해당한다.
도 1은 본 개시의 실시예에 따른 실감 게임 시뮬레이터 시스템을 도시화하여 나타낸 도면이고, 도 2a는 본 개시의 실시예에 따른 실감 게임 시뮬레이터 시스템을 나타내는 블록다이어그램이며, 도 2b는 도 2a에 도시된 일부 구성요소의 구동 메커니즘을 나타내는 도면이다. 또한, 도 3a는 게임 컨텐츠와 시뮬레이터의 연동을 설명하기 위한 도면이고, 도 3b는 게임 내 3D 모션 정보를 플랫폼으로 전달하는 것을 설명하기 위한 도면이다. 나아가, 도 4a는 시뮬레이터의 구조를 나타내는 도면이고, 도 4b는 도 4a의 모션 플랫폼의 구조를 나타내는 도면이며, 도 5는 게임 시뮬레이터를 위한 좌표 체계를 설명하기 위한 도면이다.
도 1 내지 도 4b를 참조하면, 본 개시의 실시예에 따른 실감 게임 시뮬레이터 시스템(90)은 플랫폼 제어 장치(100) 및 시뮬레이터(110)를 포함하며, 영상표시장치 및 영상기 중 적어도 하나를 더 포함할 수 있다.
구체적인 설명에 앞서, 본 개시의 실시예에 따른 실감 게임 시뮬레이터 시스템(혹은 영상 시뮬레이팅 시스템)(90)의 구동 메커니즘을 먼저 간략하게 살펴보면, 가령 사용자는 도 1, 도 2a 및 도 2b에서와 같이 3차원(3D) 게임 컨텐츠와 연동된 모션 플랫폼 기반의 시뮬레이터(110)에 장착된 컨텐츠 제어기(예. 컨트롤러, 조이스틱)(110a)를 통해 3D 게임을 조작할 수 있다.
예를 들어 사용자에 의해 컨트롤러로 입력되는 이동 및 공격 등의 조작은 도 3a 및 도 3b에서와 같은 3D 게임상에 존재하는 가상(의) 로봇(100-3a)을 조종하게 되고, 가령 게임 엔진(혹은 프로그램)은 가상 로봇(100-3a)의 3D 모션 데이터를 실감 게임 시뮬레이터 제어기, 예를 들어 MLF 모듈(100-2) 등의 플랫폼 제어 장치(100)로 실시간(in real time) 즉 끊김 없이 전달해 준다.
제어기에서 전달받은 데이터는 가령 데이터 분석 모듈을 통해, 탑승자에게 전달할 모션 데이터로 변환되어 시뮬레이터(110)의 움직임으로 표현되게 된다.
결국, 본 개시의 실시예는 도 2a 및 도 2b에서와 같이 게임 내부에서 발생하는 모션 좌표를 실시간으로 MLF 모듈(100-2)과 같은 제어기에서 처리하고, 그 결과가 실시간으로 모션 플랫폼에 반영되는 구조를 갖는다. 이를 위하여 제어기는 게임 실감성을 표현하기 위하여 실제 게임 내부에서 발생하는 움직임을 3차원 좌표(Px, Py, Pz)와 각 축별 회전값(Ox, Oy, Oz)의 형태로 제공한다.
좀 더 구체적으로 살펴보면, 플랫폼 제어 장치(100)는 게임 컨텐츠를 처리하는 영상 처리부(100-1), 다축 모션 플랫폼(110b)의 모션 제어를 위한 제어 정보를 생성하는 MLF 모듈(100-2), 3D 게임 컨텐츠를 화면에 표시하기 위한 스크린 또는 영상 패널 등의 디스플레이부(100-3) 및 음향을 출력하는 음향 출력부(100-4)를 포함할 수 있다. 여기서, 스크린은 영화관에서와 같이 영상기를 통해 투사된 영상을 단순히 보여주는 (장)막을 의미하며, 영상 패널은 컴퓨터 모니터나 TV에 적용되는 LCD 패널, OLED 패널 및 PDP 패널 등을 의미할 수 있다. 이러한 점에 근거해 볼 때, 도 1의 플랫폼 제어 장치(100)는 모니터나 TV와 같은 영상표시장치와 일체로 제작될 수 있다.
따라서, 도 1의 플랫폼 제어 장치(100)는 사용자의 요청에 따라 가령 3차원 게임 영상(혹은 컨텐츠)을 화면에 표시하고, 표시된 3차원 게임 영상에서 사용자가 지정한 특정 객체, 가령 도 3a에서와 같은 가상 로봇(100-3a)에 대한 모션 정보를 실시간으로 생성하거나 또는 기생성된 모션 정보를 추출하여 시뮬레이터(110)를 구성하는 다축 모션 플랫폼(110b)으로 제공할 수 있다.
다시 말해, 사용자는 화면상에서 게임 영상을 즐기기 위하여 자신이 객체를 지정할 수 있는데, 이는 다축 모션 플랫폼(110b)에 구비되는 컨트롤러 또는 조이스틱과 같은 컨텐츠 제어기(100a)에 의해 이루어질 수 있다. 여기서, 컨텐츠 제어기(100a)는 사용자의 인터페이스가 요구되므로 사용자 인터페이스 장치가 될 수 있다. 가령, 전투 로봇 게임이 실행되는 경우, 사용자는 자신이 원하는 특정 로봇을 지정하여 조종할 수 있을 것이다.
이와 같은 과정이 이루어지면, 플랫폼 제어 장치(100)는 도 3b에서와 같이 컨트롤러를 조작하는 사용자의 제어에 따라 가상 로봇(100-3a)과 같은 객체가 움직이면, 이때 움직이는 객체의 좌표 정보, 즉 X축, Y축 및 Z축을 기준으로 하여 객체가 움직이는 좌표값을 생성 또는 기생성된 좌표값을 추출하여 다축 모션 플랫폼(110b)에 제공하게 된다. 다시 말해, 다축 모션 플랫폼(110b)은 도 3a에서와 같이 가상 로봇(100-3a)에 동기되어 움직이게 되는 것이다.
나아가 플랫폼 제어 장치(100)는 만약 게임을 진행하던 중 돌이나 벽과 같은 장애물이 나타나 사용자가 가상 로봇(100-3a)을 제어하는 과정에서 가상 로봇(100-3a)이 장애물에 부딪히게 되었다면 즉 충격 이벤트가 발생하였다면 플랫폼 제어 장치(100)는 충격량에 따른 가상 로봇(100-3a)의 좌표 정보와 그 각각의 좌표 정보에 대한 회전 정보를 추가로 생성하거나 기생성된 회전 정보를 추출하여 다축 모션 플랫폼(100b)에 제공할 수 있다.
이후에 다시 살펴보겠지만, 플랫폼 제어 장치(100)는 사용자의 컨트롤러 조절량에 따른 복수의 좌표 정보를 내부 메모리에 저장할 수 있다. 예를 들어, 사용자가 컨트롤러를 조작하여 객체 즉 가상 로봇(100-3a)이 천천히 걸을 때와 빨리 걷거나 뛸 때는 X, Y 및 Z축의 좌표 정보가 다를 수 있다. 따라서, 플랫폼 제어 장치(100)는 컨트롤러 조절량 즉 가상 로봇(100-3a)이 천천히 걸을 때, 빨리 걸을 때 및 뛸 때의 상황에 대한 각각의 좌표 정보를 저장할 수 있다. 그리고 이러한 상황에 근거함으로써 동일한 충격이 발생하더라도 각 축의 회전량은 달라질 수 있다. 다시 말해, 동일한 충격이 가상 로봇(100-3a)에 가해지더라도 천천히 걸을 때보다는 빨리 걸을 때가, 그리고 빨리 걸을 때보다는 뛸 때가 회전량이 크게 될 것이다. 따라서, 플랫폼 제어 장치(100)는 각 상황에 따라 서로 다른 회전 정보를 좌표 정보에 매칭시켜 저장할 수 있다. 그리고 충격 이벤트가 발생하면 해당 이벤트에 관계된 좌표 정보와 회전 정보를 추출하여 다축 모션 플랫폼(110b)으로 제공할 수 있을 것이다. 가령 이러한 정보들은 내부 메모리에 EMMT(Effect Motion Mapping Table) 방식으로 저장된 후 추출될 수 있다. 여기서 EMMT는 특정 시점에 발생할 모션을 컨텐츠 제작시에 미리 가공 즉 저장해 두어 사용하는 것을 의미한다.
물론 본 개시의 실시예에 따라 플랫폼 제어 장치(100)는 단순히 기저장된 정보를 이벤트의 발생에 따라 추출하는 것을 넘어 실시간으로 계산하여 제공하는 것도 얼마든지 가능할 수 있다. 예를 들어, 천천히 걸을 때의 상황에 대해서만 좌표 정보와 회전 정보를 기설정하였다고 가정하자. 그러면 빨리 걸을 때와 뛸 때는 천천히 걸을 때의 좌표 정보와 회전 정보에서 일정 값을 증가시키도록 하여 해당 상황에 맞는 3차원 모션 정보를 생성하여 제공할 수 있다. 여기서, 일정 값은 가중치가 부여된 값을 포함할 수도 있을 것이다.
한편, 이러한 좌표 정보와 위치 정보의 생성은 사용자가 어떠한 객체를 지정하였느냐 즉 객체의 유형에 따라서도 얼마든지 달라질 수 있을 것이다. 예를 들어, 로봇의 크기가 크다면 작은 로봇보다 동일 충격량에 대하여 위치 변화가 적을 수도 있다. 이와 같은 실제 물리 세계의 정보를 반영한 3차원 모션 정보 생성은 게임 엔진 내의 물리 엔진을 이용하여 계산하여 제공하는 것도 가능하다.
또한, 위의 정보들은 사용자가 어떠한 동작 모드를 선택하였느냐에 따라서도 얼마든지 달라질 수 있다. 예를 들어, 사용자가 위치 변화에 대하여 전문가 수준으로 세밀하게 모션을 느끼고 싶지 않다면 전문가 모드가 아닌 일반 사용자 (동작) 모드를 선택할 수도 있다. 이와 같이 좌표 정보와 회전 정보는 주어진 상황에 따라 다양하게 변경될 수 있을 것이다. 따라서 본 개시의 실시예에서는 위의 내용에 특별히 한정하지는 않을 것이다.
시뮬레이터(110)는 도 4a 및 도 4b에 나타낸 바와 같이, 컨텐츠 제어기(110a), 다축 모션 플랫폼(110b), 탑승 시트(110c) 및 발판(110d)을 포함할 수 있다. 이를 통해 시뮬레이터(110)는 게임을 즐기기 위한 사용자의 탑승이 가능하다. 다축 모션 플랫폼(110b)은 자신의 동작에 의해 사용자가 가상 로봇(100-3a)과 같은 모션을 느낄 수 있도록 하기 위하여 플랫폼 제어 장치(100)에서 제공하는 좌표 정보만을 이용하거나 좌표 정보와 회전 정보를 함께 이용하여 플랫폼의 각 축을 제어한다. 본 개시의 실시예에 따른 시뮬레이터(110)의 구조는 컨텐츠 연동의 편의성을 제공한다. 다시 말해, 플랫폼의 사양은 컨텐츠의 용도에 맞게 구성되는 것이 일반적이다. 따라서, 본 개시의 실시예에서는 컨텐츠의 변경에 대비하여 모션 플랫폼(110b)을 모션부와 인터페이스 부분으로 모듈화하여 변경이 용이한 구조이다.
본 개시의 실시예에 따라 다축 모션 플랫폼(110b)은 도 4b 및 도 5에서와 같이 6축 제어가 가능한 플랫폼이 바람직하다. 다시 말해, 회전 정보가 없는 경우 다축 모션 플랫폼(110b)은 X축, Y축 및 Z축에 대한 좌표 정보만을 이용하여 해당 축을 제어한다. 하지만, 회전 정보가 함께 제공되면 X축, Y축 및 Z축에 대한 회전 값도 함께 이용하여 회전 축들을 제어하게 된다. <표 1>은 실감 게임 시뮬레이터(110)를 위한 좌표 체계를 보여주고 있다. 여기서, 축은 엑추에이터(420-1 ~ 420-6)를 의미할 수 있는데, 엑추에이터(420-1 ~ 420-6)는 모터(미도시) 및 제어부(미도시)에 연동할 수 있다. 또한, 다축 모션 플랫폼(110b)은 엑추에이터(420-1 ~ 420-6)를 고정하는 베이스 플레이트(400)와 플랫폼 플레이트(410)를 포함한다.
다축 모션 플랫폼(110b)의 탑승 시트(110c)에 탑승한 사용자는 컨텐츠 제어기(110a) 즉 컨트롤러를 조작해 컨텐츠를 제어하며 게임을 즐길 수 있다. 즉 로봇 캐릭터를 이동시켜 주변 배경을 바꾸게 된다. 나아가, 다축 모션 플랫폼(110b)은 컨트롤러의 조작에 의해 자신이 지정한 객체를 회전시키는 것이 가능하다면 해당 회전에 대한 제어 정보가 모션 제어 장치(100)로 제공될 것이다. 이에 따라 플랫폼 제어 장치(100)는 해당 회전에 대한 제어 정보를 이용해 회전 정보를 생성 또는 추출하여 출력하게 되고, 다축 모션 플랫폼(110b)은 해당 값을 수신하여 회전 축을 제어할 수도 있을 것이다. 따라서, 본 개시의 실시예에서는 플랫폼 제어 장치(100)가 어떠한 방식으로 모션 정보를 생성하여 다축 모션 플랫폼(100b)에 제공하는지에 대하여 특별히 한정하지는 않을 것이다.
한편, 본 개시의 실시예에 따른 다축 모션 플랫폼(100b)은 <표 2>에 나타낸 데이터 시트 상의 정격값들을 참조해 실감게임 시뮬레이터(110)로서 설계될 수 있다.
도 6a는 도 1의 플랫폼 제어 장치의 세부 구조를 예시하여 나타낸 블록다이어그램이며, 도 6b는 도 6a의 모션 정보 처리부 내에 구비되는 프로그램을 예시하여 나타낸 도면이며, 도 7은 게임상의 3차원 모션 정보의 처리 과정을 설명하기 위한 도면이다.
설명의 편의상 도 6a 및 도 6b를 도 1과 함께 참조하면, 도 1의 플랫폼 제어 장치(100)는 모션 정보 처리부(600) 및 저장부(610)를 포함할 수 있다.
여기서, 모션 정보 처리부(600)는 다축 모션 플랫폼(110b)에 구비되는 컨트롤러, 조이스틱 등의 컨텐츠 제어기(110a) 및 외부의 영상표시장치와 연동할 수 있다. 예를 들어, 모션 정보 처리부(600)는 인터넷 등을 통해 외부에서 게임 컨텐츠를 수신하는 경우 이를 저장부(610)에 임시 저장한 후 외부의 영상표시장치로 제공해 줄 수 있다.
그리고, 영상표시장치의 화면에 표시된 게임 컨텐츠에서 사용자가 지정한 특정 객체 가령 도 3a 및 도 3b의 가상 로봇(100-3a)의 모션을 조작하는 컨트롤러 조작 신호(또는 조이스틱 신호) 즉 컨텐츠 제어 신호를 수신할 수 있다. 모션 정보 처리부(600)는 이러한 컨트롤러 조작 신호를 실시간으로 수신하고, 이를 반영하여 게임 컨텐츠를 영상표시장치로 제공하게 된다.
이의 과정에서 모션 정보 처리부(600)는 해당 컨트롤러 조작 신호에 근거하여 객체의 좌표 정보를 추출(또는 산출)하여 다축 모션 플랫폼(110b)으로 제공한다. 여기서, 추출은 테이블 형태로 기저장된 좌표 정보를 불러내는 것을 의미한다.
또한, 모션 정보 처리부(600)는 컨트롤러 조작 신호를 실시간으로 수신하고, 이를 반영하여 게임 컨텐츠를 영상표시장치로 제공하는 과정에서 객체에 이벤트가 발생하는지를 판단할 수 있다. 예를 들어, 가상 로봇(100-3a)이 돌에 걸리거나 벽에 부딪히는지를 판단할 수 있다. 가령 돌에 걸린다고 판단되면 이의 충격량을 반영하여 모션 정보 처리부(600)는 가상 로봇(100-3a)의 좌표 정보 및 회전 정보를 추출하여 다축 모션 플랫폼(110b)으로 제공할 수 있다. 여기서, 충격이 있는지는 장애물의 위치와 가상 로봇(100-3a)의 위치가 동일할 때 가능하다. 기타 자세한 내용은 앞서 충분히 설명하였으므로 더 이상의 설명은 생략하도록 한다.
실질적으로 이러한 모션 정보 즉 좌표 정보와 회전 정보는 모션 정보 처리부(600)의 내부 메모리에 저장된 모션 정보 생성 프로그램에 의해 실행된다고 볼 수도 있다. 다시 말해, 모션 정보 처리부(600)는 하나의 소프트웨어 형태로 구성될 수 있지만, CPU와 메모리를 포함하는 하드웨어 형태로 구성될 수 있다. 물론 하나의 소프트웨어란 CPU의 기능과 메모리 내에 저장된 도 6b에서와 같은 프로그램들의 모든 기능을 수행하는 것을 전제로 한다. 이러한 프로그램들은 저장부(610)에 장기적으로 저장되고, 사용자의 요청이 있을 때 즉 게임을 진행하고자 할 때 메모리에 임시 저장될 수 있다. CPU는 메모리에 저장된 프로그램들을 실행시켜 위의 동작을 수행한다고 볼 수 있다.
예를 들어, 모션 정보 처리부(610)는 도 6a의 게임 엔진(600-1) 즉 게임 프로그램을 통해서는 게임 컨텐츠에 대한 데이터 또는 정보를 처리할 수 있다. 다시 말해, 게임 엔진을 통해서는 저장부(610) 또는 내부 메모리에 저장된 게임 컨텐츠를 실행시킬 수 있다. 또한, 컨트롤러 조작에 의해 이동하는 객체의 모션에 대한 좌표 정보를 생성하여 출력할 수 있다. 그리고 생성한 좌표 정보는 모션 정보 엔진(600-2) 즉 모션 정보 프로그램에 제공해 줄 수 있다.
모션 정보 엔진(600-2)을 통해서는 게임 엔진(600-1)에서 제공된 좌표 정보와 가령 돌 충격과 같은 이벤트의 발생에 따른 충격량 정보를 반영하여 생성한 좌표 정보(Px, Py, Pz)와 회전 정보(Ox, Oy, Oz)를 생성해 출력할 수 있다. 실질적으로 모션 정보 엔진(600-2)은 앞서 설명한 대로, 로봇의 상태, 즉 빨리 걷는 중인지 혹은 뛰는 중인지에 대한 정보에 돌 충격에 의한 충격량 정보를 반영할 수 있다. 그리고, 모션 정보 엔진(600-2)은 저장부(610)에 기저장된 좌표 정보 및 회전 정보를 추출하여 제공할 수 있을 것이다. 또는 벽에 부딪힌 경우라면 벽의 충격에 따라 좌표 정보와 회전 정보를 추출하여 제공한다. 이때, 제공되는 좌표 정보와 회전 정보는 로봇의 크기 등에 따라서도 얼마든지 달라지는 것이며, 이는 앞서 충분히 설명하였으므로 더 이상의 설명은 생략하도록 한다.
도 7을 참조하여 본 개시의 실시예에 따른 모션 정보 처리부(500)의 게임상의 3차원 모션 정보의 처리 과정을 살펴보면 다음과 같다. 도 7의 (a)는 월드좌표계에서의 이동량을 예시하여 나타낸 것이고, 도 7의 (b)는 로컬 좌표계에서의 이동량을 예시하여 나타내는 것이다.
도 7을 참조하면, 게임 렌더링 중의 위치 이동량은 아래의 <수학식 1>과 같이 나타낼 수 있다.
이때, i는 △t 이전의 프레임 번호이고, △t 동안 수집된 월드 좌표계상의 모션정보 개수는 n개 일 때, k = i + n으로 나타낼 수 있다. Pi, Pi+1, … Pk는 i ~ k 프레임 사이의 위치 변화를 나타내고, w는 월드 좌표계를 나타내며, Ci, Ck는 객체(게임 내의 로봇) 좌표계이다. 월드 좌표계에서 객체 좌표계로 변환은 Tw →c로 표현된다.
또한, 객체 좌표계에서의 위치 이동량은 <수학식 2>에서와 같이 나타낼 수 있다.
가장 최근의 객체 위치 좌표(local position) Ck를 기준으로 3차원 공간상에서의 이동량을 캐릭터 좌표계에서의 이동량으로 변환하게 된다.
이때 제공되는 컨텐츠의 강도 조절을 위해 전체 모션 정보의 크기를 조절할 필요가 있으므로 스케일 조정자(scale factor) s를 정의하게 된다.
상기의 같은 처리 과정에 의해, 최종 출력되는 정보는 <표 3>에서와 같은 형식을 가질 수 있다.
저장부(610)는 EPROM이나 EEPROM을 포함할 수 있다. 다시 말해, 비휘발성 메모리인 것이 바람직하다. 저장부(610)는 게임 컨텐츠를 영구적으로 저장하고, 도 5b에서와 같이 게임 엔진(600-1)과 모션 정보 엔진(600-2)을 저장할 수 있다. 그리고, 모션 정보 처리부(600)의 요청이 있는 경우, 저장된 게임 컨텐츠, 게임 엔진(600-1) 및 모션 정보 엔진(600-2) 중 적어도 하나를 출력해 줄 수 있다.
저장부(610)는 모션 정보로서 좌표 정보와 회전 정보를 저장하고, 이러한 정보는 객체의 상태나 특정 이벤트에 매칭되어 저장될 수 있다. 예를 들어, 단순히 로봇이 걷거나 뛰거나 하는 경우라면 이의 객체 상황에 맞는 좌표 정보와 회전 정보를 추출하여 제공한다. 그러나, 특정 이벤트가 발생하면, 해당 이벤트와 객체 상황에 맞는 좌표 정보와 회전 정보를 추출하여 제공하는 것이다. 앞서 언급한 대로, 저장부(610)는 특정 이벤트에 따른 대표적인 좌표 정보와 회전 정보만을 저장할 수도 있다. 그리고 객체의 특정 상태에 대한 증가값이나 가중치에 대한 정보를 더 저장할 수 있다.
이의 경우, 모션 정보 처리부(600)는 기설정된 규칙에 따라 대표적인 좌표 정보와 회전 정보에 증가값이나 가중치에 대한 정보를 반영하여 새로운 좌표 정보와 회전 정보를 생성해 낼 수 있다. 앞서 언급한 대로 로봇이 천천히 걷는 경우를 기준으로 좌표 정보와 회전 정보를 저장하였는데, 빨리 걷는다거나 뛰는 경우에는 기저장된 증가값이나 가중치를 반영해 새로운 정보를 생성할 수 있는 것이다.
<표 4>는 실감 게임 시뮬레이터의 실감 요소를 정의한 테이블을 나타낸다. 다시 말해, <표 4>에 나타낸 다양한 항목들에 따라 객체의 좌표 정보와 회전 정보는 달라질 수 있는 것이다.
<표 4>에서 볼 때, No 11 ~ 15에 해당되는 특수 이벤트(Special Event)에서 발생하는 특수 모션은 가상 공간에서 일어나는 물리 현상을 플랫폼에서 동일하게 구현하는 데에 물론 한계가 있을 수 있다. 따라서, 본 개시의 실시예에서는 특수 모션의 실감성을 최대로 표현하기 위해 도 2a 및 도 2b에 도시한 MLF 모듈(100-2) 및 모션 플랫폼(110b)의 세밀한 정의(또는 설계)가 필요할 수 있을 것이다.
예를 들어, 특수 모션, 즉 자유 낙하, 가속-감속, 점프 등에 대한 모션 체감성을 추가함으로써 실감나는 모션을 재연할 수 있을 것이다.
또한, 사용자 몰입도 분석을 통한 데이터를 참고함으로써 시스템을 보다 안정화시킬 수 있는데, 이에 따라 사용상의 흥미 상승이 기대되며, 그 중에서 라이더 형태의 시스템은 플랫폼의 만족도가 컨텐츠에 대한 사용자의 몰입도 분석을 통해 가능할 수 있을 것이다.
상기와 같이, 로봇형 플랫폼(H/W)과 연동 가능한 게임엔진 모듈(S/W)을 구현함으로써 실감 로봇 플랫폼 기반 아케이드 게임 구동이 가능한 게임 플랫폼을 구현할 수 있을 것이다. 또한 다축(6DOF) 표현 가능한 운동성 로봇 플랫폼의 정밀한 제어를 통하여 실제와 유사한 운동성 피드백을 재연할 수 있는 탑승형 로봇 플랫폼의 개발에 따라 이를 아케이드 게임과 연동하여 서비스함으로써 가상의 3차원 세계를 현장감있게 제공할 수 있을 것이다.
또한, 본 개시의 실시예에 따르면, 3D 월드 자율 네비게이션이 가능하게 된다. 즉 포크레인, 잠수함, 선박 등 다양한 시뮬레이션 컨텐츠의 교체가 가능하다. 컨텐츠 영상은 실시간 렌더링이 가능하며, 모션 동기화 측면에서는 게임 3D 정보 기반의 역기구학적 실시간 분석에 의한 모션 전달이 가능하다.
나아가, 모션 재연성 측면에서는 6 + 2 DoF가 가능할 수 있다. 모터식 플랫폼 구성과 본 개시의 실시예에 따른 제어 기술로 순간적인 모션, 가령 흔들림, 떨림, 반동 등의 재연이 가능하다. 2 DoF의 추가 개발을 통해 탑승 체감성이 증대될 수 있다. 1인 탑승이지만, 향후 동일 다수 플랫폼의 네트워크 연결이 가능할 수 있을 것이다. 나아가, 게임 컨텐츠 교체를 위한 사전 작업이 최소화된다. 즉 3D 모션 데이터를 그대로 사용하므로 유사한 컨텐츠에는 사전 작업이 필요 없게 될 것이다.
도 8은 도 1의 플랫폼 제어 장치의 다른 세부 구조를 예시하여 나타낸 블록다이어그램이다.
설명의 편의상 도 8을 도 1과 함께 참조하면, 본 개시의 다른 실시예에 따른 플랫폼 제어 장치(100')는 인터페이스부(800), 제어부(810), 저장부(820) 및 모션정보 생성부(830)의 일부 또는 전부를 포함할 수 있다.
여기서, 일부 또는 전부를 포함한다는 것은 저장부(820)와 같은 일부 구성요소가 생략되어 구성되거나, 모션 정보 생성부(830)와 같은 일부 구성요소가 제어부(810)와 같은 다른 구성요소에 통합하여 구성될 수 있는 것 등을 의미하는 것으로서 발명의 충분한 이해를 돕기 위하여 전부 포함하는 것으로 설명한다.
인터페이스부(800)는 통신 인터페이스부 및 사용자 인터페이스부를 포함한다. 통신 인터페이스는 컨트롤러(예를 들어, 조이스틱) 및 다축 모션 플랫폼(110b)과 연동할 수 있다. 다시 말해, 컨트롤러로부터 컨트롤러 조작 신호를 수신하여 제어부(810)에 전달한다. 또한 컨트롤러 조작 신호에 근거하여 이동하는 지정된 객체의 3차원 모션 정보를 다축 모션 플랫폼(110b)으로 제공한다. 여기서, 3차원 모션 정보는 다양한 정보를 포함한다. 가령 X축, Y축 및 Z축으로 로봇의 모션에 대한 좌표 정보, 각 축별 회전 정보, 충격량 정보 등 다양한 정보를 포함한다. 사용자 인터페이스부는 디스플레이부, 버튼 입력부 또는 저장 매체를 연결할 수 있는 저장매체 연결부를 포함할 수 있다. 디스플레이부는 사용자의 요청에 따라 저장부(820) 또는 저장 매체에 저장된 게임 컨텐츠를 화면에 표시할 수 있다. 버튼 입력부는 전원 버튼 또는 볼륨 등과 같은 입력 버튼을 포함할 수 있다.
제어부(810)는 플랫폼 제어 장치(100') 내의 인터페이스부(800), 저장부(820) 및 모션 정보 생성부(830) 등의 전반적인 동작을 제어한다. 다시 말해, 제어부(810)는 사용자의 요청이 있는 경우, 저장부(820)에 저장된 게임 컨텐츠를 실행시켜 디스플레이부에 표시한다. 이와 함께 모션 정보 생성부(830) 내의 프로그램을 실행시킬 수 있다. 여기서 프로그램은 도 6b의 모션 정보 엔진(600-2)이 될 수 있다. 또한, 화면에 표시된 게임 영상을 보고 사용자가 조작하는 컨트롤러 조작 신호를 수신하며, 제어부(810)는 수신한 컨트롤러 조작 신호에 따른 영상을 다시 디스플레이부에 제공한다. 여기서, 컨트롤러 조작 신호에 따른 영상이란 로봇과 같은 객체의 이동에 따라 변경되는 로봇의 배경 영상이 될 수 있다.
또한, 사용자는 컨트롤러의 조작에 따라 로봇과 같은 객체를 걷게 하거나 뛰게 하거나 할 수 있는데, 제어부(810)는 이와 같은 객체의 상태에 따른 3차원 모션 정보를 생성 또는 추출하도록 모션 정보 생성부(830)를 제어한다. 그리고 제어부(810)는 생성된 정보를 다축 모션 플랫폼(110b)으로 제공하도록 제어한다. 이때의 3차원 모션 정보는 로봇의 모션에만 관련되므로 X축, Y축 및 Z축에 대한 좌표 정보 및 회전 정보가 될 수 있다. 이의 과정에서 가령, 돌 충격과 같은 특정 이벤트가 발생하게 되면, 로봇 객체는 각 축별로 추가적인 움직임이 발생할 수 있다. 따라서, 제어부(810)는 돌 충격과 같은 이벤트와 위의 객체의 상황에 따른 좌표 정보와 회전 정보를 제공받아 인터페이스부(800)를 통해 다축 모션 플랫폼(110b)으로 제공할 수 있다.
한편, 제어부(810)는 하나의 소프트웨어 형태로 구성될 수 있지만, 하드웨어적으로 CPU와 메모리를 포함할 수 있다. 여기서, 하나의 소프트웨어 웨어는 CPU와 메모리 내의 프로그램들에 대한 동작을 수행한다고 볼 수 있다. 예를 들어, 사용자가 게임 컨텐츠를 실행시킨 경우, CPU는 저장부(820)에 저장된 게임 컨텐츠, 모션 정보 생성부(830)에 저장된 가령 도 6b의 게임 엔진(600-1) 및 모션 정보 엔진(600-2)을 메모리에 임시 저장하고 이를 실행시킬 수 있을 것이다. 이때 메모리는 RAM과 같은 휘발성 메모리를 포함할 수 있다.
저장부(820)는 게임 컨텐츠, 로봇과 같은 객체에 대한 3차원 모션 정보 등을 저장하고, 도 6b의 게임 엔진(600-1)을 더 포함할 수 있다. 이러한 저장부(820)는 영구적으로 정보를 저장할 수 있는 ROM과 같은 비휘발성 메모리인 것이 바람직하다. 기타 자세한 내용은 도 6a의 저장부(610)와 크게 다르지 않으므로 그 내용들로 대신하고자 한다.
모션 정보 생성부(830)는 마스크 롬, EPROM이나 EEPROM의 형태로서 도 6b의 모션 정보 엔진(600-2)과 같은 프로그램을 저장할 수 있다. 그리고, 제어부(810)의 제어에 따라 내부 프로그램을 실행시켜 결과를 제어부(810)에 제공할 수 있다. 또는 게임 실행시 제어부(810)의 요청에 따라 내부에 저장된 프로그램을 제어부(810)로 제공하여 내부 메모리에 저장되도록 할 수 있다. 모션 정보 생성부(830)는 모션 정보 엔진(600-2)을 실행시켜 게임 엔진(600-1)이 제공하는 좌표 정보와, 충격량 정보 또는 로봇 객체의 상태 등에 대한 다양한 정보를 이용하여 다축 모션 플랫폼(110b)을 제어하기 위한 제어 정보를 생성할 수 있을 것이다.
다시 말해, 앞서 언급한 대로, 저장부(820)에는 로봇 객체가 천천히 걸을 때의 좌표 정보를 저장하고 있다. 또한, 천천히 걸을 때, 충격 이벤트가 발생하면 좌표 정보와 회전 정보를 얼마 정도로 변경하라는 증가값이나 가중치에 대한 정보가 있다면 이를 반영하여 좌표 정보와 회전 정보를 산출한다. 이와 같은 과정에 의해 산출된 좌표 정보 및 회전 정보를 출력하게 된다.
한편, 모션 플랫폼 기반의 게임 실감성 향상을 위하여 본 개시의 실시예에서는 개인 선택적 실감성을 제공할 수 있다. 다시 말해, 탑승자 하중에 적응적인 모션 플랫폼 작동 출력을 변화하는 것이 가능하다. 특히, 기존의 플랫폼들이 위치제어기반으로 시스템을 구성하였다면, 본 개시의 실시예에 따른 플랫폼은 힘 제어기반으로 시스템이 구성된다. 즉 힘 제어기반의 기술이 적용되는 것이다. 힘 제어를 사용하기 위해서는 무엇보다도 시스템의 실시간성이 중요시된다. 따라서, 실내/개인용 시뮬레이터의 사양을 대비하기 위하여 진동 및 소음에 대한 중요성이 있으며, 이들은 기구부의 효율성과 안정성과 관련된 척도라 할 수 있다. 이러한 부분도 향후 고려될 수 있을 것이다.
도 9는 토크 제어 시스템 루프의 일반적인 예를 나타내는 도면이다.
기존의 플랫폼은 위치제어기반의 제어 기법을 주로 적용하였는데, 컨텐츠에서 생성된 움직임을 정확히 추종함으로써 플랫폼의 움직임을 구현하였다. 이를 위해서 기구적으로 고정된 궤적을 움직이도록 하거나, 움직임 자체에 대한 오차분을 최소화하여 탑승한 사용자의 반응과 관계없이 움직임을 생성한다는 특징이 있다. 이렇게 될 경우, 플랫폼의 움직임이 딱딱하다는 느낌이 전달되기 쉬우며, 이를 방지하기 위해서는 위치 기반의 제어를 하지만, 도 9에서와 같이 각 모터에 대해서는 토크 제어를 수행함으로써, 사용자가 플랫폼에 전달하는 힘이 플랫폼의 움직임에 영향을 줄 수 있도록 설계되어야 한다.
이를 개선하기 위하여, 본 개시의 실시예에서 제안하는 플랫폼 제어기술은 힘제어 기반의 제어기술을 활용하여 로봇의 움직임이 실시간으로 외부 환경에 의해서 수정이 될 수 있도록 하였다. 이에 따라 사람의 하중 등의 외력은 로봇에 그대로 전달되어 로봇의 출력을 조절할 수 있도록 제어하는 동역학 해석 기반의 전류제어기법으로 구현할 수 있으며, 이를 통해서 모션 적용 대상인 컨텐츠 속의 로봇 종류에 따라서, 그 유연함을 많이 주거나 적게 주도록 조정할 수 있게 되고, 또 탑승자의 성향에 따라서 그 유연성의 정도를 조정할 수 있게 된다.
더 나아가, 본 개시의 실시예에서는 임계치 보정 기술이 적용될 수 있다. 다시 말해, 게임 내부 모션이 그대로 게임 플랫폼에 반영될 경우 오히려 게임 플랫폼 탑승자에게 울렁거림과 피로함이 증가하거나 안전사고 발생 가능성이 존재한다. 따라서, 가령 도 2a 및 도 2b에서와 같이 MLF 모듈(100-2)에서 실감성 극대화와 동시에 탑승자의 편안함과 안정성을 확보할 수 있다.
이러한 임계치 보정 기술은 MLF 모듈(100-2) 단에서 조정하는 제어적 임계치 보정 기술과 다축 모션 플랫폼(110b) 단에서 제어하기 위한 기구적 임계치 보정 기술로 구분해 볼 수 있다.
본 개시의 실시예에서 로봇과 컨텐츠와의 연동이 중요한 사항이다. 하지만, 플랫폼은 임의로 변경이 가능하고, 그 사양에 따라서 컨텐츠는 플랫폼의 종류를 선택할 수 있도록 할 수 있다. 하지만, 플랫폼의 구동범위 이상의 값이 생성되었을 경우에는 플랫폼의 구동에 문제를 일으키게 될 것이고, 이를 컨텐츠에서 사전 지식으로 모두 알고 있는 것은 부하가 상당히 걸리게 될 수 있다는 것이다.
따라서, 컨텐츠에서는 적용대상인 컨텐츠 로봇의 움직임 즉 이동 및 회전 정보만을 생성하고, 이를 로봇 플랫폼 내에서 기구적으로 관계식을 해석할 수 있도록 하는 것이다. 이 과정에서 로봇 플랫폼은 기구적인 임계치가 있으므로, 이를 자율적으로 보상할 수 있도록 모션 정보를 수정하는 과정을 수행할 수 있을 것이다.
이를 통해서 플랫폼은 항시 안정적인 움직임을 보장할 수 있는 범위에서 모션을 표현할 수 있도록 구동시킬 수 있을 것이다.
다시 말해, 다축 모션 플랫폼(110b)은 6축에 대하여 임계치가 설정되어 있는 경우, 수신된 좌표 정보 및 위치 정보가 그 임계치를 벗어나지 않도록 하여 6축을 제어한다고 볼 수 있다.
한편, 모션 플랫폼에 적용되는 움직임 정보는 모두 컨텐츠에서 생성이 가능하도록 되어 있다. 따라서 전체 적용되는 움직임은 <수학식 3>에서와 같이 나타낼 수 있다.
여기에서, mi는 개별적인 이동 및 이벤트에 의해 생성되는 움직임을 의미하고, wi는 각 움직임에 대한 가중치 정보를 의미한다. 즉, 설정에 따라서 적용되는 움직임을 개별적으로 조정이 가능함을 의미하고, 이들에 의해서 동일 환경에서 동일 이벤트가 발생하더라도 다양한 반응이 발생할 수 있도록 할 수 있다. 심지어, 동일 이벤트에 대해서 m의 정보를 달리 정의하게 되면 사용자의 선택에 따른 개인적인 반응을 적용할 수 있게 되는 것이다.
이들의 조합에 의해서 생성되는 Mtotal도 사용자의 선택에 의해서 임계치를 적용할 수 있도록 한다.
이를 통해서 플랫폼은 항시 안정적인 움직임을 보장할 수 있는 범위에서 모션을 표현할 수 있도록 구동시킬 수 있게 되는 것이다.
예를 들어, 사용자가 게임 시작 전에 설정을 위하여 전문가 모드 또는 일반 사용자 모드를 설정할 수 있는데, 이에 근거하여 특정 값을 갖는 좌표 정보 및 회전 정보가 다축 모션 플랫폼(110b)으로 제공된다고 볼 수 있을 것이다.
도 10은 본 개시의 실시예에 따른 플랫폼 제어 방법을 나타내는 흐름도이다.
설명의 편의상 도 10을 도 1과 함께 참조하면, 본 개시의 실시예에 따른 플랫폼 제어 장치(100)는 영상표시장치의 화면에 표시되는 3차원 영상의 객체와 관련된 3차원 모션 정보를 저장한다(S1000). 여기서, 3차원 모션 정보는 가령 <표 3>에 나타낸 바와 같은 특정 상황에 따른 좌표 정보와 회전 정보가 될 수 있다.
그리고, 플랫폼 제어 장치(100)는 객체에 이벤트가 발생하면, 저장된 3차원 모션 정보를 이용해서 발생된 이벤트가 반영된 다축 모션 플랫폼(110b)의 좌표 정보 및 회전 정보를 제어 정보로서 생성해 다축 모션 플랫폼(110b)으로 제공하게 된다(S1010). 이러한 제어 정보의 생성과 관련해서는 앞서 충분히 설명하였으므로 더 이상의 설명은 생략하도록 한다.
상기의 같은 모션 발생, 저장, 제공 및 재연 과정은 본 개시의 실시예에 따라 실시간으로 진행되는 것이 바람직하다.
도 11은 본 개시의 다른 실시예에 따른 다인승 실감 게임 시뮬레이터 시스템을 나타내는 도면이고, 도 12는 도 11의 다인승 모션 플랫폼을 다시 나타낸 도면이다.
도 11에 도시된 바와 같이, 본 개시의 다른 실시예에 따른 다인승 실감 게임 시뮬레이터 시스템(1090)은 다인승 모션 플랫폼(1100), 복수의 영상표시장치(1110-1, 1110-2) 및 호스트 장치(1120)를 포함한다.
여기서, 다인승 모션 플랫폼(1100)은 플랫폼에 장착되는 좌석을 포함하며, 이 좌석은 (플랫폼의 움직임과) 별도의 움직임이 발생하는 모션체어를 포함한다. 이에 의해 플랫폼에 탑승하고 있는 복수의 사용자 즉 탑승자들은 가상공간(ex. 게임 영상) 내의 실제 환경과 유사함을 느끼게 된다. 예를 들어, 다인승 모션 플랫폼(1100)이 전장의 탱크와 같은 플랫폼이라 가정하면, 운전자와 사수는 같은 플랫폼에 동승을 하고 있지만, 포신부에 탑승하여 포신을 조종하는 사수는 포신의 회전 움직임에 따라 운전자와 다른 방향으로 놓이게 된다. 따라서, 운전자와 사수가 서로 직각 방향을 보고 있고 탱크의 전면에서 충격이 주어진다고 가정할 때, 운전자는 정방향에서 충격이 전달되겠지만, 사수는 측방향에서 충격을 받는다. 다인승 모션 플랫폼(1100)은 이러한 상황을 감안하여 설계됨으로써 탑승자들이 게임에서의 모션을 실감나게 느낄 수 있고, 탑승자들의 게임에 대한 몰입감도 증가하게 된다.
좀 더 구체적으로, 다인승 모션 플랫폼(1100)은 도 12에 도시된 바와 같이, 베이스 플레이트(1200), 제1 엑추에이터(1210), 플랫폼 플레이트(1220), 제2 엑추에이터(1230) 및 시트부(1240) 등을 포함할 수 있다. 베이스 플레이트(1200) 및 플랫폼 플레이트(1220)는 상측 및 하측에서 제1 엑추에이터(1210)를 고정하는 플레이트들에 해당되고, 제2 엑추에이터(1230)는 플랫폼 플레이트(1220)의 상측에 고정되어 시트부(1240)의 움직임을 만들어낸다. 제2 엑추에이터(1230)와 제2 엑추에이터(1230)에 고정된 시트부(1240)는 본 개시에서 명명하는 모션체어에 해당된다. 상기와 같은 구성에 따라, 다인승 모션 플랫폼(1100)은 가령 가상공간 내의 탱크와 같이 동작할 수 있게 되고, 이에 따라 플랫폼(1100)에 탑승하고 있는 복수의 탑승자는 탱크의 움직임을 동시에 느끼면서, 또 탱크에서 자신의 위치와 방향에 따라 서로 다른 별도의 움직임을 느낄 수 있게 된다. 탱크의 움직임을 같이 느낄 수 있도록 플랫폼(1100)은 제1 엑추에이터(1210)가 동작할 수 있고, 개별적으로 서로 다른 움직임을 각 탑승자가 느낄 수 있도록 제2 엑추에이터(1230)가 동작할 수 있다. 물론 이러한 동작들은 제1 엑추에이터(1210) 및 제2 엑추에이터(1230)에 연결되어 별도로 구성되어 있는 구동부(ex. 도 11의 호스트 장치(1120) 등)의 제어에 의해 이루어질 수 있을 것이다.
물론, 본 개시의 실시예에 따른 다인승 모션 플랫폼(1100)은 다양하게 변형될 수 있다. 예를 들어, 초기에 플랫폼(1100)상의 모든 탑승자들은 동일한 방향을 바라보도록 플랫폼(1100)이 자동으로 동작할 수 있다. 이후 사용자가 게임을 실행시킨 후 하나의 객체(ex. 탱크)에서 자신의 역할(ex. 운전수, 사수 등)을 지정하면, 플랫폼(1100)은 자동으로 시트부(1240)를 전진 또는 후진시키거나 회전시킬 수 있다. 또는, 플랫폼(1100)은 플랫폼(1100)상의 탑승자가 시트부(1240)에 구비되는 컨트롤러(예를 들어, 조이스틱)와 같은 제어기를 조작하는 것에 의해 상기의 동작을 수행할 수도 있을 것이다. 뿐만 아니라, 플랫폼 플레이트(1220)상에 레일(rail)이 형성되어 있는 경우에는 레일을 따라 자신의 위치로 이동하는 것도 얼마든지 가능할 수 있을 것이다. 따라서, 본 개시의 실시예에서는 위의 구조에 특별히 한정하지는 않을 것이다.
복수의 영상표시장치(1110-1, 1110-2)는 착용형 영상표시장치를 포함한다. 본 개시의 실시예에 따라 플랫폼(1100)상의 제1 탑승자가 착용하는 제1 영상표시장치(1110-1)는 가령 가상공간 내에서 탱크를 운전하는 운전자가 바라보는 방향의 제1 영상을 표시하고, 제2 영상표시장치(1110-2)는 탱크에서 포신을 조종하는 사수가 바라보는 방향의 제2 영상을 표시할 수 있다. 즉 복수의 영상표시장치(1110-1, 1110-2)는 복수의 탑승자에게 복수시점 기반의 영상을 제공하기 위하여 서로 다른 내용의 영상을 각각 수신하는 것이다. 이러한 제1 영상 및 제2 영상은 영상표시장치(1110-1, 1110-2)에 연동하는 호스트 장치(1120)에서 제공할 수 있다. 이때 영상표시장치(1110-1, 1110-2)는 유선으로 호스트 장치(1120)에 연결되어 제1 영상 및 제2 영상을 각각 제공받을 수 있지만, 무선으로 영상 데이터를 수신하는 것도 얼마든지 가능하므로, 특정 방식에 특별히 한정하지는 않을 것이다.
호스트 장치(1120)는 컴퓨터, 휴대폰 또는 서버 등을 포함할 수 있다. 도 11에서는 설명의 편의상 다인승 모션 플랫폼(1100)이 주변의 컴퓨터와 같은 호스트 장치(1120)에 직접 연결되어 있는 것을 도시하였지만, 무선 통신망(ex. AP, WCDMA망 등)을 경유하여 연결되어 있는 서버의 형태가 될 수도 있을 것이다. 호스트 장치(1120)는 하나의 독립된 장치로서 구성되어 다인승 모션 플랫폼(1100)을 제어하기 위한 모션 정보(ex. 위치, 방향 정보)를 처리하는 제1 동작과 영상표시장치(1110-1, 1110-2)로 서로 다른 내용의 영상을 제공하기 위해 영상을 처리하는 제2 동작을 수행할 수 있다. 물론 이러한 동작은 호스트 장치(1120)가 별도의 장치(ex. 도 1a의 MLF 장치 등)와 연동하는 경우에는 제2 동작만 수행하고, 제1 동작에 동기화되는 영상만을 생성하여 영상표시장치(1110-1, 1110-2)로 각각 제공할 수 있을 것이다.
좀 더 구체적으로 호스트 장치(1120)는 특정 게임 등에서 여러 상황들에 대한 영상 정보를 저장해 둘 수 있다. 여기서, "여러 상황"이란 가령 탱크가 전진하거나 후진하는 등의 상황, 탱크의 운전자나 사수가 위치 및 방향을 변경하는 경우, 지면상의 돌과 같은 장애물에 의해 충격이 발생하거나 다른 탱크로부터 발사된 포탄에 맞아 충격이 발생하는 상황 등을 나타낸다. 대표적으로, 영상 정보는 가상공간 내에서 탱크의 운전자와 사수의 위치 및 방향에 따른 영상 정보를 저장할 수 있다. 더 정확하게는 위치 및 방향을 나타내는 모션 정보에 매칭되는 영상 정보일 수 있다. 그리고, 호스트 장치(1120)는 가령 다인승 모션 플랫폼(1100)상의 탑승자가 컨트롤러, 조이스틱 등을 통해 위치 및 방향 등에 대한 변화량 정보 즉 컨트롤러 조작 신호를 제공하면, 이에 따라 영상 정보 즉 데이터를 선택하여 영상표시장치(1110-1, 1110-2)로 제공할 수 있다. 또한, 호스트 장치(1120)는 가령 외부로부터의 충격에 따른 영상 정보도 함께 저장해 두었다가, 이에 관련된 이벤트가 입력되면 그의 상황에 부합되는 영상 데이터를 출력할 수 있다. 이러한 영상 데이터를 제공하는 방법과 관련해 가장 간단한 방법은 다양한 변수(ex. 위치, 방향, 충격 등)에 따른 영상 정보를 저장해 두고, 입력된 변수들과 서로 매칭되는 영역, 가령 룩업테이블(LUT) 형태로 저장된 영상 정보 중에서 특정 룩업테이블 또는 하나의 룩업테이블에서 특정 영역의 영상 정보를 출력하는 것이다.
그 이외에, 호스트 장치(1120)의 제1 동작 등과 관련해서는 앞서 충분히 설명하였으므로, 더 이상의 설명은 생략하고자 한다. 물론, 본 개시의 호스트 장치(1120)는 도 11에서와 같이 다인승 모션 플랫폼(1100)상의 각 탑승자들에 대한 개별 움직임을 제어하기 위한 동작을 수행한다는 점에서 차이는 있지만, 이 또한 다른 엑추에이터들의 제어 동작과 크게 다르지 않으므로, 그 내용들로 대신하고자 한다. 다만, 도 12에서 볼 수 있는 바와 같이, 제2 엑추에이터(1230)는 플랫폼 플레이트(1220)와 시트부(1240)의 사이에 위치하여 시트부(1240)를 전후 방향으로 이동시키거나 회전시키는 모터들을 포함할 수 있다.
도 13은 도 11에 도시된 호스트 장치의 세부 구조를 예시하여 나타낸 블록다이어그램이다.
도 13에 도시된 바와 같이, 본 개시의 다른 실시예에 따른 호스트 장치(1120)는 프로세서(1300) 및 저장부(1310)를 포함할 수 있다.
여기서, 프로세서(1300)는 컨트롤러, 다인승 모션 플랫폼((1100) 및 영상표시장치(1110-1, 1110-2)와 연계 하에 다양한 동작을 수행하게 된다. 프로세서(1300)는 대표적으로 다인승 모션 플랫폼((1100)을 제어하는 제1 동작을 수행하며, 영상표시장치(1110-1, 1110-2)를 제어하기 위한 제2 동작을 수행한다. 제1 동작을 통해 플랫폼상의 탑승자들은 가상공간 내에서 지정한 객체에 동기되어 모션을 느낄 수 있게 되고, 제2 동작을 통해 플랫폼상의 복수의 탑승자들이 자신이 바라보는 방향을 의식할 수 있도록 한다. 예를 들어, 프로세서(1300)는 가상공간 내에서 탱크를 운전하는 운전자가 운전하는 방향을 의식할 수 있도록 운전자가 바라보는 전면 방향에 관련된 제1 영상을 제1 영상표시장치(1110-1)로 제공하고, 포신을 조종하는 포수가 지향하는 방향을 의식할 수 있도록 포수가 바라보는 전면 방향에 관련된 제2 영상을 제2 영상표시장치(1110-2)로 제공하게 된다.
기타, 프로세서(1300)와 관련한 제1 및 제2 동작과 관련해서는 앞서 충분히 설명하였으므로 더 이상의 설명은 생략하도록 한다.
저장부(1310)는 앞서 언급한 바 있는 다양한 상황들에 대한 영상 정보를 저장할 수 있다. 이러한 영상 정보는 룩업테이블 형태로 저장될 수 있을 것이다. 또한, 저장부(1310)는 룩업테이블의 각 영역 또는 서로 다른 룩업테이블에 대한 인덱스(index) 정보를 더 저장할 수 있을 것이다. 이에 따라, 프로세서(1300)는 저장부(1310)의 인덱스 정보를 확인하여, 입력된 다양한 상황에 상응하는 변수(ex. 모션 정보)와 일치하는 부분의 영상 정보를 제공할 수 있게 된다. 물론 게임은 다양한 종류의 게임이 있을 수 있으므로, 저장부(1310)는 게임이나 게임 내의 객체를 인식하기 위한 식별 정보를 포함할 수 있다.
만약, 저장부(1310)가 기준(reference) 인덱스 정보를 갖는 영상 정보만을 저장하고 있는 경우, 다시 말해 입력된 다양한 상황에 상응하는 변수와 일치하는 인덱스 정보가 확인되지 않는 경우에는 가장 밀접하게 관계있는 기준 인덱스 정보의 영상 정보를 이용하여 입력된 변수(ex. 움직임 변화량 등)에 상응하는 새로운 영상 정보를 생성하여 영상표시장치(1110-1, 1100-2)로 제공하는 것도 얼마든지 가능하므로, 위의 내용에 특별히 한정하지는 않을 것이다.
도 14는 도 11에 도시된 호스트 장치의 다른 세부 구조를 예시하여 나타낸 블록다이어그램이다.
도 14에 도시된 바와 같이, 호스트 장치(1120')는 인터페이스부(1400), 제어부(1410), 저장부(1420) 및 모션정보처리부(1430)의 일부 또는 전부를 포함한다.
여기서 저장부(1420)를 제외한 나머지 구성요소들(1300')은 도 13의 프로세서(1300)의 변형된 예로 볼 수 있으며, "일부 또는 전부를 포함한다"는 것은 저장부(1420)와 같은 일부 구성요소가 생략되어 호스트 장치(1120')가 구성되거나, 모션정보처리부(1430)와 같은 일부 구성요소가 제어부(1410)와 같은 다른 구성요소에 통합되어 구성될 수 있는 것 등을 의미하는 것으로서, 발명의 충분한 이해를 돕기 위하여 전부 포함하는 것으로 설명한다.
도 13의 호스트 장치(1120)와 비교해 볼 때, 도 14의 호스트 장치(1120')는 통신을 수행하는 통신 인터페이스 및 사용자와의 인터페이스 동작을 수행하는 사용자 인터페이스 등의 인터페이스부(1400)를 더 포함하며, 도 13의 프로세서(1300)의 제어 동작과 실질적인 정보 생성 등의 동작을 이원화하여 각 동작을 서로 다른 구성요소에서 수행할 수 있도록 구성하였다는 데에 큰 차이가 있다.
따라서, 도 13의 프로세서(1300)는 원칩(one-chip) 형태로서 가령 소프트웨어의 실행만으로도 본 개시의 실시예에 따른 다양한 동작을 수행할 수 있다면, 도 14의 모션정보처리부(1430)는 제어부(1410)의 제어 하에 동작한다고 볼 수 있다.
모션정보처리부(1430)는 도 6a의 모션정보처리부(600) 또는 도 8의 모션정보생성부(830)와 크게 다르지 않다. 다만, 본 개시의 다른 실시예에 따른 모션정보처리부(1430)는 플랫폼상의 탑승자에 대한 개별 움직임을 제어하기 위한 모션정보를 더 처리할 수 있다는 데에 다소 차이가 있다.
또한, 저장부(1420)는 제어부(1410)의 제어 하에 동작하며, 제어부(1410)에서 요청하는 정보, 가령 인덱스 정보 및/또는 영상 정보를 출력할 수 있다. 이와 관련해서는 도 13의 저장부(1310)과 크게 다르지 않으므로 그 내용들로 대신한다.
도 15는 본 개시의 실시예에 따른 복수시점 기반의 영상 시뮬레이팅 과정을 설명하기 위한 도면이다.
도 15를 참조하면, 다인승 모션 플랫폼(1100)상의 제1 탑승자는 컨트롤러와 같은 입력장치를 통해 가령 3차원 게임 영상을 실행하여 가상공간 내의 특정 객체(혹은 제1 객체)를 선택하게 된다. 또한, 제1 탑승자는 가령 제1 객체로서 탱크(혹은 탱크의 본체)를 지정한 경우, 탱크에서 어떠한 역할을 담당할지를 지정하게 된다. 다시 말해, 탱크 내의 운전대(혹은 운전사)를 지정하면, 탱크의 운전자가 되는 것이다. 또한, 탱크의 포신(혹은 포수)을 지정하게 되면 사수가 되는 것이다. 여기서, 탱크의 본체에 부착되어 별도의 추가 움직임을 가지는 운전대 혹은 포신은 제2 객체가 될 수 있다.
이러한 과정이 완료된 후 게임이 진행되면, 영상표시장치 1(1110-1)의 제1 탑승자는 입력장치를 통해 탱크의 위치(ex. 전진, 후진 등) 변화량, 각도(ex. 좌, 우 등) 변화량 등에 대한 컨트롤러 조작 신호를 호스트 장치(1120)로 전달하게 되고, 호스트 장치(1120)는 입력된 컨트롤러 조작 신호에 상응하는 화면 즉 제1 영상을 생성하여 영상표시장치 1(1110-1)로 제공하게 된다.
이때, 만약 탱크가 진행하는 과정에서 장애물에 충돌하는 등의 이벤트가 발생하면, 호스트 장치(1120)는 이벤트가 반영된 가령 기저장된 모션 정보(ex. 축의 좌표 및 각도 정보)에 근거하여 다인승 모션 플랫폼(1100)을 제어할 수 있다. 이러한 이벤트가 발생하는지의 여부는 호스트 장치(1120)가 현재 영상표시장치 1(1110-1)에 제공한 영상에서 현재 탱크의 위치와, 입력되는 컨트롤러 조작 신호를 근거로 영상에서 기설정된 장애물의 위치를 판단하며, 판단한 장애물에 대하여 기설정된 충격량과 그 충격량에 매칭되는 모션 정보를 추출함으로써 그 추출한 모션 정보를 근거로 호스트 장치(1120)는 다인승 모션 플랫폼(1100)을 제어할 수 있다. 이러한 내용은 앞서 충분히 설명하였으므로, 더 이상의 설명은 생략한다.
또한, 영상표시장치 2(1110-2)를 시청하는 제2 탑승자는 입력장치의 조작에 의해 각도 변화량에 대한 컨트롤러 조작 신호를 호스트 장치(1120)로 전달할 수 있다.
이에 따라, 호스트 장치(1120)는 수신된 컨트롤러 조작 신호를 근거로 가상공간 내의 부조정자 즉 포수가 자신이 지향하는 방향을 의식할 수 있도록 제2 영상을 영상표시장치 2(1110-2)로 제공하게 된다.
이와 같은 과정에서, 제2 탑승자는 탱크에 충격이 발생하면 제1 탑승자와 동일한 모션을 감지하겠지만, 이에 더하여 자신의 위치나 방향에 따라 제1 탑승자와는 다른 개별 움직임을 감지하게 된다. 이를 위하여 호스트 장치(1120)는 다인승 모션 플랫폼(1100)의 제2 엑추에이터(도 12 참조)를 제어하기 위한 모션 정보를 이용할 수 있을 것이다. 물론 제2 엑추에이터를 제어하기 위한 이러한 모션 정보의 경우에도 제1 엑추에이터를 제어하기 위한 모션 정보와 마찬가지로 이벤트를 반영하여 기저장할 수 있기 때문에 호스트 장치(1120)는 이를 이용할 수 있다.
도 16은 본 개시의 실시예에 따른 복수시점 기반의 영상 제공 방법을 나타내는 흐름도이다.
설명의 편의상 도 16을 도 15와 함께 참조하면, 본 개시의 실시예에 따른 호스트 장치(1120)는 적어도 하나의 영상표시장치(1110-1, 1110-2)에 구현되는 가상공간 내의 제1 객체 및 제1 객체에 종속되는 제2 객체의 객체 정보를 각각 저장한다(S1600).
여기서, 제1 객체가 탱크의 본체라면 제2 객체는 탱크에 부착되어 별도의 추가 움직임을 가지는 운전대, 포신 등이 될 수 있다. 따라서, 객체 정보는 가상공간 내에서 탱크에 대한 모션 정보(ex. 좌표, 각도 정보)가 될 수 있고, 운전대 및 포신 등의 조작에 의한 위치, 각도 등에 따른 개별 탑승자의 모션 정보(ex. 각도 변화량)가 될 수 있다. 즉, 개별 탑승자의 모션 정보는 탑승자가 앉아있는 좌석 시트의 움직임에 대한 정보가 될 수 있을 것이다.
이러한 상태에서, 호스트 장치(1120)는 제1 객체 및 제2 객체 중 적어도 하나의 객체에 이벤트가 발생하면, 저장된 객체 정보를 근거로 이벤트가 반영된 제1 영상 및 제2 영상을 생성하여 적어도 하나의 영상표시장치(1110-1, 1110-2)로 제공한다(S1610).
여기서, 제1 객체에 발생하는 이벤트는 지면상에서의 탱크의 위치 이동이 될 수 있고, 지면상의 장애물에 의한 충돌이 될 수 있으며, 상대 탱크로부터의 포탄에 의한 폭발이 될 수도 있다. 또한, 제2 객체에 발생하는 이벤트는 운전대의 조작이나 포신의 조작 등에 의한 좌우 회전 동작이 될 수 있다. 호스트 장치(1120)는 이러한 다양한 상황을 판단하여 각 상황에 부합한 영상을 적어도 하나의 영상표시장치(1110-1, 1110-2)로 제공할 수 있는 것이다. 어떻게 상황을 판단하는지 등과 관련해서는 앞서 충분히 설명하였으므로, 더 이상의 설명은 생략하도록 한다.
나아가, 호스트 장치(1120)는 각 상황에 부합하여 다인승 모션 플랫폼(1100)을 제어하기 위한 모션 정보를 저장하고 있기 때문에, 영상을 출력할 때 저장한 모션 정보를 근거로 다인승 모션 플랫폼(1100)을 제어함으로써 탑승자들이 영상에 동기되어 모션을 느낄 수 있도록 할 수 있다.
지금까지, 도 12 내지 도 17을 참조하여 상술한 바와 같이 본 개시의 실시예에 따른 복수시점 기반의 영상 제공 방법은 다양하게 변형되어 이루어질 수 있으므로, 본 개시에서는 어떠한 방식에 특별히 한정하지는 않을 것이다.
예를 들어, 본 개시의 실시예에 따른 복수시점 제공은 2인승에 국한되지는 않으며, 탱크 이외에 동일 베이스에 2개 이상의 포신이 장착되는 등 다인승 탑승물로 확장하는 경우도 얼마든지 가능할 수 있을 것이다.
한편, 본 개시의 실시 예를 구성하는 모든 구성 요소들이 하나로 결합하거나 결합하여 동작하는 것으로 설명되었다고 해서, 본 개시는 반드시 이러한 실시 예에 한정되는 것은 아니다. 즉, 본 개시의 목적 범위 안에서라면, 그 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 그 컴퓨터 프로그램을 구성하는 코드들 및 코드 세그먼트들은 본 개시의 기술 분야의 당업자에 의해 용이하게 추론될 수 있을 것이다. 이러한 컴퓨터 프로그램은 컴퓨터가 읽을 수 있는 비일시적 저장매체(non-transitory computer readable media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 개시의 실시 예를 구현할 수 있다.
여기서 비일시적 판독 가능 기록매체란, 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라, 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로, 상술한 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리 카드, ROM 등과 같은 비일시적 판독가능 기록매체에 저장되어 제공될 수 있다.
이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에 청구하는 본 개시의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안 될 것이다.
1100: 다인승 모션 플랫폼
1110-1, 1110-2: 영상표시장치
1120: 호스트 장치 1200: 베이스 플레이트
1210: 제1 엑추에이터 1220: 플랫폼 플레이트
1230: 제2 엑추에이터 1240: 시트부
1300: 프로세서 1310, 1420: 저장부
1400: 인터페이스부 1410: 제어부
1430: 모션정보처리부
1120: 호스트 장치 1200: 베이스 플레이트
1210: 제1 엑추에이터 1220: 플랫폼 플레이트
1230: 제2 엑추에이터 1240: 시트부
1300: 프로세서 1310, 1420: 저장부
1400: 인터페이스부 1410: 제어부
1430: 모션정보처리부
Claims (13)
- 다인승 모션 플랫폼상의 복수의 탑승자가 서로 다른 영상의 시청이 가능한 복수시점 기반의 영상을 제공하는 호스트 장치에 있어서,
적어도 하나의 영상표시장치에 구현되는 가상공간 내의 제1 객체 및 상기 제1 객체에 종속되는 제2 객체의 객체 정보를 각각 저장하는 저장부; 및
상기 제1 객체 및 상기 2 객체 중 적어도 하나의 객체에 이벤트가 발생하면, 상기 저장한 객체 정보를 근거로 상기 이벤트가 반영된 제1 영상 및 제2 영상을 생성하여 상기 적어도 하나의 영상표시장치로 제공하는 프로세서;를
포함하는 호스트 장치. - 제1항에 있어서,
상기 프로세서는 상기 복수의 탑승자 중 제1 탑승자가 착용하는 제1 착용형 영상표시장치로 상기 제1 영상을 제공하고, 제2 탑승자가 착용하는 제2 착용형 영상표시장치로 상기 제2 영상을 제공하는 호스트 장치. - 제1항에 있어서,
상기 저장부는 상기 제1 객체 및 상기 객체를 식별하기 위한 식별 정보 및 상기 제1 객체와 상기 제2 객체의 위치 및 방향에 관계된 모션 정보 중 적어도 하나의 정보를 상기 객체 정보로서 저장하는 호스트 장치. - 제3항에 있어서,
상기 프로세서는, 상기 이벤트로서 상기 제1 객체 및 상기 제2 객체에 움직임이 발생하면, 상기 움직임의 변화량에 매칭되는 상기 저장한 모션 정보를 근거로 상기 제1 영상 및 상기 제2 영상을 제공하는 호스트 장치. - 제4항에 있어서,
상기 다인승 모션 플랫폼은 상기 복수의 탑승자가 상기 움직임을 발생시키기 위해 조작하는 컨트롤러;를 포함하며,
상기 프로세서는, 상기 컨트롤러로부터 제공되는 조작 신호에 근거하여 상기 움직임의 변화량을 판단하는 호스트 장치. - 제5항에 있어서,
상기 다인승 모션 플랫폼은,
상기 복수의 탑승자가 상기 제1 객체 및 상기 제2 객체의 움직임을 동시에 감지하도록 하는 제1 엑추에이터; 및
상기 복수의 탑승자가 상기 제1 객체 및 상기 제2 객체의 움직임을 개별적으로 감지하도록 하는 제2 엑추에이터;를 더 포함하며,
상기 프로세서는 상기 움직임의 변화량에 근거하여 상기 제1 엑추에이터 및 상기 제2 엑추에이터를 제어하는 제어하는 호스트 장치. - 다인승 모션 플랫폼상의 복수의 탑승자가 서로 다른 영상의 시청이 가능한 복수시점 기반의 영상을 제공하는 방법에 있어서,
적어도 하나의 영상표시장치에 구현되는 가상공간 내의 제1 객체 및 상기 제1 객체에 종속되는 제2 객체의 객체 정보를 각각 저장하는 단계; 및
상기 제1 객체 및 상기 2 객체 중 적어도 하나의 객체에 이벤트가 발생하면, 상기 저장한 객체 정보를 근거로 상기 이벤트가 반영된 제1 영상 및 제2 영상을 생성하여 상기 적어도 하나의 영상표시장치로 제공하는 단계;를
포함하는 복수시점 기반의 영상 제공 방법. - 제7항에 있어서,
상기 적어도 하나의 영상표시장치로 제공하는 단계는,
상기 복수의 탑승자 중 제1 탑승자가 착용하는 제1 착용형 영상표시장치로 상기 제1 영상을 제공하고, 제2 탑승자가 착용하는 제2 착용형 영상표시장치로 상기 제2 영상을 제공하는 단계;를 포함하는 복수시점 기반의 영상 제공 방법. - 제7항에 있어서,
상기 저장하는 단계는,
상기 제1 객체 및 상기 객체를 식별하기 위한 식별 정보 및 상기 제1 객체와 상기 제2 객체의 위치 및 방향에 관계된 모션 정보 중 적어도 하나의 정보를 상기 객체 정보로서 저장하는 복수시점 기반의 영상 제공 방법. - 제9항에 있어서,
상기 적어도 하나의 영상표시장치로 제공하는 단계는,
상기 이벤트로서 상기 제1 객체 및 상기 제2 객체에 움직임이 발생하면, 상기 움직임의 변화량에 매칭되는 상기 저장한 모션 정보를 근거로 상기 제1 영상 및 상기 제2 영상을 제공하는 단계;를 포함하는 복수시점 기반의 영상 제공 방법. - 제10항에 있어서,
상기 다인승 모션 플랫폼은 상기 복수의 탑승자가 상기 움직임을 발생시키기 위해 조작하는 컨트롤러;를 포함하며,
상기 컨트롤러로부터 제공되는 조작 신호에 근거하여 상기 움직임의 변화량을 판단하는 단계;를 더 포함하는 복수시점 기반의 영상 제공 방법. - 제11항에 있어서,
상기 다인승 모션 플랫폼은,
상기 복수의 탑승자가 상기 제1 객체 및 상기 제2 객체의 움직임을 동시에 감지하도록 하는 제1 엑추에이터; 및
상기 복수의 탑승자가 상기 제1 객체 및 상기 제2 객체의 움직임을 개별적으로 감지하도록 하는 제2 엑추에이터;를 더 포함하며,
상기 움직임의 변화량에 근거하여 상기 제1 엑추에이터 및 상기 제2 엑추에이터를 제어하는 단계;를 더 포함하는 복수시점 기반의 영상 제공 방법. - 복수의 사용자가 서로 다른 영상의 시청이 가능한 복수시점 기반의 영상을 제공하는 영상 시뮬레이팅 시스템에 있어서,
상기 복수시점 기반의 영상을 구현하는 적어도 하나의 영상표시장치;
상기 복수시점 기반의 영상을 시청하기 위해 상기 복수의 사용자가 탑승하는 다인승 모션 플랫폼; 및
상기 적어도 하나의 영상표시장치에 구현되는 가상공간 내의 제1 객체 및 상기 제1 객체에 종속되는 제2 객체의 객체 정보를 각각 저장하고, 상기 제1 객체 및 상기 2 객체 중 적어도 하나의 객체에 이벤트가 발생하면, 상기 저장한 객체 정보를 근거로 상기 이벤트가 반영된 제1 영상 및 제2 영상을 생성하여 상기 적어도 하나의 영상표시장치로 제공하는 호스트 장치;를
포함하는 영상 시뮬레이팅 시스템.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160119136A KR20180031838A (ko) | 2016-09-19 | 2016-09-19 | 영상 시뮬레이팅 시스템, 호스트 장치 및 복수시점 기반의 영상 제공 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160119136A KR20180031838A (ko) | 2016-09-19 | 2016-09-19 | 영상 시뮬레이팅 시스템, 호스트 장치 및 복수시점 기반의 영상 제공 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20180031838A true KR20180031838A (ko) | 2018-03-29 |
Family
ID=61907313
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160119136A KR20180031838A (ko) | 2016-09-19 | 2016-09-19 | 영상 시뮬레이팅 시스템, 호스트 장치 및 복수시점 기반의 영상 제공 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20180031838A (ko) |
-
2016
- 2016-09-19 KR KR1020160119136A patent/KR20180031838A/ko not_active Application Discontinuation
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10825350B2 (en) | Virtual reality driver training and assessment system | |
CN109478340B (zh) | 模拟系统、处理方法以及信息存储介质 | |
KR102615214B1 (ko) | 레이싱 시뮬레이션 | |
US10639557B2 (en) | Synchronized motion simulation for virtual reality | |
US10403043B2 (en) | System and method for generating a progressive representation associated with surjectively mapped virtual and physical reality image data | |
CN109478345B (zh) | 模拟系统、处理方法及信息存储介质 | |
JP6719308B2 (ja) | シミュレーションシステム及びプログラム | |
US10223064B2 (en) | Method for providing virtual space, program and apparatus therefor | |
KR101608342B1 (ko) | 무인 부스 형태의 체감형 모션 라이딩 시스템과 그의 작동방법 | |
JP2015111274A (ja) | 触覚フィードバックにより特有の動きを模擬する方法および該方法を実行する装置 | |
US20210192851A1 (en) | Remote camera augmented reality system | |
JP2019000171A (ja) | シミュレーションシステム及びプログラム | |
WO2017188224A1 (ja) | シミュレーションシステム | |
JP2018533317A (ja) | 仮想現実映像伝送方法、再生方法、及びこれらを用いたプログラム | |
KR20160099075A (ko) | 영상 시뮬레이팅 시스템, 플랫폼 제어 장치 및 플랫폼 제어 방법 | |
JP2018026034A (ja) | シミュレーションシステム | |
EP3262624A1 (en) | Immersive vehicle simulator apparatus and method | |
GB2535729A (en) | Immersive vehicle simulator apparatus and method | |
KR20180031838A (ko) | 영상 시뮬레이팅 시스템, 호스트 장치 및 복수시점 기반의 영상 제공 방법 | |
KR20160095663A (ko) | 영상 시뮬레이팅 시스템, 플랫폼 제어 장치 및 플랫폼 제어 방법 | |
KR101881227B1 (ko) | 무인 비행체를 이용한 비행 체험 방법 및 장치 | |
US11107364B2 (en) | Method to enhance first-person-view experience | |
JP2020535542A (ja) | 仮想現実画像の提供方法及びこれを用いたプログラム | |
KR20190075357A (ko) | 체험장치 | |
KR20180122869A (ko) | 3차원 영상 처리 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |