KR20200021148A - 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
KR20200021148A
KR20200021148A KR1020180096537A KR20180096537A KR20200021148A KR 20200021148 A KR20200021148 A KR 20200021148A KR 1020180096537 A KR1020180096537 A KR 1020180096537A KR 20180096537 A KR20180096537 A KR 20180096537A KR 20200021148 A KR20200021148 A KR 20200021148A
Authority
KR
South Korea
Prior art keywords
controller
virtual object
axis tilt
direction vector
virtual
Prior art date
Application number
KR1020180096537A
Other languages
Korean (ko)
Other versions
KR102120975B1 (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 of the present invention relate to a device for implementing movement of a virtual object using a three degrees of freedom (DOF) controller, which is capable of converting a user′s movement into a movement of an object in a three-dimensional (3D) virtual environment; and a method thereof. More specifically, the device comprises: a communication unit receiving position coordinates and a direction vector of the controller from the controller; an input/output unit outputting a 3D virtual reality (VR) image changed based on the user′s movement; and a control unit determining the location and a blending image of the virtual object which is a control target of the controller by using the position coordinates and the direction vector of the controller, generating an animation of the virtual object by using the determined location and blending image of the virtual object, and rendering the 3D VR image including the animation of the virtual object.

Description

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

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

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

한편 이러한 가상현실 기술과 관련하여, 가상의 환경과 유저가 상호작용하기 위해서는 가상의 환경 내에서의 변화가 유저에게 오감을 통해 인지될 수 있어야 할 뿐 아니라, 역으로 유저의 행동이 가상 환경 내에 영향을 주어야 한다. 이를 위해서 가상현실과 유저 사이의 인터랙션을 위한 인터페이스 기술이 요구된다. 특히 게임이나 스포츠 등의 가상현실 서비스 구현을 위해서는 유저의 행동, 예를 들어 유저의 손의 움직임이 가상현실에 반영되도록 유저의 움직임을 감지하여 가상현실 시스템에 전달하는 컨트롤러가 필요하다. On the other hand, in relation to the virtual reality technology, in order for the user to interact with the virtual environment, not only the change in the virtual environment must be recognized by the five senses, but also the user's behavior is influenced within the virtual environment. Should give. To this end, interface technology for interaction between 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 for detecting a user's movement so that the user's action, for example, the user's hand movement is reflected in the virtual reality, and transmitting the same to the virtual reality system is required.

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

오래전부터 가상현실 구현을 위한 기술적 발전과 다양한 시도가 있어왔으나 지금까지 가상현실 기술이 대중화되지 못한데는 가격적인 장벽이 큰 이유였다. 최근 스마트폰 이용이 폭발적으로 증가하면서 디스플레이를 스마트폰으로 대체하는 매우 저렴한 HMD가 보급됨에 따라 가격 허들이 낮아지고 가상현실 기술의 대중화를 눈앞에 두고 있다. 그러나 3차원의 가상현실 구현을 위해서는 3차원 상의 위치 측정이 가능한 6자유도의 컨트롤러가 필요하고, HMD를 저렴하게 구성하더라도 여전히 컨트롤러의 가격 문제를 해결하지 못해 기술의 대중화가 늦춰지고 있는 상황이다. Although technological advances and various attempts have been made to implement virtual reality for a long time, price barriers are a big reason why virtual reality has not been popularized. The recent explosive growth in smartphone usage has led to the introduction of very inexpensive HMDs that replace displays with smartphones, resulting in lower price hurdles and the popularity of virtual reality technology. However, in order to implement 3D virtual reality, a controller having 6 degree of freedom capable of measuring position in 3D is required, and even if the HMD is inexpensively configured, the popularization of the technology is delayed because it does not solve the price problem of the controller.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

개시되는 실시예들에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 개시되는 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The effects obtainable in the disclosed embodiments are not limited to the effects mentioned above, and other effects not mentioned above are apparent 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 illustrating a configuration of an apparatus for implementing a motion of a virtual object, according to an exemplary embodiment.
2 to 6 are exemplary views for explaining an embodiment of a method for implementing a motion of a virtual object performed by a device for implementing a motion of a virtual object.
7 is a flowchart illustrating a method of implementing a 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 matters well known to those skilled in the art to which the following embodiments belong are omitted. In the drawings, parts irrelevant to the description of the embodiments are omitted, and like reference numerals designate like parts throughout the specification.

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

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

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

여기서 가상 객체의 움직임 구현 장치(100)는 가상현실 공간 내에서 서비스를 제공하는 컴퓨팅 장치로 구현될 수 있다. 이때 서비스는 게임이나 가상 스포츠, 가상 훈련 등 가상현실 공간에서 제공 가능한 어떤 것이라도 될 수 있다. 실시예에 따르면, 가상 객체의 움직임 구현 장치(100)는 유저에게 가상현실 공간의 영상을 제공하되 유저의 시점이나 동작의 변화를 감지하여 그에 대응하는 적절한 변화된 영상을 제공할 수 있다. Here, the apparatus 100 for implementing the motion of the virtual object may be implemented as a computing device that provides a service in the virtual reality space. In this case, 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 detect a change in a viewpoint or an operation of the user 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 apparatus 100 for implementing movement of a virtual object is implemented as a server-client system, the apparatus 100 may include an electronic terminal in which a client for interacting with a user is installed.

이때 전자단말기는, 유저와의 인터랙션이 가능한 인터페이스를 포함할 수 있는 컴퓨터나 휴대용 단말기, 텔레비전, 웨어러블 디바이스(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, desktop, laptop, etc., equipped with a web browser, and the portable terminal is, for example, a wireless communication device that ensures portability and mobility. , Personal Communication System (PCS), Personal Digital Cellular (PDC), Personal Handyphone System (PHS), Personal Digital Assistant (PDA), Global System for Mobile communications (GSM), International Mobile Telecommunication (IMT) -2000, CDMA (Code) Division Multiple Access (2000), all types of handhelds such as W-Code Division Multiple Access (W-CDMA), Wireless Broadband Internet (Wibro), Smart Phones, and Mobile Worldwide Interoperability for Microwave Access (WiMAX). It may include a (Handheld) based wireless communication device. In addition, the television may include IPTV (Internet Protocol Television), Internet TV (Internet Television), terrestrial TV, cable TV, and the like. Further, the wearable device is, for example, an information processing device of a type that can be directly worn on the human body such as an HMD, a watch, glasses, accessories, clothes, shoes, etc., and can be connected to a remote server through a network directly or through another information processing device. It can be connected to other terminals.

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

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

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

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

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

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

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

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

한편 통신부(120)는 다른 전자단말기 또는 네트워크와 유무선 통신을 수행할 수 있다. 이를 위해, 통신부(120)는 다양한 유무선 통신 방법 중 적어도 하나를 지원하는 통신 모듈을 포함할 수 있다. 예를 들어, 통신 모듈은 칩셋(chipset)의 형태로 구현될 수 있다.Meanwhile, the communication unit 120 may perform wired or 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) 등일 수 있다.In this case, the wireless communication supported by the communication unit 120 may be, for example, wireless fidelity (Wi-Fi), Wi-Fi Direct, 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 High Definition Multimedia Interface (HDMI).

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

나아가 통신부(120)는 다른 장치와 유선 또는 무선 통신을 수행할 수 있으며, 예를 들어 후술할 입출력부(130)가 물리적으로 분리된 별개의 장치로 구성되는 경우 입출력부(130)와의 통신을 수행할 수도 있다. Furthermore, 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 physical device, the communication unit 120 performs communication with the input / output unit 130. You may.

한편 입출력부(130)는 게임의 제공을 위해 필요한 정보를 유저로부터 입력받거나 표시할 수 있다. 입출력부(130)는 구체적으로, 입력부와 출력부를 포함하여 구성될 수 있다. 입력부는 예를 들어, 키보드, 마우스, 터치 스크린, 카메라 또는 마이크 등과 같이 다양한 형태의 유저의 입력을 수신할 수 있는 장치들을 포함할 수 있으며, 출력부가 표시하는 영상 내의 그래픽 유저인터페이스에 대한 입력을 수신할 수 있는 물리적 장치를 포함할 수 있다. 그리고 출력부는 디스플레이 패널, 스피커 또는 헤드셋 등을 포함할 수 있다.The input / output unit 130 may receive or display information necessary 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, for example, devices capable of receiving various types of user inputs such as a keyboard, a mouse, a touch screen, a camera or a microphone, and receive an input for a graphic user interface in an image displayed by the output unit. And physical devices capable of doing so. 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 the 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. FIG. In this case, for example, the graphic objects may include various menu objects M selected by the user to perform a predetermined function, and may include a virtual object O moving in response to the movement of the user.

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

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

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

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

실시예에 따르면, 제어부(140)는 유저로 하여금 가상현실과의 인터랙션이 가능하도록 가상현실 공간의 영상을 렌더링하여 입출력부(130)로 하여금 표시하도록 하되, 동시에 입출력부(130)를 통한 유저의 입력이나 컨트롤러(200)로부터 수신되는 데이터에 따라 가상현실 공간의 영상이 변화되도록 영상을 구성할 수 있다. 특히 제어부(140)는 컨트롤러(200)에서 수신되는 데이터에 기초하여 상술한 가상 객체(O)의 영상을 구성할 수 있다. According to an embodiment, the controller 140 renders an image of the virtual reality space to be displayed to the input / output unit 130 so that the user can interact with the virtual reality, but at the same time the user's user through the input / output unit 130 The image may be configured to change the image of the virtual reality space according to an input or data received from the controller 200. In particular, the controller 140 may configure the above-described image of the virtual object O based on the 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 shown in FIG. 3, when the arm of the user character and the item held by the character in the 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 change from the A state to the B state, the controller 140 controls the arm and the item of the character, which is the virtual object O, in the A 'state corresponding to the A state of the controller 200. It can be switched to the B 'state corresponding to the B state of). To this end, the controller 140 may change the position where the virtual object O is displayed and the displayed image of the virtual object O. FIG.

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

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

구체적으로 제어부(140)는 컨트롤러(200)의 2차원 위치좌표의 값들을 이용하여 컨트롤러(200)의 이동방향을 결정하고, 결정된 이동방향에 따라 가상 객체도 이동하도록 가상 객체의 위치를 결정한다. In detail, the controller 140 determines a 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)의 이동방향을 연산하고, 연산된 방향과 같은 방향으로 가상 객체가 이동하도록 가상 객체의 위치를 결정할 수 있다. In this case, according to an exemplary embodiment, the controller 140 may refer to the speed value of the controller 200 received from the controller 200. When the speed value of the controller 200 is less than the preset value, the controller 140 may consider that there is no movement of the controller 200 and maintain the position of the virtual object at the current position. However, when the speed value of the controller 200 is greater than or equal to a preset value, the controller 140 calculates the moving direction of the controller 200 according to the change of the two-dimensional position coordinate values of the controller 200, and the same as the calculated direction. The position of the virtual object may be determined so that the virtual object moves in the direction.

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

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

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

