KR102120975B1 - Apparatus and method for making movement of vertual object using 3 dof controller - Google Patents

Apparatus and method for making movement of vertual object using 3 dof controller Download PDF

Info

Publication number
KR102120975B1
KR102120975B1 KR1020180096537A KR20180096537A KR102120975B1 KR 102120975 B1 KR102120975 B1 KR 102120975B1 KR 1020180096537 A KR1020180096537 A KR 1020180096537A KR 20180096537 A KR20180096537 A KR 20180096537A KR 102120975 B1 KR102120975 B1 KR 102120975B1
Authority
KR
South Korea
Prior art keywords
controller
virtual object
virtual
axis tilt
direction vector
Prior art date
Application number
KR1020180096537A
Other languages
Korean (ko)
Other versions
KR20200021148A (en
Inventor
최명균
주재만
정충민
이지훈
Original Assignee
주식회사 픽셀리티게임즈
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 픽셀리티게임즈 filed Critical 주식회사 픽셀리티게임즈
Priority to KR1020180096537A priority Critical patent/KR102120975B1/en
Publication of KR20200021148A publication Critical patent/KR20200021148A/en
Application granted granted Critical
Publication of KR102120975B1 publication Critical patent/KR102120975B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/55Controlling game characters or game objects based on the game progress
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/503Blending, e.g. for anti-aliasing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Computer Graphics (AREA)
  • Processing Or Creating Images (AREA)

Abstract

본 명세서에서 개시되는 실시예들은 가상 객체의 움직임 구현 방법 및 그를 수행하는 가상 객체의 움직임 구현 장치에 관한 것으로서, 보다 상세하게는 컨트롤러로부터 상기 컨트롤러의 위치좌표와 방향벡터를 수신하는 통신부; 유저의 움직임에 기초하여 변화하는 삼차원 가상현실 영상을 출력하는 입출력부; 그리고 상기 컨트롤러의 위치좌표와 방향벡터를 이용하여 상기 컨트롤러의 제어 대상이 되는 가상 객체의 위치와 블렌딩 이미지를 결정하고, 결정된 상기 가상 객체의 위치와 블렌딩 이미지를 이용하여 상기 가상 객체의 애니메이션을 생성하며, 상기 가상 객체의 애니메이션을 포함하는 삼차원 가상현실 영상을 렌더링하는 제어부를 포함하는 가상 객체의 움직임 구현 장치가 개시된다.Embodiments disclosed herein relates to a method for implementing motion of a virtual object and a device for implementing motion of a virtual object performing the same, more specifically, a communication unit that receives a position coordinate and a direction vector of the controller from a controller; An input/output unit configured to output a 3D virtual reality image that changes based on a user's movement; Then, the position and blending image of the virtual object to be controlled by the controller is determined using the position coordinate and the direction vector of the controller, and the animation of the virtual object is generated using the determined position and blending image of the virtual object. A device for implementing motion of a virtual object including a control unit for rendering a 3D virtual reality image including animation of the virtual object is disclosed.

Description

3자유도 컨트롤러를 이용한 가상 객체의 움직임 구현 장치 및 방법{APPARATUS AND METHOD FOR MAKING MOVEMENT OF VERTUAL OBJECT USING 3 DOF CONTROLLER}Apparatus and method for implementing motion of a virtual object using a 3DOF controller{APPARATUS AND METHOD FOR MAKING MOVEMENT OF VERTUAL OBJECT USING 3 DOF CONTROLLER}

본 명세서에서 개시되는 실시예들은 가상 객체의 움직임 구현 장치 및 가상 객체의 움직임 구현 방법에 관한 것으로서, 보다 상세하게는 2차원 위치 측정이 가능한 3자유도의 컨트롤러를 이용하여 3차원의 가상현실에서 가상 객체의 움직임을 구현하는 장치 및 방법에 대한 것이다. Embodiments disclosed herein relates to a device for implementing motion of a virtual object and a method for implementing motion of a virtual object, and more specifically, a virtual object in a 3D virtual reality using a 3 degree of freedom controller capable of 2D position measurement It is about a device and a method to implement the movement.

3D 그래픽 기술과 더불어 HMD(Head Mounted Display)와 같은 하드웨어 디바이스가 대중화되면서, 가상현실 또는 증강현실 기술을 이용한 서비스들도 더욱 다양해지고 있다. 특히 가상현실을 통해 게임이나 스포츠 등과 같은 레져활동을 즐기는 인구가 늘고 있고, 가상현실과 관련된 기술이 점차 발전하면서 그 인구는 더욱 폭발적으로 증가할 것으로 기대되고 있다.With the popularization of 3D graphics technology and hardware devices such as HMD (Head Mounted Display), services using virtual reality or augmented reality technology are also becoming more diverse. In particular, the number of people enjoying leisure activities such as games and sports is increasing through virtual reality, and as the technology related to virtual reality gradually develops, the population is expected to increase more explosively.

한편 이러한 가상현실 기술과 관련하여, 가상의 환경과 유저가 상호작용하기 위해서는 가상의 환경 내에서의 변화가 유저에게 오감을 통해 인지될 수 있어야 할 뿐 아니라, 역으로 유저의 행동이 가상 환경 내에 영향을 주어야 한다. 이를 위해서 가상현실과 유저 사이의 인터랙션을 위한 인터페이스 기술이 요구된다. 특히 게임이나 스포츠 등의 가상현실 서비스 구현을 위해서는 유저의 행동, 예를 들어 유저의 손의 움직임이 가상현실에 반영되도록 유저의 움직임을 감지하여 가상현실 시스템에 전달하는 컨트롤러가 필요하다. On the other hand, in connection with the virtual reality technology, in order for the user to interact with the virtual environment, not only must the change in the virtual environment be perceived through the five senses to the user, but conversely, the user's behavior affects the virtual environment. Should give To this end, interface technology for interaction between a virtual reality and a user is required. In particular, in order to implement a virtual reality service such as a game or sports, a controller that detects a user's movement and transmits it to the virtual reality system is required so that the user's behavior, for example, the user's hand movement is reflected in the virtual reality.

이러한 컨트롤러들은 센서를 이용하여 유저의 행동에 의한 움직임을 감지한다. 센서들은 컨트롤러의 위치나 속도, 가속도, 회전방향이나 회전속도 등을 감지할 수 있다. 구체적으로는 이러한 컨트롤러는 2차원 상의 위치 측정이 가능한 3자유도의 컨트롤러와 3차원 상의 위치 측정까지 가능한 6자유도의 컨트롤러로 구분될 수 있다. 6자유도의 컨트롤러는 3차원 상의 위치 측정이 가능하므로 컨트롤러의 움직임을 보다 정교하게 측정할 수 있는 반면, 다양한 센서들을 복합적으로 활용해야 하므로 3자유도의 컨트롤러에 비하여 구성이 복잡할 뿐 아니라 가격이 현저히 높다는 문제가 있다. These controllers use sensors to detect movements caused by user actions. The sensors can detect the position or speed of the controller, acceleration, rotation direction or rotation speed. Specifically, such a controller may be divided into a controller of 3 degrees of freedom capable of measuring a position in 2D and a controller of 6 degrees of freedom capable of measuring position in 3D. The 6-degree-of-freedom controller can measure the position of the controller more precisely because it can measure the position in 3D, while the various sensors need to be used in combination, so the configuration is more complicated and the price is significantly higher than the 3-degree-of-freedom controller. there is a problem.

오래전부터 가상현실 구현을 위한 기술적 발전과 다양한 시도가 있어왔으나 지금까지 가상현실 기술이 대중화되지 못한데는 가격적인 장벽이 큰 이유였다. 최근 스마트폰 이용이 폭발적으로 증가하면서 디스플레이를 스마트폰으로 대체하는 매우 저렴한 HMD가 보급됨에 따라 가격 허들이 낮아지고 가상현실 기술의 대중화를 눈앞에 두고 있다. 그러나 3차원의 가상현실 구현을 위해서는 3차원 상의 위치 측정이 가능한 6자유도의 컨트롤러가 필요하고, HMD를 저렴하게 구성하더라도 여전히 컨트롤러의 가격 문제를 해결하지 못해 기술의 대중화가 늦춰지고 있는 상황이다. Although there have been various technological advances and attempts to realize virtual reality for a long time, price barriers have been a major reason why virtual reality technology has not been popularized until now. Recently, as the use of smartphones has increased explosively, the price hurdles have been lowered and popularization of virtual reality technology is on the verge of the proliferation of very cheap HMDs that replace displays with smartphones. However, in order to implement 3D virtual reality, a 6-degree-of-freedom controller that can measure the position in 3D is required, and even if the HMD is configured inexpensively, the cost of the controller is still not solved, and the popularization of the technology is being delayed.

따라서 3차원의 가상현실과 유저 사이의 인터랙션을 가능하게 하되 가격이 저렴한 컨트롤러 기술이 요구된다. Therefore, a controller technology that enables interaction between a 3D virtual reality and a user but is inexpensive is required.

이와 관련하여, 한국등록특허 제10-1752595호 " 가상공간에서 사용자의 3차원 위치 제어를 위한 스마트폰 컨트롤러 제어방법"에서는 가상공간에서 사용자의 3차원 위치 제어를 위해 자이로센서에서 감지되는 신호 뿐 아니라 터치패드에 입력되는 캐릭터 조작 신호를 따로 수신하여 이용한다. 그러나 이러한 조작 방식은 유저로 하여금 스마트폰의 움직임을 제어함과 동시에 섬세한 터치 입력을 가하도록 요구한다는 점에서 매우 불편하다는 문제점이 있었다. 또한 터치 입력을 이용한 캐릭터 제어는 게임을 플레이하는 과정에서 게임 환경에 직접 속한다는 현장감을 저해하는 문제가 있다. In this regard, in Korean Registered Patent No. 10-1752595, "Smartphone controller control method for user's 3D position control in virtual space", as well as signals detected by the gyro sensor for user's 3D position control in virtual space The character manipulation signal input to the touchpad is separately received and used. However, this operation method has a problem in that it is very inconvenient in that it requires the user to apply a delicate touch input while controlling the movement of the smartphone. In addition, the character control using the touch input has a problem of inhibiting the sense of realism that it belongs directly to the game environment in the course of playing the game.

따라서 저렴한 컨트롤러만으로도 3차원 가상환경과의 인터랙션을 가능하게 하면서 동시에 가상환경에서의 실제감을 저해하지 않는 기술이 요구되고 있다. Accordingly, there is a need for a technology that enables interaction with a 3D virtual environment with only an inexpensive controller and does not impair realism in the virtual environment.

한편, 전술한 배경기술은 발명자가 본 발명의 도출을 위해 보유하고 있었거나, 본 발명의 도출 과정에서 습득한 기술 정보로서, 반드시 본 발명의 출원 전에 일반 공중에게 공개된 공지기술이라 할 수는 없다.On the other hand, the above-mentioned background technology is the technical information acquired by the inventor for the derivation of the present invention or acquired in the derivation process of the present invention, and is not necessarily a known technology disclosed to the general public before filing the present invention. .

본 명세서에서 개시되는 실시예들은, 유저의 움직임을 3차원 가상환경에서의 객체의 움직임으로 전환할 수 있는 가상 객체의 움직임 구현 장치 및 방법을 제시하고자 한다. The embodiments disclosed in the present specification are intended to provide an apparatus and method for implementing a motion of a virtual object that can convert a user's motion into an object in a 3D virtual environment.

또한 실시예들은 3자유도 컨트롤러만을 이용함으로써 전체적인 시스템의 가격을 낮추고 가상환경 서비스의 대중화를 이룰 수 있는 가상 객체의 움직임 구현 장치 및 방법을 제시하고자 한다.In addition, the embodiments are intended to propose an apparatus and method for implementing motion of a virtual object that can lower the overall system price and achieve popularization of a virtual environment service by using only a 3 degree of freedom controller.

나아가 실시예들은 3자유도 컨트롤러만으로도 유저의 움직임을 정교하게 객체에 반영함으로써 유저가 직접 가상환경을 실제로 경험하는 듯한 현실감을 제공할 수 있는 가상 객체의 움직임 구현 장치 및 방법을 제시하고자 한다. Furthermore, the embodiments are intended to present an apparatus and method for implementing a motion of a virtual object that can provide a sense of reality as if the user actually experiences a virtual environment by accurately reflecting the user's movement with an object with only a 3 degree of freedom controller.

상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 일 실시예에 따르면, 컨트롤러로부터 상기 컨트롤러의 위치좌표와 방향벡터를 수신하는 통신부; 유저의 움직임에 기초하여 변화하는 삼차원 가상현실 영상을 출력하는 입출력부; 그리고 상기 컨트롤러의 위치좌표와 방향벡터를 이용하여 상기 컨트롤러의 제어 대상이 되는 가상 객체의 위치와 블렌딩 이미지를 결정하고, 결정된 상기 가상 객체의 위치와 블렌딩 이미지를 이용하여 상기 가상 객체의 애니메이션을 생성하며, 상기 가상 객체의 애니메이션을 포함하는 삼차원 가상현실 영상을 렌더링하는 제어부를 포함하는 가상 객체의 움직임 구현 장치가 개시된다. As a technical means for achieving the above-described technical problem, according to an embodiment, a communication unit for receiving the position coordinates and the direction vector of the controller from the controller; An input/output unit configured to output a 3D virtual reality image that changes based on a user's movement; Then, the position and blending image of the virtual object to be controlled by the controller is determined using the position coordinate and the direction vector of the controller, and the animation of the virtual object is generated using the determined position and blending image of the virtual object. A device for implementing motion of a virtual object including a control unit for rendering a 3D virtual reality image including animation of the virtual object is disclosed.

또 다른 실시예에 의하면, 가상 객체의 움직임 구현 장치에 의해 수행되는 가상 객체의 움직임 구현 방법으로서, 컨트롤러로부터 상기 컨트롤러의 위치좌표와 방향벡터를 수신하는 단계; 상기 컨트롤러의 위치좌표와 방향벡터를 이용하여 상기 컨트롤러의 제어 대상이 되는 가상 객체의 위치와 블렌딩 이미지를 결정하고, 결정된 상기 가상 객체의 위치와 블렌딩 이미지를 이용하여 상기 가상 객체의 애니메이션을 생성하며, 상기 가상 객체의 애니메이션을 포함하는 삼차원 가상현실 영상을 렌더링하는 단계; 그리고 렌더링된 삼차원 가상현실 영상을 출력하는 단계를 포함하는 가상 객체의 움직임 구현 방법이 개시된다.According to another embodiment, a method of implementing motion of a virtual object performed by a device for implementing motion of a virtual object, the method comprising: receiving a position coordinate and a direction vector of the controller from a controller; The position and blending image of the virtual object to be controlled by the controller is determined using the position coordinate and the direction vector of the controller, and the animation of the virtual object is generated using the determined position and blending image of the virtual object, Rendering a 3D virtual reality image including animation of the virtual object; Then, a method of implementing motion of a virtual object including outputting a rendered 3D virtual reality image is disclosed.

또 다른 실시예에 의하면, 가상 객체의 움직임 구현 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체가 개시된다. 이때 가상 객체의 움직임 구현 방법은, 가상 객체의 움직임 구현 장치가 수행하는 것으로서, 컨트롤러로부터 상기 컨트롤러의 위치좌표와 방향벡터를 수신하는 단계; 상기 컨트롤러의 위치좌표와 방향벡터를 이용하여 상기 컨트롤러의 제어 대상이 되는 가상 객체의 위치와 블렌딩 이미지를 결정하고, 결정된 상기 가상 객체의 위치와 블렌딩 이미지를 이용하여 상기 가상 객체의 애니메이션을 생성하며, 상기 가상 객체의 애니메이션을 포함하는 삼차원 가상현실 영상을 렌더링하는 단계; 그리고 렌더링된 삼차원 가상현실 영상을 출력하는 단계를 포함할 수 있다.According to another embodiment, a computer-readable recording medium in which a program for performing a method of implementing a motion of a virtual object is recorded is disclosed. At this time, the method for implementing the motion of the virtual object is performed by the apparatus for implementing the motion of the virtual object, the method comprising: receiving a position coordinate and a direction vector of the controller from a controller; The position and blending image of the virtual object to be controlled by the controller is determined using the position coordinate and the direction vector of the controller, and the animation of the virtual object is generated using the determined position and blending image of the virtual object, Rendering a 3D virtual reality image including animation of the virtual object; And it may include the step of outputting the rendered 3D virtual reality image.

또 다른 실시예에 따르면, 가상 객체의 움직임 구현 장치에 의해 수행되며, 가상 객체의 움직임 구현 방법을 수행하기 위해 매체에 저장된 컴퓨터 프로그램이 개시된다. 이때 가상 객체의 움직임 구현 방법은, 컨트롤러로부터 상기 컨트롤러의 위치좌표와 방향벡터를 수신하는 단계; 상기 컨트롤러의 위치좌표와 방향벡터를 이용하여 상기 컨트롤러의 제어 대상이 되는 가상 객체의 위치와 블렌딩 이미지를 결정하고, 결정된 상기 가상 객체의 위치와 블렌딩 이미지를 이용하여 상기 가상 객체의 애니메이션을 생성하며, 상기 가상 객체의 애니메이션을 포함하는 삼차원 가상현실 영상을 렌더링하는 단계; 그리고 렌더링된 삼차원 가상현실 영상을 출력하는 단계를 포함할 수 있다.According to another embodiment, a computer program stored in a medium is performed by a device for implementing motion of a virtual object and performing a method for implementing motion of a virtual object. At this time, the method for implementing the motion of the virtual object includes: receiving a position coordinate and a direction vector of the controller from a controller; The position and blending image of the virtual object to be controlled by the controller is determined using the position coordinate and the direction vector of the controller, and the animation of the virtual object is generated using the determined position and blending image of the virtual object, Rendering a 3D virtual reality image including animation of the virtual object; And it may include the step of outputting the rendered 3D virtual reality image.

전술한 과제 해결 수단 중 어느 하나에 의하면, 본 명세서에서 개시되는 실시예들은, 유저의 움직임을 3차원 가상환경에서의 객체의 움직임으로 전환할 수 있는 가상 객체의 움직임 구현 장치 및 방법을 제시할 수 있다. According to any one of the above-described problem solving means, the embodiments disclosed in the present specification can provide an apparatus and method for implementing motion of a virtual object capable of converting a user's motion into an object in a 3D virtual environment. have.

또한 실시예들은, 3자유도 컨트롤러만을 이용함으로써 전체적인 시스템의 가격을 낮추고 가상환경 서비스의 대중화를 이룰 수 있는 가상 객체의 움직임 구현 장치 및 방법을 제시할 수 있다.In addition, the embodiments can propose an apparatus and method for implementing motion of a virtual object that can lower the overall system price and achieve popularization of a virtual environment service by using only a 3 degree of freedom controller.

나아가 실시예들은, 3자유도 컨트롤러만으로도 유저의 움직임을 정교하게 객체에 반영함으로써 유저가 직접 가상환경을 실제로 경험하는 듯한 현실감을 제공할 수 있는 가상 객체의 움직임 구현 장치 및 방법을 제시할 수 있다.Furthermore, the embodiments may propose an apparatus and method for implementing motion of a virtual object that can provide a sense of reality as if a user actually experiences a virtual environment by accurately reflecting the user's movement with an object using only a 3 degree of freedom controller.

개시되는 실시예들에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 개시되는 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The effects obtained in the disclosed embodiments are not limited to the above-mentioned effects, and other effects not mentioned are obvious to those skilled in the art to which the embodiments disclosed from the following description belong. Can be understood.

도 1은 일 실시예에 따른 가상 객체의 움직임 구현 장치의 구성을 도시한 블록도이다.
도 2 내지 도 6은 가상 객체의 움직임 구현 장치가 수행하는 가상 객체의 움직임 구현 방법의 일 실시예를 설명하기 위한 예시도이다.
도 7은 가상 객체의 움직임 구현 방법을 설명하기 위한 순서도이다.
1 is a block diagram showing the configuration of a device for implementing motion of a virtual object according to an embodiment.
2 to 6 are exemplary views for explaining an embodiment of a method for implementing motion of a virtual object performed by a device for implementing motion of a virtual object.
7 is a flowchart for explaining a method of implementing motion of a virtual object.

아래에서는 첨부한 도면을 참조하여 다양한 실시예들을 상세히 설명한다. 아래에서 설명되는 실시예들은 여러 가지 상이한 형태로 변형되어 실시될 수도 있다. 실시예들의 특징을 보다 명확히 설명하기 위하여, 이하의 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 널리 알려져 있는 사항들에 관해서 자세한 설명은 생략하였다. 그리고 도면에서 실시예들의 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, various embodiments will be described in detail with reference to the accompanying drawings. The embodiments described below may be embodied in various different forms. In order to more clearly describe the features of the embodiments, detailed descriptions of the items well known to those of ordinary skill in the art to which the following embodiments pertain are omitted. In the drawings, parts irrelevant to the description of the embodiments are omitted, and like reference numerals are assigned to similar parts throughout the specification.

명세서 전체에서, 어떤 구성이 다른 구성과 “연결”되어 있다고 할 때, 이는 ‘직접적으로 연결’되어 있는 경우뿐 아니라, ‘그 중간에 다른 구성을 사이에 두고 연결’되어 있는 경우도 포함한다. 또한, 어떤 구성이 어떤 구성을 “포함”한다고 할 때, 이는 특별히 반대되는 기재가 없는 한, 그 외 다른 구성을 제외하는 것이 아니라 다른 구성들을 더 포함할 수도 있음을 의미한다.Throughout the specification, when a component is “connected” with another component, this includes not only “directly connected” but also “connected with other components in between”. In addition, when a configuration is said to "include" a configuration, this means that unless otherwise specified, other configurations are not excluded and may include other configurations.

이하 첨부된 도면을 참고하여 실시예들을 상세히 설명하기로 한다.Hereinafter, exemplary embodiments will be described in detail with reference to the accompanying drawings.

도 1은 본 명세서의 일 실시예에 따른 가상 객체의 움직임 구현 장치(100)의 구성을 도시한 블록도이고, 도 2 내지 도 6은 일 실시예에 따른 가상 객체의 움직임 구현 장치(100)를 이용하여 가상 객체의 움직임을 구현하는 방법을 설명하기 위한 예시도이다. 1 is a block diagram showing the configuration of the apparatus 100 for implementing motion of a virtual object according to an embodiment of the present specification, and FIGS. 2 to 6 illustrate the apparatus 100 for implementing motion of a virtual object according to an embodiment It is an exemplary diagram for explaining a method of realizing the movement of a virtual object by using.

여기서 가상 객체의 움직임 구현 장치(100)는 가상현실 공간 내에서 서비스를 제공하는 컴퓨팅 장치로 구현될 수 있다. 이때 서비스는 게임이나 가상 스포츠, 가상 훈련 등 가상현실 공간에서 제공 가능한 어떤 것이라도 될 수 있다. 실시예에 따르면, 가상 객체의 움직임 구현 장치(100)는 유저에게 가상현실 공간의 영상을 제공하되 유저의 시점이나 동작의 변화를 감지하여 그에 대응하는 적절한 변화된 영상을 제공할 수 있다. Here, the apparatus 100 for implementing motion of a virtual object may be implemented as a computing device that provides a service in a virtual reality space. At this time, the service may be anything that can be provided in a virtual reality space such as a game, virtual sports, or virtual training. According to an embodiment, the apparatus 100 for implementing motion of a virtual object may provide an image of a virtual reality space to a user, but may detect a change in a user's viewpoint or motion and provide an appropriate changed image corresponding thereto.

실시예에 따르면, 가상 객체의 움직임 구현 장치(100)는 애플리케이션이 설치된 전자단말기로 구현되거나 서버 또는 서버-클라이언트 시스템으로 구현될 수 있다. 가상 객체의 움직임 구현 장치(100)가 서버-클라이언트 시스템으로 구현될 때, 유저와의 인터랙션을 위한 클라이언트가 설치된 전자단말기를 포함할 수 있다.According to an embodiment, the apparatus 100 for implementing motion of a virtual object may be implemented as an electronic terminal in which an application is installed or as a server or a server-client system. When the device 100 for implementing motion of a virtual object is implemented as a server-client system, an electronic terminal in which a client for interaction with a user is installed may be included.

이때 전자단말기는, 유저와의 인터랙션이 가능한 인터페이스를 포함할 수 있는 컴퓨터나 휴대용 단말기, 텔레비전, 웨어러블 디바이스(Wearable Device) 등으로 구현될 수 있다. 여기서, 컴퓨터는 예를 들어, 웹 브라우저(WEB Browser)가 탑재된 노트북, 데스크톱(desktop), 랩톱(laptop)등을 포함하고, 휴대용 단말기는 예를 들어, 휴대성과 이동성이 보장되는 무선 통신 장치로서, PCS(Personal Communication System), PDC(Personal Digital Cellular), PHS(Personal Handyphone System), PDA(Personal Digital Assistant), GSM(Global System for Mobile communications), IMT(International Mobile Telecommunication)-2000, CDMA(Code Division Multiple Access)-2000, W-CDMA(W-Code Division Multiple Access), Wibro(Wireless Broadband Internet), 스마트폰(Smart Phone), 모바일 WiMAX(Mobile Worldwide Interoperability for Microwave Access) 등과 같은 모든 종류의 핸드헬드(Handheld) 기반의 무선 통신 장치를 포함할 수 있다. 또한, 텔레비전은 IPTV(Internet Protocol Television), 인터넷 TV(Internet Television), 지상파 TV, 케이블 TV 등을 포함할 수 있다. 나아가 웨어러블 디바이스는 예를 들어, HMD, 시계, 안경, 액세서리, 의복, 신발 등 인체에 직접 착용 가능한 타입의 정보처리장치로서, 직접 또는 다른 정보처리장치를 통해 네트워크를 경유하여 원격지의 서버에 접속하거나 타 단말과 연결될 수 있다.In this case, the electronic terminal may be implemented as a computer, a portable terminal, a television, a wearable device, or the like, which may include an interface capable of interacting with a user. Here, the computer includes, for example, a laptop equipped with a web browser (WEB Browser), a desktop (desktop), a laptop (laptop), and the like, and the portable terminal is, for example, a wireless communication device that guarantees portability and mobility. , PCS(Personal Communication System), PDC(Personal Digital Cellular), PHS(Personal Handyphone System), PDA(Personal Digital Assistant), GSM(Global System for Mobile communications), IMT(International Mobile Telecommunication)-2000, CDMA(Code All kinds of handhelds such as Division Multiple Access (2000), W-Code Division Multiple Access (W-CDMA), Wireless Broadband Internet (Wibro), Smart Phone, Mobile Worldwide Interoperability for Microwave Access (WiMAX), etc. (Handheld)-based wireless communication device. In addition, the television may include Internet Protocol Television (IPTV), Internet Television (TV), terrestrial TV, and cable TV. Furthermore, the wearable device is a type of information processing device that can be directly worn on the human body, for example, HMD, watch, glasses, accessories, clothing, shoes, etc., or connects to a remote server through a network directly or through another information processing device. It can be connected to other terminals.

그리고 서버는 유저와의 인터랙션을 위한 클라이언트가 설치된 전자단말기와 네트워크를 통해 통신이 가능한 컴퓨팅장치로 구현될 수 있으며, 데이터를 저장할 수 있는 저장장치가 포함될 수 있거나 또는 제 3의 서버를 통해 데이터를 저장할 수도 있다.In addition, the server may be implemented as a computing device capable of communicating through a network with an electronic terminal in which a client for interaction with a user is installed, and a storage device capable of storing data may be included or data may be stored through a third server. It might be.

한편 컨트롤러(200)는 가상 객체의 움직임 구현 장치(100)와 유선 또는 무선 통신하는 장치로서, 유저의 입력이나 움직임을 감지하여 가상 객체의 움직임 구현 장치(100)로 전달한다. Meanwhile, the controller 200 is a device for wired or wireless communication with the apparatus 100 for implementing motion of a virtual object, and senses a user's input or movement and transmits it to the apparatus 100 for implementing motion of a virtual object.

이때 컨트롤러(200)는 2차원의 위치 측정이 가능한 3자유도의 컨트롤러이면 족하다. 즉 컨트롤러(200)는 컨트롤러(200)의 2차원 평면상의 좌표값을 제공할 수 있는 장치이면 족하다. At this time, the controller 200 is sufficient as long as it is a three-degree-of-freedom controller capable of two-dimensional position measurement. That is, the controller 200 is sufficient as long as it is a device capable of providing coordinate values on the two-dimensional plane of the controller 200.

특히 컨트롤러(200)는 유저의 신체 일측에 고정되어 유저의 신체와 함께 움직이는 장치가 될 수 있다. 예를 들어 컨트롤러(200)는 유저의 손에 의해 파지되기 용이한 형상 및 크기로 구성되어 유저의 손의 움직임에 따라 함께 움직이는 장치가 될 수 있다. In particular, the controller 200 may be a device that is fixed to one side of the user's body and moves together with the user's body. For example, the controller 200 may be configured to have a shape and size that are easily gripped by the user's hand, and may be a device that moves together according to the user's hand movement.

이하에서는 일 실시예에 따라 가상 객체의 움직임 구현 장치(100)가 서비스를 제공함에 있어서, 컨트롤러(200)에서 수신되는 정보를 이용하여 어떻게 컨트롤러의 움직임을 삼차원 가상 객체의 움직임으로 전환하는지 구체적으로 설명한다. Hereinafter, according to an embodiment, in providing the service of the apparatus 100 for implementing motion of a virtual object, a detailed description of how to convert the controller motion to a motion of a three-dimensional virtual object using information received from the controller 200 do.

도 1을 참고하면, 일 실시예에 따른 가상 객체의 움직임 구현 장치(100)는, 저장부(110), 통신부(120), 입출력부(130) 및 제어부(140)를 포함할 수 있다.Referring to FIG. 1, the apparatus 100 for implementing motion of a virtual object according to an embodiment may include a storage unit 110, a communication unit 120, an input/output unit 130, and a control unit 140.

먼저, 저장부(110)는 가상 객체의 움직임 구현 장치(100)의 관리를 위한 데이터 등 각종 정보를 저장할 수 있다. 또한 저장부(110)는 가상현실 공간을 이용한 서비스의 제공을 위한 애플리케이션을 저장할 수 있다. 그리고 저장부(110)는 가상현실 공간의 영상을 구현하기 위해 필요한 각종 정보를 저장할 수 있다. 저장부(110)는 가상현실 공간 내에 배치되는 각종 그래픽 객체들의 속성이나 영상을 보유할 수 있고 유저와 인터랙션하기 위한 각종 연산에 요구되는 데이터를 저장할 수 있다. First, the storage unit 110 may store various information such as data for managing the apparatus 100 for implementing motion of a virtual object. Also, the storage unit 110 may store an application for providing a service using a virtual reality space. In addition, the storage unit 110 may store various information necessary for realizing an image of a virtual reality space. The storage unit 110 may hold attributes or images of various graphic objects disposed in the virtual reality space and may store data required for various operations for interacting with a user.

이때 저장부(110)는 반드시 가상 객체의 움직임 구현 장치(100) 내에서 물리적으로 하나의 장치를 이루는 수단으로서 구비되어야만 하는 것은 아니고 가상 객체의 움직임 구현 장치(100)에 착탈되거나, 유선 또는 무선 통신을 통해 가상 객체의 움직임 구현 장치(100)로 저장된 데이터를 제공할 수 있는 다른 어떤 수단이라도 족하다. At this time, the storage unit 110 does not necessarily have to be provided as a means for physically forming a single device in the device 100 for implementing motion of the virtual object, and is detached from the device 100 for implementing motion of the virtual object, wired or wireless communication Any other means capable of providing data stored in the apparatus 100 for implementing motion of the virtual object through is sufficient.

한편 통신부(120)는 다른 전자단말기 또는 네트워크와 유무선 통신을 수행할 수 있다. 이를 위해, 통신부(120)는 다양한 유무선 통신 방법 중 적어도 하나를 지원하는 통신 모듈을 포함할 수 있다. 예를 들어, 통신 모듈은 칩셋(chipset)의 형태로 구현될 수 있다.Meanwhile, the communication unit 120 may perform wired/wireless communication with another electronic terminal or a network. To this end, the communication unit 120 may include a communication module supporting at least one of various wired and wireless communication methods. For example, the communication module may be implemented in the form of a chipset.

이때 통신부(120)가 지원하는 무선 통신은, 예를 들어 Wi-Fi(Wireless Fidelity), Wi-Fi Direct, 블루투스(Bluetooth), UWB(Ultra Wide Band) 또는 NFC(Near Field Communication) 등일 수 있다. 또한, 통신부(120)가 지원하는 유선 통신은, 예를 들어 USB 또는 HDMI(High Definition Multimedia Interface) 등일 수 있다.At this time, the wireless communication supported by the communication unit 120 may be, for example, Wi-Fi (Wireless Fidelity), Wi-Fi Direct, Bluetooth (Bluetooth), UWB (Ultra Wide Band), or NFC (Near Field Communication). In addition, the wired communication supported by the communication unit 120 may be, for example, USB or HDMI (High Definition Multimedia Interface).

통신부(120)는 상술한 컨트롤러(200)와 통신하여 컨트롤러(200)로부터 각종 정보를 수신할 수 있다. 특히 통신부(120)는 컨트롤러(200)의 2차원 위치좌표를 수신할 수 있고, 또한 컨트롤러(200)의 방향벡터를 수신할 수 있다. 이때 통신부(120)는 주기적이고 지속적으로 컨트롤러(200)의 현재 위치좌표와 방향벡터 정보를 수신할 수 있다. 나아가 통신부(120)는 컨트롤러(200)의 속도값을 추가적으로 수신할 수 있다.The communication unit 120 may receive various information from the controller 200 by communicating with the controller 200 described above. In particular, the communication unit 120 may receive the two-dimensional position coordinates of the controller 200 and may also receive the direction vector of the controller 200. At this time, the communication unit 120 may periodically and continuously receive current position coordinates and direction vector information of the controller 200. Furthermore, the communication unit 120 may additionally receive the speed value of the controller 200.

나아가 통신부(120)는 다른 장치와 유선 또는 무선 통신을 수행할 수 있으며, 예를 들어 후술할 입출력부(130)가 물리적으로 분리된 별개의 장치로 구성되는 경우 입출력부(130)와의 통신을 수행할 수도 있다. Further, the communication unit 120 may perform wired or wireless communication with other devices, for example, when the input/output unit 130 to be described later is configured as a separate physically separated device, performs communication with the input/output unit 130 You may.

한편 입출력부(130)는 게임의 제공을 위해 필요한 정보를 유저로부터 입력받거나 표시할 수 있다. 입출력부(130)는 구체적으로, 입력부와 출력부를 포함하여 구성될 수 있다. 입력부는 예를 들어, 키보드, 마우스, 터치 스크린, 카메라 또는 마이크 등과 같이 다양한 형태의 유저의 입력을 수신할 수 있는 장치들을 포함할 수 있으며, 출력부가 표시하는 영상 내의 그래픽 유저인터페이스에 대한 입력을 수신할 수 있는 물리적 장치를 포함할 수 있다. 그리고 출력부는 디스플레이 패널, 스피커 또는 헤드셋 등을 포함할 수 있다.Meanwhile, the input/output unit 130 may receive or display information required for providing a game from a user. Specifically, the input/output unit 130 may include an input unit and an output unit. The input unit may include devices capable of receiving various types of user input, such as, for example, a keyboard, mouse, touch screen, camera or microphone, and receives input to a graphic user interface in an image displayed by the output unit It may include a physical device capable of. In addition, the output unit may include a display panel, a speaker, or a headset.

관련하여 도 2를 참고하면, 입출력부(130)가 출력하는 영상(P)의 일 실시예가 도시되어 있다. 도 2에 따르면, 입출력부(130)는 영상(P)을 통해 삼차원의 가상현실 공간(S)과 가상현실 공간(S) 내에 포함되는 각종 그래픽 객체들을 표시할 수 있다. 이때 예를 들어, 그래픽 객체들에는 유저에 의해 선택되어 기 설정된 기능을 수행하는 각종 메뉴 객체(M)가 포함될 수 있으며, 유저의 움직임에 대응하여 움직이는 가상 객체(O)가 포함될 수 있다. 2, an embodiment of an image P output by the input/output unit 130 is illustrated. According to FIG. 2, the input/output unit 130 may display various graphic objects included in the three-dimensional virtual reality space S and the virtual reality space S through the image P. At this time, for example, the graphic objects may include various menu objects M selected by the user to perform a predetermined function, and virtual objects O moving in response to the user's movement.

이때 가상 객체(O)는 특히 상술한 컨트롤러(200)의 제어 대상이 되는 그래픽 객체로서, 유저의 동작에 따라 함께 움직이는 컨트롤러(200)의 움직임과 동기되어 함께 움직이도록 제어되는 대상일 수 있다. 예를 들어, 가상 객체(O)는 도 2에 예시된 바와 같이 유저의 손의 형상으로 구성되는 그래픽 객체일 수 있고, 유저의 손에 파지된 컨트롤러(200)의 움직임에 따라 함께 움직임으로써 유저로 하여금 유저 스스로 가상현실의 공간 상에 위치한 것처럼 인식하도록 할 수 있다. In this case, the virtual object O is a graphic object that is a control target of the controller 200 described above, and may be a target that is controlled to move together in synchronization with the movement of the controller 200 moving together according to a user's operation. For example, the virtual object O may be a graphic object composed of the shape of the user's hand, as illustrated in FIG. 2, and as a user by moving together according to the movement of the controller 200 held in the user's hand, It is possible to allow the user to recognize themselves as being located in a virtual reality space.

그리고 도 2에 도시된 바와 같은 예시에서 입출력부(120)의 입력부는 유저의 머리 부분에 고정되어 유저의 머리 방향을 감지하거나, 유저의 동공의 움직임을 감지함으로써 유저의 시선 방향에 대한 정보를 수집하는 수단을 포함할 수 있다. 그에 따라 입출력부(120)의 출력부는 유저의 시선 방향에 맞게 구성된 가상현실 공간의 영상을 출력할 수 있다. In addition, in the example shown in FIG. 2, the input unit of the input/output unit 120 is fixed to the user's head to detect the user's head direction or to collect information about the user's gaze direction by detecting the user's pupil movement. It may include a means. Accordingly, the output unit of the input/output unit 120 may output an image of the virtual reality space configured to the user's gaze direction.

다만, 입출력부(120)는 상술한 예시에 한정되지 않고 다양한 입출력을 지원하는 구성을 포함할 수 있다.However, the input/output unit 120 is not limited to the above-described examples and may include a configuration supporting various input/output.

한편, 제어부(140)는 가상 객체의 움직임 구현 장치(100)의 전체적인 동작을 제어하며, CPU 등과 같은 프로세서를 포함할 수 있다.Meanwhile, the control unit 140 controls the overall operation of the apparatus 100 for implementing motion of a virtual object, and may include a processor such as a CPU.

실시예에 따르면, 제어부(140)는 유저로 하여금 가상현실과의 인터랙션이 가능하도록 가상현실 공간의 영상을 렌더링하여 입출력부(130)로 하여금 표시하도록 하되, 동시에 입출력부(130)를 통한 유저의 입력이나 컨트롤러(200)로부터 수신되는 데이터에 따라 가상현실 공간의 영상이 변화되도록 영상을 구성할 수 있다. 특히 제어부(140)는 컨트롤러(200)에서 수신되는 데이터에 기초하여 상술한 가상 객체(O)의 영상을 구성할 수 있다. According to an embodiment, the control unit 140 renders the image of the virtual reality space so that the user can interact with the virtual reality, and causes the input/output unit 130 to display, but at the same time, the user of the user through the input/output unit 130. The image may be configured such that the image of the virtual reality space changes according to input or data received from the controller 200. In particular, the control unit 140 may configure an image of the above-described virtual object O based on data received from the controller 200.

예를 들어, 도 3에 도시된 바와 같이, 가상현실 공간에서 유저 캐릭터의 팔과 캐릭터가 들고 있는 아이템이 하나의 가상 객체(O)로서 컨트롤러(200)의 움직임과 동기화되도록 설정되는 경우, 컨트롤러(200)의 위치와 방향이 A 상태에서 B 상태로 변화하면, 제어부(140)는 가상 객체(O)인 캐릭터의 팔과 아이템을 컨트롤러(200)의 A 상태에 대응하는 A’ 상태에서 컨트롤러(200)의 B 상태에 대응하는 B’상태로 전환되도록 할 수 있다. 이를 위해 제어부(140)는 가상 객체(O)가 표시되는 위치와, 가상 객체(O)의 표시되는 이미지를 변화시킬 수 있다. For example, as illustrated in FIG. 3, when a user character's arm and an item held by a character in a virtual reality space are set to be synchronized with the movement of the controller 200 as one virtual object O, the controller ( When the position and direction of the 200) changes from the A state to the B state, the control unit 140 controls the arms and items of the character, which is the virtual object O, from the A'state corresponding to the A state of the controller 200. ) Can be switched to the B'state corresponding to the B state. To this end, the controller 140 may change the location where the virtual object O is displayed and the displayed image of the virtual object O.

구체적으로 제어부(140)는 컨트롤러(200)의 위치좌표와 방향벡터를 이용하여 컨트롤러(200)의 제어 대상이 되는 가상 객체의 위치와 블렌딩 이미지를 결정할 수 있다. 그리고 제어부(140)는 결정된 가상 객체의 위치에 결정된 블렌딩 이미지를 배치하여 하나의 프레임이 구성되도록 하고 이를 주기적으로 반복하여 가상 객체의 애니메이션이 생성되도록 할 수 있다. 즉 제어부(140)는 지속하여 컨트롤러(200)로부터 데이터를 수신하고, 수신된 데이터에 기초하여 가상 객체의 애니메이션을 구성할 각 프레임을 생성하며 주기적으로 생성된 프레임들을 이용해 애니메이션을 구성할 수 있다. 이때 각 프레임에 포함될 가상 객체 이미지는, 가상 객체에 대하여 미리 저장된 복수의 블렌딩 이미지 중에서 제어부(140)가 해당 프레임에 대해 선택한 블렌딩 이미지가 될 수 있다. 또한 각 프레임에서 선택된 블렌딩 이미지가 배치될 위치는 제어부(140)가 컨트롤러(200)로부터 수신한 데이터를 이용하여 연산하는 가상 객체의 위치가 될 수 있다. Specifically, the controller 140 may determine the location and blending image of the virtual object to be controlled by the controller 200 using the position coordinates and the direction vector of the controller 200. In addition, the controller 140 may arrange the determined blending image at the determined location of the virtual object so that one frame is constructed and periodically repeat it to generate an animation of the virtual object. That is, the controller 140 may continuously receive data from the controller 200, generate each frame that will constitute an animation of the virtual object based on the received data, and configure animation using periodically generated frames. In this case, the virtual object image to be included in each frame may be a blending image selected by the controller 140 for a corresponding frame among a plurality of blended images previously stored for the virtual object. In addition, the location where the blending image selected in each frame is to be placed may be a location of a virtual object that the controller 140 calculates using data received from the controller 200.

이때 제어부(140)는 가상 객체의 위치를 결정하기 위해서, 컨트롤러(200)로부터 지속하여 수신되는 컨트롤러(200)의 2차원 위치좌표의 값들을 이용할 수 있다. At this time, the controller 140 may use the values of the two-dimensional position coordinates of the controller 200 continuously received from the controller 200 to determine the location of the virtual object.

구체적으로 제어부(140)는 컨트롤러(200)의 2차원 위치좌표의 값들을 이용하여 컨트롤러(200)의 이동방향을 결정하고, 결정된 이동방향에 따라 가상 객체도 이동하도록 가상 객체의 위치를 결정한다. Specifically, the controller 140 determines the moving direction of the controller 200 using the values of the two-dimensional position coordinates of the controller 200, and determines the position of the virtual object to move the virtual object according to the determined moving direction.

이때 실시예에 따라 제어부(140)는 컨트롤러(200)로부터 수신되는 컨트롤러(200)의 속도값을 참조할 수 있다. 제어부(140)는 컨트롤러(200)의 속도값이 기설정된 값 미만인 경우 컨트롤러(200)의 움직임이 없는 것으로 간주하고 가상 객체의 위치를 현재 위치로 유지되도록 할 수 있다. 그러나 제어부(140)는 컨트롤러(200)의 속도값이 기설정된 값 이상인 경우에는 컨트롤러(200)의 2차원 위치좌표 값들의 변화에 따라 컨트롤러(200)의 이동방향을 연산하고, 연산된 방향과 같은 방향으로 가상 객체가 이동하도록 가상 객체의 위치를 결정할 수 있다. At this time, according to an embodiment, the controller 140 may refer to the speed value of the controller 200 received from the controller 200. If the speed value of the controller 200 is less than a preset value, the controller 140 may assume that there is no movement of the controller 200 and maintain the position of the virtual object as the current position. However, when the speed value of the controller 200 is greater than or equal to a preset value, the control unit 140 calculates the moving direction of the controller 200 according to changes in the two-dimensional position coordinate values of the controller 200 and the same direction as the calculated direction. The position of the virtual object may be determined such that the virtual object moves in the direction.

구체적으로 예를 들면, 제어부(140)는 기설정된 컨트롤러(200)의 속도값이 10인 경우, 컨트롤러(200)의 속도값

Figure 112018081816603-pat00001
가 10 이상일 때의 컨트롤러(200)의 위치 좌표의 집합을 연산에 이용할 수 있다. Specifically, for example, when the speed value of the preset controller 200 is 10, the control unit 140 may set the speed value of the controller 200.
Figure 112018081816603-pat00001
When is 10 or more, a set of position coordinates of the controller 200 may be used for calculation.

그에 따라 수집된 컨트롤러(200)의 위치 좌표의 집합이 도 4에 도시된 바와 같다면 다음과 같이 연산을 수행할 수 있다.If the set of location coordinates of the controller 200 thus collected is as illustrated in FIG. 4, the operation may be performed as follows.

Figure 112018081816603-pat00002
Figure 112018081816603-pat00002

그리고 제어부(140)는 이와 같이 결정된 컨트롤러(200)의 이동 방향에 따라 가상 객체 애니메이션을 구성할 각 프레임에서의 가상 객체 이미지의 위치를 결정함으로써, 컨트롤러(200)의 움직임에 따라 가상 객체가 움직이도록 영상을 구현할 수 있다. In addition, the controller 140 determines the position of the virtual object image in each frame that will constitute the virtual object animation according to the determined moving direction of the controller 200, so that the virtual object moves according to the movement of the controller 200. Video can be implemented.

예를 들어, 컨트롤러(200)의 위치좌표가 (-100, -100)에서 (100, 100)으로 이동한 경우, x축 성분에 대해서는 마지막 좌표 100에서 첫 좌표 -100을 차감하여 200이 산출되고 y축 성분에 대해서도 마지막 좌표 100에서 첫 좌표 -100을 차감하여 200이 산출되므로, x축 성분에 대한 연산값과 y축 성분에 대한 연산값이 모두 0보다 크다. 따라서 컨트롤러(200)의 이동방향은 우측상방, 즉 ↗으로 결정된다. For example, when the position coordinate of the controller 200 is moved from (-100, -100) to (100, 100), for the x-axis component, 200 is calculated by subtracting the first coordinate -100 from the last coordinate 100 For the y-axis component, 200 is calculated by subtracting the first coordinate -100 from the last coordinate 100, so that both the calculated value for the x-axis component and the calculated value for the y-axis component are greater than zero. Therefore, the moving direction of the controller 200 is determined to be upper right, that is, ↗.

그러므로 제어부(140)는 가상 객체(O)도 해당 방향으로 이동하도록 가상 객체의 표시 위치를 결정할 수 있다. Therefore, the controller 140 may determine the display position of the virtual object so that the virtual object O also moves in the corresponding direction.

한편 제어부(140)가 가상 객체(O)에 대한 블렌딩 이미지를 선택하는 과정을 보다 상세하게 설명한다. 상술한 바와 같이 제어부(140)가 가상 객체(O)가 표시될 위치를 결정하더라도 각 프레임에서 해당 위치에 표시될 가상 객체(O)의 블렌딩 이미지가 컨트롤러(200)의 기울임에 따라 변화되지 않는 경우 가상 객체(O)의 애니메이션과 컨트롤러(200)의 움직임이 동기되는 현실감을 전달할 수 없다. 따라서 제어부(140)는 컨트롤러(200)가 기울어짐에 따라 가상 객체(O)도 동일한 방향으로 기울어지는 것처럼 시각적으로 인식되도록 프레임별 가상 객체(O)의 블렌딩 이미지를 선택할 수 있다. Meanwhile, a process in which the controller 140 selects a blending image for the virtual object O will be described in more detail. As described above, even if the control unit 140 determines the location where the virtual object O is to be displayed, the blended image of the virtual object O to be displayed at the corresponding location in each frame does not change according to the inclination of the controller 200 The animation of the virtual object O and the movement of the controller 200 cannot be conveyed. Therefore, the controller 140 may select a blending image of the virtual objects O for each frame so that the virtual objects O are visually recognized as being tilted in the same direction as the controller 200 is tilted.

이때 상술한 저장부(110)에는 각각 다른 방향으로 가상 객체가 기울어진 상태에서의 가상 객체의 이미지들을 가상 객체의 블렌딩 이미지로서 미리 저장할 수 있으며, 이때 각 블렌딩 이미지에는 대응하는 기울임값들의 범위가 미리 매칭될 수 있다. At this time, the above-described storage unit 110 may store images of a virtual object in a state in which the virtual object is tilted in different directions as a blended image of the virtual object, and each blended image has a range of corresponding tilt values in advance. Can be matched.

제어부(140)는 구체적으로 컨트롤러(200)의 방향벡터에 기초하여 가상 객체의 축 기울임값을 산출하고, 결정된 축기울임값에 대응하는 블렌딩 이미지를 선택할 수 있다. 이때 축 기울임값은 가상 객체의 가로축 기울임값과 세로축 기울임값을 포함할 수 있으며, 제어부(140)는 컨트롤러의 방향벡터와 가상현실 공간의 방향벡터를 이용하여 가로축 기울임값과 세로축 기울임값을 산출할 수 있다. The controller 140 may specifically calculate the axis tilt value of the virtual object based on the direction vector of the controller 200 and select a blending image corresponding to the determined axis tilt value. At this time, the axis tilt value may include the horizontal axis tilt value and the vertical axis tilt value of the virtual object, and the controller 140 calculates the horizontal axis tilt value and the vertical axis tilt value using the controller direction vector and the virtual reality space direction vector. Can be.

이때 가로축 기울임값과 세로축 기울임값을 산출하는데 이용되는 수식은 예를 들어, 다음과 같이 설정될 수 있다. At this time, the equation used to calculate the horizontal axis tilt value and the vertical axis tilt value may be set as follows, for example.

Figure 112018081816603-pat00003
Figure 112018081816603-pat00003

Figure 112018081816603-pat00004
는 컨트롤러(200)의 방향벡터이며, 가상현실공간의 방향벡터인
Figure 112018081816603-pat00005
는 각각 (-1.0,0.0,0.0),(1.0,0.0,0.0),(0.0,1.0,0.0),(0.0,-1.0,0.0)일 수 있다.
Figure 112018081816603-pat00004
Is the direction vector of the controller 200, which is the direction vector of the virtual reality space.
Figure 112018081816603-pat00005
May be (-1.0,0.0,0.0),(1.0,0.0,0.0),(0.0,1.0,0.0),(0.0,-1.0,0.0), respectively.

도 5에 도시된 바와 같이 컨트롤러(200)가 가로방향과 세로방향 모두에 대해 기울어진 상태인 경우, 도 6에 도시된 바와 같이 가상 객체(O)도 컨트롤러(200)가 기울어진 방향에 따라 기울어지는 이미지를 갖도록 제어부(140)는 컨트롤러(200)의 방향벡터를 이용하여 가상 객체(O)의 축 기울임값을 산출할 수 있다. When the controller 200 is inclined with respect to both the horizontal and vertical directions as shown in FIG. 5, as shown in FIG. 6, the virtual object O is also inclined according to the direction in which the controller 200 is inclined. The controller 140 may calculate the axis tilt value of the virtual object O using the direction vector of the controller 200 so as to have the losing image.

이때 가로축 기울임값 x는 가상 객체(O)의 xy 평면 상에서의 기울임값을 나타내고 세로축 기울임값 y는 가상 객체(O)의 yz 평면 상에서의 기울임값을 나타낸다. At this time, the horizontal axis tilt value x represents the tilt value on the xy plane of the virtual object O, and the vertical axis tilt value y represents the tilt value on the yz plane of the virtual object O.

도 5와 도 6을 살펴보면, 점선으로 표시된 상태의 컨트롤러(200’)에 대응하여서는 가상 객체(O’) 검 아이템의 칼날 끝이 전방을 향하도록 배열되는 경우, 실선으로 표시된 상태의 컨트롤러(200)와 같이 가로축에 대해서는 대략 우측방으로, 세로축에 대해서는 상방으로 기울임값을 가지는 경우, 가상 객체(O)는 칼날 끝이 상대적으로 우측으로 다소 기울어지되 칼날 끝이 전방보다는 상방으로 향하도록 배치되는 것을 확인할 수 있다. 5 and 6, in response to the controller 200' in a state indicated by a dotted line, when the blade end of the virtual object O'sword item is arranged to face forward, the controller 200 in a state indicated by a solid line As shown in the figure, when the inclination value is approximately in the right direction with respect to the horizontal axis and in the upward direction with respect to the vertical axis, the virtual object O is slightly inclined to the right with respect to the edge of the blade, but confirms that the edge of the blade is disposed upwards rather than in front. Can be.

이와 같이 제어부(140)는 컨트롤러(200)의 기울어진 방향을 그대로 가상 객체(O)에 반영하기 위해 가로축과 세로축에 대한 기울임값을 산출하고 그에 대응하여 미리 저장된 가상 객체의 블렌딩 이미지를 선택할 수 있다. 이때 각 블렌딩 이미지에 대해서는 해당 이미지가 나타내는 기울기에 대응하는 각각의 가로축 및 세로축 기울임값의 범위가 미리 매칭될 수 있음은 앞서 설명한 바와 같다. 따라서 제어부(140)는 연산된 기울임값이 포함되는 범위에 미리 매칭된 블렌딩 이미지를 선택할 수 있다. In this way, the controller 140 may calculate the inclination values for the horizontal axis and the vertical axis to reflect the inclined direction of the controller 200 to the virtual object O, and select a blending image of the virtual objects stored in advance. . In this case, as described above, for each blended image, a range of tilt values of the horizontal axis and the vertical axis corresponding to the slope indicated by the corresponding image may be matched in advance. Therefore, the control unit 140 may select a blending image previously matched to a range including the calculated tilt value.

제어부(140)의 축 기울임값 연산 과정을 구체적인 예를 들어 설명하면, 컨트롤러(200)의 방향벡터가 (0.4, 0.0, 0.9)인 경우,

Figure 112018081816603-pat00006
는 각각 0.623, 0.377. 0.5, 0.5로 산출된다. When a process of calculating the axis tilt value of the controller 140 is described as a specific example, when the direction vector of the controller 200 is (0.4, 0.0, 0.9),
Figure 112018081816603-pat00006
Is 0.623 and 0.377, respectively. It is calculated as 0.5 and 0.5.

그에 따라 가로축 기울임값은 0.246으로, 세로축 기울임값은 0으로 연산될 수 있다. Accordingly, the tilt value of the horizontal axis may be calculated as 0.246, and the tilt value of the vertical axis may be calculated as 0.

이 경우 가상 객체(O)는 우측으로 회전된 상태를 나타내고 세로축으로는 회전하지 않은 상태로 나타날 수 있다. In this case, the virtual object O may appear to be rotated to the right and not rotated to the vertical axis.

이와 같이 가상 객체의 움직임 구현 장치(100)는 애니메이션을 구성하는 각각의 프레임을 생성하되, 각 프레임에서 가상 객체(O)가 배열될 위치와 각 프레임에 배치될 가상 객체(O)의 블렌딩 이미지를 결정하는데 3자유도 컨트롤러(200)의 위치좌표와 방향벡터를 이용한다. As described above, the apparatus 100 for implementing motion of a virtual object generates each frame constituting an animation, and in each frame, a blended image of the virtual object O to be arranged in each frame and the position at which the virtual object O will be arranged. The position and coordinate vectors of the three-degrees-of-freedom controller 200 are used to determine.

그에 따라 컨트롤러(200)의 움직임을 그대로 삼차원 가상현실 공간 상의 가상 객체와 동기화할 수 있다. Accordingly, the movement of the controller 200 can be synchronized with the virtual object on the 3D virtual reality space as it is.

다음으로 도 7을 참조하여 실시예들에 따른 가상 객체의 움직임 구현 방법을 설명한다. 도 7은 가상 객체의 움직임 구현 방법을 설명하기 위한 순서도이다. 도 7에 도시된 실시예들에 따른 가상 객체의 움직임 구현 방법은 도 1에 도시된 가상 객체의 움직임 구현 장치(100)에서 시계열적으로 처리되는 단계들을 포함한다. 따라서, 이하에서 생략된 내용이라고 하더라도 도 1에 도시된 가상 객체의 움직임 구현 장치(100)에 관하여 이상에서 기술한 내용은 도 9 내지 도 12에 도시된 실시예에 따른 가상 객체의 움직임 구현 방법에도 적용될 수 있다.Next, a method of implementing motion of a virtual object according to embodiments will be described with reference to FIG. 7. 7 is a flowchart for explaining a method of implementing motion of a virtual object. The method for implementing motion of a virtual object according to the embodiments illustrated in FIG. 7 includes steps processed in time series in the apparatus 100 for implementing motion of a virtual object illustrated in FIG. 1. Therefore, even if it is omitted below, the contents described above with respect to the apparatus 100 for implementing motion of the virtual object illustrated in FIG. 1 are also described in the method of implementing motion of the virtual object according to the embodiments illustrated in FIGS. 9 to 12. Can be applied.

도 7을 참고하면, 가상 객체의 움직임 구현 장치(100)는 컨트롤러(200)의 2차원 위치좌표와 방향벡터에 대한 정보를 지속하여 수신할 수 있다(S710). 이때 가상 객체의 움직임 구현 장치(100)는 컨트롤러(200)의 속도 정보를 추가적으로 수신할 수 있다. Referring to FIG. 7, the apparatus 100 for implementing motion of a virtual object may continuously receive information on a 2D position coordinate and a direction vector of the controller 200 (S710 ). In this case, the apparatus 100 for implementing motion of the virtual object may additionally receive speed information of the controller 200.

그리고 가상 객체의 움직임 구현 장치(100)는 컨트롤러(200)의 위치좌표를 이용하여 컨트롤러(200)의 이동방향을 연산할 수 있다(S720). 이때 이용되는 수식은 앞서 기재한 바와 같다. 물론 이동방향을 예시된 바보다 더 세분화하여 결정할 수도 있음은 당연하다. Then, the apparatus 100 for implementing motion of the virtual object may calculate the moving direction of the controller 200 using the position coordinates of the controller 200 (S720 ). At this time, the formula used is as described above. Of course, it is natural that the direction of movement may be further subdivided than illustrated.

이어서 가상 객체의 움직임 구현 장치(100)는 결정된 컨트롤러(200)의 이동방향과 같은 방향으로 가상 객체가 이동하도록 가상 객체가 표시될 위치를 결정할 수 있다(S730). 이때 가상 객체가 표시될 위치는 3차원 가상현실 공간 상의 3차원 좌표로서 결정될 수 있다. Subsequently, the apparatus 100 for implementing motion of the virtual object may determine a location where the virtual object is displayed so that the virtual object moves in the same direction as the determined moving direction of the controller 200 (S730 ). At this time, the location where the virtual object is displayed may be determined as 3D coordinates in the 3D virtual reality space.

한편 S720단계와 S730단계에서 가상 객체의 움직임 구현 장치(100)는 컨트롤러(200)의 속도값을 추가적으로 고려할 수 있으며 속도값이 기설정된 값 미만인 경우 위치 연산을 수행하지 않을 수 있음은 앞서 설명한 바와 같다. Meanwhile, in steps S720 and S730, the apparatus 100 for implementing motion of the virtual object may additionally consider the speed value of the controller 200, and the position calculation may not be performed when the speed value is less than a preset value. .

한편 상술한 S720 및 S730단계와 병렬적으로 또는 직렬적으로 그 전후에, 가상 객체의 움직임 구현 장치(100)는 컨트롤러(200)의 방향벡터를 이용하여 가상 객체(O)의 축 기울임값을 산출할 수 있다. 이때 축 기울임값은 가로축과 세로축에 대해 따로 연산될 수 있고, 이용되는 수식은 앞서 설명한 바와 같다. 다만 축 기울임값을 연산하는 수식은 하나의 실시예에 불과하고 컨트롤러(200)의 기울임 방향과 기울임 정도를 가상 객체와 대체적으로 동기화시킬 수 있는 수식이라면 다른 수식을 이용하더라도 무방하다. On the other hand, in parallel or serially before and after the steps S720 and S730 described above, the apparatus 100 for implementing motion of the virtual object calculates the axis tilt value of the virtual object O using the direction vector of the controller 200. can do. At this time, the axis tilt value may be separately calculated for the horizontal axis and the vertical axis, and the equations used are as described above. However, the formula for calculating the axis tilt value is only one embodiment, and other formulas may be used as long as the formula can substantially synchronize the tilt direction and the degree of tilt of the controller 200 with the virtual object.

이어서 가상 객체의 움직임 구현 장치(100)는 축 기울임값에 기초하여 가상 객체의 블렌딩 이미지를 결정할 수 있다(S750). 이때 가상 객체의 움직임 구현 장치(100)는 가상 객체가 서로 다른 방향으로 기울어진 상태를 나타내는 복수의 블렌딩 이미지를 미리 저장할 수 있고, 이와 같이 미리 저장된 이미지 중 하나가 S750단계에서 선택될 수 있다. Subsequently, the apparatus 100 for implementing motion of the virtual object may determine a blending image of the virtual object based on the axis tilt value (S750 ). At this time, the apparatus 100 for implementing motion of the virtual object may previously store a plurality of blended images representing states in which the virtual objects are inclined in different directions, and one of the previously stored images may be selected in operation S750.

그리고 S720 및 S730단계와, S740 및 S740단계가 모두 수행되면 가상 객체의 움직임 구현 장치(100)는 S720 및 S730단계의 수행을 통해 결정된 가상 객체의 위치에, S740 및 S740단계에서 선택된 블렌딩 이미지를 배열하여, 하나의 애니메이션 프레임을 생성하고(S760), 이러한 과정을 반복 수행하여 생성된 복수의 프레임을 이용하여 가상 객체의 애니메이션을 구성할 수 있다. In addition, when both steps S720 and S730 and steps S740 and S740 are performed, the apparatus 100 for implementing motion of the virtual object arranges a blending image selected in steps S740 and S740 at the location of the virtual object determined through the steps S720 and S730. By doing so, one animation frame may be generated (S760), and the animation of the virtual object may be configured using a plurality of frames generated by repeating this process.

이상의 실시예들에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA(field programmable gate array) 또는 ASIC 와 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행한다. 그렇지만 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램특허 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다.The term'~unit' used in the above embodiments means software or hardware components such as a field programmable gate array (FPGA) or an ASIC, and'~unit' performs certain roles. However,'~ wealth' is not limited to software or hardware. The'~ unit' may be configured to be in an addressable storage medium or may be configured to reproduce one or more processors. Thus, as an example,'~ unit' refers to components such as software components, object-oriented software components, class components and task components, processes, functions, attributes, and procedures. , Subroutines, segments of program patent code, drivers, firmware, microcode, circuitry, data, database, data structures, tables, arrays, and variables.

구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로부터 분리될 수 있다.The functions provided within the components and'~units' may be combined into a smaller number of components and'~units', or separated from additional components and'~units'.

뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU 들을 재생시키도록 구현될 수도 있다.In addition, the components and'~ unit' may be implemented to play one or more CPUs in the device or secure multimedia card.

도 7을 통해 설명된 실시예들에 따른 가상 객체의 움직임 구현 방법은 컴퓨터에 의해 실행 가능한 명령어 및 데이터를 저장하는, 컴퓨터로 판독 가능한 매체의 형태로도 구현될 수 있다. 이때, 명령어 및 데이터는 프로그램 코드의 형태로 저장될 수 있으며, 프로세서에 의해 실행되었을 때, 소정의 프로그램 모듈을 생성하여 소정의 동작을 수행할 수 있다. 또한, 컴퓨터로 판독 가능한 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터로 판독 가능한 매체는 컴퓨터 기록 매체일 수 있는데, 컴퓨터 기록 매체는 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함할 수 있다. 예를 들어, 컴퓨터 기록 매체는 HDD 및 SSD 등과 같은 마그네틱 저장 매체, CD, DVD 및 블루레이 디스크 등과 같은 광학적 기록 매체, 또는 네트워크를 통해 접근 가능한 서버에 포함되는 메모리일 수 있다.The method of implementing motion of a virtual object according to the embodiments described with reference to FIG. 7 may also be implemented in the form of a computer-readable medium that stores instructions and data executable by a computer. At this time, instructions and data may be stored in the form of program code, and when executed by a processor, a predetermined program module may be generated to perform a predetermined operation. In addition, the computer-readable medium can be any available medium that can be accessed by a computer, and includes both volatile and nonvolatile media, removable and non-removable media. In addition, the computer-readable medium may be a computer recording medium, which is volatile and non-volatile implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules or other data. Volatile, removable and non-removable media. For example, the computer recording medium may be a magnetic storage medium such as HDD and SSD, an optical recording medium such as CD, DVD and Blu-ray disk, or a memory included in a server accessible through a network.

또한 도 7을 통해 설명된 실시예들에 따른 가상 객체의 움직임 구현 방법은 컴퓨터에 의해 실행 가능한 명령어를 포함하는 컴퓨터 프로그램(또는 컴퓨터 프로그램 제품)으로 구현될 수도 있다. 컴퓨터 프로그램은 프로세서에 의해 처리되는 프로그래밍 가능한 기계 명령어를 포함하고, 고레벨 프로그래밍 언어(High-level Programming Language), 객체 지향 프로그래밍 언어(Object-oriented Programming Language), 어셈블리 언어 또는 기계 언어 등으로 구현될 수 있다. 또한 컴퓨터 프로그램은 유형의 컴퓨터 판독가능 기록매체(예를 들어, 메모리, 하드디스크, 자기/광학 매체 또는 SSD(Solid-State Drive) 등)에 기록될 수 있다. In addition, the method of implementing motion of a virtual object according to the embodiments described with reference to FIG. 7 may be implemented as a computer program (or computer program product) including instructions executable by a computer. The computer program includes programmable machine instructions processed by a processor and may be implemented in a high-level programming language, object-oriented programming language, assembly language, or machine language. . In addition, the computer program may be recorded on a tangible computer-readable recording medium (eg, memory, hard disk, magnetic/optical medium, or solid-state drive (SSD), etc.).

따라서 도 7을 통해 설명된 실시예들에 따른 가상 객체의 움직임 구현 방법은 상술한 바와 같은 컴퓨터 프로그램이 컴퓨팅 장치에 의해 실행됨으로써 구현될 수 있다. 컴퓨팅 장치는 프로세서와, 메모리와, 저장 장치와, 메모리 및 고속 확장포트에 접속하고 있는 고속 인터페이스와, 저속 버스와 저장 장치에 접속하고 있는 저속 인터페이스 중 적어도 일부를 포함할 수 있다. 이러한 성분들 각각은 다양한 버스를 이용하여 서로 접속되어 있으며, 공통 머더보드에 탑재되거나 다른 적절한 방식으로 장착될 수 있다.Accordingly, a method of implementing motion of a virtual object according to the embodiments described with reference to FIG. 7 may be implemented by executing a computer program as described above by a computing device. The computing device may include at least some of a processor, a memory, a storage device, a high-speed interface connected to the memory and a high-speed expansion port, and a low-speed interface connected to the low-speed bus and the storage device. Each of these components is connected to each other using various buses, and can be mounted on a common motherboard or mounted in other suitable ways.

여기서 프로세서는 컴퓨팅 장치 내에서 명령어를 처리할 수 있는데, 이런 명령어로는, 예컨대 고속 인터페이스에 접속된 디스플레이처럼 외부 입력, 출력 장치상에 GUI(Graphic User Interface)를 제공하기 위한 그래픽 정보를 표시하기 위해 메모리나 저장 장치에 저장된 명령어를 들 수 있다. 다른 실시예로서, 다수의 프로세서 및(또는) 다수의 버스가 적절히 다수의 메모리 및 메모리 형태와 함께 이용될 수 있다. 또한 프로세서는 독립적인 다수의 아날로그 및(또는) 디지털 프로세서를 포함하는 칩들이 이루는 칩셋으로 구현될 수 있다.Here, the processor is capable of processing instructions within the computing device, such as to display graphical information for providing a graphical user interface (GUI) on an external input or output device, such as a display connected to a high-speed interface. Examples are commands stored in memory or storage devices. In other embodiments, multiple processors and/or multiple buses may be used in conjunction with multiple memories and memory types as appropriate. Also, the processor may be implemented as a chipset formed by chips including a plurality of independent analog and/or digital processors.

또한 메모리는 컴퓨팅 장치 내에서 정보를 저장한다. 일례로, 메모리는 휘발성 메모리 유닛 또는 그들의 집합으로 구성될 수 있다. 다른 예로, 메모리는 비휘발성 메모리 유닛 또는 그들의 집합으로 구성될 수 있다. 또한 메모리는 예컨대, 자기 혹은 광 디스크와 같이 다른 형태의 컴퓨터 판독 가능한 매체일 수도 있다.Memory also stores information within computing devices. In one example, the memory may consist of volatile memory units or a collection thereof. As another example, the memory may consist of non-volatile memory units or a collection thereof. The memory may also be other forms of computer-readable media, such as magnetic or optical disks.

그리고 저장장치는 컴퓨팅 장치에게 대용량의 저장공간을 제공할 수 있다. 저장 장치는 컴퓨터 판독 가능한 매체이거나 이런 매체를 포함하는 구성일 수 있으며, 예를 들어 SAN(Storage Area Network) 내의 장치들이나 다른 구성도 포함할 수 있고, 플로피 디스크 장치, 하드 디스크 장치, 광 디스크 장치, 혹은 테이프 장치, 플래시 메모리, 그와 유사한 다른 반도체 메모리 장치 혹은 장치 어레이일 수 있다.And the storage device can provide a large storage space for the computing device. The storage device may be a computer-readable medium or a configuration including such a medium, and may include, for example, devices within a storage area network (SAN) or other configurations, and may include floppy disk devices, hard disk devices, optical disk devices, Or a tape device, flash memory, or other similar semiconductor memory device or device array.

상술된 실시예들은 예시를 위한 것이며, 상술된 실시예들이 속하는 기술분야의 통상의 지식을 가진 자는 상술된 실시예들이 갖는 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 상술된 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.The above-described embodiments are for illustration only, and those having ordinary knowledge in the technical field to which the above-described embodiments belong can easily be modified into other specific forms without changing the technical idea or essential features of the above-described embodiments. You will understand. Therefore, it should be understood that the above-described embodiments are illustrative in all respects and not restrictive. For example, each component described as a single type may be implemented in a distributed manner, and similarly, components described as distributed may be implemented in a combined form.

본 명세서를 통해 보호 받고자 하는 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태를 포함하는 것으로 해석되어야 한다.The scope to be protected through the present specification is indicated by the claims, which will be described later, rather than the detailed description, and should be interpreted to include all modified or modified forms derived from the meaning and scope of the claims and equivalent concepts thereof. .

100: 가상 객체의 움직임 구현 장치 110: 저장부
120: 통신부 130: 입출력부
140: 제어부
100: a device for implementing motion of a virtual object 110: a storage unit
120: communication unit 130: input and output unit
140: control unit

Claims (17)

컨트롤러로부터 상기 컨트롤러의 위치좌표와 방향벡터를 수신하는 통신부;
유저의 움직임에 기초하여 변화하는 삼차원 가상현실 영상을 출력하는 입출력부;
상기 컨트롤러의 위치좌표와 방향벡터를 이용하여 상기 컨트롤러의 제어 대상이 되는 가상 객체의 위치와 블렌딩 이미지를 결정하되, 상기 컨트롤러의 2차원 위치좌표의 변화에 따라 상기 컨트롤러의 이동방향을 결정하고, 결정된 이동방향에 따라 상기 가상 객체의 이동 위치를 결정하며, 상기 컨트롤러의 방향벡터를 이용하여, 상기 가상 객체의 축 기울임값을 산출하여, 결정된 축 기울임값에 대응하는 블렌딩 이미지를 선택하고, 결정된 상기 가상 객체의 위치와 블렌딩 이미지를 이용하여 상기 가상 객체의 애니메이션을 생성하며, 상기 가상 객체의 애니메이션을 포함하는 삼차원 가상현실 영상을 렌더링하는 제어부;
그리고
상기 가상 객체에 대하여 서로 다른 축 기울임값에 대응하는 복수의 블렌딩 이미지를 저장하는 저장부를 포함하되,
상기 제어부는,
산출된 축 기울임값에 기초하여 상기 복수의 블렌딩 이미지 중 하나의 블렌딩 이미지를 선택하는 가상 객체의 움직임 구현 장치.
A communication unit that receives a position coordinate and a direction vector of the controller from a controller;
An input/output unit configured to output a 3D virtual reality image that changes based on a user's movement;
The position and blending image of the virtual object to be controlled by the controller is determined using the position coordinates and the direction vector of the controller, but the moving direction of the controller is determined according to the change of the 2D position coordinates of the controller, and the determined The moving position of the virtual object is determined according to the moving direction, the axis tilt value of the virtual object is calculated using the direction vector of the controller, a blending image corresponding to the determined axis tilt value is selected, and the determined virtual A control unit for generating an animation of the virtual object using the position of the object and the blended image, and rendering a 3D virtual reality image including the animation of the virtual object;
And
A storage unit for storing a plurality of blending images corresponding to different axis tilt values for the virtual object,
The control unit,
An apparatus for implementing motion of a virtual object that selects one blending image among the plurality of blending images based on the calculated axis tilt value.
삭제delete 제1항에 있어서,
상기 통신부는,
상기 컨트롤러의 속도값을 수신하고,
상기 제어부는,
상기 컨트롤러의 속도값이 기설정된 값 이상일 때, 상기 컨트롤러의 2차원 위치좌표의 변화에 기초하여 상기 컨트롤러의 이동방향을 결정하는, 가상 객체의 움직임 구현 장치.
According to claim 1,
The communication unit,
Receiving the speed value of the controller,
The control unit,
When the speed value of the controller is greater than or equal to a predetermined value, a device for implementing motion of a virtual object that determines a moving direction of the controller based on a change in the two-dimensional position coordinate of the controller.
삭제delete 제1항에 있어서,
상기 제어부는,
상기 가상 객체의 가로축 기울임값과 세로축 기울임값을 산출하되, 상기 컨트롤러의 방향벡터와 가상현실 공간의 방향벡터를 이용하여 상기 가로축 기울임값과 세로축 기울임값을 산출하는, 가상 객체의 움직임 구현 장치.
According to claim 1,
The control unit,
An apparatus for implementing motion of a virtual object, calculating the horizontal axis tilt value and the vertical axis tilt value of the virtual object, and calculating the horizontal axis tilt value and the vertical axis tilt value using the controller direction vector and the virtual reality space direction vector.
제5항에 있어서,
상기 제어부는,
하기의 수식을 이용하여 상기 가로축 기울임값과 세로축 기울임값을 산출하고,
Figure 112018081816603-pat00007

Figure 112018081816603-pat00008
는 컨트롤러의 방향벡터이며,
가상현실공간의 방향벡터인
Figure 112018081816603-pat00009
는 각각 (-1.0,0.0,0.0), (1.0,0.0,0.0), (0.0,1.0,0.0), (0.0,-1.0,0.0)인, 가상 객체의 움직임 구현 장치.
The method of claim 5,
The control unit,
The horizontal axis tilt value and the vertical axis tilt value are calculated by using the following formula,
Figure 112018081816603-pat00007

Figure 112018081816603-pat00008
Is the direction vector of the controller,
The direction vector of virtual reality space
Figure 112018081816603-pat00009
Is (-1.0,0.0,0.0), (1.0,0.0,0.0), (0.0,1.0,0.0), (0.0,-1.0,0.0), respectively.
삭제delete 가상 객체의 움직임 구현 장치에 의해 수행되고,
컨트롤러로부터 상기 컨트롤러의 위치좌표와 방향벡터를 수신하는 단계;
상기 컨트롤러의 위치좌표와 방향벡터를 이용하여 상기 컨트롤러의 제어 대상이 되는 가상 객체의 위치와 블렌딩 이미지를 결정하고, 결정된 상기 가상 객체의 위치와 블렌딩 이미지를 이용하여 상기 가상 객체의 애니메이션을 생성하며, 상기 가상 객체의 애니메이션을 포함하는 삼차원 가상현실 영상을 렌더링하는 단계; 그리고
렌더링된 삼차원 가상현실 영상을 출력하는 단계를 포함하되,
상기 렌더링하는 단계는,
상기 컨트롤러의 2차원 위치좌표의 변화에 따라 상기 컨트롤러의 이동방향을 결정하여, 결정된 이동방향에 따라 상기 가상 객체의 이동 위치를 결정하고, 상기 컨트롤러의 방향벡터를 이용하여, 상기 가상 객체의 축 기울임값을 산출하고, 산출된 축 기울임값에 기초하여 기저장된 복수의 블렌딩 이미지 중 하나의 블렌딩 이미지를 선택하는 것을 특징으로 하는, 가상 객체의 움직임 구현 방법.
Is performed by the device for implementing the movement of the virtual object,
Receiving a position coordinate and a direction vector of the controller from a controller;
The position and blending image of the virtual object to be controlled by the controller is determined using the position coordinate and the direction vector of the controller, and the animation of the virtual object is generated using the determined position and blending image of the virtual object, Rendering a 3D virtual reality image including animation of the virtual object; And
And outputting the rendered 3D virtual reality image,
The rendering step,
The moving direction of the controller is determined according to the change of the two-dimensional position coordinate of the controller, the moving position of the virtual object is determined according to the determined moving direction, and the axis of the virtual object is tilted using the direction vector of the controller. A method of implementing motion of a virtual object, characterized in that a value is calculated and one blending image is selected from a plurality of previously stored blending images based on the calculated axis tilt value.
삭제delete 제8항에 있어서,
상기 수신하는 단계는,
상기 컨트롤러의 속도값을 수신하는 단계를 포함하고,
상기 렌더링하는 단계는,
이동방향을 결정하되, 상기 컨트롤러의 속도값이 기설정된 값 이상일 때, 상기 컨트롤러의 2차원 위치좌표의 변화에 기초하여 상기 컨트롤러의 이동방향을 결정하는 것을 특징으로 하는, 가상 객체의 움직임 구현 방법.
The method of claim 8,
The receiving step,
And receiving a speed value of the controller,
The rendering step,
The moving direction is determined, and when the speed value of the controller is greater than or equal to a predetermined value, the moving direction of the controller is determined based on a change in the two-dimensional position coordinates of the controller.
삭제delete 제8항에 있어서,
상기 렌더링하는 단계는,
축 기울임값을 산출하되, 상기 컨트롤러의 방향벡터와 가상현실 공간의 방향벡터를 이용하여 가로축 기울임값과 세로축 기울임값을 산출하는 단계를 포함하는 가상 객체의 움직임 구현 방법.
The method of claim 8,
The rendering step,
A method of implementing motion of a virtual object, comprising calculating an axis tilt value, and calculating a horizontal axis tilt value and a vertical axis tilt value using the controller direction vector and the virtual reality space direction vector.
제12항에 있어서,
상기 렌더링하는 단계는,
가로축 기울임값과 세로축 기울임값을 산출하되, 하기의 수식을 이용하여 산출하며,
Figure 112020501481814-pat00010

Figure 112020501481814-pat00011
는 컨트롤러의 방향벡터이며,
가상현실공간의 방향벡터인
Figure 112020501481814-pat00012
는 각각 (-1.0,0.0,0.0), (1.0,0.0,0.0), (0.0,1.0,0.0), (0.0,-1.0,0.0)인, 가상 객체의 움직임 구현 방법.
The method of claim 12,
The rendering step,
Calculate the horizontal axis tilt value and the vertical axis tilt value, using the following formula,
Figure 112020501481814-pat00010

Figure 112020501481814-pat00011
Is the direction vector of the controller,
The direction vector of virtual reality space
Figure 112020501481814-pat00012
Is (-1.0,0.0,0.0), (1.0,0.0,0.0), (0.0,1.0,0.0), (0.0,-1.0,0.0), respectively.
삭제delete 제8항에 있어서,
상기 렌더링하는 단계는,
결정된 상기 가상 객체의 위치에, 선택된 가상 객체의 블렌딩 이미지를 배열하여 하나의 애니메이션 프레임을 생성하는 과정을 반복하여 상기 가상 객체의 애니메이션을 생성하는 단계를 포함하는, 가상 객체의 움직임 구현 방법.
The method of claim 8,
The rendering step,
And generating a animation of the virtual object by repeating a process of generating a single animation frame by arranging a blended image of the selected virtual object at the determined position of the virtual object.
제8항에 기재된 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체.A computer-readable recording medium on which a program for performing the method according to claim 8 is recorded. 가상 객체의 움직임 구현 장치에 의해 수행되며, 제8항에 기재된 방법을 수행하기 위해 기록매체에 저장된 컴퓨터 프로그램.


A computer program stored in a recording medium to perform the method according to claim 8, performed by a device for implementing motion of a virtual object.


KR1020180096537A 2018-08-20 2018-08-20 Apparatus and method for making movement of vertual object using 3 dof controller KR102120975B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180096537A KR102120975B1 (en) 2018-08-20 2018-08-20 Apparatus and method for making movement of vertual object using 3 dof controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180096537A KR102120975B1 (en) 2018-08-20 2018-08-20 Apparatus and method for making movement of vertual object using 3 dof controller

Publications (2)

Publication Number Publication Date
KR20200021148A KR20200021148A (en) 2020-02-28
KR102120975B1 true KR102120975B1 (en) 2020-06-17

Family

ID=69638233

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180096537A KR102120975B1 (en) 2018-08-20 2018-08-20 Apparatus and method for making movement of vertual object using 3 dof controller

Country Status (1)

Country Link
KR (1) KR102120975B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010233752A (en) 2009-03-30 2010-10-21 Namco Bandai Games Inc Program, information storage medium, and image generation system
JP5996138B1 (en) 2016-03-18 2016-09-21 株式会社コロプラ GAME PROGRAM, METHOD, AND GAME SYSTEM

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010233752A (en) 2009-03-30 2010-10-21 Namco Bandai Games Inc Program, information storage medium, and image generation system
JP5996138B1 (en) 2016-03-18 2016-09-21 株式会社コロプラ GAME PROGRAM, METHOD, AND GAME SYSTEM

Also Published As

Publication number Publication date
KR20200021148A (en) 2020-02-28

Similar Documents

Publication Publication Date Title
US20210405761A1 (en) Augmented reality experiences with object manipulation
US11262835B2 (en) Human-body-gesture-based region and volume selection for HMD
US10394314B2 (en) Dynamic adjustment of user interface
US10016679B2 (en) Multiple frame distributed rendering of interactive content
US10055888B2 (en) Producing and consuming metadata within multi-dimensional data
US10134174B2 (en) Texture mapping with render-baked animation
JP2020522815A (en) Smoothly changing forviated rendering
EP3855290A1 (en) Remote rendering for virtual images
US11683470B2 (en) Determining inter-pupillary distance
JP2017528834A (en) Method, apparatus and computer program for displaying images
US11430192B2 (en) Placement and manipulation of objects in augmented reality environment
WO2016118294A1 (en) Spatial audio with remote speakers
KR20230075440A (en) Dynamic composition of user interface layouts and inputs for extended reality systems
US11422380B2 (en) Eyewear including virtual scene with 3D frames
US20230066318A1 (en) Handcrafted augmented reality effort evidence
US11922904B2 (en) Information processing apparatus and information processing method to control display of a content image
US11354011B2 (en) Snapping range for augmented reality
KR102261739B1 (en) System and method for adaptive streaming of augmented reality media content
KR102120975B1 (en) Apparatus and method for making movement of vertual object using 3 dof controller
JP2017016166A (en) Image processing apparatus and image processing method
KR102593043B1 (en) Augmented reality-based display methods, devices, storage media, and program products
KR20180031137A (en) Server of cloud audio rendering based on 360-degree vr video
KR20210144433A (en) Method and apparatus for photographing virtual space
KR20180119003A (en) Apparatus and method for providing user interface
KR20240033226A (en) Remote landmark rendering for extended reality interfaces

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant