KR101265123B1 - 3D VR Controlling Middleware System interconnecting Voice Engine and interactive 3D Application in real time - Google Patents

3D VR Controlling Middleware System interconnecting Voice Engine and interactive 3D Application in real time Download PDF

Info

Publication number
KR101265123B1
KR101265123B1 KR1020110013945A KR20110013945A KR101265123B1 KR 101265123 B1 KR101265123 B1 KR 101265123B1 KR 1020110013945 A KR1020110013945 A KR 1020110013945A KR 20110013945 A KR20110013945 A KR 20110013945A KR 101265123 B1 KR101265123 B1 KR 101265123B1
Authority
KR
South Korea
Prior art keywords
voice
message
data
engine
string
Prior art date
Application number
KR1020110013945A
Other languages
Korean (ko)
Other versions
KR20120101604A (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 KR1020110013945A priority Critical patent/KR101265123B1/en
Publication of KR20120101604A publication Critical patent/KR20120101604A/en
Application granted granted Critical
Publication of KR101265123B1 publication Critical patent/KR101265123B1/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/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • G06F16/43Querying
    • G06F16/438Presentation of query results
    • G06F16/4387Presentation of query results by the use of playlists
    • G06F16/4393Multimedia presentations, e.g. slide shows, multimedia albums
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44568Immediately runnable code
    • G06F9/44584Portable applications, i.e. making applications self-contained, e.g. U3 standard

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

본 발명은 음성엔진과 인터렉티브 3D 어플리케이션을 실시간으로 연동시키는 3D 가상현실 컨트롤 미들웨어 시스템으로서, 사용자로부터 음성신호를 수신하는 음성입력부(10); 상기 음성입력부로부터 입력된 음성신호를 전달받아 음성엔진에 전송하고 음성엔진에 의하여 음성 데이터베이스(21) 내에서 검색되어 리턴되는 상기 음성신호에 대응하는 문자열 데이터를 수신하는 음성엔진처리부(20); 상기 음성엔진처리부로부터 문자열 데이터를 전달받아 3D 데이터가 인식가능한 메시지 데이터를 저장하는 메시지 데이터베이스(22) 내에서 상기 문자열 데이터에 대응하는 메시지 데이터를 검색하는 메시지처리부(30); 상기 메시지처리부로부터 상기 메시지 데이터를 수신하여, 상기 메시지 데이터에 따라 3D오브젝트의 실행 및 상태변화를 제어하는 동작제어부(40); 및 상기 동작제어부에 의하여 실행 및 상태변화가 제어되는 3D 오브젝트의 실행 및 상태변화를 실시간으로 업데이트하여 디스플레이하는 3D 렌더부(50)를 포함하여 이루어지는 것을 특징으로 한다.The present invention provides a 3D virtual reality control middleware system for interworking a voice engine and an interactive 3D application in real time, comprising: a voice input unit 10 for receiving a voice signal from a user; A voice engine processor 20 which receives a voice signal input from the voice input unit and transmits the voice signal to a voice engine and receives character string data corresponding to the voice signal retrieved and returned from the voice database 21 by the voice engine; A message processor (30) for receiving the string data from the voice engine processor and searching for the message data corresponding to the string data in a message database (22) storing message data recognizable by the 3D data; An operation control unit (40) for receiving the message data from the message processing unit and controlling execution and state change of a 3D object according to the message data; And a 3D renderer 50 which updates and displays the execution and the state change of the 3D object whose execution and state change are controlled by the operation control unit in real time.

Description

음성엔진과 인터렉티브 3차원 어플리케이션을 실시간으로 연동시키는 3차원 가상현실 컨트롤 미들웨어 시스템.{3D VR Controlling Middleware System interconnecting Voice Engine and interactive 3D Application in real time} 3D VR Controlling Middleware System interconnecting Voice Engine and interactive 3D Application in real time}

본 발명은 3D 가상현실 컨트롤 미들웨어 시스템 및 이를 이용하는 3D 가상현실 컨텐츠의 실시간 제어방법에 관한 것으로, 특히, 사용자의 음성을 인식하는 음성엔진과 인터렉티브 3D 어플리케이션을 실시간 연동시키는 3D 가상현실 컨트롤 미들웨어 시스템 및 이를 이용한 3D 컨텐츠의 실시간 제어방법에 관한 것이다. The present invention relates to a 3D virtual reality control middleware system and a method for real-time control of 3D virtual reality content using the same, and in particular, a 3D virtual reality control middleware system for real-time interworking an interactive 3D application with a voice engine that recognizes a user's voice. It relates to a real-time control method of the 3D content used.

급속한 정보통신 기술의 발달로 인하여 유비쿼터스 컴퓨팅의 기술, 네트워크 인프라, 3D 기술, 가상현실 기술 등 미래 콘텐츠 기술을 적용한 새로운 디지털 사용자 환경이 구축됨에 따라, 기존 3D 콘텐츠 시장은 게임, 교육, 홍보, 에니메이션 등 다양한 분야로 시장을 넓혀가고 있다. 또한, PC를 기본으로, PMP, 네비게이션, MP3, 스마트폰 등 모바일 기기 및 디지털 TV 등 다양한 기기의 플렛폼에 3D 콘텐츠 즉, 3D 어플리케이션이 활용되고 있다. With the rapid development of information and communication technology, a new digital user environment is applied that applies future content technologies such as ubiquitous computing technology, network infrastructure, 3D technology, and virtual reality technology. The market is expanding to various fields. In addition, based on the PC, 3D content, that is, 3D applications are utilized for the platform of various devices such as digital devices and mobile devices such as PMP, navigation, MP3, smart phones.

이에 따라, 다양한 분야와 플렛폼에 대응할 수 있는 3D 어플리케이션의 인터페이스는 상당히 중요한 요소가 되어, 기존의 3D 어플리케이션의 주로 키보드 입력 및 터치 입력, 마우스 입력이 기반이 된 인터페이스를 넘는 다양화되고 인터렉티브한 결과를 얻을 수 있는 음성인식기반의 진보한 인터페이스가 요구되고 있다. As a result, the interface of 3D applications that can cope with various fields and platforms becomes a very important factor. Therefore, various and interactive results beyond the interface based mainly on keyboard input, touch input, and mouse input of existing 3D applications can be obtained. There is a need for an advanced interface based on voice recognition.

한편, 음성인식기술은 사람이 말하는 음성 언어를 컴퓨터가 해석해 그 내용을 문자열인 문자 데이터로 전환하여 처리해주는 기술을 말하며, 음성의 인식에는 음성엔진이 사용되어 사용자에 의하여 입력된 음성을 문자 데이터로 변환하며, 현재로서는 영어교육시스템, 네비게이션, 모바일 검색 시스템에 한정되어 사용되고 있다. On the other hand, speech recognition technology refers to a technology that a computer interprets a speech language spoken by a person and converts its contents into text data, which is a character string, and processes the text by using a speech engine. It is currently used in a limited number of English education systems, navigation, and mobile search systems.

따라서,음성인식기술과 3D 콘텐츠(어플리케이션)이 접목된 인터페이스의 개발에 있어서는, 사용자의 명령등이 음성신호의 형태로 입력되는 음성엔진과 인터렉티브 3D 컨텐츠를 연동시키는 미들웨어 기술의 개발이 절실히 요구되고 있다.Therefore, in the development of an interface in which voice recognition technology and 3D content (application) are combined, there is an urgent need to develop a middleware technology in which a user's command, etc., are input in the form of a voice signal and an interactive 3D content. .

그러나, 음성엔진과 3D콘텐츠(어플리케이션)의 접목에는 음성엔진에 의하여 인식된 명령 등 문자 데이터가 3D콘텐츠(어플리케이션)의 3D 데이터에서는 인식이 되지 않는다는 기술적 문제점이 있는 실정이다,
However, there is a technical problem that the text data such as commands recognized by the voice engine is not recognized in the 3D data of the 3D content (application) when the voice engine is combined with the 3D content (application).

따라서, 본 발명은, 상술한 바와 같은 종래의 기술의 문제점을 해결하는, 음성엔진과 인터렉티브 3D 컨텐츠를 실시간 연동시키는 3D 가상현실 컨트롤 미들웨어 시스템 및 이를 이용한 3D 컨텐츠의 실시간 제어방법을 제공하여,음성인식기반의 진보한 인터페이스를 제공하는 것이 가능하도록 하는 것을 목적으로 한다.Accordingly, the present invention provides a 3D virtual reality control middleware system for real-time interworking a voice engine and interactive 3D contents, and a method for real-time control of 3D contents using the same, which solves the problems of the related art as described above. It is aimed at making it possible to provide an advanced interface based.

또한, 사용자의 음성을 인식하는 음성엔진에서 처리된 음성 데이터를 3D 데이터가 인식할 수 있는 메시지 데이터로 변환함으로써 음성엔진과 인터렉티브 3D 컨텐츠를 실시간 연동시키는 3D 가상현실 컨트롤 미들웨어 시스템 및 이를 이용한 3D 컨텐츠의 실시간 제어방법을 제공하는 것을 목적으로 한다.In addition, by converting the voice data processed by the voice engine that recognizes the user's voice into message data that can be recognized by the 3D data, the 3D virtual reality control middleware system for real-time interworking of the voice engine and the interactive 3D content and the 3D content using the same It is an object to provide a real-time control method.

나아가, 효율적으로 음성엔진에서 처리된 음성 데이터를 3D 데이터가 인식할 수 있는 메시지 데이터로 변환함으로써 3D 가상현실 컨트롤 미들웨어 시스템 및 이를 이용한 3D 컨텐츠의 실시간 제어방법에 있어, 한글 음성인식에 의한 3D 컨텐츠의 실시간 제어의 성능을 향상시키는 것을 목적으로 한다.Furthermore, in the 3D virtual reality control middleware system and real-time control method of 3D content using the same by converting the voice data processed by the voice engine into message data that can be recognized by the 3D data, The purpose is to improve the performance of real-time control.

위와 같은 목적을 달성하기 위하여, 본 발명은 음성엔진과 인터렉티브 3D 어플리케이션을 실시간으로 연동시키는 3D 가상현실 컨트롤 미들웨어 시스템으로서, 사용자로부터 음성신호를 수신하는 음성입력부(10); 상기 음성입력부로부터 입력된 음성신호를 전달받아 음성엔진에 전송하고 음성엔진에 의하여 음성 데이터베이스(21) 내에서 검색되어 리턴되는 상기 음성신호에 대응하는 문자열 데이터를 수신하는 음성엔진처리부(20); 상기 음성엔진처리부로부터 문자열 데이터를 전달받아 3D 데이터가 인식가능한 메시지 데이터를 저장하는 메시지 데이터베이스(22) 내에서 상기 문자열 데이터에 대응하는 메시지 데이터를 검색하는 메시지처리부(30); 상기 메시지처리부로부터 상기 메시지 데이터를 수신하여, 상기 메시지 데이터에 따라 3D오브젝트의 실행 및 상태변화를 제어하는 동작제어부(40); 및 상기 동작제어부에 의하여 실행 및 상태변화가 제어되는 3D 오브젝트의 실행 및 상태변화를 실시간으로 업데이트하여 디스플레이하는 3D 렌더부(50)를 포함하여 이루어지는 것을 특징으로 한다.In order to achieve the above object, the present invention provides a 3D virtual reality control middleware system for interworking a voice engine and an interactive 3D application in real time, the voice input unit 10 for receiving a voice signal from a user; A voice engine processor 20 which receives a voice signal input from the voice input unit and transmits the voice signal to a voice engine and receives character string data corresponding to the voice signal retrieved and returned from the voice database 21 by the voice engine; A message processor (30) for receiving the string data from the voice engine processor and searching for the message data corresponding to the string data in a message database (22) storing message data recognizable by the 3D data; An operation control unit (40) for receiving the message data from the message processing unit and controlling execution and state change of a 3D object according to the message data; And a 3D renderer 50 which updates and displays the execution and the state change of the 3D object whose execution and state change are controlled by the operation control unit in real time.

바람직하게는, 음성입력부(10)는 음성입력을 위한 입력장치의 연결 상태를 점검하여, 상태 메시지를 생성하여 출력하도록 구성된다. Preferably, the voice input unit 10 is configured to check the connection state of the input device for voice input, to generate and output a status message.

또한, 메시지처리부(30)는 상기 문자열 데이터에 대응하는 메시지 데이터가 검색되지 않는 경우 상기 문자열 데이터의 뒷글자 1자를 삭제하고 뒷글자 1자가 삭제된 문자열 데이터에 대응하는 메시지 데이터를 검색하는 과정을 수행하며, 상기 과정은 해당 메시지 데이터가 검색되거나 문자열 데이터에 1자가 남을 때까지 수행하도록 구성되는 것이 바람직하다. In addition, when the message data corresponding to the string data is not found, the message processing unit 30 performs a process of deleting the first one character of the string data and searching for the message data corresponding to the deleted string data of one character. The process may be configured to be performed until the corresponding message data is searched or until one character remains in the string data.