Figure pat00002
Figure pat00002

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

예를 들어, 컨트롤러(200)의 위치좌표가 (-100, -100)에서 (100, 100)으로 이동한 경우, x축 성분에 대해서는 마지막 좌표 100에서 첫 좌표 -100을 차감하여 200이 산출되고 y축 성분에 대해서도 마지막 좌표 100에서 첫 좌표 -100을 차감하여 200이 산출되므로, x축 성분에 대한 연산값과 y축 성분에 대한 연산값이 모두 0보다 크다. 따라서 컨트롤러(200)의 이동방향은 우측상방, 즉 ↗으로 결정된다. For example, if the position coordinate of the controller 200 moves from (-100, -100) to (100, 100), 200 is calculated by subtracting the first coordinate -100 from the last coordinate 100 for the x-axis component. Since 200 is calculated by subtracting the first coordinate -100 from the last coordinate 100 for the y-axis component, both the computed value for the x-axis component and the computed 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 to move the virtual object O in the corresponding direction.

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

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

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

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

Figure pat00003
Figure pat00003

Figure pat00004
는 컨트롤러(200)의 방향벡터이며, 가상현실공간의 방향벡터인
Figure 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 pat00004
Is the direction vector of the controller 200 and is the direction vector of the virtual reality space.
Figure 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)의 축 기울임값을 산출할 수 있다. As shown in FIG. 5, when the controller 200 is inclined with respect to both the horizontal and vertical directions, as shown in FIG. 6, the virtual object O is also tilted according to the inclined direction of the controller 200. The controller 140 may calculate an axis tilt value of the virtual object O using the direction vector of the controller 200 to have a lost 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)는 칼날 끝이 상대적으로 우측으로 다소 기울어지되 칼날 끝이 전방보다는 상방으로 향하도록 배치되는 것을 확인할 수 있다. Referring to FIGS. 5 and 6, in response to the controller 200 ′ in a dotted line, when the blade ends of the sword objects of the virtual object O ′ are arranged to face forward, the controller 200 in a solid line is shown. As shown in FIG. 6, when the tilt direction is approximately rightward with respect to the horizontal axis and upwardly with respect to the vertical axis, the virtual object O is disposed so that the edge of the blade is slightly inclined relatively to the right, but the edge of the blade is directed upward rather than forward. Can be.

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

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

Figure pat00006
는 각각 0.623, 0.377. 0.5, 0.5로 산출된다. Referring to the axis tilt calculation process of the controller 140 with a specific example, when the direction vector of the controller 200 is (0.4, 0.0, 0.9),
Figure pat00006
Are 0.623 and 0.377, respectively. It is calculated as 0.5 and 0.5.

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

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

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

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

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

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

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

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

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

한편 상술한 S720 및 S730단계와 병렬적으로 또는 직렬적으로 그 전후에, 가상 객체의 움직임 구현 장치(100)는 컨트롤러(200)의 방향벡터를 이용하여 가상 객체(O)의 축 기울임값을 산출할 수 있다. 이때 축 기울임값은 가로축과 세로축에 대해 따로 연산될 수 있고, 이용되는 수식은 앞서 설명한 바와 같다. 다만 축 기울임값을 연산하는 수식은 하나의 실시예에 불과하고 컨트롤러(200)의 기울임 방향과 기울임 정도를 가상 객체와 대체적으로 동기화시킬 수 있는 수식이라면 다른 수식을 이용하더라도 무방하다. On the other hand, before and after the parallel or serially in step S720 and S730 described above, the apparatus 100 for implementing the movement of the virtual object calculates the axis tilt value of the virtual object O by using the direction vector of the controller 200. can do. At this time, the axis tilt value may be calculated separately for the horizontal axis and the vertical axis, and the equation used is as described above. However, the formula for calculating the axis tilt value is only one embodiment, and any formula may be used as long as the formula for substantially synchronizing 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 the motion of the virtual object may determine the blended image of the virtual object based on the axis tilt value (S750). In this case, the apparatus 100 for implementing the motion of the virtual object may store a plurality of blending images representing the state in which the virtual object is inclined in different directions, and one of the pre-stored images may be selected in operation S750.

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

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

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

뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU 들을 재생시키도록 구현될 수도 있다.In addition, the components and '~' 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 a 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 for storing instructions and data executable by a computer. In this case, the command and data may be stored in the form of program code, and when executed by the processor, may generate a predetermined program module to perform a predetermined operation. In addition, computer readable media can be any available media 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-implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. It can include both 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, Blu-ray Disc, or the like, 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 for implementing the motion of the 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 the processor and may be implemented in a high-level programming language, an object-oriented programming language, an assembly language, or a machine language. . Computer programs may also be recorded on tangible computer readable media (eg, memory, hard disks, magnetic / optical media or solid-state drives, etc.).

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

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

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

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

상술된 실시예들은 예시를 위한 것이며, 상술된 실시예들이 속하는 기술분야의 통상의 지식을 가진 자는 상술된 실시예들이 갖는 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 상술된 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.The above-described embodiments are for illustrative purposes, and those of ordinary skill in the art to which the above-described embodiments belong may easily change to other specific forms without changing the technical spirit or essential features of the above-described embodiments. I can understand. Therefore, it is to 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 by the present specification is represented by the following claims rather than the above description, and should be construed to include all changes or modifications derived from the meaning and scope of the claims and their equivalents. .

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

Claims (17)

컨트롤러로부터 상기 컨트롤러의 위치좌표와 방향벡터를 수신하는 통신부;
유저의 움직임에 기초하여 변화하는 삼차원 가상현실 영상을 출력하는 입출력부; 그리고
상기 컨트롤러의 위치좌표와 방향벡터를 이용하여 상기 컨트롤러의 제어 대상이 되는 가상 객체의 위치와 블렌딩 이미지를 결정하고, 결정된 상기 가상 객체의 위치와 블렌딩 이미지를 이용하여 상기 가상 객체의 애니메이션을 생성하며, 상기 가상 객체의 애니메이션을 포함하는 삼차원 가상현실 영상을 렌더링하는 제어부를 포함하는 가상 객체의 움직임 구현 장치.
A communication unit which 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 is changed based on a user's movement; And
Determine the position and blending image of the virtual object to be controlled by the controller using the position coordinates and the direction vector of the controller, and generate an animation of the virtual object using the determined position and blending image of the virtual object, And a controller configured to render a 3D virtual reality image including the animation of the virtual object.
제1항에 있어서,
상기 제어부는,
상기 컨트롤러의 2차원 위치좌표의 변화에 따라 상기 컨트롤러의 이동방향을 결정하고, 결정된 이동방향에 따라 상기 가상 객체의 이동 위치를 결정하는, 가상 객체의 움직임 구현 장치.
The method of claim 1,
The control unit,
And determining the moving direction of the controller according to the change of the two-dimensional position coordinates of the controller and determining the moving position of the virtual object according to the determined moving direction.
제2항에 있어서,
상기 통신부는,
상기 컨트롤러의 속도값을 수신하고,
상기 제어부는,
상기 컨트롤러의 속도값이 기설정된 값 이상일 때, 상기 컨트롤러의 2차원 위치좌표의 변화에 기초하여 상기 컨트롤러의 이동방향을 결정하는, 가상 객체의 움직임 구현 장치.
The method of claim 2,
The communication unit,
Receiving the speed value of the controller,
The control unit,
And determining a moving direction of the controller based on a change in the two-dimensional position coordinate of the controller when the speed value of the controller is equal to or greater than a preset value.
제1항 또는 제2항에 있어서,
상기 제어부는,
상기 컨트롤러의 방향벡터를 이용하여, 상기 가상 객체의 축 기울임값을 산출하고, 결정된 축기울임값에 대응하는 블렌딩 이미지를 선택하는, 가상 객체의 움직임 구현 장치.
The method according to claim 1 or 2,
The control unit,
And calculating a tilt value of the virtual object and selecting a blended image corresponding to the determined tilt value by using the direction vector of the controller.
제4항에 있어서,
상기 제어부는,
상기 가상 객체의 가로축 기울임값과 세로축 기울임값을 산출하되, 상기 컨트롤러의 방향벡터와 가상현실 공간의 방향벡터를 이용하여 상기 가로축 기울임값과 세로축 기울임값을 산출하는, 가상 객체의 움직임 구현 장치.
The method of claim 4, wherein
The control unit,
And calculating a horizontal axis tilt value and a vertical axis tilt value of the virtual object, and calculating the horizontal axis tilt value and the vertical axis tilt value by using the direction vector of the controller and the direction vector of the virtual reality space.
제5항에 있어서,
상기 제어부는,
하기의 수식을 이용하여 상기 가로축 기울임값과 세로축 기울임값을 산출하고,
Figure pat00007