나아가, 바람직하게는, 메시지 데이터 베이스는 사용자로부터 입력받는 문자열 데이터인 음성 문자열, 동작 제어부로 전달할 메시지 데이터인 메시지 문자열을 포함하는 데이터 구조를 가지고,상기 문자열 데이터는 2Byte의 한글 문자열이고, 메시지 데이터는 행동명을 포함하는 1Byte 영문 문자열인 것을 특징으로 한다.Further, preferably, the message database has a data structure including a voice string, which is string data received from a user, and a message string, which is message data to be transmitted to an operation controller, wherein the string data is a Korean character string of 2 bytes, and the message data is Characterized as a 1-byte English string containing the action name.

또한, 동작제어부(40)는 오브젝트에 대하여 생성된 메시지 수신부, 메시지 처리부, 및 종료처리부를 포함하는 스크립트를 포함하여 구성되는 것이 바람직하다.        In addition, the operation control unit 40 is preferably configured to include a script including a message receiving unit, a message processing unit, and the termination processing unit generated for the object.

또 다른 측면에서, 본 발명은 3D 가상현실 컨트롤 미들웨어 시스템을 이용하는 3D 컨텐츠의 실시간 제어방법으로, 미들웨어 시스템에 연결된 음성입력장치를 통하여 사용자로부터 음성신호를 수신하는 단계(S10); 음성 데이터베이스에 접근하여 상기 수신된 음성신호에 대응되는 문자열 데이터를 검색하여 저장하는 단계(S20); 3D 데이터가 인식가능한 메시지 데이터를 저장하는 메시지 데이터베이스에서 상기 저장된 문자열 데이터에 대응하는 메시지 데이터를 검색하는 단계(S30);상기 검색된 메시지 데이터에 따라 3D 오브젝트의 행동을 제어하는 단계(S40); 및 상기 행동이 제어되는 3D 오브젝트의 행동을 실시간으로 업데이트하여 디스플레이하는 단계(S50)을 포함하여 이루어지는 것을 특징으로 한다.In another aspect, the present invention provides a method for real-time control of 3D content using a 3D virtual reality control middleware system, the method comprising: receiving a voice signal from a user through a voice input device connected to the middleware system (S10); Accessing a voice database and retrieving and storing string data corresponding to the received voice signal (S20); Retrieving message data corresponding to the stored string data from a message database storing message data recognizable by 3D data (S30); controlling a behavior of a 3D object according to the retrieved message data (S40); And updating and displaying the behavior of the 3D object whose behavior is controlled in real time (S50).

바람직하게는, 사용자로부터 음성신호를 수신하는 단계(S10)는 음성의 크기, 음성의 정확도, 음성의 속도 등에 기초하여 음성의 정확도를 판단하는 정확도 판단 단계(C5)를 포함하여 수행된다.Preferably, the step (S10) of receiving a voice signal from the user includes an accuracy determination step (C5) for determining the accuracy of the voice based on the size of the voice, the accuracy of the voice, the speed of the voice.

또한, 바람직하게는, 메시지 데이터를 검색하는 단계(S30)는, 문자열 데이터에 대응하는 메시지 데이터를 메시지 데이터베이스에서 검색하는 제1 단계; 및 문자열 데이터의 뒷글자 1자를 삭제한 후, 뒷글자 1자가 삭제된 문자열 데이터에 대응하는 메시지 데이터를 메시지 데이터베이스에서 검색하는 제2 단계;를 포함하여, 저장된 문자열 데이터에 대하여 제1 단계를 수행하여 대응하는 메시지 데이터가 검색되면 검색된 메시지 데이터를 리턴하고, 대응하는 메시지 데이터가 검색되지 않으면, 문자열 데이터에 1자가 남을 때까지 제2단계를 수행한다Also, preferably, the step S30 of retrieving the message data may include: a first step of retrieving message data corresponding to the character string data from the message database; And a second step of deleting the first letter of the character string data and retrieving message data corresponding to the deleted character string data from the message database, by performing a first step on the stored character string data. If the corresponding message data is found, the searched message data is returned. If the corresponding message data is not found, the second step is performed until one character remains in the string data.

나아가, 3D 오브젝트의 행동을 제어하는 단계(S40)는, 메시지 데이터의 수신을 기다리는 메시지 대기 단계(S4); 메시지 데이터를 수신하는 메시지 수신 단계(S5); 수신된 메시지 데이터에 따라 관련된 오브젝트의 행동을 실행하는 행동 실행단계(S6); 및 수신된 메시지 데이터에 따라 관련된 오브젝트의 행동의 실행이 완료되었는 지 여부를 판단하는 행동 실행종료 판단단계(S7)를 포함하여, 행동의 실행이 완료된 것으로 판단되면 된 경우 루틴을 종료(S8)하고, 추가적인 음성입력을 받도록 통보하도록 수행되는 것이 바람직하다.Further, the step (S40) of controlling the behavior of the 3D object may include: a message waiting step (S4) waiting for reception of message data; A message receiving step (S5) of receiving message data; An action execution step S6 of executing an action of a related object according to the received message data; And an action execution end determination step (S7) of determining whether execution of the action of the related object is completed according to the received message data, and if it is determined that execution of the action is completed (S8), In this case, it is preferable to perform a notification to receive an additional voice input.

나아가, 상기 3D 오브젝트의 행동을 실시간으로 업데이트하여 디스플레이하는 단계(S50)는, 어플리케이션 유저인터페이스를 생성하여 프레임과 어플리케이션 윈도우 뷰(Window View)를 생성하는 단계(C1) 및 상기 로드되는 화면의 매 프레임이 업데이트되어 디스플레이되도록 어플리케이션 윈도우 뷰(Window View)에 연동시키는 화면 로드(Scene Load)단계(C3)를 수행함으로써 3D 오브젝트의 행동을 실시간으로 업데이트하여 디스플레이하게 된다. Further, the step of updating and displaying the behavior of the 3D object in real time (S50) may include generating an application user interface (C1) and generating an application window view (C1) and every frame of the loaded screen. By performing the screen load step (C3) that is linked to the application window view to be updated and displayed, the behavior of the 3D object is updated and displayed in real time.

상술한 바와 같은 본 발명에 의하면, 음성엔진과 인터렉티브 3D 컨텐츠를 실시간 연동시키는 3D 가상현실 컨트롤 미들웨어 시스템 및 이를 이용한 3D 컨텐츠의 실시간 제어방법을 제공하여, 음성인식기반의 진보한 인터페이스를 제공하는 것이 가능하게 된다.According to the present invention as described above, it is possible to provide an advanced interface based on voice recognition by providing a 3D virtual reality control middleware system for real-time interworking a voice engine and interactive 3D content and a real-time control method of the 3D content using the same. Done.

또한, 사용자의 음성을 인식하는 음성엔진에서 처리된 음성 데이터를 3D 데이터가 인식할 수 있는 메시지 데이터로 변환함으로써 효율적으로 음성엔진과 인터렉티브 3D 컨텐츠를 실시간 연동시키는 것이 가능하게 된다.In addition, by converting the voice data processed by the voice engine that recognizes the user's voice into message data that can be recognized by the 3D data, it is possible to efficiently link the voice engine and interactive 3D content in real time.

나아가, 효율적으로 음성엔진에서 처리된 음성 데이터를 3D 데이터가 인식할 수 있는 메시지 데이터로 변환함으로써 한글 음성인식에 의한 3D 컨텐츠의 실시간 제어의 성능을 향상시키는 것이 가능하다.Furthermore, it is possible to improve the performance of real-time control of 3D content by Hangul voice recognition by efficiently converting the voice data processed by the voice engine into message data that can be recognized by the 3D data.

도1은 본 발명에 따른 3D 가상현실 컨트롤 미들웨어 시스템의 구성도
도2는 본 발명의 일 실시예에 따른 3D 가상현실 컨트롤 미들웨어 시스템의 세부 구성도
도3은 본 발명에 따른 3D 가상현실 컨트롤 미들웨어 시스템을 이용한 3D 컨텐츠의 실시간 제어방법의 플로우차트
도4는 본 발명의 일 실시예에 따른 3D 가상현실 컨트롤 미들웨어를 이용한 3D 컨텐츠의 실시간 제어방법을 설명하기 위한 세부 플로우차트
도5는 본 발명의 일 실시예에 따른 동작 제어부의 서버 내의 플레이 루프를 설명하기 위한 플로우 차트
도6는 본 발명의 일 실시예에 따른 메시지 모듈을 구성하는 함수코드
도7은 본 발명의 일 실시예에 따른 메시지 데이터 베이스의 데이터 구조 설명
도8은 본 발명의 일 실시예에 따른 3D 데이터의 데이터 구조도
도9는 본 발명의 일 실시예에 따른 서버 내의 CMO 파일의 플레이의 예시적 화면
1 is a block diagram of a 3D virtual reality control middleware system according to the present invention
2 is a detailed configuration diagram of a 3D virtual reality control middleware system according to an embodiment of the present invention.
3 is a flowchart of a method for real-time control of 3D content using a 3D virtual reality control middleware system according to the present invention.
4 is a detailed flowchart illustrating a real-time control method of 3D content using a 3D virtual reality control middleware according to an embodiment of the present invention.
5 is a flowchart illustrating a play loop in a server of an operation controller according to an embodiment of the present invention.
6 is a function code constituting a message module according to an embodiment of the present invention.
7 illustrates a data structure of a message database according to an embodiment of the present invention.
8 is a data structure diagram of 3D data according to an embodiment of the present invention;
9 is an exemplary screen of play of a CMO file in a server according to an embodiment of the present invention.

본 발명은 음성인식 기술로 처리된 문자열 데이터를 3D 데이터가 인식할 수 있는 메시지 데이터로 변환해 주는 미들웨어 기술로서, 메시지 데이터는 3D콘텐츠(어플리케이션)에서 각 오브젝트 개체마다 행동 즉, 움직임 실행 및/또는 상태변화를 수행할 수 있게 하는 명령어가 된다. 이 메시지 데이터는 DB화 되어 있으며, 변환 미들웨어에 의해서 처리된다. 위와 같은 본 발명의 미들웨어를 통해 음성은 문자열 데이터로, 문자열 데이터는 메시지 데이터로 변하게 되어, 이 메시지 데이터를 통하여 3 차원 가상현실의 오브젝트의 행동의 실행 즉, 움직임 실행 및 상태변화를 제어할 수 있게 된다. The present invention is a middleware technology that converts text data processed by voice recognition technology into message data that can be recognized by 3D data. Command to enable state change. This message data is made into DB and processed by the conversion middleware. Through the middleware of the present invention as described above, the voice is converted into string data and the string data is converted into message data. Through this message data, it is possible to control the execution of actions of the object of the 3D virtual reality, that is, movement execution and state change. do.

본 발명의 일 실시예에 따른 3D 가상현실 컨트롤 미들웨어 시스템은 상용화된 3D콘텐츠 제작 소프트웨어 개발 키트(SDK: Software Development Kit)인 VirtoolsTM SDK와 호환 가능하도록 실시된 경우로서, C++의 함수 형태이며, Virtools SDK엔진을 이용한다. 참고로, 이는 음성엔진 즉, 음성인식 라이브러리가 C 코드의 콜백 함수 라이브러리로 제작이 되어있고, 3D콘텐츠는 Virtools SDK C++언어로 처리하기 때문에 가능해진다. 따라서 본 발명의 일 실시예의 미들웨어 시스템은 음성엔진과 Virtools의 3D콘텐츠 제작 SDK의 호환을 위해 C++코드 형태로 제작된 경우의 예이다. The 3D virtual reality control middleware system according to an embodiment of the present invention is implemented to be compatible with the Virtools TM SDK, which is a commercial software development kit (SDK), which is a function form of C ++ . Use the Virtools SDK engine. For reference, this is possible because the speech engine, that is, the speech recognition library, is built as a C code callback function library, and 3D content is processed in the Virtools SDK C ++ language. Therefore, the middleware system according to an embodiment of the present invention is an example of a case in which a C ++ code form is created for compatibility between a voice engine and Virtools' 3D content production SDK.

본 발명의 일 실시예의 미들웨어 시스템의 구조는 그 기능특성을 기준으로 크게 서버와 클라이언트로 구분되어 설명되며, 3DVia Virtools로 제작된 실행파일이 서버 역할을 수행하고, 프로그램 단에서 접근하는 부분이 클라이언트의 역할을 수행하는 것으로 정의되어 설명된다. 서버의 주된 역할은 3D콘텐츠의 생성 및 구성, 관리로 요약되며, 클라이언트로부터 메시지를 데이터를기다린다. 클라이언트의 주된 역할은 음성 신호를 메시지 데이터 값으로 변환하여 서버에 전달하는 것으로 요약된다. The structure of the middleware system according to an embodiment of the present invention is largely divided into a server and a client based on its functional characteristics, and an executable file created by 3DVia Virtools serves as a server, and a part accessed by a program stage is a client's part. It is defined and described as playing a role. The main role of the server is summarized in the creation, configuration, and management of 3D content, waiting for data from the client. The main role of the client is summarized by converting the voice signal into a message data value and delivering it to the server.