Figure pat00008
는 컨트롤러의 방향벡터이며,
가상현실공간의 방향벡터인
Figure 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 using the following formula,
Figure pat00007

Figure pat00008
Is the direction vector of the controller,
The direction vector of the virtual reality space
Figure pat00009
Are (-1.0,0.0,0.0), (1.0,0.0,0.0), (0.0,1.0,0.0), and (0.0, -1.0,0.0), respectively.
제5항에 있어서,
상기 장치는,
상기 가상 객체에 대하여 서로 다른 축 기울임값에 대응하는 복수의 블렌딩 이미지를 저장하는 저장부를 더 포함하고,
상기 제어부는,
산출된 축 기울임값에 기초하여 상기 복수의 블렌딩 이미지 중 하나의 블렌딩 이미지를 선택하는, 가상 객체의 움직임 구현 장치.
The method of claim 5,
The device,
The apparatus may further include a storage configured to store a plurality of blended images corresponding to different axis tilt values with respect to the virtual object.
The control unit,
And selecting one blended image among the plurality of blended images based on the calculated axis tilt value.
가상 객체의 움직임 구현 장치에 의해 수행되고,
컨트롤러로부터 상기 컨트롤러의 위치좌표와 방향벡터를 수신하는 단계;
상기 컨트롤러의 위치좌표와 방향벡터를 이용하여 상기 컨트롤러의 제어 대상이 되는 가상 객체의 위치와 블렌딩 이미지를 결정하고, 결정된 상기 가상 객체의 위치와 블렌딩 이미지를 이용하여 상기 가상 객체의 애니메이션을 생성하며, 상기 가상 객체의 애니메이션을 포함하는 삼차원 가상현실 영상을 렌더링하는 단계; 그리고
렌더링된 삼차원 가상현실 영상을 출력하는 단계를 포함하는, 가상 객체의 움직임 구현 방법.
Performed by the device for implementing movement of the virtual object
Receiving a position coordinate and a direction vector of the controller from a controller;
Determine the position and blending image of the virtual object to be controlled by the controller using the position coordinates and the direction vector of the controller, and generate an animation of the virtual object using the determined position and blending image of the virtual object, Rendering a 3D virtual reality image including an animation of the virtual object; And
And outputting the rendered three-dimensional virtual reality image.
제8항에 있어서,
상기 렌더링하는 단계는,
상기 컨트롤러의 2차원 위치좌표의 변화에 따라 상기 컨트롤러의 이동방향을 결정하는 단계; 그리고
결정된 이동방향에 따라 상기 가상 객체의 이동 위치를 결정하는 단계를 포함하는 가상 객체의 움직임 구현 방법.
The method of claim 8,
The rendering step,
Determining a moving direction of the controller according to a change in the two-dimensional position coordinates of the controller; And
Determining a moving position of the virtual object according to the determined moving direction.
제9항에 있어서,
상기 수신하는 단계는,
상기 컨트롤러의 속도값을 수신하는 단계를 포함하고,
상기 이동방향을 결정하는 단계는,
상기 컨트롤러의 속도값이 기설정된 값 이상일 때, 상기 컨트롤러의 2차원 위치좌표의 변화에 기초하여 상기 컨트롤러의 이동방향을 결정하는 단계를 포함하는, 가상 객체의 움직임 구현 방법.
The method of claim 9,
The receiving step,
Receiving a speed value of the controller,
Determining the moving direction,
And determining a moving direction of the controller based on a change in the two-dimensional position coordinates of the controller when the speed value of the controller is equal to or greater than a preset value.
제8항 또는 제10항에 있어서,
상기 렌더링하는 단계는,
상기 컨트롤러의 방향벡터를 이용하여, 상기 가상 객체의 축 기울임값을 산출하는 단계; 그리고
결정된 축 기울임값에 대응하는 블렌딩 이미지를 선택하는 단계를 포함하는, 가상 객체의 움직임 구현 방법.
The method of claim 8 or 10,
The rendering step,
Calculating an axis tilt value of the virtual object using the direction vector of the controller; And
Selecting a blended image corresponding to the determined axis tilt value.
제11항에 있어서,
상기 축 기울임값을 산출하는 단계는,
상기 컨트롤러의 방향벡터와 가상현실 공간의 방향벡터를 이용하여 가로축 기울임값과 세로축 기울임값을 산출하는 단계를 포함하는 가상 객체의 움직임 구현 방법.
The method of claim 11,
Computing the axis tilt value,
Calculating a horizontal axis tilt value and a vertical axis tilt value using the direction vector of the controller and the direction vector of the virtual reality space.
제12항에 있어서,
상기 가로축 기울임값과 세로축 기울임값을 산출하는 단계는 하기의 수식을 이용하여 수행되며,
Figure pat00010