본 발명의 일 실시예의 미들웨어 시스템의 구현은 메시지 프로세스 함수의 제작에 그 본질이 존재하며, 메시지 프로세스 함수는 사용자의 음성신호를 받아 음성엔진 즉, 음성인식 라이브러리를 통하여, 음성 데이터 베이스로부터 원하는 문자열 데이터를 얻어온다. 음성라이브러리에서 처리 방식은 CallBack 함수를 사용한다. 즉, 음성 신호를 입력받아 문자열 데이터를 CallBack하는 방식이다. 이렇게 리턴된 문자열 데이터는 미들웨어 함수를 통해 문자열 데이터에서 메시지 데이터로의 컨버팅 과정을 거치게 된다. 컨버팅 과정은 CallBack 함수를 통해 리턴된 문자열 데이터를 메시지 데이터 베이스에서 해당되는 메시지를 검색한다. 검색한 메시지는 서버측으로 전달된다. 서버는 받은 메시지 명에 따라 해당 3D오브젝트의 실행 및 상태변화를 제어하며, 이에 따라, 이에 따라 오브젝트에 동작이 일어나며, 이는 실시간으로 사용자에게 전달된다. The implementation of the middleware system of an embodiment of the present invention has its essence in the production of a message processing function, which receives a user's voice signal and receives desired string data from a voice database through a voice engine, that is, a voice recognition library. To get The processing method in the voice library uses the CallBack function. In other words, the voice data is input to call back the string data. The returned string data is converted from string data to message data through a middleware function. The converting process retrieves the corresponding message from the message database with the string data returned by the CallBack function. The retrieved message is delivered to the server side. The server controls the execution and change of state of the 3D object according to the received message name. Accordingly, the action occurs on the object, which is delivered to the user in real time.

이하의 발명을 실시하기 위한 구체적인 내용의 설명에 있어, 사용되는 주요 용어의 개념 및 구현 예는 다음과 같다.In the following description of the specific contents for carrying out the invention, the concepts and implementation examples of the main terms used are as follows.

음성엔진은 입력되는 음성신호의 음소를 검출하여 문자열을 인식하는 소프트웨어 또는 임베디드 소프트웨어 등의 형태로 구현 음성인식엔진으로 음성인식에 필요한 음성 데이터베이스를 포함하는 것 또는 음성 데이터베이스를 제외한 부분의 ㅇ의미로 사용된다. 참고로, 본 발명의 일 실시예에서 음성 데이터 베이스(21)를 포함하여 음성엔진은 API DLL 파일과 .Dict의 사전데이터 베이스 파일로 구성된다. .Dict 파일안에 음성 신호와 그에 맞는 문자열 데이터 파일을 포함하여 음성 신호에 대응하는 문자열 데이터를 정의·저장하여 사전화한 음성 데이터 베이스(21)가 구성된다. 메시지 데이터는 후술하는 3D 데이터가 인식할 수 있는 형태의 메시지로, 메시지 데이터는 3D콘텐츠(어플리케이션)에서 각 오브젝트마다 행동을 수행할 수 있게 하는 동작 명령어 역할을 수행하게 된다. 예를 들어, 서버의 3D 데이터 즉 오브젝트가 인식할 수 있는 M_(행동명) 의 1Byte 영문 문자열과 같은 구조를 같는다. 여기서, M은 메시지임을 나타낸다. The voice engine is implemented in the form of software or embedded software that detects the phoneme of the input voice signal and recognizes the character string. It is a voice recognition engine that includes a voice database necessary for voice recognition or is used as a meaning except for the voice database. do. For reference, in an embodiment of the present invention, the voice engine including the voice database 21 is composed of an API DLL file and a dictionary database file of .Dict. In the .Dict file, a voice database 21 is formed which includes a voice signal and a character string data file corresponding thereto, and defines and stores character string data corresponding to the voice signal. The message data is a message that can be recognized by 3D data, which will be described later, and the message data serves as an operation command that enables an action to be performed for each object in the 3D content (application). For example, it has the same structure as 3D data of a server, that is, a 1-byte English character string of M_ (action name) that an object can recognize. Here, M represents a message.

본 발명의 일 실시예에서 메시지 데이터 베이스(22)는 SQLDB를 사용하여 구현될 수 있으며, SQL DB내 테이블로 구성되어 있으며, 테이블의 구조를 간략히 표현하면 도7의 구조와 같다. In an embodiment of the present invention, the message database 22 may be implemented using an SQLDB, and is composed of tables in the SQL DB. The structure of the table is briefly expressed as shown in FIG.

도7을 참조하면, 메시지 데이터의 테이블은 인덱스, 음성 문자열, 메시지 문자열로 이루어지는 열들로 구성된다. 여기서, 인덱스는 행의 개수, 음성 문자열은 클라이언트로부터 받은 음성 문자열 데이터, 메시지 문자열은 서버 측으로 보낼 메시지 데이터, 단어 수는 메시지 문자열 즉, 메시지 데이터의 단어 수를 표현한다. 참고로, 도6의 경우 클라이언트로부터 전달받은 문자열 데이터가 "소리"인 경우 1번 열인 음성 문자열 값과 같은 인덱스에 있는 2번 열인 메시지 문자열을 리턴하게 된다. Referring to Fig. 7, a table of message data is composed of columns consisting of an index, a voice string, and a message string. Here, the index represents the number of rows, the voice string represents the voice string data received from the client, the message string represents the message data to be sent to the server, and the word number represents the message string, that is, the number of words in the message data. For reference, in the case of FIG. 6, when the string data received from the client is "sound", the message string of column 2 at the same index as the voice string value of column 1 is returned.

본 발명의 일 실시예에 따른 설명에 있어, 3D 데이터는 3D가상현실 내의 모든 오브젝트를 의미하며, 3D 데이터는 가상현실에 실행되는 동작필요 오브젝트(Behavior Object)를 총칭한다. 도8의 3D 데이터 구조도와 같은 입력값(3D Entity)를 포함하는 구조를 가질 수 있으며, 도8의 데이터 구조도에 있어서, 각 입력값(3D Entity)은 아래와 같이 정의되어 사용된다.    In the description according to an embodiment of the present invention, the 3D data refers to all objects in the 3D virtual reality, and the 3D data collectively refers to a behavior object executed in the virtual reality. 8 may have a structure including an input value (3D entity), such as the 3D data structure of FIG. 8. In the data structure diagram of FIG. 8, each input value (3D entity) is defined and used as follows.

3D Entity : 너비, 높이 및 깊이를 모두 가지고 있는 오브젝트      3D Entity: an object that has both width, height and depth

Light : 조명을 제공하는 오브젝트      Light: Object that provides lighting

Camera : 시점을 정의하는 오브젝트      Camera: The object defining the viewpoint

Character : 사용자 또는 소프트웨어가 조작할 수 있는 지능적인 개체      Character: An intelligent object that can be manipulated by users or software

3D Sprite : 너비, 높이 및 깊이를 가지고 있는 이미지 오브젝트      3D Sprite: Image object with width, height and depth

Grid : 값이 3D 좌표에 의해 결정되는 2D Entity 들의 집합      Grid: A set of 2D entities whose values are determined by 3D coordinates.

Curve : 3D 공간 안의 곡선을 정의하는 3D Entity 들의 집합( Curve Point 포함)     Curve: A set of 3D entities that define a curve in 3D space (including Curve Point).

Place : 공간적으로 연관된 오브젝트들의 모임    Place: collection of spatially related objects

2D Entity : 너비 높이는 있지만 깊이가 없는 오브젝트( Sprite, Sprite Text 포함)  2D Entity: An object with a width but no depth (including Sprite and Sprite Text)

Level : 컴포지션의 모든 오브젝트를 포함하는 요소로써, 컴포지션의 모든 element들의 루트가 된다.Level: An element that contains all the objects in the composition, and is the root of all elements in the composition.

Scene : 한 장면을 관리한다. 영화의 Scene과 개념은 같다. Scene: Manages a scene. The scene and the concept of the movie are the same.

Group : 오브젝트의 정보를 저장하고 오브젝트를 모으기 위한 데이터 구조체이다Group: A data structure for storing information and collecting objects.

Array : 행과 열의 형태로 나열된 셀들을 포함하는 테이블이다. Array: A table containing cells listed in rows and columns.

Sound : 소리 오브젝트Sound: Sound Object

Mesh : 오브젝트의 모양을 결정하는 점들의 집합Mesh: A set of points that determine the shape of an object

Material : 메시 표면의 특성, 색상Material: characteristics, color of the mesh surface

Texture : 오브젝트의 표면에 사실감을 위해 사용하는 이미지
Texture: An image used for realism on the surface of an object

이하, 본 발명의 일 실시예에 따른 구체적인 실시형태를 첨부된 도면들을 참조하여 설명한다. 하기에는 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다.
Hereinafter, a specific embodiment according to an embodiment of the present invention will be described with reference to the accompanying drawings. In the following description, detailed descriptions of well-known functions or configurations will be omitted when it is determined that the detailed descriptions of the known functions or configurations may unnecessarily obscure the subject matter of the present invention.

도1은 본 발명에 따른 3D 가상현실 컨트롤 미들웨어 시스템의 구성도이며, 도2는 본 발명의 일 실시예에 따른 3D 가상현실 컨트롤 미들웨어 시스템의 세부 구성도로서, 본 발명의 일 실시예에 따른 3D 가상현실 컨트롤 미들웨어 시스템이 상용화된 3D 콘텐츠 제작 소프트웨어 개발 키트(SDK: Software Development Kit)인 VirtoolsTM SDK와 호환 가능하도록 실시된 경우이다. 1 is a configuration diagram of a 3D virtual reality control middleware system according to the present invention, Figure 2 is a detailed configuration diagram of a 3D virtual reality control middleware system according to an embodiment of the present invention, 3D according to an embodiment of the present invention The VR control middleware system is designed to be compatible with the Virtools TM SDK, a commercially available 3D content development software development kit (SDK).

도1을 참조하면, 본 발명에 따른 3D 가상현실 컨트롤 미들웨어 시스템은 음성입력부(10), 음성엔진처리부(20), 메시지처리부(30), 동작제어부(40) 및 3D 렌더부(50)로 구성된다.Referring to FIG. 1, the 3D virtual reality control middleware system according to the present invention includes a voice input unit 10, a voice engine processor 20, a message processor 30, an operation controller 40, and a 3D renderer 50. do.

위와 같은 구성에 의하여, 사용자의 음성을 인식하는 음성엔진에서 처리된 음성 데이터를 3D 데이터가 인식할 수 있는 메시지 데이터로 변환함으로써 음성엔진과 인터렉티브 3D 를 실시간 연동시키는 가능해지며, 음성 입력에 의하여 실행 및 상태변화가 제어되는 3D 오브젝트의 실행 및 상태변화를 실시간으로 사용자에게 시각적으로 전달할 수 있게 된다.By the above configuration, by converting the voice data processed by the voice engine that recognizes the user's voice into message data that can be recognized by the 3D data, it becomes possible to interlock the voice engine and the interactive 3D in real time, and executed by the voice input and The execution of the 3D object whose state change is controlled and the state change can be visually transmitted to the user in real time.

이하, 음성입력부(10), 음성엔진처리부(20), 메시지처리부(30), 동작제어부(40) 및 3D 렌더부(50)의 기능을 도1 및 도2를 참조하여 상세히 설명한다.Hereinafter, functions of the voice input unit 10, the voice engine processor 20, the message processor 30, the operation controller 40, and the 3D renderer 50 will be described in detail with reference to FIGS. 1 and 2.

음성입력부(10)는 사용자로부터 음성신호를 수신하는 기능을 수행하며, 사용자에게 3D 콘텐츠에 신호(입력 값)를 주기 위한 처음 단계로 마이크와 같은 음성입력장치를 통하여 음성신호를 입력도록 제어된다. 이 기능은 도2의 일 실시예에 있어서, 클라이언트(Client) 내의 플레이 모듈(Play Module)의 기능의 일부로서 구현되며, 도2와 관련하여 보다 상세히 설명한다. 바람직하게는, 음성입력부(10)는 음성입력을 위한 입력장치의 연결 상태를 점검하여, 상태 메시지를 생성하여 출력하도록 구성되어, 음성인식에 필요한 장치가 올바로 연결되었는지, 사용 가능한 상태인지 여부의 상태 메시지, 예를 들면, "Ready" 또는 "Not Ready"를 출력하여 클라이언트를 통해 사용자에게 알려주도록 구성될 수 있으며, 도2의 일 실시예에 있어서, 디비셋 모듈(DB Set Module)의 일부 기능으로서 구현될 수 있다.      The voice input unit 10 performs a function of receiving a voice signal from the user and is controlled to input a voice signal through a voice input device such as a microphone as a first step for giving a signal (input value) to the 3D content to the user. This function is implemented as part of the function of the Play Module in the Client in one embodiment of FIG. 2 and will be described in more detail with respect to FIG. Preferably, the voice input unit 10 is configured to check the connection state of the input device for the voice input, to generate and output a status message, the state of whether the device required for voice recognition is correctly connected or available It may be configured to output a message, for example, "Ready" or "Not Ready" to notify the user through the client. In one embodiment of Figure 2, as part of the function of the DB Set Module. Can be implemented.

음성엔진처리부(20)는 음성입력부로부터 입력된 음성신호를 전달받아 음성엔진에 전송하고 음성엔진에 의하여 음성 데이터 베이스(21) 내에서 검색되어 리턴되는 상기 음성신호에 대응하는 문자열 데이터를 수신하는 기능을 수행하며, 수신된 문자열 데이터를 메시지처리부(30)로 전달한다. 문자열 데이터의 검색은 음성엔진의 음성 데이터베이스 안에 있는 단어 신호에 연관된 음성신호와 매칭되는 문자열 데이터가 있으면 해당 문자 신호에 해당되는 문자열을 클라이언트로 리턴한다. 도2의 일 실시예에 있어서, 메시지 모듈(Message Module)의 기능으로서 구현될 수 있다.The voice engine processor 20 receives a voice signal input from the voice input unit, transmits the voice signal to the voice engine, and receives string data corresponding to the voice signal retrieved and returned from the voice database 21 by the voice engine. And transmits the received string data to the message processor 30. The search for the string data returns the string corresponding to the character signal to the client if the string data matches the speech signal associated with the word signal in the speech database of the speech engine. In one embodiment of Figure 2, it may be implemented as a function of a message module.

메시지처리부(30)는 음성엔진처리부로부터 문자열 데이터를 전달받아 3D 데이터가 인식가능한 메시지 데이터를 저장하는 메시지 데이터 베이스(22) 내에서 상기 문자열 데이터에 대응하는 메시지 데이터를 검색하는 기능을 수행하며, 검색된 메시지 데이터를 동작제어부(40)로 전달한다. 도2의 일 실시예에 있어서, 메시지 모듈(Message Module)의 기능으로서 구현될 수 있으며, 본 발명의 미들웨어 시스템 전체의 측면에서 3D 어플리케이션과 음성엔진의 중간 루트 역할의 핵심기능을 수행한다. The message processing unit 30 receives the string data from the voice engine processing unit and performs a function of searching for the message data corresponding to the string data in the message database 22 storing the message data recognizable by the 3D data. The message data is transmitted to the operation controller 40. In one embodiment of Figure 2, it can be implemented as a function of a message module, and performs the core function of the intermediate route role of the 3D application and the voice engine in terms of the entire middleware system of the present invention.

한글의 경우, 음성엔진에 의하여 음성 데이터 베이스(21) 내에서 검색되어 리턴되는 문자열 데이터는 기본적으로 2Byte로 구성되므로, 이를 바로 3D 콘텐츠(어플리케이션)로 보내게 되면 3D 콘텐츠의 3D 데이터는 이를 인식하는 것이 프로그램 상에서 알 수 없는 데이터가 들어간다. 따라서 2byte 한글 문자열 데이터를 3D 데이터가 인식가능한 1Byte의 영문 메시지인 메시지 데이터로 변환하는 작업이 필요하다. 이 경우 상기 메시지 데이터 베이스(22)는 사용자로부터 입력받는 문자열 데이터인 음성 문자열, 동작 제어부로 전달할 메시지 데이터인 메시지 문자열을 포함하는 데이터 구조를 가지고, 2Byte의 한글 문자열에 대응하는 메시지 데이터는 행동 명을 포함하는, 예를 들어, 도7의 "M_Sound" 와 같은 1Byte 영문 문자열로 구성되는 것이 바람직하다. In the case of Hangul, since the string data searched and returned in the voice database 21 by the voice engine is basically composed of 2 bytes, if it is sent directly to the 3D content (application), the 3D data of the 3D content is recognized. The program contains unknown data. Therefore, it is necessary to convert 2 byte Korean character string data into message data which is 1 byte English message that 3D data can recognize. In this case, the message database 22 has a data structure including a voice string, which is string data received from a user, and a message string, which is message data to be transmitted to an operation controller, and the message data corresponding to a 2 byte Korean character string indicates an action name. For example, it is preferable that it consists of 1-byte English character strings, such as "M_Sound" of FIG.

바람직하게는, 메시지처리부(30)는, 단어 검색확률을 높일 수 있는 형태로 전달받은 문자열 데이터를 가공하여 검색하는 방식을 수행하도록 구성될 수 있다. 한글의 경우 문자열 데이터를 가공하여 검색하는 방식으로는 문자열 데이터를 전달받아 상기 문자열 데이터에서 조사를 제거하는 방식으로 가공하여 메시지 데이터 베이스(22) 내에서 3D 데이터가 인식가능한 상기 가공된 문자열 데이터에 대응하는 메시지 데이터를 검색하거나, 전달받은 문자열 데이터의 뒷글자 1자가 삭제된 문자열 데이터에 대응하는 메시지 데이터를 검색하는 과정을 대응되는 메시지 데이터가 검색되거나 문자열 데이터에 1자가 남을 때까지 수행하는 것이 바람직하며, 상기 검색 과정의 수행 결과 메시지 데이터가 검색되지 않는 경우 상기 음성입력부(10)는 사용자로부터 새로운 음성신호를 수신하도록 하는 메시지를 미들웨어 시스템으로, 도2의 일 실시예의 경우 클라이언트(Client) 내의 플레이 모듈(Play Module)로, 전송하도록 구성된다.Preferably, the message processing unit 30 may be configured to perform a method of processing and searching the received string data in a form that can increase the word search probability. In the case of Hangul, the string data is processed and searched so that the string data is received and processed by removing the irradiation from the string data to correspond to the processed string data that can be recognized by the 3D data in the message database 22. It is preferable to perform the process of retrieving the message data or the message data corresponding to the deleted string data by the first letter of the received string data until the corresponding message data is retrieved or one character remains in the string data. When the message data is not found as a result of performing the search process, the voice input unit 10 is a middleware system for receiving a new voice signal from the user. In the embodiment of FIG. 2, the play module in the client may be used. To the Play Module, It is.

동작제어부(40)는 상기 메시지처리부로부터 상기 메시지 데이터를 수신하여 상기 메시지 데이터에 따라 3D 오브젝트의 실행 및 상태변화를 제어함으로써, 3D 오브젝트의 움직임을 실행한다. 도2의 일 실시예에서와 같이, 서버 내의 플레이 모듈 (Play Module)의 기능으로 오브젝트마다 할당된 스크립트의 형태로 구현된다. 바람직하게는, 상기 동작제어부(40)는 도5와 관련해서 설명되는 오브젝트에 대하여 생성된 메시지 수신부, 메시지 처리부, 및 종료처리부를 포함하는 스크립트를 포함하여 구성되어, 메시지 프로세스(Play Loop)를 수행한다. The operation controller 40 receives the message data from the message processor and controls the execution and state change of the 3D object according to the message data, thereby executing the movement of the 3D object. As in the embodiment of Figure 2, the function of the Play Module (Play Module) in the server is implemented in the form of a script assigned to each object. Preferably, the operation controller 40 includes a script including a message receiver, a message processor, and a termination processor generated for the object described with reference to FIG. 5 to perform a message loop. do.

3D 렌더부(50)는 상기 동작제어부에 의하여 실행 및 상태변화가 제어되는 3D 오브젝트의 실행 및 상태변화를 실시간으로 업데이트하여 디스플레이하며, 도2의 일 실시예에 있어서, 클라이언트(Client) 내의 컨넥트 모듈(Connect Module)의 기능의 일부로서 구현되며, 도2와 관련하여 후술되는 바와 같이, 3D 렌더부는 동작이 일어나는 모든 오브젝트를 보여주며, 실시간으로 사용자에게 전달된다. 어플리케이션의 WindowView위에 Virtools Render view가 맵핑되어 매 프레임마다 실행되며, 실시간으로 계속 움직임이 일어나는 효과를 제공하며,3DVia Virtools 엔진의 RenderContext 객체에서 담당하는 것으로 구성될 수 있다. 3D 렌더부는 클라이언트와 서버 View의 연동을 통해 View의 지속적인 Update를 하고, 3D 데이터를 보여주며, 실시예에 따라서는 사용자에게 플레이, 멈춤, 일시정지 등의 기능을 제공하도록 구성된다. The 3D renderer 50 updates and displays, in real time, the execution and state change of the 3D object whose execution and state change are controlled by the operation control unit. In the embodiment of FIG. 2, the connection module in the client is shown. It is implemented as part of the functionality of the (Connect Module), and as will be described below with reference to FIG. 2, the 3D renderer shows all the objects in which the operation occurs and is delivered to the user in real time. The Virtools Render view is mapped onto the application's WindowView, which runs every frame, provides continuous motion in real time, and can be configured by the RenderContext object of the 3DVia Virtools engine. The 3D renderer is configured to continuously update the view and show 3D data through interworking of the client and the server view, and to provide the user with functions such as play, stop, and pause, depending on the embodiment.

이하, 도2를 참조하여, 본 발명의 일 실시예에 따른 3D 가상현실 컨트롤 미들웨어 시스템의 세부 구성을 상세히 설명한다. Hereinafter, the detailed configuration of the 3D virtual reality control middleware system according to an embodiment of the present invention will be described in detail with reference to FIG. 2.

상술한 바와 같이, 도2의 실시예는 상용화된 3D 콘텐츠 제작 소프트웨어 개발 키트(SDK: Software Development Kit)인 Virtools SDK와 호환 가능하도록 실시된 경우로서, 세부구성을 그 기능특성을 기준으로 크게 서버와 클라이언트로 구분하여 설명한다.As described above, the embodiment of FIG. 2 is implemented to be compatible with the Virtools SDK, which is a commercially available 3D content development software development kit (SDK). Described separately by client.

도2를 참조하면, 서버(Sever)는 3D 생성 모듈 (Create Module)과 플레이 모듈 (Play Module)로 구성된다. Referring to Figure 2, the server (Sever) is composed of a 3D creation module (Create Module) and a play module (Play Module).

서버내의 3D 생성 모듈(Create Module)은 생성할 3D 콘텐츠에 Scene을 구성하고, Scene 안에 오브젝트와 카메라, 라이트 등을 생성한다. 생성된 오브젝트는 각각 메시지를 기다릴 수 있는 로직과 움직임 로직을 가지고 있다. 3D 가상세계의 배치와 명령을 마치게 되면 Save로 저장(CMO 파일생성)을 하거나 익스포트(VMO파일생성)하여 컴포지션 파일을 생성한다. 여기서, CMO, VMO파일은 3DVia Virtools의 컴포지션 파일이다. 즉, 3D 입력값(Entity)들과 각종 행동(움직인 실행 및/또는 상태변화)들로 구성된 3D Data 저장 파일이다. 3D Via Virtools 상에서 3D 데이터를 형상화한다. 즉, Max, Maya, Catia 등으로 제작된 3D 데이터를 Virtools의 가상현실 공간상에 배치 및 조합하여 가상 세계를 제작한다. 3D 입력값(Entity)은 (X,Y,Z) 좌표 값을 가지고 공간상에 배치되며, 2D Entity 들은 (X,Y) 좌표를 가지고 공간상에 배치된다. 또한 가상세계를 꾸미기 위한 Light(빛효과), Material(색상), Texture(표면이미지) 등을 정의하여 오브젝트에 효과를 준다. 가상세계에 대한 세팅이 완료되면 파일을 저장(익스포트)하여 미들웨어에서 사용 가능한 형식(CMO/VMO파일)으로 제작한다. CMO(VMO)파일은 Scene과 Scene을 구성하는 3D, 2D 오브젝트 및 각종 Entity들의 모음과 행동 스크립트들로 구성되어 있다. 도8은 서버 내의 CMO 파일의 플레이의 예시적 화면이다. The 3D Create Module in the server composes a scene from the 3D content to be created and creates objects, cameras, lights, etc. in the scene. Each created object has logic that can wait for a message and movement logic. When you have finished placing and commanding the 3D virtual world, you can save it as Save (create CMO file) or export (Create VMO file) to create a composition file. Here, CMO and VMO files are composition files of 3DVia Virtools. That is, it is a 3D data storage file consisting of 3D input values (Entity) and various actions (moving execution and / or state change). Shape 3D data on 3D Via Virtools. In other words, 3D data created by Max, Maya, Catia, etc. are placed and combined in Virtools' virtual reality space to create a virtual world. 3D input values (Entity) are placed in space with (X, Y, Z) coordinates, and 2D entities are placed in space with (X, Y) coordinates. In addition, it defines effects such as light, material, and texture to decorate the virtual world. When the settings for the virtual world are completed, the file is saved (exported) and produced in a format (CMO / VMO file) that can be used in middleware. CMO (VMO) files are composed of scenes, 3D, 2D objects, and various entity and scene scripts. 8 is an exemplary screen of play of a CMO file in a server.

서버내의 플레이 모듈(Play Module)은 초기화(Init)와 플레이 루프 (Play Loop)를 수행한다.본 발명의 3D 가상현실 컨트롤 미들웨어 시스템에 있어서 동작제어부(40)을 구성한다. The Play Module in the server performs an Init and a Play Loop. The motion controller 40 is configured in the 3D VR control middleware system of the present invention.

초기화(Init)에서는 오브젝트의 초기값을 기억하며 저장한다. 이 저장값은 사용자가 오브젝트를 움직였을 때 초기값으로 복귀를 위해 필요하다. 저장에 필요한 값은 오브젝트의 좌표 값, 오브젝트의 스케일 값, 오브젝트의 회전 값이다. 또한, 카메라 워킹에 필요한 카메라의 Navigation을 구현하며, 사용자에게 입력받을 외부 디바이스에 대한 초기화를 진행한다. Init stores and stores the initial value of the object. This stored value is needed to return to the initial value when the user moves the object. The values required for storage are the coordinate values of the object, the scale value of the object, and the rotation value of the object. In addition, it implements the navigation of the camera required for camera walking, and initializes the external device to be input to the user.