Figure pat00011
는 컨트롤러의 방향벡터이며,
가상현실공간의 방향벡터인
Figure 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 calculating of the horizontal axis tilt value and the vertical axis tilt value is performed by using the following formula,
Figure pat00010

Figure pat00011
Is the direction vector of the controller,
The direction vector of the virtual reality space
Figure pat00012
Are (-1.0,0.0,0.0), (1.0,0.0,0.0), (0.0,1.0,0.0), and (0.0, -1.0,0.0), respectively.
제12항에 있어서,
상기 블렌딩 이미지를 선택하는 단계는,
산출된 축 기울임값에 기초하여 기저장된 복수의 블렌딩 이미지 중 하나의 블렌딩 이미지를 선택하는 단계를 포함하는, 가상 객체의 움직임 구현 방법.
The method of claim 12,
Selecting the blended image,
Selecting one blended image from among the plurality of pre-stored blended images based on the calculated axis tilt value.
제14항에 있어서,
상기 렌더링하는 단계는,
결정된 상기 가상 객체의 위치에, 선택된 가상 객체의 블렌딩 이미지를 배열하여 하나의 애니메이션 프레임을 생성하는 과정을 반복하여 상기 가상 객체의 애니메이션을 생성하는 단계를 포함하는, 가상 객체의 움직임 구현 방법.
The method of claim 14,
The rendering step,
And generating an animation frame of the virtual object by repeating a process of generating one 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 having recorded thereon a program for performing the method of claim 8. 가상 객체의 움직임 구현 장치에 의해 수행되며, 제8항에 기재된 방법을 수행하기 위해 기록매체에 저장된 컴퓨터 프로그램.