서버 내의 플레이 루프(Play Loop)는 초기화(Init)에 의하여 3D 가상현실에 대한 세팅이 끝나면 행동(움직인 실행 및/또는 상태변화)이 필요한 오브젝트에 스크립트 코드로 구현된다. 각 스크립트는 크게 메시지(즉, 메시지 데이터)를 받는 부분인 메시지 수신부, 메시지 처리(행동 부분)하는 메시지 처리부, 행동의 끝을 판단하는 종료처리부의 3가지로 구성되며, (1) 메시지 수신부(Wait Message) 루틴은 서버가 실행되면 바로 실행이 된다. 주 역할은 클라이언트로부터 메시지를 기다린다. 이 루틴은 처음 서버 시작과 함께 시작되며, 서버가 동작하는 시간과 메시지가 도착하는 시간까지 무한정 대기한다. 메시지가 도착하면 다음 루틴으로 신호를 전달한다. (2) 메시지 처리부(Play Behavior) 루틴은 행동(움직인 실행 및/또는 상태변화)에 대한 정의로 구성되어 있으며, 메시지를 받아서 실행된다. 행동은 캐릭터의 애니메이션을 플레이시키고, 오브젝트를 움직이는 역할을 한다. 이 부분은 행동이 종료될 때까지 Loop를 돌며 실행된다. (3) 종료 처리부(Test: MotionEnd?) 루틴은 동작의 종료를 알려주는 테스트 루틴이다. 오브젝트의 동작은 종료가 됐는지 매 프레임마다 검사를 진행한다. 동작의 종료가 됐으면 다시 Wait message 루틴으로 돌아가 클라이언트로부터 다시 메시지 신호를 받기를 기다린다. 행동이 종료되지 않았다면 신호를 그냥 통과시키면서 행동을 계속한다.The play loop in the server is implemented as script code in an object that needs an action (moving execution and / or state change) after the setting for 3D virtual reality is completed by Init. Each script consists of three parts: a message receiver which receives a message (that is, message data), a message processor that processes a message (action part), and a termination processor that determines the end of an action. (1) Message receiver (Wait) Message) routines run as soon as the server is running. The main role waits for a message from the client. This routine starts with the first server startup and waits indefinitely for the time the server is running and the time the message arrives. When the message arrives, it signals to the next routine. (2) The message processing (Play Behavior) routine consists of the definition of the behavior (moving execution and / or state change), and receives and executes the message. Actions play a character's animation and move objects. This part runs in a loop until the action ends. (3) The end processing unit (Test: MotionEnd?) Routine is a test routine that informs the end of the operation. The object is checked every frame to see if it has finished. When the operation is finished, we return to the Wait message routine and wait for a message from the client again. If the action has not ended, just pass the signal and continue the action.

클라이언트(Client)는 초기화 모듈(Init Module), 컨넥트 모듈( Connect Module), 플레이 모듈( Play Module), 메시지 모듈 (Message Module), DB 셋 모듈(DB Set Module)로 구성된다.The client is composed of an Init Module, a Connect Module, a Play Module, a Message Module, and a DB Set Module.

클라이언트 내의 초기화 모듈(Init Module)은 Virtools Engine을 사용하기 전 최우선적으로 수행되는 초기화 작업을 하는 부분이다. 본 발명의 본 일 실시예의 미들웨어는 Virtools SDK를 사용하기 때문에 엔진에 대한 초기화 작업이 필요하다. Plug-ins(Render, Manager, Behavior, Media) DLL파일들의 경로를 초기화해주며, 주로 사용자가 설치하는 폴더 내에 DLL 파일들이 같이 설치되며, 경로도 해당 경로로 설정된다. Virtools SDK에서 제공되는 함수 및 코드들이 사용되어 구성되며, 초기화 모듈에서의 처리과정은 다음과 같이 진행될 수 있다.The Init Module in the client is the part that performs the initialization work before the Virtools Engine is used. Since the middleware of this embodiment of the present invention uses the Virtools SDK, an initialization operation for the engine is required. Initializes the path of Plug-ins (Render, Manager, Behavior, Media) DLL files. DLL files are installed together in the folder installed by the user, and the path is set to the corresponding path. Functions and codes provided by Virtools SDK are used and composed. Processing in the initialization module can proceed as follows.

(1)::CKGetPluginManager()함수를 통해서 CKPluginManager 포인터를 얻는다.(1) :: CKGetPluginManager () function to get CKPluginManager pointer.

(2)::CKPluginManager::ParsePlugins()함수를 통해 경로를 등록한다.(2) :: CKPluginManager :: ParsePlugins () registers the path.

(3)::CKCreateContext()함수를 통해서 Virtools Composition 내의 모든 객체들을 관장하는 CKContext 객체를 생성한다.(3) :: CKCreateContext () creates a CKContext object that manages all the objects in the Virtools Composition.

(4)3D Rendering과 관련된 작업을 관장하는 CKRenderContext객체를 생성한다 (5) CKContext::GetRenderManager()함수를 통해서 CKRenderManager 포인터를 얻고, CKRenderManager::CreateRenderContext()함수를 통해서 RenderContext를 생성한다      (4) Create a CKRenderContext object that handles 3D Rendering related tasks. (5) Get a CKRenderManager pointer through CKContext :: GetRenderManager () and create a RenderContext through CKRenderManager :: CreateRenderContext ().

컨넥트 모듈(Connect Module)은 Server File 인 CMO/VMO 파일을 Load 하는 부분이다. 음성엔진과 어플리케이션에 연동하기 위해서는 음성엔진 부분과 CMO 파일을 Connect 하는 부분이 미들웨어에서 필요하다. 양쪽의 라이브러리를 사용하여 중간의 미들웨어 코드로 연동해야 되기 때문이다. 또한 3D렌더를 담당하고 있는 모듈로써, 서버에서 제작된 Virtools View를 어플리케이션의 View에 Connect 시켜 준다. 이 모듈에서 클라이언트에 서버, 음성엔진이 연동된다. 본 발명의 3D 가상현실 컨트롤 미들웨어 시스템에 있어서 3D 렌더부(50)을 구성한다.Connect Module is a part that loads CMO / VMO file which is Server File. In order to link voice engine and application, middle engine needs to connect voice engine part and CMO file. This is because you have to use both libraries to link to middle middleware code. It is also a module in charge of 3D rendering, and connects Virtools View created in server to application view. In this module, server and voice engine are linked to client. In the 3D virtual reality control middleware system of the present invention, the 3D renderer 50 is configured.

Virtools SDK에서 제공되는 함수 및 코드들이 사용되어 구성되며, 컨넥트 모듈에서의 처리과정은 다음과 같이 진행될 수 있다. Functions and codes provided in the Virtools SDK are used and composed. The processing in the connect module can be performed as follows.

(1)CKContext::Load()함수를 통해서 Virtools의 CMO/VMO 파일을 클라이언트에 Load 한다.(1) Load Virtools CMO / VMO file to client through CKContext :: Load () function.

(2)CKContext::GetCurrentLevel() 함수를 통해서 CLLevel 포인트를 얻는다.(2) Get CLLevel point through CKContext :: GetCurrentLevel () function.

(3)CKRenderContext::AttachViewpointToCamera()함수를 통해서 서버에서 설치해 놓은 카메라를 가져온 후 등록한다.(3) Get and register camera installed in server through CKRenderContext :: AttachViewpointToCamera () function.

(4)CKLevel::addRenderContext()함수를 통해서 CKRenderContext를 Level에 등록한다.(4) Register CKRenderContext to Level through CKLevel :: addRenderContext () function.

(5)CKLevel::LaunchScene()함수를 통해서 실행할 Scene을 등록한다.(5) Register the scene to execute through CKLevel :: LaunchScene () function.

클라이언트 내의 플레이 모듈(Play Module)은 미들웨어의 구동의 역할을 한다. 미들웨어상에서 필요한 코드 및 파일이 초기화되면, 이들을 실제적으로 실행하여 미들웨어의 구동으로 메시지 처리를 준비할 수 있게 된다. 이 모듈에서 마이크를 통한 음성 신호를 입력 받으며, 클라이언트 내의 플레이 모듈(Play Module)은 본 발명의 음성입력부(10)을 구성한다.The play module in the client plays a role of driving the middleware. Once the necessary code and files are initialized on the middleware, they can be actually executed to prepare for message processing by driving the middleware. The module receives a voice signal through a microphone, and a play module in the client constitutes the voice input unit 10 of the present invention.

Virtools SDK에서 제공되는 함수 및 코드들이 사용되어 구성되며, 플레이 모듈에서의 처리과정은 다음과 수행될 수 있다.       Functions and codes provided in the Virtools SDK are used and composed. The processing in the play module can be performed as follows.

(1)CKContext::Process()함수를통해서BehaviorProcess를처리한다(1) Processing BehaviorProcess through CKContext :: Process ()

(2)CKContext::Process()함수를통해서BehaviorProcess를처리한다. (3)CKRenderContext::Process()함수를 통해서 Rendering Process 처리하며,매 프레임마다 Loop를 시켜서 실시간으로 서버파일(CMO)와 통신한다.(2) Process the BehaviorProcess through the CKContext :: Process () function. (3) Rendering process is processed through CKRenderContext :: Process () function, and it communicates with server file (CMO) in real time by looping every frame.

메시지 모듈(Message Module)은 음성엔진으로 얻어온 2Byte 한글 문자열을 서버측의 1Byte 메시지로 전달하기 위해 필요한 모듈로, 미들웨어의 핵심 기능을 수행한다. 메시지 모듈에서 음성 DB와 메시지 DB와의 연동 및 처리를 수행한다. 또한 음성엔진의 콜백함수로 받은 한글 문자열의 정확도를 높이기 위한 최적화 기능도 수행하며, 검색된 메시지 데이터를 전송한다. 음성 DB 파일은 Dict 형식이며, 메시지 DB 파일은 SQL 방식을 사용한다. 메시지 모듈은 본 발명의 음성엔진처리부(20)와 메시지처리부(30)을 구성한다. Message Module is a module needed to deliver 2Byte Korean character string obtained from voice engine as 1Byte message on the server side. It performs core functions of middleware. The message module performs interworking and processing of voice DB and message DB. In addition, it performs an optimization function to improve the accuracy of the Hangul string received through the callback function of the voice engine and transmits the retrieved message data. Voice DB file is in Dict format. Message DB file uses SQL method. The message module constitutes the voice engine processing unit 20 and the message processing unit 30 of the present invention.

Virtools SDK에서 제공되는 함수 및 코드들이 사용되어 구성되며, 메시지 모듈에서 메시지 처리과정이 수행되며, 바람직하게는 검색 최적화 작업이 수행될 수 있다. Functions and codes provided by the Virtools SDK are used and configured, message processing is performed in the message module, and search optimization may be preferably performed.

메시지 처리과정은 다음과 같이 수행될 수 있다.         Message processing can be performed as follows.

1. Server에서 제작된 CMO파일로 메시지를 전달하기 위해 필요한 객체들을 얻어온다. 객체들은 Virtools SDK 상에서 제공되는 라이브러리를 활용한다.      1. Obtain the objects needed to deliver the message to the CMO file produced by the Server. Objects utilize the library provided by the Virtools SDK.

(1) CKContext* pContex = (Virtools SDK연동 객체)->m_CKContext;(1) CKContext * pContex = (Virtools SDK Integration Object)-> m_CKContext;

객체를 관장하는 Context 생성한다. pContex 객체는 Virtools 에서 사용하는 모든 객체들에 대한 관리를 관장한다.       Create a context that manages the object. The pContex object manages the management of all objects used by Virtools.

(2) CK3dEntity* p3DObject = (CK3dEntity*)pContext->      (2) CK3dEntity * p3DObject = (CK3dEntity *) pContext->

GetObjectBuNameAndClass(Object Name, Object ID)GetObjectBuNameAndClass (Object Name, Object ID)

어디로 메시지를 보낼지 알려주어야 하기 때문에 동작이 필요한 오브젝트의 객체를 가져와서 초기화한다. 이 함수는 메시지를 받아야되는 오브젝트를 생성해 주고 초기화 해주는 역할을 담당한다.Since we need to know where to send the message, we get and initialize the object of the object that needs action. This function is responsible for creating and initializing the object that should receive the message.

(3) CKMessageManager*pMsgManager=pContext-> GetMessageManager(); (3) CKMessageManager * pMsgManager = pContext-> GetMessageManager ();

메시지를 보내기 위한 메시지 객체를 생성후 초기화한다. pMsgManager는 메시지에 관한 모든 관리를 담당한다. Create and initialize a message object for sending messages. pMsgManager is in charge of all management of messages.

2. 음성신호를 음성엔진에 전달한다. 음성엔진으로부터 음성신호화 매칭되는 문자열 데이터를 콜백 함수로 리턴 받는다. 2. Deliver voice signal to voice engine. The callback function returns string data matching the voice signal from the voice engine.

(1) CString wdmessage = Callback_VS_VSRResult()(1) CString wdmessage = Callback_VS_VSRResult ()

Callback_VS_VSRResult()함수를 실행해서 음성 라이브러리에 접근하게 되고, 해당 DB를 검색해 음성신호에 맞는 스트링 파일을 리턴해 준다.It executes Callback_VS_VSRResult () function to access the voice library, and searches the DB to return a string file corresponding to the voice signal.

3. 메시지 DB에 접근하기 위해 DB 객체를 가져온다. 메시지 DB는 SQL DB를 사용하기 때문에 테이블에 대한 접근이 필요하다. 어플리케이션에서 SQL 클래스를 제작하여 SQL DB와의 연결을 제공한다. 생성과 연결이 완료되면 메시지 DB로부터 원하는 메시지 명을 검색해서 가져온다. 3. Get DB object to access message DB. Since message DB uses SQL DB, access to tables is required. Create an SQL class in the application to provide a connection with SQL DB. After creation and connection is completed, retrieve the desired message name from the message DB.

(1) CMessageTable *m_pSetWord;(1) CMessageTable * m_pSetWord;

SQL DB연동 클래스에 접근하기 위한 객체를 생성한다. Create an object to access the SQL DB interworking class.

(2) CDBPropSet propset(DBPROPSET_ROWSET)…(2) CDBPropSet propset (DBPROPSET_ROWSET)...

SQL DB의 속성을 정해준다. 속성은 SQL 문을 통해 삽입, 삭제, 업데이트, 체인지 등의 기능의 권한을 부여한다. Set the properties of SQL DB. Property grants the right to insert, delete, update, change etc through SQL statement.

(3) vsMessage.Format(“SELECT* FROM MessageTable WHERE WorldList = '%s ''wdMessage)(3) vsMessage.Format (“SELECT * FROM MessageTable WHERE WorldList = '% s'' wdMessage)

m_pSetWord->RunSQL(vsMessage,&propset);m_pSetWord-> RunSQL (vsMessage, &propset);

SQL문을 통해 SQL DB에서 원하는 데이터를 얻어온다. 얻어온 값은 스트링 값으로 보낼 메시지 데이터이다. Retrieve desired data from SQL DB through SQL statement. The value obtained is the message data to send as a string value.

4. 메시지명이 있는지 판별, 검사한 후 메시지 명이 있다면 Server 측으로 해당 메시지를 전송한다. 해당 메시지는 어디로 전송될 것인지(1번 (2)항에서 정한 오브젝트가 된다), 어떤 메세지가 될 것인지(SQLDB에서 검색된 메시지명)를 변수로 가지고 전달된다. 4. After checking and checking if there is a message name, if there is a message name, send the message to Server. The message is passed as a variable where it will be sent (it will be the object specified in paragraph 1 (2)) and what message will be (the message name retrieved from SQLDB).

(1) CKMessageType nMsgType = pMsgManager-> AddMessageType(vsMessage);(1) CKMessageType nMsgType = pMsgManager-> AddMessageType (vsMessage);

전송하기 전에 어떤 메시지 타입을 설정한다. 메시지 타입은 SQL DB에서 검색된 메시지명이 변수로 설정되어 전달된다. Set some message type before sending. The message type is transmitted by setting the message name retrieved from SQL DB as a variable.

(2) pMsgManager->SendMessageSingle(nMsgType, p3DObject)(2) pMsgManager-> SendMessageSingle (nMsgType, p3DObject)

이 부분이 메시지를 서버측(CMO)파일에 전달하는 부분으로, 메시지 타입과 어떤 오브젝트에 전달할지가 변수로 설정되어 전달된다. This is the part that delivers the message to the server-side (CMO) file. The message type and which object to deliver are set as variables.

검색 최적화 작업이 수행되는 경우 다음의 과정에 의하여 메시지 데이터의 검색을 최적화할 수 있게 된다. When the search optimization is performed, the search of the message data can be optimized by the following process.

(1) 전달된 음성 문자열을 메시지 DB로 보내 문자열을 검색한다. 검색은 SQL 의 쿼리문을 사용한다. 해당 문자열이 있으면 그에 해당되는 메시지를 리턴한다.(1) Send the delivered voice string to the message DB to search for the string. Search uses SQL statement. If the string exists, the corresponding message is returned.

(2) 해당 문자열이 없다면 음성 DB로부터 추출된 문자열의 뒷글자 1자를 삭제한다. 삭제후 다시 메시지 DB를 검색한다. 문자열이 있으면 그에 해당되는 메시지를 리턴한다. (2) If the string does not exist, delete the first letter of the string extracted from the voice DB. After deleting, search the message DB again. If there is a string, the corresponding message is returned.

(3) 마지막 한 글자가 남을 때까지 2번 과정을 반복한다. 1글자까지 해당 DB검색이 실패하면 다시 음성 메시지 입력을 받으러 돌아간다.(3) Repeat step 2 until the last letter is left. If the DB search fails by one character, it returns to receive voice message input again.

DB 셋 모듈(DB Set Module)은 시스템 상태 정보를 얻어와 마이크 장비가 컴퓨터에 연결되어 있는지 구분한다. 마이크 인식 장치가 준비되면 음성인식 라이브러리를 초기화 한다. 음성엔진 초기화 작업을 진행한다. 경로를 인식해 음성인식 데이터 베이스에 접근한다. 데이터 베이스 안에 단어 목록을 설정해 준다. 단어 목록은 dict파일 형식으로 제작되어 있다. 단어 등록까지 마치면 음성을 인식 받을 준비를 한다.
The DB Set Module obtains system status information to distinguish whether a microphone device is connected to a computer. When the microphone recognition device is ready, initialize the voice recognition library. Proceed with voice engine initialization. Recognize the path and access the voice recognition database. Set the word list in the database. The word list is in dict file format. Once you have registered the words, you are ready to receive voice recognition.

도3은 본 발명의 3D 가상현실 컨텐츠의 실시간 제어방법의 플로우차트이고, 도 4는 본 발명의 일 실시예에 따른 3D 가상현실 컨트롤 미들웨어를 이용한 3D 컨텐츠의 실시간 제어방법의 세부흐름을 설명하기 위한 플로우차트이다. 이하, 상술한 3D 가상현실 컨트롤 미들웨어 시스템과 관련된 설명과 중복되지 않는 범위에서, 도3 및 도4를 참조하여, 차례로, 본 발명의 3D 가상현실 컨텐츠의 실시간 제어방법과 일 실시예에 따른 3D 컨텐츠의 실시간 제어방법의 세부흐름을 상세히 설명한다.3 is a flowchart of a method for real-time control of 3D virtual reality content according to an embodiment of the present invention, and FIG. 4 is a flowchart illustrating a detailed flow of a method for real-time control of 3D content using a 3D virtual reality control middleware according to an embodiment of the present invention. It is a flowchart. Hereinafter, with reference to FIGS. 3 and 4 in a range not overlapping with the description related to the above-described 3D virtual reality control middleware system, a real-time control method of 3D virtual reality content of the present invention and 3D content according to an embodiment of the present invention. The detailed flow of the real time control method will be described in detail.

도3을 참조하면, 본 발명은 3D 가상현실 컨트롤 미들웨어 시스템을 이용하는 3D 컨텐츠의 실시간 제어방법으로, 미들웨어 시스템에 연결된 음성입력장치를 통하여 사용자로부터 음성신호를 수신하는 단계(S10); 음성 데이터베이스에 접근하여 상기 수신된 음성신호에 대응되는 문자열 데이터를 검색하여 저장하는 단계(S20); 3D 데이터가 인식가능한 메시지 데이터를 저장하는 메시지 데이터베이스에서 상기 저장된 문자열 데이터에 대응하는 메시지 데이터를 검색하는 단계(S30);상기 검색된 메시지 데이터에 따라 3D 오브젝트의 행동을 제어하는 단계(S40); 및 상기 행동이 제어되는 3D 오브젝트의 행동을 실시간으로 업데이트하여 디스플레이하는 단계(S50)을 포함하여 이루어진다.Referring to FIG. 3, the present invention provides a method for real-time control of 3D content using a 3D virtual reality control middleware system, the method comprising: receiving a voice signal from a user through a voice input device connected to the middleware system (S10); Accessing a voice database and retrieving and storing string data corresponding to the received voice signal (S20); Retrieving message data corresponding to the stored string data from a message database storing message data recognizable by 3D data (S30); controlling a behavior of a 3D object according to the retrieved message data (S40); And updating and displaying the behavior of the 3D object whose behavior is controlled in real time (S50).

바람직하게는, 사용자로부터 음성신호를 수신하는 단계(S10)는 도4와 관련하여 후술하는 음성의 크기, 음성의 정확도, 음성의 속도 등에 기초하여 음성의 정확도를 판단하는 정확도 판단 단계(C5)를 포함하여 수행된다.Preferably, the step of receiving a voice signal from the user (S10) is an accuracy determination step (C5) for determining the accuracy of the voice based on the size of the voice, the accuracy of the voice, the speed of the voice and the like described with reference to FIG. It is carried out including.

또한, 메시지 데이터를 검색하는 단계(S30)는, 문자열 데이터에 대응하는 메시지 데이터를 메시지 데이터베이스에서 검색하는 제1 단계; 및 문자열 데이터의 뒷글자 1자를 삭제한 후, 뒷글자 1자가 삭제된 문자열 데이터에 대응하는 메시지 데이터를 메시지 데이터베이스에서 검색하는 제2 단계;를 포함하여, 저장된 문자열 데이터에 대하여 제1 단계를 수행하여 대응하는 메시지 데이터가 검색되면 검색된 메시지 데이터를 리턴하고, 대응하는 메시지 데이터가 검색되지 않으면, 문자열 데이터에 1자가 남을 때까지 제2단계를 수행하도록 구성될 수 있다.In addition, the step of retrieving the message data (S30), a first step of retrieving the message data corresponding to the character string data in the message database; And a second step of deleting the first letter of the character string data and retrieving message data corresponding to the deleted character string data from the message database, by performing a first step on the stored character string data. If the corresponding message data is retrieved, the retrieved message data may be returned, and if the corresponding message data is not retrieved, the second step may be performed until one character remains in the string data.

나아가, 3D 오브젝트의 행동을 제어하는 단계(S40)는, 도4의 일 실시예와 관 관련하여 후술하는, 메시지 데이터의 수신을 기다리는 메시지 대기 단계(S4); 메시지 데이터를 수신하는 메시지 수신 단계(S5); 수신된 메시지 데이터에 따라 관련된 오브젝트의 행동을 실행하는 행동 실행단계(S6); 및 수신된 메시지 데이터에 따라 관련된 오브젝트의 행동의 실행이 완료되었는 지 여부를 판단하는 행동 실행종료 판단단계(S7)를 포함하여, 행동의 실행이 완료된 것으로 판단되면 된 경우 루틴을 종료(S8)하고, 추가적인 음성입력을 받도록 통보하도록 수행되는 것이 바람직하다.Further, the step (S40) of controlling the behavior of the 3D object may include: a message waiting step (S4) waiting for reception of message data, which will be described later with reference to the embodiment of FIG. 4; A message receiving step (S5) of receiving message data; An action execution step S6 of executing an action of a related object according to the received message data; And an action execution end determination step (S7) of determining whether execution of the action of the related object is completed according to the received message data, and if it is determined that execution of the action is completed (S8), In this case, it is preferable to perform a notification to receive an additional voice input.

나아가, 상기 3D 오브젝트의 행동을 실시간으로 업데이트하여 디스플레이하는 단계(S50)는, 어플리케이션 유저인터페이스를 생성하여 프레임과 어플리케이션 윈도우 뷰(Window View)를 생성하는 단계(C1) 및 상기 로드되는 화면의 매 프레임이 업데이트되어 디스플레이되도록 어플리케이션 윈도우 뷰(Window View)에 연동시키는 화면 로드(Scene Load)단계(C3)를 수행함으로써 3D 오브젝트의 행동을 실시간으로 업데이트하여 디스플레이하게 된다.
Further, the step of updating and displaying the behavior of the 3D object in real time (S50) may include generating an application user interface (C1) and generating an application window view (C1) and every frame of the loaded screen. By performing the screen load step (C3) that is linked to the application window view to be updated and displayed, the behavior of the 3D object is updated and displayed in real time.

도4을 참조하여, 3D 가상현실 컨트롤 미들웨어를 이용한 3D 컨텐츠의 실시간 제어방법의 세부 흐름을 설명한다.4, a detailed flow of a real-time control method of 3D content using the 3D virtual reality control middleware will be described.