A computer program executed by an apparatus for implementing a motion of a virtual object and stored in a recording medium for performing the method of claim 8.


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 true KR20200021148A (en) 2020-02-28
KR102120975B1 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
KR102120975B1 (en) 2020-06-17

Similar Documents

Publication Publication Date Title
US12080261B2 (en) Computer vision and mapping for audio
JP7042286B2 (en) Smoothly changing forbidden rendering
US12008151B2 (en) Tracking and drift correction
US10962780B2 (en) Remote rendering for virtual images
US10055888B2 (en) Producing and consuming metadata within multi-dimensional data
US9584915B2 (en) Spatial audio with remote speakers
US10373392B2 (en) Transitioning views of a virtual model
US9361732B2 (en) Transitions between body-locked and world-locked augmented reality
US10134174B2 (en) Texture mapping with render-baked animation
US11683470B2 (en) Determining inter-pupillary distance
GB2553607A (en) Virtual reality
US20160261841A1 (en) Method and device for synthesizing three-dimensional background content
US11422380B2 (en) Eyewear including virtual scene with 3D frames
KR20200076647A (en) Method, system and non-transitory computer-readable recording medium for generating animation sequences
JP2023515578A (en) 3D models for displayed 2D elements
KR102261739B1 (en) System and method for adaptive streaming of augmented reality media content
US20230308495A1 (en) Asymmetric Presentation of an Environment
JP2017016166A (en) Image processing apparatus and image processing method
KR102120975B1 (en) Apparatus and method for making movement of vertual object using 3 dof controller
US20230368453A1 (en) Controlling computer-generated facial expressions
US20180160133A1 (en) Realtime recording of gestures and/or voice to modify animations
KR20240033226A (en) Remote landmark rendering for extended reality interfaces
KR20210144433A (en) Method and apparatus for photographing virtual space
KR20230078171A (en) Apparatus and method for providing game
JP2022104554A (en) Computer program, method, and server

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