먼저 서버측의 세부흐름을 설명하면, 3D 데이터 생성(Create 3D Data)단계(S1)는, 3D Via Virtools상에서 3D 데이터를 형상화한다. Max, Maya, Catia 등으로 제작된 3D 데이터를 Virtools의 가상현실 공간상에서 배치 및 조합하여 가상현실 공간을 제작한다. 3D Entity은 (X,Y,Z) 좌표 값을 가지고 공간상에 배치되며, 2D Entity 들은 (X,Y) 좌표를 가지고 공간상에 배치된다. 또한 가상세계를 꾸미기 위한 Light(빛효과), Material(색상), Texture(표면이미지) 등을 정의하여 오브젝트에 효과를 준다. 가상세계에 대한 세팅이 완료되면 파일을 저장(익스포트)하여 미들웨어에서 사용 가능한 형식(CMO/VMO파일)으로 제작한다. 도2의 3D 가상현실 컨트롤 미들웨어의 3D 데이터 생성모듈(Create Module)에서 처리된다.First, the detailed flow of the server side will be described. In the step S1 of creating 3D data, 3D data is shaped on 3D Via Virtools. Create virtual reality spaces by placing and combining 3D data from Max, Maya, Catia, etc. in Virtools' virtual reality space. 3D entities are placed in space with (X, Y, Z) coordinates and 2D entities are placed in space with (X, Y) coordinates. In addition, it defines effects such as light, material, and texture to decorate the virtual world. When the settings for the virtual world are completed, the file is saved (exported) and produced in a format (CMO / VMO file) that can be used in middleware. It is processed in the 3D data creation module (Create Module) of the 3D virtual reality control middleware of FIG.

행동 구성(Behavior Construct)단계(S2)는, 오브젝트가 초기화되면, 클라이언트로부터 신호를 받아야되는 오브젝트를 구분한다. 행동(움직인 실행 및/또는 상태변화) 이벤트가 필요한 오브젝트에 대하여는 스크립트를 생성하고 해당 스크립트에 메세지를 기다리는 WaitMessage, 메시지가 들어왔을 때 행동해야 하는 PlayBehavior 로직을 구성한다. 도2의 3D 가상현실 컨트롤 미들웨어의 3D 데이터 생성모듈(Create Module)에서 처리된다.      In the behavior construct step S2, when an object is initialized, an object that is to receive a signal from a client is identified. For objects that require action (moving execution and / or state change) events, create a script, and wait message waiting for the message, and configure the PlayBehavior logic to act when the message comes in. It is processed in the 3D data creation module (Create Module) of the 3D virtual reality control middleware of FIG.

초기화(Initialize)단계(S3)는 가상세계에 필수 조건인 3D Object, Material, Texture, Light, Camera 들의 초기값을 저장한다. 각 Entity 마다 좌표 값과 회전 값, 스케일 값을 저장한다. 차후 다시 원상태로 복귀를 위해 필요하다. 각 Entity 마다 좌표 값과 회전 값, 스케일 값을 저장한다. 차후 다시 원상태로 복귀를 위해 필요하다. 도2의 3D 가상현실 컨트롤 미들웨어의 서버 측 플레이 모듈(초기화)(Play Module(Init)에서 처리된다.     The Initialize step (S3) stores initial values of 3D objects, materials, textures, lights, and cameras that are essential to the virtual world. Coordinate, rotation and scale values are stored for each entity. It is necessary to return to the original state later. Coordinate, rotation and scale values are stored for each entity. It is necessary to return to the original state later. Processing is performed in the server side Play Module (Init) of the 3D VR control middleware of FIG.

메시지 대기(Wait Message)단계(S4)에 있어, 서버는 항상 클라이언트로부터 메시지를 기다린다. Wait Message는 항상 Loop 상태로 매 프레임마다 실행된다.도2의 3D 가상현실 컨트롤 미들웨어의 서버 측 플레이 모듈(Play Module)(Playing Loop)에서 처리된다.      Wait Message In step S4, the server always waits for a message from the client. The Wait message is always executed in a loop state every frame. It is processed in a server-side Play Module (Playing Loop) of the 3D VR control middleware of FIG.

메시지 수신(Receive Massage)단계(S5)는, 클라이언트로부터 음성 신호에 대응하는 메시지 데이터를 받는다. 또한, 음성 신호로부터, 메시지 데이터의 추출이 성공했는지 실패했는지를 판단하여, 실패한 것으로 판단되면 MSG_ERROR를 통해 클라이언트에게 실패 메시지를 전달하며 다시 메시지 데이터를 전달받기 기다린다. 성공했을 경우 다음 절차를 진행한다. 도2의 3D 가상현실 컨트롤 미들웨어의 서버 측 플레이 모듈(Play Module)(Playing Loop)에서 처리된다. Receive Massage step S5 receives message data corresponding to a voice signal from a client. In addition, it is determined whether the extraction of the message data has succeeded or failed from the voice signal, and if it is determined to fail, a failure message is transmitted to the client through MSG_ERROR, and the message data is waited to be received again. If successful, proceed to the next procedure. It is processed in a server-side Play Module (Playing Loop) of the 3D VR control middleware of FIG.

행동 실행(Play Behavior Render)단계(S6)는, 수신된 메시지 데이터에 따라 관련된 오브젝트의 행동(움직인 실행 및/또는 상태변화)을 실행한다. 캐릭터일 경우는 에니메이션 플레이를 통해 움직임이 실행되며, 3D 객체는 이동, 회전, 크기변환 등의 움직임이 실행된다. Material의 경우 색상변화, Texture의 경우 이미지 변화가 실행될 수 있다.The play behavior rendering step S6 executes the behavior (moving execution and / or state change) of the related object according to the received message data. In the case of a character, movement is performed through animation play, and movement of a 3D object such as movement, rotation, and resizing is performed. Color changes can be made for materials and image changes can be done for textures.

행동 실행 종료 판단 단계(S7)는, 수신된 메시지 데이터에 따라 관련된 오브젝트의 행동의 실행이 완료되었는 지를 판단하고, 종료된 것으로 판단되면 된 경우 루틴을 종료(S8)하고,음성입력 단계(C4)를 수행하여 추가적인 음성입력을 받도록 클라이언트 측에서 통보한다.      The action execution end determination step (S7) determines whether the execution of the action of the related object is completed according to the received message data, and when it is determined that the action is completed, terminates the routine (S8), and inputs a voice (C4). Notify the client to receive additional voice input.

다음으로 도4를 참조하여, 클라이언트 측의 세부 흐름을 설명한다.Next, the detailed flow of the client side will be described with reference to FIG.

클라이언트 측의 초기화(Initialize)단계(C1)는, 3DVia Virtools SDK 엔진에 대한 초기화 작업 즉, 서버에서 제작된 CMO(VMO) 파일의 초기화 작업을 진행한다. 엔진을 사용하기 위한 DLL파일을 등록하며, DLL파일의 경로를 초기화 해주고 Virtools Composition 내의 모든 객체들을 관장하는 CKContext 객체를 생성해 준다. CKContext 생성 후 3D Rendering과 관련된 작업을 관장하는 CKRenderContext 객체를 생성해 준다. DLL파일과 3D 객체선언이 완료되면 어플리케이션UI를 생성하여 프레임과 Window View를 만들어 준다. 3D 가상현실 컨트롤 미들웨어의 클라이언트 측 초기화 모듈 (Init Module)에 의하여 처리된다.In the initializing step (C1) of the client side, an initialization operation for the 3DVia Virtools SDK engine, that is, initialization of a CMO (VMO) file produced by the server is performed. Register DLL file to use engine, initialize DLL file path and create CKContext object that manages all objects in Virtools Composition. After creating CKContext, create CKRenderContext object that manages 3D Rendering related tasks. When the DLL file and 3D object declaration are completed, the application UI is created to create the frame and window view. It is handled by the client-side Init Module of the 3D VR control middleware.

DB셋(DB Set)단계(C2)는, 시스템 상태 정보를 얻어와 마이크등 음성입력 장치가 컴퓨터에 연결되어 음성 입력장치가 준비상태인지를 판단한다. 마이크등 음성입력장치가 준비 상태이며, 음성인식 라이브러리 즉, 음성엔진의 초기화 작업을 진행한다. 또한, 음성 데이터베이스의 경로를 인식해 접근하여, 음성 데이터베이스 안에 단어 목록을 설정해 준다. 단어 목록은 dict파일 형식으로 제작되어 있다. 단어 등록까지 마치면 음성입력을 받을 준비를 한다. 3D 가상현실 컨트롤 미들웨어의 클라이언트 측 DB 셋 모듈(DB Set Module)에 의하여 처리된다.In the DB set step C2, the system state information is obtained and a voice input device such as a microphone is connected to a computer to determine whether the voice input device is in a ready state. A voice input device such as a microphone is ready, and a voice recognition library, that is, a voice engine initialization operation is performed. It also recognizes and accesses the path of the voice database, and sets up a word list in the voice database. The word list is in dict file format. When you finish the word registration, you are ready to receive voice input. It is handled by the client-side DB Set Module of the 3D VR control middleware.

화면 로드(Scene Load)단계(C3)는, 서버에서 제작된 CMO(VMO) 파일을 Initialize 과정에서 제작해 놓은 Window View에 연동시킨다. CMO파일의 Scene 안에 존재하는 3D Entity 및 2D Entity, Light, Camera 등 모든 Entity 들의 구성요소를 초기화 한다. Scene이 Load 되면, 어플리케이션 Window View는 CMO의 View로 매핑되게 되며, 매 프레임 Update 되기 때문에 실시간으로 3D 랜더링 되는 것처럼 사용자는 인식하게 된다.차원 가상현실 컨트롤 미들웨어의 클라이언트 측 컨넥트 모듈(Connect Module)에서 처리된다.      Scene load step (C3), the CMO (VMO) file produced on the server is linked to the Window View produced during the Initialize process. Initializes the components of all entities such as 3D entity, 2D entity, light, and camera in the scene of CMO file. When the scene is loaded, the application window view is mapped to the view of the CMO and updated every frame, so the user perceives it as if it were 3D rendered in real time. do.

음성입력(Voice Input)단계(C4)는, 마이크등 음성입력 장치를 통해 음성을 입력 받는다. 또한, 음성의 크기, 음성의 정확도, 음성의 속도 등에 기초하여 음성의 정확도를 판단하는 정확도 판단 단계(C5)를 수행하여 음성이 입력되었을 때 정확한 음성이 들어왔을 경우 다음 단계로 진행하며, 정확하지 않은 음성이 입력되어 음성 판별이 불가능한 경우 재입력을 받도록 실행될수 있다. 음성입력이 없는 경우 이벤트를 종료처리(C10)하도록 구성될 수 있다. 3D 가상현실 컨트롤 미들웨어의 클라이언트 측 플레이 모듈( Play Module)에서 수행된다.In the voice input step C4, voice is input through a voice input device such as a microphone. In addition, if the correct voice is input when the voice is input by performing the accuracy judgment step (C5) of determining the accuracy of the voice based on the size of the voice, the accuracy of the voice, the speed of the voice, etc., proceed to the next step. If a voice is not input and voice discrimination is impossible, the voice may be executed to receive a re-input. If there is no voice input, it may be configured to terminate the event (C10). It is performed in the client side Play Module of the 3D VR control middleware.

문자열 데이터 획득(Get Voice Signal)단계(C6)는 음성 DB에 접근해 음성신호와 매칭되는 문자열 데이터를 가져오는 단계이다. 음성DB에 등록되어 있는 목록과 사용자가 입력한 음성신호의 가장 최적화(정확한) 문자열 데이터를 검색하여 클라이언트에게 리턴해 준다. 클라이언트는 이 문자열 데이터를 전역 변수에 저장하여 클라이언트 내에서 처리할 수 있게 준비한다. 3D 가상현실 컨트롤 미들웨어의 클라이언트 측 메시지 모듈 (Message Module)에서 처리된다.The get voice signal step C6 is a step of accessing the voice DB to obtain string data matching the voice signal. The list registered in the voice DB and the most optimized (precise) string data of the voice signal input by the user are searched and returned to the client. The client stores this string data in a global variable and prepares it for processing within the client. It is handled by the client-side Message Module of the 3D VR control middleware.

메시지 데이터 획득(Get Message)단계(C7)는 전역 변수에 저장된 문자열 데이터를 메시지 DB에서 검색을 하는 단계이다. DB 검색은 SQL 쿼리 문을 통해 실행한다. 입력된 음성에 대응하는 문자열 데이터를 메시지 목록을 검색한 후 가장 상위(정확도가 높은)의 메시지 명의 메시지 데이터를 가져온다. 만약 정확한 메시지 명이 있는지 여부를 판단(C8)하여, 없을 경우 다시 음성입력 단계(C4)로 돌아가며, 메시지 명이 검색되면 다음 단계를 진행하도록 구성될 수 있다. 3D 가상현실 컨트롤 미들웨어의 클라이언트 측 메시지 모듈 (Message Module) 에서 처리된다.The get message step C7 is a step of retrieving the string data stored in the global variable from the message DB. DB search is executed through SQL query statement. After retrieving the message list from the string data corresponding to the input voice, the message data of the uppermost (highest accuracy) message name is fetched. If it is determined whether there is a correct message name (C8), if there is no, it returns to the voice input step (C4), and if the message name is found, it can be configured to proceed to the next step. It is handled in the client side Message Module of the 3D VR control middleware.

메시지 데이터 전송(Send message)단계(C9)는 메시지명이 메시지 데이터베이스에서 검색되면 해당 메시지 데이터를 Server(CMO 파일)측으로 전달한다. Server측에서 기다리고 있는 오브젝트의 메시지 명과 일치한다면 서버 측에서 동작을 실행한다. 전달된 메시지는 다음 음성입력이 있기 전까진 저장된 상태로 있으며, 다시 음성입력이 있을 경우 전 단계에서 검색된 메시지 데이터는 삭제된다. 3D 가상현실 컨트롤 미들웨어의 클라이언트 측 메시지 모듈 (Message Module) 에서 처리된다.
Send message step C9 transfers the message data to the Server (CMO file) when the message name is retrieved from the message database. If the message name of the object waiting on the server side matches, the operation is executed on the server side. The delivered message is stored until the next voice input, and if there is a voice input again, the message data retrieved in the previous step is deleted. It is handled in the client side Message Module of the 3D VR control middleware.

이상에서 본 발명은 실시 형태에 따라 도면에 도시된 일 실시예를 참고로 설명되었으나, 이들은 예시적인 것으로 본 발명의 권리범위는 이들에 한정되지 않으며, 다양한 변형 및 균등의 범위의 실시형태를 포함하여 청구범위에 기재된 사항에 따라 본 발명의 권리범위가 정해진다.
The present invention has been described above with reference to one embodiment shown in the drawings according to the embodiments, but these are exemplary and the scope of the present invention is not limited thereto, and includes various modifications and equivalent embodiments of the present invention. The scope of the invention is determined by the matter set forth in the claims.

10: 음성입력부 20:음성엔진처리부
30: 메시지처리부 40: 동작제어부
50: 3D 렌더부
10: voice input unit 20: voice engine processing unit
30: message processing unit 40: operation control unit
50: 3D render unit

Claims (10)

음성엔진과 인터렉티브 3D 어플리케이션을 실시간으로 연동시키는 3D 가상현실 컨트롤 미들웨어 시스템에 있어서,
사용자로부터 음성신호를 수신하는 음성입력부(10);
상기 음성입력부로부터 입력된 음성신호를 전달받아 음성엔진에 전송하고 음성엔진에 의하여 음성 데이터 베이스(21) 내에서 검색되어 리턴되는 상기 음성신호에 대응하는 문자열 데이터를 수신하는 음성엔진처리부(20);
상기 음성엔진처리부로부터 문자열 데이터를 전달받아 3D 데이터가 인식가능한 메시지 데이터를 저장하는 메시지 데이터 베이스(22) 내에서 상기 문자열 데이터에 대응하는 메시지 데이터를 검색하는 메시지처리부(30);
상기 메시지처리부로부터 상기 메시지 데이터를 수신하여, 상기 메시지 데이터에 따라 3D 오브젝트의 실행 및 상태변화를 제어하는 동작제어부(40); 및
상기 동작제어부에 의하여 실행 및 상태변화가 제어되는 3D 오브젝트의 실행 및 상태변화를 실시간으로 업데이트하여 디스플레이하는 3D 렌더부(50)을 포함하여 이루어지며, 상기 메시지처리부(30)는 상기 문자열 데이터에 대응하는 메시지 데이터가 검색되지 않는 경우 상기 문자열 데이터의 뒷글자 1자를 삭제하고 뒷글자 1자가 삭제된 문자열 데이터에 대응하는 메시지 데이터를 검색하는 과정을 수행하며, 상기 과정은 해당 메시지 데이터가 검색되거나 문자열 데이터에 1자가 남을 때까지 수행하는 것을 특징으로 하는 3D 가상현실 컨트롤 미들웨어 시스템.
In the 3D virtual reality control middleware system that interoperates a voice engine and an interactive 3D application in real time,
A voice input unit 10 for receiving a voice signal from a user;
A voice engine processor 20 which receives a voice signal input from the voice input unit, transmits the voice signal to a voice engine, and receives character string data corresponding to the voice signal that is retrieved and returned in the voice database 21 by the voice engine;
A message processor (30) which receives the string data from the voice engine processor and searches for the message data corresponding to the string data in a message database (22) storing message data recognizable by 3D data;
An operation control unit (40) for receiving the message data from the message processing unit and controlling execution and state change of a 3D object according to the message data; And
And a 3D renderer 50 which updates and displays the execution and the state change of the 3D object whose execution and state change are controlled by the operation controller in real time. The message processor 30 corresponds to the character string data. If the message data is not found, the first character of the string data is deleted and the message data corresponding to the character string data of which the first character is deleted is searched. 3D virtual reality control middleware system, characterized in that until the remaining one character.
음성엔진과 인터렉티브 3D 어플리케이션을 실시간으로 연동시키는 3D 가상현실 컨트롤 미들웨어 시스템에 있어서,
사용자로부터 음성신호를 수신하는 음성입력부(10);
상기 음성입력부로부터 입력된 음성신호를 전달받아 음성엔진에 전송하고 음성엔진에 의하여 음성 데이터 베이스(21) 내에서 검색되어 리턴되는 상기 음성신호에 대응하는 문자열 데이터를 수신하는 음성엔진처리부(20);
상기 음성엔진처리부로부터 문자열 데이터를 전달받아 3D 데이터가 인식가능한 메시지 데이터를 저장하는 메시지 데이터 베이스(22) 내에서 상기 문자열 데이터에 대응하는 메시지 데이터를 검색하는 메시지처리부(30);
상기 메시지처리부로부터 상기 메시지 데이터를 수신하여, 상기 메시지 데이터에 따라 3D 오브젝트의 실행 및 상태변화를 제어하는 동작제어부(40); 및
상기 동작제어부에 의하여 실행 및 상태변화가 제어되는 3D 오브젝트의 실행 및 상태변화를 실시간으로 업데이트하여 디스플레이하는 3D 렌더부(50)을 포함하여 이루어지며, 상기 메시지 데이터 베이스는 사용자로부터 입력받는 문자열 데이터인 음성 문자열 및 동작 제어부로 전달할 메시지 데이터인 메시지 문자열을 포함하는 데이터 구조를 가지고, 상기 문자열 데이터는 2Byte의 한글 문자열이고, 상기 메시지 데이터는 행동명을 포함하는 1Byte 영문 문자열인 것을 특징으로 하는 3D 가상현실 컨트롤 미들웨어 시스템.
In the 3D virtual reality control middleware system that interoperates a voice engine and an interactive 3D application in real time,
A voice input unit 10 for receiving a voice signal from a user;
A voice engine processor 20 which receives a voice signal input from the voice input unit, transmits the voice signal to a voice engine, and receives character string data corresponding to the voice signal that is retrieved and returned in the voice database 21 by the voice engine;
A message processor (30) which receives the string data from the voice engine processor and searches for the message data corresponding to the string data in a message database (22) storing message data recognizable by 3D data;
An operation control unit (40) for receiving the message data from the message processing unit and controlling execution and state change of a 3D object according to the message data; And
And a 3D renderer 50 which updates and displays the execution and the state change of the 3D object whose execution and state change are controlled by the operation controller in real time. The message database is a string data input from the user. 3D virtual reality having a data structure including a voice string and a message string which is message data to be transmitted to the operation controller, wherein the string data is a 2-byte Korean character string and the message data is a 1-byte English character string including an action name. Control middleware system.
음성엔진과 인터렉티브 3D 어플리케이션을 실시간으로 연동시키는 3D 가상현실 컨트롤 미들웨어 시스템에 있어서,
사용자로부터 음성신호를 수신하는 음성입력부(10);
상기 음성입력부로부터 입력된 음성신호를 전달받아 음성엔진에 전송하고 음성엔진에 의하여 음성 데이터 베이스(21) 내에서 검색되어 리턴되는 상기 음성신호에 대응하는 문자열 데이터를 수신하는 음성엔진처리부(20);
상기 음성엔진처리부로부터 문자열 데이터를 전달받아 3D 데이터가 인식가능한 메시지 데이터를 저장하는 메시지 데이터 베이스(22) 내에서 상기 문자열 데이터에 대응하는 메시지 데이터를 검색하는 메시지처리부(30);
상기 메시지처리부로부터 상기 메시지 데이터를 수신하여, 상기 메시지 데이터에 따라 3D 오브젝트의 실행 및 상태변화를 제어하는 동작제어부(40); 및
상기 동작제어부에 의하여 실행 및 상태변화가 제어되는 3D 오브젝트의 실행 및 상태변화를 실시간으로 업데이트하여 디스플레이하는 3D 렌더부(50)을 포함하여 이루어지며, 상기 동작제어부(40)는 오브젝트에 대하여 생성된 메시지 수신부, 메시지 처리부 및 종료처리부를 포함하는 스크립트를 포함하여 구성되는 것을 특징으로 하는 3D 가상현실 컨트롤 미들웨어 시스템.
In the 3D virtual reality control middleware system that interoperates a voice engine and an interactive 3D application in real time,
A voice input unit 10 for receiving a voice signal from a user;
A voice engine processor 20 which receives a voice signal input from the voice input unit, transmits the voice signal to a voice engine, and receives character string data corresponding to the voice signal that is retrieved and returned in the voice database 21 by the voice engine;
A message processor (30) which receives the string data from the voice engine processor and searches for the message data corresponding to the string data in a message database (22) storing message data recognizable by 3D data;
An operation control unit (40) for receiving the message data from the message processing unit and controlling execution and state change of a 3D object according to the message data; And
And a 3D renderer 50 for updating and displaying in real time the execution and state change of the 3D object whose execution and state change are controlled by the operation control unit. The operation control unit 40 is generated for the object. 3D virtual reality control middleware system comprising a script including a message receiving unit, a message processing unit and a termination processing unit.
제1항 내지 제3항 중 어느 한 항에 있어서,
상기 음성입력부(10)는 음성입력을 위한 입력장치의 연결 상태를 점검하여, 상태 메시지를 생성하여 출력하는 것을 특징으로 하는 3D 가상현실 컨트롤 미들웨어 시스템.
4. The method according to any one of claims 1 to 3,
The voice input unit 10 checks the connection state of the input device for voice input, generates and outputs a status message 3D virtual reality control middleware system.
삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete
KR1020110013945A 2011-02-17 2011-02-17 3D VR Controlling Middleware System interconnecting Voice Engine and interactive 3D Application in real time KR101265123B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110013945A KR101265123B1 (en) 2011-02-17 2011-02-17 3D VR Controlling Middleware System interconnecting Voice Engine and interactive 3D Application in real time

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110013945A KR101265123B1 (en) 2011-02-17 2011-02-17 3D VR Controlling Middleware System interconnecting Voice Engine and interactive 3D Application in real time

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020120115042A Division KR101265121B1 (en) 2012-10-16 2012-10-16 Real time Controlling Method for 3D VR contents using 3D VR Controlling Middleware System interconnecting Voice Engine and interactive 3D Application in real time

Publications (2)

Publication Number Publication Date
KR20120101604A KR20120101604A (en) 2012-09-14
KR101265123B1 true KR101265123B1 (en) 2013-05-16

Family

ID=47110528

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110013945A KR101265123B1 (en) 2011-02-17 2011-02-17 3D VR Controlling Middleware System interconnecting Voice Engine and interactive 3D Application in real time

Country Status (1)

Country Link
KR (1) KR101265123B1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140113832A (en) 2013-03-15 2014-09-25 현대자동차주식회사 Voice transmission starting system and starting method for vehicle
KR102282487B1 (en) 2014-05-08 2021-07-26 삼성전자주식회사 Apparatus and method for executing application
CN105931645A (en) * 2016-04-12 2016-09-07 深圳市京华信息技术有限公司 Control method of virtual reality device, apparatus, virtual reality device and system

Also Published As

Publication number Publication date
KR20120101604A (en) 2012-09-14

Similar Documents

Publication Publication Date Title
US11288042B2 (en) Systems and methods for programming mobile devices
US10534605B2 (en) Application system having a gaming engine that enables execution of a declarative language
AU2019226135B2 (en) Natural language processing for language-driven synthesis of 3d scenes
EP3304286B1 (en) Data binding dependency analysis
US11016785B2 (en) Method and system for mirror image package preparation and application operation
KR20190140802A (en) Method and system for improved performance of a video game engine
US11562517B2 (en) Method and system for populating a digital environment using a semantic map
US20120323950A1 (en) Embedded query formulation service
CN115690375B (en) Building model modification interaction method, system and terminal based on virtual reality technology
KR101265121B1 (en) Real time Controlling Method for 3D VR contents using 3D VR Controlling Middleware System interconnecting Voice Engine and interactive 3D Application in real time
KR101265123B1 (en) 3D VR Controlling Middleware System interconnecting Voice Engine and interactive 3D Application in real time
CN114237582A (en) Project construction method, device, medium and electronic equipment
Blumendorf et al. Dynamic user interface distribution for flexible multimodal interaction
CN116521181B (en) Script data processing method, device, equipment and medium based on game system
CN112486523A (en) Container mirror image creating method and device, storage medium and electronic equipment
CN106610855B (en) Method and device for importing 3D model into 3dsMAX
KR102192376B1 (en) Method and system for extracting foreign synonym using transliteration model
KR100692210B1 (en) Method for rendering objects in game engine and recordable media recording programs for enabling the method
CN117453880A (en) Multi-mode data processing method and device, electronic equipment and storage medium
CN114693848A (en) Method, device, electronic equipment and medium for generating two-dimensional animation
CN117771663A (en) Program starting method, device, electronic equipment and storage medium
CN114100142A (en) Game resource processing method and device
CN115758021A (en) Webpage rendering method and device, electronic equipment and medium

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
A107 Divisional application of patent
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160610

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170510

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180830

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190307

Year of fee payment: 7