KR100559287B1 - Chat system and method using animation of graphic images - Google Patents

Chat system and method using animation of graphic images Download PDF

Info

Publication number
KR100559287B1
KR100559287B1 KR1020030045130A KR20030045130A KR100559287B1 KR 100559287 B1 KR100559287 B1 KR 100559287B1 KR 1020030045130 A KR1020030045130 A KR 1020030045130A KR 20030045130 A KR20030045130 A KR 20030045130A KR 100559287 B1 KR100559287 B1 KR 100559287B1
Authority
KR
South Korea
Prior art keywords
chat
animation
clients
data
character
Prior art date
Application number
KR1020030045130A
Other languages
Korean (ko)
Other versions
KR20050003697A (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 KR1020030045130A priority Critical patent/KR100559287B1/en
Publication of KR20050003697A publication Critical patent/KR20050003697A/en
Application granted granted Critical
Publication of KR100559287B1 publication Critical patent/KR100559287B1/en

Links

Images

Classifications

    • G06Q50/50
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services

Abstract

본 발명은 그래픽 이미지의 애니메이션(animation)을 이용하여 채팅을 수행할 수 있는 시스템 및 방법에 관한 것이다. 이 채팅 시스템은 채팅 프로세스를 제어하기 위한 서버와, 서버와 통신망을 통해 연결되어 있으며 채팅 프로세스에 따라 상호간에 채팅을 수행하기 위한 다수의 클라이언트를 포함한다. 이 채팅 방법은 a) 서버와 다수의 클라이언트들이 초기화를 수행하는 단계와, b) 서버가 다수의 클라이언트들 각각으로 채팅시 사용되는 채팅 요청 클라이언트 정보 및 채팅 상대방 클라이언트 정보를 전송하는 단계와, c) 서버로부터 수신한 채팅 요청 클라이언트 정보 및 채팅 상대방 클라이언트 정보에 근거하여, 다수의 클라이언트들이 상호 채팅을 수행하는 단계를 포함한다.The present invention relates to a system and method capable of performing a chat using animation of a graphical image. The chat system includes a server for controlling the chat process, and a plurality of clients connected to the server through a communication network and for chatting with each other according to the chat process. This chat method comprises the steps of: a) performing initialization by the server and a plurality of clients, b) sending a chat request client information and chat counterpart client information used when the server chats with each of the plurality of clients, and c) And, based on the chat request client information and the chat counterpart client information received from the server, a plurality of clients perform a mutual chat.

캐릭터, 캐릭터 엔진, 채팅 엔진, 애니메이션 파일 전처리, 채팅Character, Character Engine, Chat Engine, Animation File Preprocessing, Chat

Description

그래픽 이미지의 애니메이션을 이용한 채팅 시스템 및 그 방법{CHAT SYSTEM AND METHOD USING ANIMATION OF GRAPHIC IMAGES}Chat system using animation of graphic image and method thereof {CHAT SYSTEM AND METHOD USING ANIMATION OF GRAPHIC IMAGES}

도 1의 (a) 및 (b)는 종래기술에 따른 캐릭터 또는 아바타의 일예를 도시하는 도면.1 (a) and (b) are diagrams showing an example of a character or avatar according to the prior art.

도 2의 (a) 및 (b)는 종래기술에 따른 채팅 프로그램의 리스트 창(window) 및 채팅창의 일예를 도시하는 도면.2 (a) and 2 (b) show examples of a list window and a chat window of a chat program according to the prior art;

도 3은 본 발명에 따른 채팅 시스템의 개략적인 블럭도.3 is a schematic block diagram of a chat system according to the present invention;

도 4는 본 발명에 따른 캐릭터 엔진의 블럭도.4 is a block diagram of a character engine in accordance with the present invention.

도 5는 도 4에 도시된 캐릭터 엔진내 애니메이션 데이터 전처리부의 블럭도.5 is a block diagram of an animation data preprocessor of the character engine shown in FIG. 4; FIG.

도 6은 본 발명에 따른 채팅 프로세스를 설명하기 위한 흐름도.6 is a flow chart for explaining the chat process according to the present invention.

도 7은 도 6에 도시한 단계(S602) 내지 단계(S604)를 상세하게 설명하기 위한 흐름도.FIG. 7 is a flowchart for explaining in detail the steps S602 to S604 shown in FIG.

도 8은 도 6에 도시한 단계(S606) 내지 단계(S610)를 상세하게 설명하기 위한 흐름도.FIG. 8 is a flowchart for explaining in detail the steps S606 to S610 shown in FIG.

도 9는 도 8에 도시한 단계(S816)를 상세하게 설명하기 위한 흐름도.9 is a flowchart for explaining the details of the step S816 shown in FIG.

도 10은 도 4에 도시된 애니메이션 데이터 전처리부내 애니메이션 파일 전처리부가 캐릭터 엔진에서 사용되는 애니메이션 자료 구조를 생성하는 과정을 설명하 기 위한 흐름도.FIG. 10 is a flowchart illustrating a process of generating an animation data structure used in a character engine by an animation file preprocessor shown in FIG. 4.

도 11은 도 4에 도시된 캐릭터 엔진내 캐릭터 관리부에 의해 제어되는 캐릭터 모듈의 동작을 설명하기 위한 흐름도.FIG. 11 is a flowchart for explaining the operation of the character module controlled by the character manager in the character engine shown in FIG. 4; FIG.

도 12는 본 발명에 따라 캐릭터의 외곽선 데이터를 추출하는 일예를 나타낸 도면.12 illustrates an example of extracting outline data of a character according to the present invention.

도 13은 본 발명에 따른 캐릭터 애니메이션의 일예를 나타내는 도면.13 shows an example of a character animation according to the present invention.

도 14는 본 발명에 따라 생성되는 합성 그래픽 이미지 데이터의 일예를 나타내는 도면.14 illustrates an example of composite graphical image data generated in accordance with the present invention.

<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for the main parts of the drawings>

302 : 서버302: server

304 : 통신망304: communication network

306, 308, 310 : 클라이언트306, 308, 310: Client

306-1, 308-1, 310-1 : 채팅 엔진306-1, 308-1, 310-1: Chat Engine

306-2, 308-2, 310-2 : 캐릭터 엔진306-2, 308-2, 310-2: Character Engine

402 : 에니메이션 데이터 전처리부402: animation data preprocessing unit

404 : 캐릭터 관리부404: character management unit

406 : 메시지 분석부406: message analysis unit

408 : 그래픽 출력부408: graphic output unit

502 : 데이터 분석부502: data analysis unit

504 : 애니메이션 파일 목록 생성부504: animation file list generation unit

506 : 애니메이션 파일 전처리부506: animation file preprocessor

본 발명은 통신 시스템을 이용한 채팅(chat) 시스템 및 방법에 관한 것으로, 보다 상세하게는 그래픽 이미지의 애니메이션을 이용하여 채팅을 수행할 수 있는 시스템 및 방법에 관한 것이다.The present invention relates to a chat system and method using a communication system, and more particularly to a system and method that can perform a chat using the animation of the graphic image.

최근, 가상 공간 상에서 캐릭터(character) 또는 아바타(avator)를 이용하여 채팅하려는 시도가 있다. 통상적인 캐릭터 또는 아바타는 그 디스플레이 방식에 있어서, 채팅시 사용되는 컴퓨팅 디바이스(computing device)와 연결된 모니터(monitor) 상의 제한된 틀(예컨대, 사각형 형태의 창(window))에서 채팅 프로그램의 제어에 따라 그 제한된 틀의 공간 안에서만 디스플레이 되었다.Recently, there has been an attempt to chat using a character or an avatar in a virtual space. A typical character or avatar may be displayed according to the control of a chat program in a limited frame (eg, a rectangular window) on a monitor connected to a computing device used for chatting. Displayed only within a limited frame of space.

도 1의 (a) 및 (b)에 도시한 바와 같이, 종래기술에 따른 캐릭터 또는 아바타(102, 104)는 채팅시 사용자 자신을 가상 공간 상에 나타내는 사진과 같은 형태로 나타내기 때문에, 채팅 상대방과의 채팅시 사용자를 대신하여 채팅하는 역할은 주어지지 않는다. 또한, 캐릭터 또는 아바타(102, 104)는 독립적인 동작, 즉 애니메이션(animation)을 수행할 수 없으며, 단지 채팅 프로그램에 의해 사전설정된 얼굴의 표정 변화만이 가능하다는 단점이 있다.As shown in (a) and (b) of FIG. 1, the character or avatar 102 and 104 according to the related art represent a user as a photograph in a virtual space during a chat, and thus, a chat counterpart. You are not given a role to chat on behalf of the user when chatting with them. In addition, the characters or avatars 102 and 104 may not perform independent motions, that is, animations, and may only change facial expressions preset by a chat program.

또한, 도 2의 (a) 및 (b)에 도시한 바와 같이, 종래기술에 따른 채팅 프로그램은 채팅시 리스트 창 및 채팅창을 모니터 상에 디스플레이한다. 이때, 사용자를 나타내는 캐릭터 또는 아바타가 이들 창 내에 위치될 수 있다. 그러나, 이러한 창 이외의 영역, 예컨대 컴퓨터 모니터 상에서 이들 창을 제외한 바탕 화면 영역에 캐릭터 또는 아바타가 존재할 수 없을뿐만 아니라, 캐릭터 또는 아바타가 채팅시 여전히 애니메이션을 수행하지 못한다는 단점이 있다.Also, as shown in Figs. 2A and 2B, the conventional chat program displays a list window and a chat window on a monitor when chatting. At this time, a character or avatar representing the user may be located in these windows. However, there is a disadvantage that a character or avatar may not exist in an area other than such a window, for example, a desktop area except these windows on a computer monitor, and the character or avatar still does not perform an animation when chatting.

따라서, 본 발명은 전술한 종래기술의 문제점을 해결하기 위한 것으로, 가상 공간 상에서 채팅을 하고 있는 사용자들을 나타내는 그래픽 이미지의 애니메이션을 통해 실제 공간에서와 유사하게 채팅 상대방과 채팅할 수 있는 시스템 및 방법을 제공하는 것을 목적으로 한다.Accordingly, the present invention is to solve the above-mentioned problems of the prior art, and to provide a system and method for chatting with a chat counterpart similar to the real space through the animation of a graphic image representing users chatting in a virtual space. It aims to provide.

본 발명의 특징에 따르면, 그래픽 이미지의 애니메이션(animation)을 이용한 채팅 시스템이 제공된다. 이 채팅 시스템은 채팅 프로세스를 제어하기 위한 서버와, 서버와 통신망을 통해 연결되어 있으며 채팅 프로세스에 따라 상호간에 채팅을 수행하기 위한 다수의 클라이언트를 포함한다. 이 서버는 다수의 클라이언트 각각에 대한 정보를 저장하기 위한 제 1 데이터베이스와, 다수의 클라이언트를 나타내는 그래픽 이미지들을 저장하기 위한 제 2 데이터베이스와, 다수의 클라이언트 각각으로부터의 채팅 요청에 응답하여 채팅 프로세스를 제어하기 위한 채팅 프로세스 제어부를 포함한다. 다수의 클라이언트 각각은, 통신망을 통해 서버 및 다수의 클라이언트와 상호 통신하기 위한 통신 수단과, 서버의 제어하에 채팅 프로세스에 따라 다수의 클라이언트와 상호 채팅을 수행하기 위한 채팅 엔진과, 채팅 수행중 송수신되는 통신 메시지 ―통신 메시지는 단어 및/또는 문장으로 이루어진 채팅 텍스 트를 포함함 ―에 따라 서버로부터 전송된 그래픽 이미지들 및 그래픽 이미지들의 애니메이션을 제어하기 위한 그래픽 이미지 엔진이 구현된 컴퓨터 판독 가능한 매체를 포함한다.According to a feature of the invention, there is provided a chat system using animation of a graphical image. The chat system includes a server for controlling the chat process, and a plurality of clients connected to the server through a communication network and for chatting with each other according to the chat process. The server controls a chat process in response to a chat request from each of the plurality of clients, a first database for storing information about each of the plurality of clients, a second database for storing graphical images representing the plurality of clients, and It includes a chat process control unit for. Each of the plurality of clients includes a communication means for communicating with the server and the plurality of clients through a communication network, a chat engine for performing a mutual chat with the plurality of clients according to the chat process under the control of the server, and a transmission and reception during the chat. Communication message, the communication message comprising chat text consisting of words and / or sentences; and a computer readable medium in which a graphic image engine is implemented for controlling the animation of graphic images and graphic images transmitted from a server. do.

본 발명의 또다른 특징에 따르면,서버와 다수의 클라이언트들이 통신망을 통해 상호 연결되어 있는 채팅 시스템 상에서 그래픽 이미지의 애니메이션을 이용한 채팅 방법이 제공된다. 이 방법은 a) 서버와 다수의 클라이언트들이 초기화를 수행하는 단계와, b) 서버가 다수의 클라이언트들 각각으로 채팅시 사용되는 채팅 요청 클라이언트 정보 및 채팅 상대방 클라이언트 정보를 전송하는 단계와, c) 서버로부터 수신한 채팅 요청 클라이언트 정보 및 채팅 상대방 클라이언트 정보에 근거하여, 다수의 클라이언트들이 상호 채팅을 수행하는 단계를 포함한다. 여기서, c) 단계에서는 다수의 클라이언트들 각각이 구비하고 있는 디스플레이 상에는 다수의 클라이언트들을 나타내는 그래픽 이미지들이 디스플레이되며, 채팅 중 송수신되는 통신 메시지 ―통신 메시지는 단어 및/또는 문장으로 이루어진 채팅 텍스트를 포함함 ―에 따라 그래픽 이미지들의 애니메이션이 디스플레이된다.According to another aspect of the present invention, a chat method using animation of a graphic image on a chat system in which a server and a plurality of clients are interconnected through a communication network is provided. The method comprises the steps of: a) performing initialization by the server and the plurality of clients, b) sending the chat request client information and chat counterpart client information used when the server chats to each of the plurality of clients, and c) the server. And, based on the chat request client information and the chat counterpart client information received from the plurality of clients, performing a mutual chat. Here, in step c), graphic images representing a plurality of clients are displayed on a display provided by each of the plurality of clients, and a communication message transmitted and received during a chat—the communication message includes chat text composed of words and / or sentences. Animation of the graphical images is displayed.

이하, 도 3 내지 도 14를 참조하여 본 발명의 바람직한 실시예를 설명하기로 한다.Hereinafter, exemplary embodiments of the present invention will be described with reference to FIGS. 3 to 14.

먼저, 도 3을 참조하면 본 발명에 따른 그래픽 이미지를 이용한 채팅 시스템의 개략적인 블럭도가 도시되어 있다. 도 3에 도시한 바와 같이, 본 발명에 따른 채팅 시스템(300)은 서버(302), 다수의 클라이언트(306, 308, 310), 서버(302)와 다수의 클라이언트(306, 308, 310)를 상호 연결하기 위한 통신망(304)을 포함하고 있다. 여기서, 통신망(304)은 통상적인 유선 및 무선 통신망을 포함하는 것으로 이해되고 해석되어야 한다. 또한, 본 명세서에서는 설명의 편의를 위해 채팅을 실제로 수행하는 사용자들을 다수의 클라이언트들(306, 308, 310)로 지칭하고 있음을 주지해야 한다.First, referring to FIG. 3, there is shown a schematic block diagram of a chat system using a graphical image according to the present invention. As shown in FIG. 3, the chat system 300 according to the present invention includes a server 302, a plurality of clients 306, 308, 310, a server 302, and a plurality of clients 306, 308, 310. And a communication network 304 for interconnection. Here, the communication network 304 should be understood and interpreted to include conventional wired and wireless communication networks. In addition, it should be noted that, for convenience of description, the users who actually perform the chat are referred to as a plurality of clients 306, 308, and 310.

서버(302)는 다수의 클라이언트 각각에 대한 정보와 이들을 나타내는 그래픽 이미지들을 저장하기 위한 데이터베이스 및 다수의 클라이언트(306, 308, 310)의 채팅 요청에 응답하여 본 발명에 따른 채팅 프로세스를 제어하기 위한 제어부를 구비하고 있다. 다수의 클라이언트들(306, 308, 310)은 예컨대, 통상적인 컴퓨팅 디바이스(computing device) 기능을 수행하기 위한 구성요소를 포함하고 있을 뿐만 아니라, 채팅 프로세스 수행시 동작하는 본 발명에 따른 채팅 엔진들(306-1, 308-1, 310-1) 및 캐릭터 엔진들(306-2, 308-2, 308-2)을 더 포함하고 있다. 여기서, 채팅 엔진들(306-1, 308-1, 310-1)은 캐릭터 엔진들(306-2, 308-2, 308-2)을 제어하는 기능을 구비하고 있으며, 이러한 채팅 엔진들(306-1, 308-1, 310-1) 각각은 서버(302)로부터 IP(Internet Protocol) 주소, 사용자 정보, 채팅 상대방 정보를 수신한다.The server 302 is a database for storing information about each of the plurality of clients and graphical images representing them, and a control unit for controlling the chat process according to the present invention in response to a chat request from the plurality of clients 306, 308, 310. Equipped with. The plurality of clients 306, 308, 310 include, for example, a component for performing a typical computing device function, as well as chat engines according to the present invention that operate when performing a chat process ( 306-1, 308-1, 310-1, and character engines 306-2, 308-2, and 308-2. Here, the chat engines 306-1, 308-1, 310-1 have a function of controlling the character engines 306-2, 308-2, 308-2, and these chat engines 306. Each of -1, 308-1, 310-1 receives an IP (Internet Protocol) address, user information, and chat counterpart information from the server 302.

사용자 정보는 채팅을 수행하는 채팅 당사자 자신에게 해당하는 정보로서, 채팅명 데이터, 캐릭터 데이터, 채팅 설정 데이터를 포함하고 있다. 채팅명 데이터는 예를 들면, 클라이언트(306)가 채팅 상대방인 클라이언트(308)와 채팅하는 경우, 클라이언트(306)의 ID(identification)와는 별개로 실제 채팅시에 클라이언트 들(306, 308) 모니터 상의 채팅창에 디스플레이되는 이름에 관한 데이터이다. 예를 들어, 채팅명 데이터는 클라이언트(306)의 ID가 "i00XX"인 경우에도 채팅시 채팅창에는 "용팔이"로 디스플레이되도록 하는 데 사용되는 데이터이다.The user information is information corresponding to the chat party itself who performs the chat and includes chat name data, character data, and chat setting data. The chat name data is, for example, on the monitors of the clients 306 and 308 during the actual chat, independent of the identification of the client 306 when the client 306 chats with the client 308 that is the chat counterpart. Data about the name displayed in the chat window. For example, the chat name data is data used to be displayed as a "dragon arm" in the chat window during the chat even when the ID of the client 306 is "i00XX".

캐릭터 데이터는 클라이언트(306)가 자신의 캐릭터를 표현하기 위해 사용하는 데이터로써, 클라이언트(306) 자신이 사용할 수 있는 캐릭터들의 목록에 관한 캐릭터 목록 데이터, 이들 캐릭터 각각에 장착될 수 있는 아이템(item)에 관한 아이템 데이터, 사용가능한 각 캐릭터의 애니메이션에 관한 애니메이션 데이터, 사용가능한 각 캐릭터의 버전(version)에 관한 캐릭터 버전 데이터를 포함하고 있다. 여기서, 아이템은 캐릭터의 머리모양, 옷, 신발 등과 같이 캐릭터를 꾸미기 위한 것이다.Character data is data that the client 306 uses to express its own characters, and character list data about a list of characters that the client 306 itself can use, and items that can be attached to each of these characters. It contains item data about, animation data about the animation of each available character, and character version data about the version of each available character. Here, the item is to decorate the character, such as the head shape, clothes, shoes, etc. of the character.

애니메이션 데이터는 다수의 애니메이션 파일로 구성되어 있으며, 다수의 애니메이션 파일 각각은 헤더(header), 프레임 데이터, 그래픽 이미지 데이터로 구성되어 있다. 헤더는 각 애니메이션 파일의 고유한 ID, 캐릭터 애니메이션들 각각에 대한 프레임 갯수, 애니메이션 파일 내에 삽입된 그래픽 이미지 데이터의 갯수를 포함하고 있다. 프레임 데이터는 캐릭터 애니메이션들 각각에 대해 전용 편집기(예컨대, 그래픽 이미지 생성 프로그램)를 통해 순차적으로 생성된 프레임들만큼 존재하며, 각각의 프레임 데이터는 그래픽 이미지 데이터 색인, 좌표 데이터, 타이머(timer), 이동 상대값 데이터를 포함하고 있다. 그래픽 이미지 데이터 색인은 각각의 프레임에서 표시해야 할 그래픽 이미지 데이터의 색인에 관한 것이다. 여기서, 그래픽 이미지 데이터는 캐릭터의 외곽선 데이터를 더 포함하고 있으며, 그래픽 이미지 데이터 색인과 외곽선 데이터 색인은 동일하다. 좌표 데이터는 각각의 프레임에서 디스플레이 해야할 그래픽 이미지 데이터에 대한 모니터 상에서의 좌표에 관한 데이터로, 사전설정된 모니터 기준점으로부터의 좌표를 나타낸다. 타이머는 그래픽 이미지 데이터의 디스플레이 시간을 나타내는 것으로, 캐릭터의 애니메이션에 따라 상이하게 설정될 수 있다. 이동 상대값 데이터는 캐릭터의 애니메이션이 디스플레이될 때, 애니메이션에 대응하는 프레임들 중 현재 디스플레이되는 프레임에서 다음에 디스플레이될 프레임으로의 전환시에, 모니터 상에서 현재 프레임에서의 기준점으로부터 다음 프레임의 기준점으로 이동해야 할 상대값을 나타낸다. 그래픽 이미지 데이터는 캐릭터의 애니메이션에 사용되는 프레임들 각각에 대응하는 그래픽 이미지를 모두 지칭하는 것으로, 전술한 바와 같이 이들 그래픽 이미지들은 전용 편집기에 의해 사전에 생성되어 애니메이션 파일에 삽입된다.The animation data is composed of a plurality of animation files, and each of the plurality of animation files is composed of a header, frame data, and graphic image data. The header contains a unique ID of each animation file, the number of frames for each character animation, and the number of graphical image data inserted in the animation file. Frame data exists for each of the character animations by frames created sequentially through a dedicated editor (e.g., a graphical image generator), each frame data having a graphical image data index, coordinate data, timer, and movement. Contains relative value data. The graphical image data index relates to the index of the graphical image data to be displayed in each frame. Here, the graphic image data further includes outline data of the character, and the graphic image data index and the outline data index are the same. Coordinate data is data about coordinates on the monitor for graphic image data to be displayed in each frame and represents coordinates from a preset monitor reference point. The timer indicates the display time of the graphic image data and may be set differently according to the animation of the character. The moving relative value data moves from the reference point in the current frame to the reference point of the next frame on the monitor when the character's animation is displayed, when switching from the currently displayed frame to the next displayed frame among the frames corresponding to the animation. Indicates a relative value to be done. The graphic image data refers to all graphic images corresponding to each of the frames used for the animation of the character. As described above, these graphic images are previously generated by a dedicated editor and inserted into the animation file.

채팅 설정 데이터는 채팅시 사용되는 문자의 폰트, 크기, 색상 등에 관한 데이터이다. 이러한 채팅 설정 데이터는 클라이언트들(306, 308, 310) 각각이 필요에 따라 갱신할 수 있는 정보이다.The chat setting data is data related to the font, size, color, etc. of characters used in the chat. This chat setting data is information that each of the clients 306, 308, 310 can update as needed.

채팅 상대방 정보는 채팅 상대방 리스트(list) 데이터, 채팅 상대방 상태 데이터, 채팅 상대방 사용자 정보를 포함하고 있다. 채팅 상대방 리스트 데이터는 채팅할 상대방, 예컨대 클라이언트(306)가 채팅할 상대방으로 등록한 클라이언트들의 명단에 관한 데이터이다. 채팅 상대방 상태 데이터는 채팅 상대방 리스트에 등록되어 있는 클라이언트들 각각에 대한 현재 상태(예컨대, 서버(302)에 로그인/로그아웃 및 자리비움 등)를 나타내는 데이터이다. 채팅 상대방 사용자 정보는 전술 한 사용자 정보와 동일한 데이터로 구성되어 있으며, 예를 들어 클라이언트(306)가 클라이언트(308)와 채팅하는 경우, 채팅 상대방인 클라이언트(308)의 사용자 정보를 의미한다.The chat counterpart information includes chat counterpart list data, chat counterpart status data, and chat counterpart user information. The chat partner list data is data about a list of clients to chat with, for example, clients 306 registered as chat partners. The chat partner status data is data indicating a current status (eg, login / logout and away from the server 302) for each of the clients registered in the chat partner list. The chat counterpart user information is composed of the same data as the above-described user information. For example, when the client 306 chats with the client 308, the chat counterpart user information means user information of the client 308 that is the chat counterpart.

도 4를 참조하면, 본 발명에 따른 캐릭터 엔진의 블럭도가 도시되어 있다. 도 4에 도시한 바와 같이, 본 발명에 따른 캐릭터 엔진들(306-2, 308-2, 308-2) 각각은 애니메이션 데이터 전처리부(402), 캐릭터 관리부(404), 메시지 분석부(406), 그래픽 출력부(408)를 포함하고 있다.4, a block diagram of a character engine in accordance with the present invention is shown. As shown in FIG. 4, each of the character engines 306-2, 308-2, and 308-2 according to the present invention includes an animation data preprocessor 402, a character manager 404, and a message analyzer 406. And a graphic output unit 408.

애니메이션 데이터 전처리부(402)는 채팅 엔진을 통해 서버(302)(도 3 참조)로부터 수신하는 사용자 정보 및 채팅 상대방 사용자 정보 중에서 클라이언트들(306, 308, 310) 각각의 캐릭터 및 이의 애니메이션과 연관된 캐릭터 데이터를 미리 가공, 즉 사전설정된 데이터 형식으로 재구성하여, 캐릭터 또는 캐릭터의 애니메이션 디스플레이 단계에서 처리 속도를 증대시키기 위한 기능을 수행한다. 상세하게, 애니메이션 데이터 전처리부(402)는 클라이언트들(306, 308, 310)에 대한 새로운 캐릭터 또는 현재 디스플레이되는 캐릭터의 새로운 애니메이션을 출력할 필요가 있을 때만 동작하여 수신한 캐릭터 데이터를 색인목록(index list) 형식으로 재구성한다. 이와 같이, 애니메이션 데이터 전처리부(402)가 캐릭터 데이터를 색인목록 형식으로 재구성하면, 캐릭터 또는 이의 애니메이션 디스플레이시 필요한 그래픽 이미지 각각에 대응하는 외곽선 데이터를 실시간으로 추출하여 디스플레이하지 않고, 이미 마련된 색인목록을 통해 디스플레이 해야 할 그래픽 이미지와 그 마련된 색인과 동일한 색인을 갖는 미리 생성된 외곽선 데이터를 호출 하는 형식으로 디스플레이할 수 있어, 채팅시 캐릭터의 애니메이션 디스플레이에 따른 클라이언트들(306, 308, 310)의 부하를 줄이고 처리 속도를 높일 수 있는 효과가 있다. 애니메이션 데이터 전처리부(402)의 구조 및 동작에 대한 상세한 설명은 도 5 및 도 10을 참조하여 후술하기로 한다.The animation data preprocessor 402 is a character associated with each character of the clients 306, 308, 310 and their animations among the user information and the chat partner user information received from the server 302 (see FIG. 3) through the chat engine. The data is processed in advance, that is, reconstructed into a predetermined data format, thereby performing a function for increasing processing speed in the character or the animation display step of the character. In detail, the animation data preprocessor 402 operates only when it is necessary to output a new animation for the clients 306, 308, 310 or a new animation of the currently displayed character, thereby indexing the received character data. list). As such, when the animation data preprocessing unit 402 reconstructs the character data into an index list format, the index data corresponding to each character or graphic image required for displaying the animation is extracted in real time, and the index data is not displayed in real time. Graphical images to be displayed and pre-generated outline data having the same indexes as the prepared indexes can be displayed in the form of calling, so that the load of the clients 306, 308, 310 according to the animation display of the character during the chat can be displayed. It has the effect of reducing the speed and processing speed. Details of the structure and operation of the animation data preprocessor 402 will be described later with reference to FIGS. 5 and 10.

캐릭터 관리부(404)는 캐릭터 및 이의 애니메이션을 디스플레이할 때, 즉 클라이언트 자신의 캐릭터 및 이의 애니메이션을 디스플레이할 때와 채팅 상대방 클라이언트의 캐릭터 및 이의 애니메이션을 디스플레이할 때, 디스플레이되는 캐릭터들을 관리하는 기능을 수행한다.The character manager 404 manages the displayed characters when displaying the character and its animation, that is, when displaying the client's own character and its animation and when displaying the character of the chat counterpart client and its animation. do.

상세하게, 캐릭터 관리부(404)는 후술하는 바와 같이 3가지의 기능을 갖는다. 캐릭터 관리부(404)의 첫 번째 기능은 다수의 클라이언트(306, 308, 310)를 나타내는 각각의 캐릭터를 제어하는 독립적인 모듈인 캐릭터 모듈의 생성과 소멸을 담당한다. 캐릭터 관리부(404)는 캐릭터 엔진을 제어하는 채팅 엔진으로부터 캐릭터 모듈에 대한 생성 및 소멸의 명령을 수신한다. 즉, 캐릭터 관리부(404)는 본 발명에 따른 채팅 프로세스 수행시 채팅 상대방 클라이언트 및 클라이언트 자신의 캐릭터들 및 이들의 애니메이션을 모니터 상에 디스플레이할 필요가 있을 때 또는 새로운 캐릭터를 디스플레이할 필요가 있을 때, 애니메이션 데이터 전처리부(402)에서 색인목록 형식으로 재구성된 캐릭터 데이터에 근거하여 새로운 캐릭터 모듈들을 생성하고, 채팅 프로세스 종료로 인해 채팅 상대방 클라이언트 및 클라이언트 자신의 캐릭터들을 더 이상 디스플레이할 필요가 없을 때 이들에 대응하는 캐릭터 모듈들을 소멸시킨다.In detail, the character manager 404 has three functions as described later. The first function of the character manager 404 is responsible for the generation and destruction of character modules, which are independent modules that control each character representing a plurality of clients 306, 308, 310. The character manager 404 receives a generation and destruction command for the character module from the chat engine that controls the character engine. That is, when the character manager 404 needs to display the chat counterpart client and the client's own characters and their animations on the monitor or perform a new character when performing the chat process according to the present invention, The animation data preprocessor 402 generates new character modules based on the character data reconstructed in the index list format, and when the chat process client no longer needs to display the characters of the chat partner client and their own characters due to the termination of the chat process. Destroy the corresponding character modules.

캐릭터 관리부(404)의 두 번째 기능은 시간에 따른 프레임 전환을 통해 클라이언트 자신 및/또는 채팅 상대방 클라이언트의 캐릭터들에 대한 애니메이션을 구현하는 데 필요한 그래픽 이미지 색인 및 좌표 데이터가 갱신되었는지 여부를 검사, 즉 캐릭터 모듈의 현재 상태를 검사하고, 색인목록 형식의 캐릭터 데이터로부터 캐릭터의 애니메이션을 구현하는 데 필요한 좌표 데이터와 그래픽 이미지 데이터 색인을 추출하여 통합한 다음 그래픽 출력부(408)로 전달한다. 캐릭터 관리부(404)의 세 번째 기능은 생성된 캐릭터 모듈에 애니메이션 색인을 설정하여, 대응하는 캐릭터에 대한 새로운 애니메이션을 수행하도록 한다. 여기서, 애니메이션 색인은 후술할 메시지 분석부(406)로부터 전송된다. 예를 들면, 캐릭터가 웃는 애니메이션에 대한 애니메이션 색인 및 캐릭터의 식별자가 메시지 분석부(406)로부터 전달되면, 캐릭터 관리부(404)는 수신한 애니메이션 색인을 해당하는 캐릭터 모듈에 설정함으로써 현재 디스플레이되는 캐릭터에 대한 새로운 애니메이션을 수행하도록 한다. 캐릭터 관리부(404)에 의해 생성되는 캐릭터 모듈의 동작에 대한 상세한 설명은 도 11을 참조하여 후술하기로 한다.The second function of the character manager 404 is to check whether the graphic image index and coordinate data required to implement animations for the characters of the client itself and / or the chat partner client through frame switching over time is updated, i.e. The current state of the character module is inspected, coordinate data and graphic image data indexes necessary to implement the animation of the character are extracted from the character data in the index list format, and then transferred to the graphic output unit 408. The third function of the character manager 404 sets an animation index on the generated character module to perform a new animation on the corresponding character. Here, the animation index is transmitted from the message analyzer 406 which will be described later. For example, when an animation index and a character identifier of the animation for which the character is smiling are transmitted from the message analyzer 406, the character manager 404 sets the received animation index to the corresponding character module to display the currently displayed character. Let's perform a new animation for A detailed description of the operation of the character module generated by the character manager 404 will be described later with reference to FIG. 11.

메시지 분석부(406)는 채팅 동작중 송수신되는 통신 메시지를 분석하는 기능을 수행한다. 메시지 분석부(406)는 다수의 클라이언트(306, 308, 310) 각각에 마련된 채팅 엔진(306-1, 308-1, 310-1)으로부터 통신 메시지가 입력되면 동작을 개시한다. 통신 메시지는 채팅 엔진(306-1, 308-1, 310-1)으로부터 전송되는 것으로, 캐릭터의 식별자 및 채팅 텍스트를 포함한다. 예를 들어, 클라이언트(306)가 채팅 텍스트를 클라이언트(308)로 전송하려는 경우, 채팅 텍스트 입력을 완료(예컨 대, 엔터(enter)키를 입력) 했을때, 입력한 클라이언트를 나타내는 캐릭터의 식별자(즉, 클라이언트(306)의 식별자) 및 입력된 텍스트를 포함하는 통신 메시지가 생성된다. 이때, 생성된 통신 메시지는 클라이언트(306)의 채팅 엔진(306-1)으로 입력된다. 이러한 통신 메시지는 채팅 당사자인 클라이언트(306)와 채팅 상대방인 클라이언트(308)가 모두 사용한다.The message analyzer 406 analyzes a communication message transmitted and received during the chat operation. The message analyzer 406 starts an operation when a communication message is input from the chat engines 306-1, 308-1, 310-1 provided in the plurality of clients 306, 308, 310. The communication message is sent from the chat engines 306-1, 308-1, 310-1 and includes an identifier of the character and chat text. For example, if the client 306 wants to send the chat text to the client 308, when the chat text is completed (e.g., an enter key is input), the identifier of the character representing the entered client ( That is, a communication message is generated that includes the identifier of the client 306) and the input text. At this time, the generated communication message is input to the chat engine 306-1 of the client 306. This communication message is used by both the client 306 as a chat party and the client 308 as a chat counterpart.

클라이언트(306)의 채팅 엔진(306-1)은 입력된 통신 메시지 내의 채팅 텍스트를 클라이언트(306)에 대한 캐릭터에 관한 것으로 분석하여 이의 캐릭터 애니메이션에 관한 정보로서 사용한다. 클라이언트(308)의 채팅 엔진(308-1)은 통신망(304)을 통해 수신된 통신 메시지를 분석하여 클라이언트(306)의 캐릭터 애니메이션에 관한 정보로서 사용한다. 이와 같이, 클라이언트(306)의 통신 메시지 분석과 클라이언트(308)의 통신 메세지 분석이 동일한 통신 메시지에 근거하여 이루어진다. 통신 메시지는 클라이언트들(306,308)에서 동일한 애니메이션 정보, 즉 클라이언트(306)에서는 자신이 입력한 채팅 텍스트와 자신의 캐릭터에 대한 애니메이션을 위한 정보로, 클라이언트(308)에서는 클라이언트(306)의 채팅 텍스트와 캐릭터 애니메이션 정보로 사용된다.The chat engine 306-1 of the client 306 analyzes the chat text in the input communication message as relating to the character for the client 306 and uses it as information about its character animation. The chat engine 308-1 of the client 308 analyzes the communication message received through the communication network 304 and uses it as information about the character animation of the client 306. In this manner, the communication message analysis of the client 306 and the communication message analysis of the client 308 are performed based on the same communication message. The communication message is the same animation information in the clients 306 and 308, namely, the chat text input by the client 306 and the animation text for the character of the character. Used as character animation information.

메시지 분석부(406)는 후술하는 바와 같이 2가지 방식으로 통신 메시지를 분석한다. 첫 번째 방식은 채팅에 참가하는 클라이언트들 각각에 마련된 메시지 분석부(406)가 송수신한 통신 메시지를 분석, 즉 클라이언트들 각각에 마련된 채팅 텍스트 목록에 등록된 단어 및/또는 문장들과, 송수신한 통신 메시지의 채팅 텍스트에 포함된 단어 및/또는 문장들의 비교를 통해, 대응하는 애니메이션 색인을 추 출하는 방식이다. 여기서, 채팅 텍스트 목록은 애니메이션 색인에 맞추어 이전에 클라이언트들의 사전설정된 장소에 등록 및 저장되어 있는 단어 및/또는 문장들의 집합이며, 애니메이션 색인은 후술할 애니메이션 파일 목록과 연동되어 있다. 두 번째 방식은 채팅에 참가하는 클라이언트들이 통신 메시지를 채팅 상대방 클라이언트로 송신하기 전에 이에 포함된 채팅 텍스트를 분석하여 획득한 애니메이션 색인을 송신할 통신 메시지에 직접 삽입함으로써, 통신 메시지를 송신할 클라이언트에 마련된 메시지 분석부(406)가 통신 메시지 분석 과정을 생략하고 바로 그 애니메이션 색인을 이용하며, 채팅 상대방 클라이언트에 마련된 메시지 분석부(406)가 수신한 통신 메시지에 삽입된 애니메이션 색인을 바로 추출하여 사용하는 방식이다. 즉, 메시지 분석부(406)는 통신 메시지내 채팅 텍스트를 분석하고, 분석된 채팅 텍스트 내의 단어 및/또는 문장과 이미 마련된 채팅 텍스트 목록과 비교하여 일치하는 단어 및/또는 문장이 검색되면, 이에 대응하는 애니메이션 색인 및 캐릭터의 식별자를 캐릭터 관리부(404)로 전달한다.The message analyzer 406 analyzes a communication message in two ways as described below. The first method analyzes the communication message transmitted and received by the message analyzer 406 provided to each of the clients participating in the chat, that is, the words and / or sentences registered in the chat text list provided to each of the clients, and the communication transmitted and received. By comparing words and / or sentences included in the chat text of the message, a corresponding animation index is extracted. Here, the chat text list is a set of words and / or sentences previously registered and stored in a predetermined place of clients according to the animation index, and the animation index is linked with the animation file list to be described later. In the second method, the clients participating in the chat analyze the chat text contained in the chat message directly before sending the communication message to the chat counterpart client and insert the animation index obtained directly into the communication message to be transmitted. The message analysis unit 406 skips the communication message analysis process and immediately uses the animation index, and the message analysis unit 406 provided in the chat counterpart client immediately extracts and uses the animation index inserted in the received communication message. to be. That is, the message analyzing unit 406 analyzes the chat text in the communication message, compares the words and / or sentences in the analyzed chat text with a list of already prepared chat texts, and if the corresponding words and / or sentences are found, the corresponding message and / or sentences are detected. The animation index and the identifier of the character are transmitted to the character manager 404.

그래픽 출력부(408)는 캐릭터 관리부(404)로부터 그래픽 이미지 데이터 색인, 좌표 데이터, 캐릭터의 식별자(즉, 통합 데이터)를 수신한 다음, 모니터 상에 현재 디스플레이되고 있는 캐릭터들 중 캐릭터 관리부(404)로부터 수신한 식별자에 대응하는 캐릭터를 통합 데이터에 근거하여 갱신, 즉 애니메이션 상태를 갱신하고 나머지 캐릭터는 갱신하지 않는다. 예컨대, 그래픽 출력부(408)는 캐릭터 관리부(404)로부터 수신한 통합 데이터 중 그래픽 이미지 데이터 색인에 대응하는 외곽선 데이터(전술한 바와 같이, 그래픽 이미지 데이터 내에 포함됨)로, 현재 디 스플레이되고 있는 캐릭터들 중 수신한 식별자에 대응하는 캐릭터에 대한 외곽선 데이터를 갱신한 다음 이를 디스플레이한다. 캐릭터 관리부(404)에서는 사전설정된 타이밍에 맞추어 캐릭터의 식별자 및 통합 데이터를 전송하기 때문에, 그래픽 출력부(408)는 데이터 변동이 있을 경우만 해당하는 캐릭터를 갱신하여 디스플레이 한다. 이렇게 하는 이유는 캐릭터를 최소한으로 갱신함으로써 애니메이션 처리 속도를 단축시키기 위한 것이다.The graphic output unit 408 receives the graphic image data index, the coordinate data, and the identifier of the character (ie, integrated data) from the character manager 404, and then the character manager 404 of the characters currently displayed on the monitor. The character corresponding to the identifier received from is updated based on the integrated data, that is, the animation state is updated, and the remaining characters are not updated. For example, the graphic output unit 408 is outline data corresponding to the graphic image data index among the integrated data received from the character manager 404 (included in the graphic image data as described above), and displays the characters currently being displayed. The outline data for the character corresponding to the received identifier is updated and then displayed. Since the character manager 404 transmits the identifier and the integrated data of the character at a predetermined timing, the graphic output unit 408 updates and displays the corresponding character only when there is a data change. The reason for doing this is to speed up the animation process by updating the character to a minimum.

도 5를 참조하면, 도 4에 도시된 애니메이션 데이터 전처리부(402)의 블럭도가 도시되어 있다. 도 5에 도시한 바와 같이, 본 발명에 따른 애니메이션 데이터 전처리부(402)는 데이터 분석부(502), 애니메이션 파일목록 생성부(504), 애니메이션 파일 전처리부(506)를 포함하고 있다.Referring to FIG. 5, a block diagram of the animation data preprocessor 402 shown in FIG. 4 is shown. As shown in FIG. 5, the animation data preprocessor 402 according to the present invention includes a data analyzer 502, an animation file list generator 504, and an animation file preprocessor 506.

데이터 분석부(502)는 채팅 엔진을 통해 서버(302)(도 3 참조)로부터 수신한 사용자 정보 및 채팅 상대방 정보 중에서 캐릭터 데이터를 분석하여 이를 애니메이션 파일 목록 생성부(504)로 전송한다. 환언하면, 데이터 분석부(502)는 수신한 캐릭터 데이터를 분석하여 다수의 애니메이션 파일 각각의 ID를 획득한 다음 이를 애니메이션 파일 목록 생성부(504)로 전송한다. 애니메이션 파일 목록 생성부(504)는 데이터 분석부(502)로부터 수신한 다수의 애니메이션 파일 각각의 ID에 근거하여 캐릭터의 애니메이션을 디스플레이할 때 사용될 애니메이션 파일 목록을 생성하여 이를 애니메이션 파일 전처리부(506)로 전송한다. 애니메이션 파일 전처리부(506)는 애니메이션 파일 목록 생성부(504)로부터 수신한 애니메이션 파일 목록에 포함된 모든 애니메이션 파일을 전처리하여 애니메이션 자료 구조, 즉 색인 목록 형식의 계층적 자료구조를 생성한다.The data analyzer 502 analyzes character data among user information and chat counterpart information received from the server 302 (see FIG. 3) through the chat engine and transmits the character data to the animation file list generator 504. In other words, the data analyzer 502 analyzes the received character data, obtains IDs of each of the plurality of animation files, and then transmits the IDs to the animation file list generator 504. The animation file list generation unit 504 generates an animation file list to be used when displaying the animation of the character based on IDs of each of the plurality of animation files received from the data analysis unit 502, and generates the animation file preprocessor 506. To send. The animation file preprocessor 506 preprocesses all animation files included in the animation file list received from the animation file list generator 504 to generate an animation data structure, that is, a hierarchical data structure in an index list format.

도 10을 참조하면, 애니메이션 파일 전처리부(506)가 애니메이션 파일 목록 생성부(504)로부터 수신한 애니메이션 파일 목록내에 포함된 모든 애니메이션 파일을 전처리하여, 캐릭터의 애니메이션을 디스플레이할 때 캐릭터 관리부(404) 및 그래픽 출력부(408)에서 사용되는 애니메이션 자료 구조를 생성하는 과정을 설명하기 위한 흐름도가 도시되어 있다.Referring to FIG. 10, when the animation file preprocessor 506 preprocesses all animation files included in the animation file list received from the animation file list generator 504 to display an animation of the character, the character manager 404. And a flowchart for explaining a process of generating an animation data structure used in the graphic output unit 408.

먼저, 단계(S1002)에서 애니메이션 파일 전처리부(506)는 애니메이션 파일 목록 생성부(504)로부터 애니메이션 파일 목록을 수신한 다음, 단계(S1004)로 진행한다.First, in step S1002, the animation file preprocessor 506 receives the animation file list from the animation file list generation unit 504, and then proceeds to step S1004.

단계(S1004)에서, 애니메이션 파일 전처리부(506)는 수신한 애니메이션 파일 목록내에 포함된 다수의 애니메이션 파일 각각으로부터 프레임 데이터를 추출하여 사전설정된 장소에 저장한다. 추출한 프레임 데이터를 저장하는 사전설정된 장소는 다수의 클라이언트(306, 308, 310) 각각에 마련될 수 있다. 캐릭터에 대한 하나의 애니메이션은 다수의 프레임으로 구성되므로, 애니메이션 파일 전처리부(506)는 프레임 갯수 만큼의 프레임 데이터를 추출한다. 이러한 프레임 데이터 각각은 색인(index)을 갖고 있다. 상세하게, 프레임 데이터 색인은 1, 2, 3, …과 같이 순차적으로 1씩 증가하는 것으로 애니메이션 파일 생성시 사용되는 전용 편집기에서 작성된 순서 그대로 설정된다.In step S1004, the animation file preprocessor 506 extracts frame data from each of the plurality of animation files included in the received animation file list and stores the frame data in a predetermined place. A preset place for storing the extracted frame data may be provided in each of the plurality of clients 306, 308, 310. Since one animation for the character is composed of a plurality of frames, the animation file preprocessor 506 extracts frame data as many as the number of frames. Each of these frame data has an index. Specifically, the frame data indexes are 1, 2, 3,... It is incremented by 1 sequentially as shown in the order of creation in the dedicated editor used when creating animation files.

단계(S1006)에서, 애니메이션 파일 전처리부(506)는 수신한 애니메이션 파일 목록내에 포함된 다수의 애니메이션 파일 각각으로부터 그래픽 이미지 데이터를 추 출하여 사전절성된 장소에 저장한다. 전술한 바와 같이, 그래픽 이미지 데이터는 캐릭터의 외곽선 데이터를 더 포함하고 있다. 이러한 그래픽 이미지 데이터 각각은 프레임 데이터와 마찬가지로 색인(즉, 그래픽 이미지 데이터 색인)을 갖고 있다. 애니메이션 파일 전처리부(506)는 프레임 데이터 색인에 근거하여 다수의 애니메이션 파일 각각으로부터 추출한 프레임 데이터의 그래픽 이미지 데이터 색인에 대응하는 그래픽 이미지 데이터를 추출한 다음 이를 그래픽 이미지 데이터 색인과 연동시켜 사전설정된 장소에 저장한다.In step S1006, the animation file preprocessor 506 extracts the graphic image data from each of the plurality of animation files included in the received animation file list and stores the graphic image data in a pre-formed place. As described above, the graphic image data further includes outline data of the character. Each of these graphic image data has an index (i.e., graphic image data index) like frame data. The animation file preprocessor 506 extracts the graphic image data corresponding to the graphic image data index of the frame data extracted from each of the plurality of animation files based on the frame data index, and then stores the graphic image data in a predetermined place in association with the graphic image data index. do.

단계(S1008)에서, 애니메이션 파일 전처리부(506)는 다수의 애니메이션 파일들 각각의 ID에 대응하는 아이템 데이터, 즉 애니메이션 파일 내에 포함된 그래픽 이미지 데이터와 합성될 아이템 데이터가 존재하는지 여부를 판단한다. 단계(S1008)에서의 판단 결과가 부정, 즉 그래픽 이미지 데이터와 합성될 아이템 데이터가 존재하지 않는 경우, 애니메이션 파일 전처리부(506)는 단계(S1016)로 진행한다. 이와 달리, 단계(S1008)에서의 판단 결과가 긍정, 즉 그래픽 이미지 데이터와 합성될 아이템 데이터가 존재하는 경우, 애니메이션 파일 전처리부(506)는 단계(S1010)로 진행한다.In step S1008, the animation file preprocessor 506 determines whether there is item data corresponding to IDs of each of the plurality of animation files, that is, item data to be synthesized with graphic image data included in the animation file. If the determination result in step S1008 is negative, that is, there is no item data to be synthesized with the graphic image data, the animation file preprocessor 506 proceeds to step S1016. On the contrary, if the determination result in step S1008 is affirmative, that is, the item data to be synthesized with the graphic image data exists, the animation file preprocessor 506 proceeds to step S1010.

단계(S1010)에서, 애니메이션 파일 전처리부(506)는 그래픽 이미지 데이터와 해당하는 아이템 데이터를 합성한다. 예를 들면, 도 14에 도시한 바와 같이, (a)와 같은 그래픽 이미지 데이터와 (b)와 같은 아이템 데이터를 합성하여, (c)와 같은 합성 그래픽 이미지 데이터를 생성한다. 이렇게 생성된 합성 그래픽 이미지 데이터는 원래의 그래픽 이미지 데이터(예컨대, 도 4의 (a))와 교체된다. 이때, 원 래의 그래픽 이미지 데이터는 파기되며, 합성 그래픽 이미지 데이터가 파기된 그래픽 이미지 데이터 색인을 갖게된다. 예를 들면, 디스플레이될 캐릭터에 대응하는 그래픽 이미지 데이터 색인이 0번인 경우, 생성된 합성 그래픽 이미지 데이터가 색인 0번으로 설정되고, 이에 대응하는 프레임 데이터에 포함된 좌표 데이터를 갱신한다.In step S1010, the animation file preprocessor 506 synthesizes graphic image data and corresponding item data. For example, as shown in Fig. 14, the graphic image data as shown in (a) and the item data as shown in (b) are synthesized to generate composite graphic image data as shown in (c). The synthetic graphic image data generated in this way is replaced with the original graphic image data (eg, FIG. 4A). At this time, the original graphic image data is discarded, and the composite graphic image data has a discarded graphic image data index. For example, when the graphic image data index corresponding to the character to be displayed is 0, the generated composite graphic image data is set to index 0, and the coordinate data included in the frame data corresponding thereto is updated.

단계(S1012)에서, 애니메이션 파일 전처리부(506)는 단계(S1010)에서 생성된 합성 그래픽 이미지 데이터에 추가로 합성될 아이템 데이터가 존재하는 여부를 판단한다. 단계(S1012)에서의 판단 결과가 긍정, 즉 도 14에 도시된 바와 같이, 단계(S1010)에서 생성된 합성 그래픽 이미지 데이터 (c)와 합성될 아이템 데이터 (d)가 존재하는 경우, 애니메이션 파일 전처리부(506)는 단계(S1010)로 리턴(return)하여 전술한 동작을 수행함으로써, 도 14의 (e)와 같은 합성 그래픽 이미지 데이터를 생성한다. 이와 달리, 단계(S1012)에서의 판단 결과가 부정, 즉 더 이상 합성 그래픽 이미지 데이터와 추가로 합성될 아이템 데이터가 존재하지 않을 경우, 애니메이션 파일 전처리부(506)는 단계(S1014)로 진행한다.In step S1012, the animation file preprocessor 506 determines whether there is item data to be synthesized in addition to the composite graphic image data generated in step S1010. If the determination result in step S1012 is affirmative, i.e., as shown in Fig. 14, the composite graphic image data c generated in step S1010 and the item data d to be synthesized exist, the animation file preprocessing The unit 506 returns to step S1010 to perform the above-described operation, thereby generating composite graphic image data as shown in FIG. On the contrary, when the determination result in step S1012 is negative, that is, there is no longer the composite graphic image data and the item data to be further synthesized, the animation file preprocessor 506 proceeds to step S1014.

단계(S1014)에서, 애니메이션 파일 전처리부(506)는 합성 그래픽 이미지 데이터로부터 외곽선 데이터를 추출한다. 예를 들면, 도 12에 도시한 바와 같이 합성 그래픽 이미지 데이터(도 12의 (a) 참조)에서 바탕 화면으로 채워질 영역(검은색으로 도시됨)과 캐릭터를 나타내는 그래픽 이미지 영역(흰색으로 도시됨)을 분리한다(도 12의 (b) 참조).In step S1014, the animation file preprocessor 506 extracts outline data from the composite graphic image data. For example, as shown in Fig. 12, in the composite graphic image data (see Fig. 12A), an area to be filled with a desktop (shown in black) and a graphic image area (shown in white) representing a character are shown. Are separated (see FIG. 12 (b)).

한편, 애니메이션 파일 전처리부(506)는 단계(S1016)에서 다수의 애니메이션 파일에 포함된 그래픽 이미지 데이터 각각으로부터 외곽선 데이터를 추출한다. 즉, 애니메이션 파일 전처리부(506)는 단계(S1008)에서 판단한 결과와 같이, 더 이상 합성될 아이템 데이터가 존재하지 않기 때문에, 다수의 애니메이션 파일에 포함된 원래의 그래픽 이미지 데이터 각각으로부터 외곽선 데이터를 추출한다.Meanwhile, the animation file preprocessor 506 extracts outline data from each of the graphic image data included in the plurality of animation files in step S1016. That is, the animation file preprocessing unit 506 extracts the outline data from each of the original graphic image data included in the plurality of animation files since there is no item data to be synthesized any more, as a result determined in step S1008. do.

단계(S1018)에서, 애니메이션 파일 전처리부(506)는 단계(S1014) 또는 단계(S1016)에서 추출된 외곽선 데이터를 사전설정된 장소에 저장한다. 추출된 외곽선 데이터를 저장하기 위한 사전설정된 장소는 전술한 바와 마찬가지로 클라이언트들(306, 308, 310) 각각에 마련될 수 있다.In step S1018, the animation file preprocessor 506 stores the outline data extracted in step S1014 or S1016 in a predetermined place. A preset location for storing the extracted outline data may be provided in each of the clients 306, 308, 310 as described above.

단계(S1020)에서, 애니메이션 파일 전처리부(506)는 현재 처리된 그래픽 이미지 데이터가 마지막 그래픽 이미지 데이터인지를 판단, 즉 다수의 애니메이션 파일 내에 포함된 그래픽 이미지 데이터들 모두에 대하여 전처리를 완료하였는지 여부를 판단한다. 단계(S1020)에서의 판단 결과가 부정, 즉 전처리해야 할 그래픽 이미지 데이터가 아직 남아있는 경우, 애니메이션 파일 전처리부(506)는 단계(S1008)로 리턴하여 전술한 바와 같은 동작을 수행한다. 이와 달리, 단계(S1020)에서의 판단 결과가 긍정, 즉 다수의 애니메이션 파일 내에 포함된 그래픽 이미지 데이터들 모두에 대해 전처리를 완료한 경우, 애니메이션 파일 전처리부(506)는 단계(S1022)로 진행한다.In step S1020, the animation file preprocessor 506 determines whether the currently processed graphic image data is the last graphic image data, that is, whether or not the preprocessing has been completed for all the graphic image data included in the plurality of animation files. To judge. If the determination result in step S1020 is negative, that is, the graphic image data to be preprocessed still remains, the animation file preprocessor 506 returns to step S1008 to perform the operation as described above. In contrast, when the determination result in step S1020 is affirmative, that is, preprocessing for all of the graphic image data included in the plurality of animation files is completed, the animation file preprocessor 506 proceeds to step S1022. .

단계(S1022)에서, 애니메이션 파일 전처리부(506)는 추출한 프레임 데이터, 그래픽 이미지 데이터, 그래픽 이미지 데이터 색인을 대응하는 애니메이션 파일과 연동시킨 애니메이션 자료 구조, 즉 색인목록 형식의 계층적 자료 구조를 구성한 다음 이를 사전설정된 장소에 저장한다. 환언하면, 애니메이션 파일 전처리부(506)는 각각의 애니메이션 파일에 포함되어 있으며, 캐릭터의 애니메이션을 디스플레이하기 위한 모든 데이터를 색인목록 형식으로 정리한 자료 구조를 구성한 다음 이를 사전설정된 장소에 저장한다.In step S1022, the animation file preprocessing unit 506 constructs an animation data structure in which the extracted frame data, graphic image data, and graphic image data index are associated with a corresponding animation file, that is, a hierarchical data structure in the form of an index list. Store it in a preset location. In other words, the animation file preprocessor 506 is included in each animation file, constructs a data structure in which all data for displaying the animation of the character is organized in an index list format, and stores the data structure in a predetermined place.

도 11을 참조하면, 도 4에 도시한 캐릭터 관리부(404)에 의해 제어되는 캐릭터 모듈의 동작을 설명하기 위한 흐름도가 도시되어 있다.Referring to Fig. 11, a flowchart for explaining the operation of the character module controlled by the character manager 404 shown in Fig. 4 is shown.

먼저, 단계(S1102)에서 캐릭터 모듈은 캐릭터 관리부(404)의 제어하에 생성되어, 캐릭터 관리부(404)로부터 캐릭터 식별자 및 애니메이션 색인을 수신한다.First, in step S1102, the character module is generated under the control of the character manager 404 to receive a character identifier and an animation index from the character manager 404.

단계(S1104)에서, 캐릭터 모듈은 수신한 애니메이션 색인에 대응하는 애니메이션 파일을 사전설정된 저장 장소로부터 검색하고, 검색된 애니메이션 파일 내의 프레임 데이터 색인 중 최초 색인을 갖는 프레임 데이터 색인을 추출한다. 예를 들어, 캐릭터가 웃는 애니메이션에 관한 애니메이션 파일이 5 개의 프레임으로 구성되어 있다면, 프레임 데이터 0, 프레임 데이터 1, 프레임 데이터 2, 프레임 데이터 3, 프레임 데이터 4로 이어져 하나의 웃는 애니메이션이 완성되므로, 이들 프레임 데이터 중 최초의 프레임 데이터 색인, 즉 프레임 데이터 색인 0을 추출한다.In step S1104, the character module retrieves an animation file corresponding to the received animation index from a preset storage location, and extracts a frame data index having the first index among the frame data indexes in the retrieved animation file. For example, if an animation file about a smiley character is composed of five frames, one smiley animation is completed by connecting to frame data 0, frame data 1, frame data 2, frame data 3, and frame data 4, The first frame data index, i.e., frame data index 0, of these frame data is extracted.

단계(S1106)에서, 캐릭터 모듈은 추출된 최초 프레임 데이터 색인, 즉 프레임 데이터 색인 0과 연관된 그래픽 이미지 데이터 색인을 검색한다. 전술한 바와 같이, 합성 그래픽 이미지가 생성된 경우 원래의 그래픽 이미지 데이터 색인은 그대로 사용되므로, 그래픽 이미지 데이터 색인만을 검색하여도 캐릭터의 애니메이션 구현시에 생성된 합성 그래픽 이미지 데이터가 사용될 수 있다.In step S1106, the character module retrieves the extracted first frame data index, that is, the graphic image data index associated with the frame data index 0. As described above, since the original graphic image data index is used as it is when the composite graphic image is generated, even if only the graphic image data index is searched, the synthesized graphic image data generated when the character is implemented may be used.

단계(S1108)에서, 캐릭터 모듈은 검색된 그래픽 이미지 데이터 색인에 대응하는 외곽선 데이터를 검색한다. 여기서, 외곽선 데이터는 그래픽 이미지 데이터 색인에 일대일로 대응되어 있다.In step S1108, the character module retrieves outline data corresponding to the retrieved graphic image data index. Here, the outline data corresponds one-to-one to the graphic image data index.

단계(S1110)에서, 캐릭터 모듈은 추출한 프레임 데이터 색인에 대응하는 프레임 데이터로부터 수신한 캐릭터 식별자에 대응하는 캐릭터에 대한 좌표 데이터 및 검색한 그래픽 이미지 데이터 색인을 캐릭터 관리부(404)로 전송한다. 이때, 캐릭터 모듈은 캐릭터 식별자를 캐릭터 관리부(404)로 또한 전송한다. 그러면, 캐릭터 관리부(404)는 캐릭터 모듈로부터 수신한 좌표 데이터, 그래픽 이미지 데이터 색인, 캐릭터 식별자를 그래픽 출력부(408)로 전송한다. 그래픽 출력부(408)는 전술한 바와 같이, 수신한 좌표 데이터 및 그래픽 이미지 데이터 색인에 해당하는 그래픽 이미지 데이터를 애니메이션 파일로부터 호출하고, 호출한 그래픽 이미지 데이터를 사용하여 캐릭터 식별자에 대응하는 캐릭터의 애니메이션을 디스플레이한다. 이때, 그래픽 출력부(408)는 외곽선 데이터가 그래픽 이미지 데이터 색인과 동일한 색인을 갖고 있으므로, 외곽선 데이터를 애니메이션 파일로부터 호출하여 캐릭터의 애니메이션 구현시 사용한다.In operation S1110, the character module transmits the coordinate data of the character corresponding to the character identifier received from the frame data corresponding to the extracted frame data index and the retrieved graphic image data index to the character manager 404. At this time, the character module also transmits the character identifier to the character manager 404. Then, the character manager 404 transmits the coordinate data, the graphic image data index, and the character identifier received from the character module to the graphic output unit 408. As described above, the graphic output unit 408 calls the graphic image data corresponding to the received coordinate data and the graphic image data index from the animation file, and uses the called graphic image data to animate the character corresponding to the character identifier. Is displayed. In this case, since the outline data has the same index as the graphic image data index, the graphic output unit 408 calls the outline data from the animation file and uses the same to implement the animation of the character.

단계(S1112)에서, 캐릭터 모듈은 프레임 데이터의 타이머에 설정된 시간만큼 현재 디스플레이되는 애니메이션의 대기상태를 유지한다.In step S1112, the character module maintains the standby state of the animation currently displayed for the time set by the timer of the frame data.

단계(S1114)에서, 캐릭터 모듈은 대기상태 종료 후, 현재 디스플레이되는 캐릭터의 애니메이션을 완성하기 위해 프레임 데이터 색인을 하나 증가시킨다.In step S1114, after the end of the waiting state, the character module increments the frame data index by one to complete the animation of the currently displayed character.

단계(S1116)에서, 캐릭터 모듈은 증가된 프레임 데이터 색인이 존재하는지 여부를 판단한다. 단계(S1116)에서의 판단 결과가 긍정, 즉 증가된 프레임 데이터 색인이 존재하는 경우, 캐릭터 모듈은 단계(S1106)로 리턴하여 전술한 동작을 수행한다. 이와 달리, 단계(S1116)에서의 판단 결과가 부정, 즉 증가된 프레임 색인이 존재하지 않는 경우, 캐릭터 모듈은 본 발명에 따른 프로세스를 종료하며, 캐릭터 관리부(404)의 제어하에 소멸된다.In step S1116, the character module determines whether there is an increased frame data index. If the determination result in step S1116 is affirmative, that is, there is an increased frame data index, the character module returns to step S1106 to perform the above-described operation. On the contrary, if the determination result in step S1116 is negative, that is, there is no increased frame index, the character module terminates the process according to the present invention and is destroyed under the control of the character manager 404.

도 6을 참조하면, 본 발명에 따라 다수의 클라이언트(306, 308, 310)간에 이루어지는 채팅 프로세스를 설명하기 위한 흐름도가 도시되어 있다.Referring to FIG. 6, a flow diagram for describing a chat process between multiple clients 306, 308, 310 in accordance with the present invention is shown.

먼저, 단계(S602)에서 서버(302) 및 다수의 클라이언트(306, 308, 310)는 본 발명에 따른 채팅 프로세스를 수행하기 위한 초기화를 수행한다.First, in step S602, the server 302 and the plurality of clients 306, 308, 310 perform initialization to perform the chat process according to the present invention.

단계(S604)에서, 다수의 클라이언트(306, 308, 310)는 초기화 단계(S602) 수행 후, 대기 상태를 유지하고 있다. 전술한 단계(S602) 및 단계(S604)에 대한 상세한 설명은 도 7을 참조하여 후술하기로 한다.In step S604, the plurality of clients 306, 308, 310 maintain a standby state after performing the initialization step S602. Detailed description of the above-described step (S602) and step (S604) will be described later with reference to FIG.

단계(S606)에서, 다수의 클라이언트(306, 308, 310) 중 어느 하나의 클라이언트, 예를 들면 클라이언트(306)가 서버(302)로 클라이언트(308)와의 채팅을 요청한다. 본 명세서에서는 설명의 편의를 위해 하나의 클라이언트가 서버(302)로 채팅을 요청하는 것으로 설명하였지만, 이는 예시적인 것으로써 본 발명은 이에 한정되지 않으며, 당업자라면 동시에 다수의 클라이언트(306, 308, 310)가 서버(302)로 채팅 요청을 할 수 있음을 충분히 이해할 수 있을 것이다.In step S606, any one of the plurality of clients 306, 308, 310, for example client 306, requests the server 302 to chat with the client 308. In the present specification, for convenience of description, it is described that one client requests a chat to the server 302. However, the present invention is not limited thereto, and a person skilled in the art can simultaneously manage a plurality of clients 306, 308, and 310. It will be appreciated that) may make a chat request to the server 302.

단계(S608)에서, 서버(302)는 클라이언트(306)로부터의 채팅 요청에 응답하여, 클라이언트(306)와 클라이언트(308)가 채팅을 수행하는데 요구되는 정보를 양 쪽 클라이언트들(306, 308)로 전송한다. 이들 클라이언트(306, 308)간의 채팅은 예를 들어, 피어-투-피어(peer-to-peer) 방식으로 이루어질 수 있으며, 서버(302)가 클라이언트들(306, 308)로 전송하는 정보는 전술한 바와 같이 이들 클라이언트들(306, 308) 각각에 대한 사용자 정보 및 채팅 상대방 정보이다. 상세하게, 서버(302)는 클라이언트(308)에 대한 IP 주소와, 캐릭터 데이터 및 애니메이션 데이터를 포함하는 채팅 상대방 정보와, 사용자 정보를 클라이언트(306)로 전송하고, 클라이언트(306)에 대한 IP 주소와, 캐릭터 데이터 및 애니메이션 데이터를 포함하는 채팅 상대방 정보와, 사용자 정보를 클라이언트(308)로 전송한다.In step S608, the server 302 responds to the chat request from the client 306 to provide information to both clients 306 and 308 that the client 306 and client 308 are required to perform the chat. To send. Chatting between these clients 306, 308 can be, for example, in a peer-to-peer manner, and the information that server 302 sends to clients 306, 308 is described above. As one can see is user information and chat counterpart information for each of these clients 306 and 308. In detail, the server 302 transmits an IP address for the client 308, chat counterpart information including character data and animation data, and user information to the client 306, and an IP address for the client 306. And the other party's information including character data and animation data and user information to the client 308.

단계(S610)에서, 다수의 클라이언트(306, 308) 각각은 서버(302)로부터 수신한 IP 주소와, 사용자 정보, 채팅 상대방 정보에 근거하여 상호간 채팅을 수행한다. 이러한 채팅 프로세스는 후술하는 바와 같이, 본 발명에 따라 동작하는 캐릭터에 기반한 것이며, 이 캐릭터는 채팅시 애니메이션을 수행한다. 전술한 단계(S606) 내지 단계(S610)에 대한 상세한 설명은 도 8을 참조하여 후술하기로 한다.In step S610, each of the plurality of clients 306 and 308 chats with each other based on the IP address received from the server 302, user information, and chat counterpart information. This chat process is based on a character operating in accordance with the present invention, as described below, which performs an animation upon chat. Detailed description of the above-described step (S606) to step (S610) will be described later with reference to FIG.

단계(S612)에서, 클라이언트들(306, 308)은 통신망(304)를 통한 상호 연결을 해지함으로써 채팅 프로세스를 종료한다. 이때, 클라이언트들(306, 308) 각각은 변경된 사용자 정보를 서버(302)로 전송하여, 서버(302)가 클라이언트들(306, 308)에 대한 최신 정보를 획득할 수 있도록 한다.In step S612, the clients 306 and 308 terminate the chat process by terminating the interconnection through the communication network 304. At this time, each of the clients 306 and 308 transmits the changed user information to the server 302 so that the server 302 can obtain the latest information about the clients 306 and 308.

도 7을 참조하면, 도 6의 단계(S602) 및 단계(S604)를 상세하게 설명하기 위한 흐름도가 도시되어 있다. 여기서, 도 6에서와 마찬가지로 클라이언트들(306, 308) 각각이 본 발명에 따른 채팅 프로세스를 수행하고 있는 것으로 가정한다.Referring to FIG. 7, a flowchart for describing in detail S602 and S604 of FIG. 6 is shown. Here, as in FIG. 6, it is assumed that each of the clients 306 and 308 performs the chat process according to the present invention.

먼저, 단계(S702)에서, 클라이언트(306)는 본 발명에 따른 채팅 프로세스를 수행하기 위한 프로그램을 구동시킨다. 즉, 클라이언트(306)는 자체에 마련된 채팅 엔진(306-1) 및 캐릭터 엔진(306-2)을 구동시킨다.First, in step S702, the client 306 runs a program for performing the chat process according to the present invention. That is, the client 306 drives the chat engine 306-1 and the character engine 306-2 provided therein.

단계(S704)에서, 클라이언트(306)의 채팅 엔진(306-1)은 클라이언트(306)의 ID 및 패스워드(password)를 사용하여 서버(302)에 로그인(log-in)한다.In step S704, the chat engine 306-1 of the client 306 logs in to the server 302 using the ID and password of the client 306.

단계(S706)에서, 서버(302)는 사전설정된 장소에 마련된 사용자 데이터베이스(도시하지 않음)를 검색하여 클라이언트(306)의 채팅 엔진(306-1)으로부터 수신한 ID 및 패스워드가 사용자 데이터베이스에 존재하는지 여부를 판단한다. 단계(S706)에서의 판단 결과가 긍정, 즉 클라이언트(306)의 ID 및 패스워드가 사용자 데이터베이스 상에 존재하는 경우, 서버(302)는 단계(S708)로 진행한다. 이와 달리, 단계(S706)에서의 판단 결과가 부정, 즉 클라이언트(306)의 ID 및 패스워드가 사용자 데이터베이스 상에 존재하지 않는 경우, 서버(302)는 본 발명에 따른 모든 프로세스를 종료한다.In step S706, the server 302 searches for a user database (not shown) provided in a predetermined place and checks whether the ID and password received from the chat engine 306-1 of the client 306 exist in the user database. Determine whether or not. If the result of the determination in step S706 is affirmative, that is, the ID and password of the client 306 exist on the user database, the server 302 proceeds to step S708. Alternatively, if the determination result in step S706 is negative, that is, the ID and password of the client 306 do not exist in the user database, the server 302 terminates all processes according to the present invention.

단계(S708)에서, 서버(302)는 클라이언트(306)에게 인증 확인 메시지를 전송한다. 그러면, 클라이언트(306)의 채팅 엔진(306-1)은 인증 확인 메시지를 수신하여 이를 캐릭터 엔진(306-2)으로 전송한다. 예를 들어, 전술한 피어-투-피어 방식으로 클라이언트들(306, 308)간의 채팅을 제어하는 경우, 서버(302)는 클라이언트(306)에 대한 IP 주소를 자체에 마련된 사전설정된 장소에 저장한다.In step S708, the server 302 sends an authentication confirmation message to the client 306. Then, the chat engine 306-1 of the client 306 receives the authentication confirmation message and transmits it to the character engine 306-2. For example, in the case of controlling chat between clients 306 and 308 in the above-described peer-to-peer manner, server 302 stores the IP address for client 306 in its own predetermined location. .

단계(S710)에서, 클라이언트(306)의 채팅 엔진(306-1) 및 캐릭터 엔진(306- 2)은 서버(302)로부터 수신한 인증 확인 메시지에 응답하여, 자신들의 현재 버전(version) 정보를 서버(302)로 전송한다.In step S710, the chat engine 306-1 and the character engine 306-2 of the client 306 respond to the authentication confirmation message received from the server 302 to obtain their current version information. Send to server 302.

단계(S712)에서, 서버(302)는 클라이언트(306)의 채팅 엔진(306-1) 및 캐릭터 엔진(306-2)으로부터 수신한 현재 버전 정보와 자체의 사전설정된 장소에 저장되어 있는 클라이언트(306)의 채팅 엔진 및 캐릭터 엔진에 대한 최신 버전 정보를 비교한다. 단계(S712)의 비교 결과, 수신한 현재 버전 정보가 최신 버전 정보와 일치하지 않는 경우, 즉 클라이언트(306)가 최신 버전의 채팅 엔진(306-1) 및 캐릭터 엔진(306-2)을 구비하고 있지 않은 경우, 서버(302)는 단계(S714)로 진행한다. 이와 달리, 수신한 채팅 엔진(306-1) 및 캐릭터 엔진(306-2)의 현재 버전 정보가 최신 버전 정보와 일치하는 경우, 즉 클라이언트(306)가 최신 버전의 채팅 엔진(306-1) 및 캐릭터 엔진(306-2)을 갖고 있는 경우, 서버(302)는 단계(S718)로 진행한다.In step S712, the server 302 stores the current version information received from the chat engine 306-1 and the character engine 306-2 of the client 306 and the client 306 stored in its preset location. ) Compare the latest version information for the chat engine and character engine. As a result of the comparison in step S712, if the received current version information does not match the latest version information, that is, the client 306 has the latest version of the chat engine 306-1 and the character engine 306-2; If no, the server 302 proceeds to step S714. On the contrary, when the current version information of the received chat engine 306-1 and the character engine 306-2 matches the latest version information, that is, the client 306 is connected to the latest version of the chat engine 306-1 and If it has the character engine 306-2, the server 302 proceeds to step S718.

단계(S714)에서, 서버(302)는 최신 버전의 채팅 엔진 및 캐릭터 엔진을 클라이언트(306)로 전송한다. 그러면, 단계(S716)에서, 클라이언트(306)는 서버(302)로부터 수신한 최신 버전의 채팅 엔진 및 캐릭터 엔진으로 자신의 채팅 엔진(306-1) 및 캐릭터 엔진(306-2)을 갱신한다. 이때, 서버(302)는 클라이언트(306)가 채팅 엔진(306-1) 및 캐릭터 엔진(306-2)을 최신 버전으로 갱신하였는지 여부를 확인하기 위해 전술한 단계(S712)를 한번 더 수행할 수도 있다.In step S714, the server 302 sends the latest version of the chat engine and character engine to the client 306. Then, in step S716, the client 306 updates its chat engine 306-1 and character engine 306-2 with the latest version of the chat engine and character engine received from the server 302. At this time, the server 302 may perform the above-described step S712 once more to confirm whether the client 306 has updated the chat engine 306-1 and the character engine 306-2 to the latest versions. have.

단계(S718)에서, 서버(302)는 클라이언트(306)의 채팅 엔진(306-1) 및 캐릭터 엔진(306-2)이 최신 버전임을 확인하는 버전 확인 메시지를 클라이언트(306)로 전송한다.In step S718, the server 302 sends a version confirmation message to the client 306 confirming that the chat engine 306-1 and the character engine 306-2 of the client 306 are up to date.

단계(S720)에서, 클라이언트(306)는 서버(302)로부터 전송된 버전 확인 메시지에 응답하여, 자신의 채팅 엔진(306-1) 및 캐릭터 엔진(306-2)에 대한 버전 확인을 완료한 다음 단계(S722)로 진행한다. 전술한 바와 같은 단계(S710) 내지 단계(S720)는 클라이언트(306)의 채팅 상대방인 클라이언트(308)에 대해서도 동일하게 수행된다. 이와 같이, 채팅 엔진 및 캐릭터 엔진에 대한 버전 정보를 확인하고 갱신하는 것은 채팅 프로세스 수행시 동일한 캐릭터 및 이에 대한 애니메이션 정보를 가지고 클라이언트들이 채팅을 수행할 수 있도록 하기 위한 것이다.In step S720, the client 306 completes the version check for its chat engine 306-1 and the character engine 306-2 in response to the version check message sent from the server 302. Proceed to step S722. Steps S710 to S720 as described above are similarly performed for the client 308 which is the chat counterpart of the client 306. As such, the checking and updating of the version information for the chat engine and the character engine is to enable clients to chat with the same character and animation information about the chat engine.

단계(S722)에서, 클라이언트(306)의 채팅 엔진(306-1)은 클라이언트(308)와의 채팅에 필요한 사용자 정보 및 채팅 상대방 정보를 서버(302)에게 요청한다.In step S722, the chat engine 306-1 of the client 306 requests the server 302 for user information and chat counterpart information necessary for a chat with the client 308.

단계(S724)에서, 서버(302)는 클라이언트(306)로부터의 사용자 정보 및 채팅 상대방 정보 요청에 응답하여, 해당하는 사용자 정보 및 채팅 상대방 정보를 사용자 데이터베이스에서 검색하고 이를 클라이언트(306)로 전송한다.In step S724, the server 302 retrieves corresponding user information and chat counterpart information from the user database in response to a request for user information and chat counterpart information from the client 306, and sends it to the client 306. .

단계(S726)에서, 클라이언트(306)의 채팅 엔진(306-1)은 서버(302)로부터 수신한 사용자 정보 및 채팅 상대방 정보를 캐릭터 엔진(306-2)으로 전송하고, 수신한 정보 중에서 자신이 필요한 정보만을 선별하여 수신하고 사전설정된 장소에 저장한다.In step S726, the chat engine 306-1 of the client 306 transmits the user information and the chat counterpart information received from the server 302 to the character engine 306-2, and among the received information, Select and receive only the information you need and store it in a preset location.

단계(S728)에서, 클라이언트(306)의 캐릭터 엔진(306-2)은 서버(302)로부터 수신한 사용자 정보 및 채팅 상대방 정보를 사전설정된 저장 장소에 저장한 다음 단계(S730)로 진행한다.In step S728, the character engine 306-2 of the client 306 stores the user information and the chat counterpart information received from the server 302 in a predetermined storage location, and then proceeds to step S730.

단계(S730)에서, 클라이언트(306)의 캐릭터 엔진(306-2)은 채팅 엔진(306-1)을 통해 수신한 사용자 정보에 근거하여 클라이언트(306)의 캐릭터를 디스플레이하기 위한 초기화를 수행한다. 여기서, 초기화를 수행한다는 것은 도 4의 애니메이션 데이터 전처리부(402)가 도 10을 참조하여 설명한 과정을 수행한다는 것을 의미한다.In step S730, the character engine 306-2 of the client 306 performs initialization for displaying the character of the client 306 based on the user information received through the chat engine 306-1. In this case, performing initialization means that the animation data preprocessor 402 of FIG. 4 performs the process described with reference to FIG. 10.

단계(S732)에서, 클라리언트(306)의 캐릭터 엔진(306-2)은 클라이언트(306)를 나타내는 캐릭터를 클라이언트(306)의 모니터 상에 디스플레이한다.In step S732, the character engine 306-2 of the client 306 displays a character representing the client 306 on the monitor of the client 306.

단계(S734)에서, 클라이언트(306)의 채팅 엔진(306-1) 및 캐릭터 엔진(306-2)은 클라이언트(308)와의 채팅을 위한 대기 상태를 유지한다.In step S734, the chat engine 306-1 and the character engine 306-2 of the client 306 maintain a standby state for chatting with the client 308.

도 8을 참조하면, 도 6의 단계(S606) 내지 단계(S610)를 상세하게 설명하기 위한 흐름도가 도시되어 있다.Referring to FIG. 8, a flowchart for describing in detail the steps S606 to S610 of FIG. 6 is shown.

단계(S802)에서, 예컨대 피어-투-피어 방식으로 채팅을 수행하는 경우, 클라이언트(306)의 채팅 엔진(306-1)은 채팅 상대방 정보의 채팅 상대방 리스트에 포함된 클라이언트(308)의 ID를 서버(302)로 전송함으로써 채팅을 요청한다. 그러면, 서버(302)는 클라이언트(306)로부터 수신한 클라이언트(308)의 ID가 사용자 데이터베이스에 존재하는지 여부를 판단한다. 클라이언트(308)의 ID가 사용자 데이터베이스에 존재하는 경우, 서버(302)는 단계(S804)로 진행하고, 존재하지 않는 경우에는 본 발명에 따른 모든 프로세스를 종료한다.In step S802, for example, when performing a chat in a peer-to-peer manner, the chat engine 306-1 of the client 306 receives the ID of the client 308 included in the chat party list of the chat party information. Request a chat by sending to server 302. Then, the server 302 determines whether the ID of the client 308 received from the client 306 exists in the user database. If the ID of the client 308 exists in the user database, the server 302 proceeds to step S804, and if none exists, terminates all processes according to the present invention.

단계(S804)에서, 서버(302)는 클라이언트(308)의 ID가 사용자 데이터베이스에 존재하는 경우, 클라이언트들(306, 308)의 사용자 정보를 갱신하기 위해, 클라 이언트(306)로부터 수신한 클라이언트(308)의 ID를 사용하여 클라이언트들(306,308)에게 이들 각각이 저장하고 있는 현재 캐릭터 버전 데이터를 요청한다.In step S804, the server 302 receives the client (306) received from the client 306 to update the user information of the clients 306, 308 if the ID of the client 308 exists in the user database. The ID of 308 is used to request clients 306 and 308 the current character version data that each of them is storing.

단계(S806)에서, 클라이언트(306)는 서버(302)로부터의 현재 캐릭터 버전 데이터 요청에 응답하여, 저장하고 있는 채팅 상대방인 클라이언트(308)에 대한 현재의 캐릭터 버전 데이터를 서버(302)로 전송한다.In step S806, the client 306 transmits the current character version data to the server 302 for the client 308, which is the chat partner being stored, in response to the current character version data request from the server 302. do.

단계(S808)에서, 클라이언트(308)는 클라이언트(306)와 마찬가지로 서버(302)로부터의 현재 캐릭터 버전 데이터 요청에 응답하여, 저장하고 있는 채팅 상대방인 클라이언트(306)에 대한 현재의 캐릭터 버전 데이터를 서버(302)로 전송한다.In step S808, the client 308, in response to the current character version data request from the server 302, similarly to the client 306, stores the current character version data for the client 306, which is the stored chat partner. Send to server 302.

단계(S810)에서, 서버(302)는 클라이언트들(306, 308) 각각으로부터 수신한 채팅 상대방에 대한 현재의 캐릭터 버전 데이터를 최신의 캐릭터 버전 데이터와 비교하여, 필요한 경우 클라이언트들(306, 308)이 저장하고 있는 채팅 상대방의 캐릭터에 관련된 데이터를 갱신하도록 함으로써, 클라이언트들(306, 308)이 서로 채팅 상대방에 대한 최신의 캐릭터에 관련된 데이터를 구비할 수 있도록 한다.In step S810, the server 302 compares the current character version data for the chat counterpart received from each of the clients 306, 308 with the latest character version data, and if necessary, the clients 306, 308. By updating the data related to the character of the chat partner stored therein, the clients 306 and 308 can be provided with data related to the latest character of the chat partner.

단계(S812)에서, 서버(302)는 클라이언트들(306, 308) 각각에 채팅 상대방에 대한 IP 주소를 전송한다.In step S812, the server 302 sends an IP address for the chat counterpart to each of the clients 306, 308.

단계(S814)에서, 클라이언트(306)는 서버(302)로부터 수신한 채팅 상대방인 클라이언트(308)의 IP 주소에 근거하여 피어-투-피어 방식으로 클라이언트(308)에 접속한다.In step S814, the client 306 connects to the client 308 in a peer-to-peer manner based on the IP address of the client 308, which is the chat counterpart received from the server 302.

단계(S816)에서, 클라이언트(306)와 클라이언트(308)는 각각의 채팅 엔진 및 캐릭터 엔진을 사용하여 피어-투-피어 방식으로 상호간에 채팅을 수행한다. 클라이언트들(306, 308) 사이에서 수행되는 단계(S816)는 도 9를 참조하여 상세하게 설명하기로 한다.In step S816, the client 306 and the client 308 use each chat engine and character engine to chat with each other in a peer-to-peer manner. Step S816 performed between the clients 306 and 308 will be described in detail with reference to FIG. 9.

도 9를 참조하면, 도 8의 단계(S816)를 상세히 설명하기 위한 흐름도가 도시되어 있다.Referring to FIG. 9, a flowchart for describing step S816 of FIG. 8 in detail is shown.

단계(S902)에서, 캐릭터 엔진(306-2)은 클라이언트(306)의 캐릭터(이하, 캐릭터 A로 지칭함)를 초기화하여 클라이언트(306)의 모니터 상에 디스플레이한다. 또한, 캐릭터 엔진(306-2)은 서버(302)로부터 수신한 클라이언트(308)에 대한 캐릭터 데이터에 근거하여 클라이언트(308)의 캐릭터(이하, 캐릭터 B로 지칭함)를 초기화하고 클라이언트(306)의 모니터 상에 디스플레이한다. 즉, 캐릭터 엔진(306-2)은 사용자 정보와 채팅 상대방 정보에 근거하여 재구성한 애니메이션 자료 구조를 사용하여 캐릭터를 디스플레이한다. 이러한 과정은 채팅 상대방인 클라이언트(308)에서도 동일하게 수행된다.In step S902, the character engine 306-2 initializes the character of the client 306 (hereinafter referred to as character A) and displays it on the monitor of the client 306. In addition, the character engine 306-2 initializes a character (hereinafter referred to as a character B) of the client 308 based on the character data for the client 308 received from the server 302, and then executes the character of the client 306. Display on the monitor. That is, the character engine 306-2 displays the character using the animation data structure reconstructed based on the user information and the chat partner information. This process is similarly performed in the client 308 which is the chat counterpart.

캐릭터 엔진(306-2)은 단계(S902)에서 캐릭터 데이터에 포함된 이동 상대값 데이터를 사용한다. 예를 들면, 캐릭터 엔진(306-2)은 초기에는 상수로 각 클라이언트마다 기준점 좌표 데이터를 갖고 있으나, 캐릭터의 기준좌표(예컨대, 캐릭터의 하단부 좌표)를 변경할 필요가 있는 애니메이션, 즉 한가지 애니메이션을 수행한 후 다시 원래의 좌표로 돌아올 필요성이 있는 애니메이션(예컨대, 점프(jump) 및 한바퀴 돌기 등)에 대해, 그 기준좌표를 이동시키기 위해 이동 상대값 데이터(예컨 데, X 좌표 -30, +40)에 따라 캐릭터의 기준좌표를 이동시킨다. The character engine 306-2 uses the moving relative value data contained in the character data in step S902. For example, the character engine 306-2 initially has reference point coordinate data for each client as a constant, but performs an animation, that is, one animation that needs to change the character's reference coordinate (eg, the lower coordinate of the character). For animations that need to return to their original coordinates (eg, jumps and rounds, etc.), move relative value data (e.g., X coordinates -30, +40) to move the reference coordinates. Move the character's reference coordinate accordingly.

단계(S904)에서, 클라이언트(308)는 채팅 메시지를 클라이언트(306)로 전송한다. 즉, 클라이언트(306)의 캐릭터 엔진(306-2)이 캐릭터 A와 캐릭터 B를 제어하여 대기 상태의 애니메이션을 출력하도록 하는 상태에서, 클라이언트(306)의 채팅 엔진(306-1)이 클라이언트(308)로부터 채팅 메시지를 수신한다.In step S904, the client 308 sends a chat message to the client 306. That is, in the state where the character engine 306-2 of the client 306 controls the characters A and B so as to output the animation of the waiting state, the chat engine 306-1 of the client 306 receives the client 308. Receive a chat message.

단계(S906)에서, 클라이언트(306)의 채팅 엔진(306-1)은 클라이언트(308)로부터 수신한 채팅 메시지의 채팅 텍스트 내에 포함된 단어를 검색하여 애니메이션 자료 구조로부터 이에 대응하는 애니메이션 색인을 검색한 다음, 수신한 채팅 텍스트와 검색된 애니메이션 색인을 캐릭터 엔진(306-2)으로 전송한다.In step S906, the chat engine 306-1 of the client 306 searches for a word included in the chat text of the chat message received from the client 308 to retrieve a corresponding animation index from the animation data structure. Next, the received chat text and the searched animation index are transmitted to the character engine 306-2.

단계(S908)에서, 클라이언트(306)의 캐릭터 엔진(306-2)은 채팅 엔진(306-1)으로부터 전송된 클라이언트(308)의 채팅 텍스트에 근거하여, 캐릭터 B가 사전설정된 형태, 예컨대 말풍선 형태로 채팅 텍스트 내에 포함된 단어 또는 문장을 출력하도록 제어한다.In step S908, the character engine 306-2 of the client 306 is based on the chat text of the client 308 sent from the chat engine 306-1 so that the character B is in a predetermined form, for example, a speech bubble form. Control to output words or sentences included in the chat text.

단계(S910)에서, 클라이언트(306)의 캐릭터 엔진(306-2)은 채팅 엔진(306-1)으로부터 수신한 애니메이션 색인에 대응하는 그래픽 이미지 데이터를 검색하여, 모니터 상에 출력되는 채팅 텍스트에 대응하는 애니메이션을 수행하도록 캐릭터 B를 제어한다.In step S910, the character engine 306-2 of the client 306 retrieves graphic image data corresponding to the animation index received from the chat engine 306-1, and corresponds to the chat text output on the monitor. The character B is controlled to perform the animation.

단계(S912)에서, 클라이언트(306)의 채팅 엔진(306-1)은 클라이언트(306)에서 클라이언트(308)로 전송될 채팅 메시지가 발생하는 경우, 채팅 메시지의 채팅 텍스트에 포함된 단어를 검색하여 애니메이션 색인을 생성하고, 생성된 애니메이션 색인과 채팅 텍스트를 클라이언트(308)로 전송한다. 그러면, 클라이언트(308)는 수신한 채팅 텍스트를 모니터 상에서 캐릭터 A가 사전설정된 형태로 디스플레이하고 이에 대응하는 애니메이션을 수행하도록 제어한다. 따라서, 클라이언트들(306, 308)은 동일한 캐릭터 A 및 캐릭터 B의 채팅 텍스트 및 애니메이션을 각각의 모니터 상에 디스플레이할 수 있다. 본 명세서에서는 클라이언트들(306, 308)간에만 채팅을 수행하는 것으로 설명하였으나, 당업자라면 다수의 클라이언트들이 전술한 과정을 통해 채팅을 수행할 수 있음을 충분히 이해할 수 있을 것이다.In step S912, the chat engine 306-1 of the client 306 searches for a word included in the chat text of the chat message when a chat message to be sent from the client 306 to the client 308 occurs. Generate an animation index and send the generated animation index and chat text to the client 308. Then, the client 308 controls the character A to display the received chat text on the monitor in a preset form and perform an animation corresponding thereto. Thus, clients 306 and 308 can display the chat text and animation of the same character A and character B on each monitor. In the present specification, the chat is performed only between the clients 306 and 308, but those skilled in the art will fully understand that a plurality of clients may perform the chat through the above-described process.

도 13을 참조하면, 본 발명의 채팅 프로세스에 따라 채팅을 수행하는 경우, 모니터 상에 디스플레이되는 캐릭터들의 예를 나타내고 있다. 도 13에 도시한 바와 같이, 본 발명에 따라 채팅을 수행하는 경우, 모니터 상에 디스플레이되는 캐릭터들은 우측 상단에 마련된 채팅창이 아닌 바탕화면 상에 존재하며, 채팅 텍스트를 말풍선 형태로 디스플레이하고, 채팅 텍스트 내에 포함된 특정 단어와 연관된 애니메이션을 수행한다. 따라서, 채팅 당사자들은 실제 오프라인(off-line)에서 이루어지는 것과 매우 유사한 환경에서 채팅을 수행할 수 있다.Referring to FIG. 13, an example of characters displayed on a monitor when a chat is performed according to the chat process of the present invention is illustrated. As shown in FIG. 13, when performing a chat according to the present invention, the characters displayed on the monitor are present on the desktop rather than the chat window provided on the upper right side, and display the chat text in the form of speech bubbles, and the chat text. Perform an animation associated with a specific word contained within. Thus, chat parties can perform a chat in an environment very similar to what is actually done off-line.

전술한 바와 같이, 본 발명에 따르면 사용자를 나타내는 캐릭터의 애니메이션을 통해 채팅 상황에 적합한 모습과 감정을 보다 자유롭게 나타낼 수 있어, 실제 오프라인에서 이루어지는 상황과 동일한 효과를 얻을 수 있다. 또한, 본 발명에 따르면 실시간으로 캐릭터의 애니메이션을 구현할 수 있는 효과가 있다. 더욱이, 채팅시 채팅 상황에 적합한 캐릭터의 애니메이션을 통해 채팅 참가자들의 감정변화 를 보다 시각적으로 구체화할 수 있는 효과가 있다.As described above, according to the present invention, it is possible to more freely display the appearance and emotion suitable for the chat situation through the animation of the character representing the user, thereby obtaining the same effect as the situation actually performed offline. In addition, according to the present invention has the effect of realizing the animation of the character in real time. In addition, there is an effect that can visualize the emotional changes of the chat participants through the animation of the character suitable for the chat situation.

본 발명이 바람직한 실시예를 통해 설명되고 예시되었으나, 당업자라면 첨부한 청구 범위의 사상 및 범주를 벗어나지 않고 여러 가지 변형 및 변경이 이루어질 수 있음을 알 수 있을 것이다.While the present invention has been described and illustrated by way of preferred embodiments, those skilled in the art will recognize that various modifications and changes can be made without departing from the spirit and scope of the appended claims.

Claims (16)

그래픽 이미지의 애니메이션(animation)을 이용한 채팅 시스템에 있어서,In the chat system using the animation of the graphic image, 채팅 프로세스를 제어하기 위한 서버와,A server for controlling the chat process, 상기 서버와 통신망을 통해 연결되어 있으며, 상기 채팅 프로세스에 따라 상호간에 채팅을 수행하기 위한 다수의 클라이언트A plurality of clients connected to the server through a communication network for performing a chat between each other according to the chat process 를 포함하되,Including but not limited to: 상기 서버는,The server, 상기 다수의 클라이언트 각각에 대한 정보를 저장하기 위한 제 1 데이터베이스와,A first database for storing information about each of the plurality of clients; 상기 다수의 클라이언트를 나타내는 그래픽 이미지들을 저장하기 위한 제 2 데이터베이스와,A second database for storing graphical images representing the plurality of clients; 상기 다수의 클라이언트 각각으로부터의 채팅 요청에 응답하여, 상기 정보 및 상기 그래픽 이미지들을 상기 다수의 클라이언트로 전송하고 상기 채팅 프로세스를 제어하기 위한 채팅 프로세스 제어부A chat process control unit for transmitting the information and the graphic images to the plurality of clients and controlling the chat process in response to a chat request from each of the plurality of clients; 를 포함하며,Including; 상기 다수의 클라이언트 각각은,Each of the plurality of clients, 상기 통신망을 통해 상기 서버 및 상기 다수의 클라이언트와 상호 통신하기 위한 통신 수단과,Communication means for communicating with the server and the plurality of clients via the communication network; 상기 서버에 의해 제어되는 상기 채팅 프로세스에 따라 상기 다수의 클라이언트와 상호 채팅을 수행하기 위한 채팅 엔진과, 상기 채팅 수행중 송수신되는 통신 메시지 ―상기 통신 메시지는 단어 및/또는 문장으로 이루어진 채팅 텍스트를 포함함 ―에 따라 상기 서버로부터 전송된 상기 그래픽 이미지들 및 상기 그래픽 이미지들의 애니메이션을 제어하기 위한 그래픽 이미지 엔진이 구현된 컴퓨터 판독 가능한 매체A chat engine for performing a mutual chat with the plurality of clients in accordance with the chat process controlled by the server, and a communication message transmitted and received during the chat, wherein the communication message includes chat text consisting of words and / or sentences. A computer-readable medium in which a graphic image engine is implemented for controlling the graphic images transmitted from the server and animation of the graphic images. 를 포함하며, 상기 그래픽 이미지 엔진은,Including, the graphic image engine, 상기 정보 중에서 상기 그래픽 이미지들 및 상기 그래픽 이미지들의 애니메이션과 연관된 그래픽 애니메이션 데이터를 전처리하여 사전설정된 데이터 형식으로 재구성하기 위한 제 1 이미지 프로그래밍 코드와,First image programming code for preprocessing and reconstructing graphical image data associated with the graphical images and animation of the graphical images from the information into a predetermined data format; 상기 재구성된 데이터에 기초하여 상기 그래픽 이미지들 및 상기 그래픽 이미지들의 애니메이션을 관리하기 위한 통합 데이터를 생성하기 위한 제 2 이미지 프로그래밍 코드와,Second image programming code for generating integrated data for managing the graphical images and animation of the graphical images based on the reconstructed data; 상기 통신 메시지를 분석하여 상기 채팅 텍스트를 추출하기 위한 제 3 이미지 프로그래밍 코드와,Third image programming code for analyzing the communication message and extracting the chat text; 상기 통합 데이터에 기초하여 상기 그래픽 이미지들 및 상기 그래픽 이미지들의 애니메이션을 갱신하여 디스플레이하기 위한 제 4 이미지 프로그래밍 코드Fourth image programming code for updating and displaying animations of the graphical images and the graphical images based on the integrated data 를 포함하는 채팅 시스템.Chat system comprising a. 제 1 항에 있어서,The method of claim 1, 상기 채팅 엔진은,The chat engine, 상기 서버로부터 전송되며 상기 채팅을 수행하는데 사용되는 상기 정보를 수신하기 위한 제 1 채팅 프로그래밍 코드와,First chat programming code for receiving the information sent from the server and used to conduct the chat; 상기 통신 메시지 및 상기 서버로부터 전송된 상기 그래픽 이미지들을 상기 그래픽 이미지 엔진으로 전송하기 위한 제 2 채팅 프로그래밍 코드와,Second chat programming code for transmitting the communication message and the graphic images sent from the server to the graphic image engine; 상기 그래픽 이미지 엔진을 제어하기 위한 제 3 채팅 프로그래밍 코드Third chat programming code for controlling the graphical image engine 를 포함하는 채팅 시스템.Chat system comprising a. 삭제delete 제 1 항에 있어서,The method of claim 1, 제 1 이미지 프로그래밍 코드는,The first image programming code is 상기 그래픽 애니메이션 데이터를 분석하여 상기 그래픽 이미지들의 애니메이션에 관한 애니메이션 데이터를 획득하기 위한 제 1 코드 세그멘트(segment)와,A first code segment for analyzing the graphic animation data to obtain animation data regarding animation of the graphic images; 상기 애니메이션 데이터에 근거하여 애니메이션 파일 목록을 생성하기 위한 제 2 코드 세그멘트와,A second code segment for generating an animation file list based on the animation data; 상기 애니메이션 파일 목록에 근거하여 상기 그래픽 이미지들의 애니메이션 구현시 사용되는 애니메이션 자료 구조를 생성하기 위한 제 3 코드 세그멘트A third code segment for generating an animation data structure used when animating the graphic images based on the animation file list 를 포함하는 채팅 시스템.Chat system comprising a. 제 4 항에 있어서,The method of claim 4, wherein 상기 그래픽 이미지들은 상기 다수의 클라이언트를 나타내는 캐릭터(character) 또는 아바타(avator)인 채팅 시스템.And the graphical images are characters or avatars representing the plurality of clients. 제 4 항에 있어서,The method of claim 4, wherein 상기 애니메이션 자료 구조는 색인목록 형식으로 구성되는 채팅 시스템.And the animation data structure is configured in an index list format. 제 4 항에 있어서,The method of claim 4, wherein 상기 그래픽 이미지 엔진은 상기 추출된 채팅 텍스트에 대응하는 상기 그래픽 이미지들의 애니메이션을 상기 애니메이션 자료 구조를 참조하여 구현하며, 상기 추출된 채팅 텍스트를 함께 디스플레이하는 채팅 시스템.And the graphic image engine implements an animation of the graphic images corresponding to the extracted chat text with reference to the animation data structure and displays the extracted chat text together. 서버와 다수의 클라이언트들이 통신망을 통해 상호 연결되어 있는 채팅 시스템 상에서 그래픽 이미지의 애니메이션을 이용한 채팅 방법에 있어서,In a chat method using animation of a graphic image on a chat system in which a server and a plurality of clients are interconnected through a communication network, a) 상기 서버와 상기 다수의 클라이언트들이 초기화를 수행하는 단계와,a) performing initialization by the server and the plurality of clients; b) 상기 서버가 상기 다수의 클라이언트들 각각으로 채팅시 사용되는 채팅 요청 클라이언트 정보 및 채팅 상대방 클라이언트 정보를 전송하는 단계와,b) the server transmitting chat request client information and chat counterpart client information used for chatting to each of the plurality of clients; c) 상기 다수의 클라이언트들 각각이 상기 정보 중에서 상기 다수의 클라이언트들을 나타내는 그래픽 이미지들 및 상기 그래픽 이미지들의 애니메이션과 연관된 그래픽 애니메이션 데이터를 전처리하여 사전설정된 데이터 형식으로 재구성하는 단계와,c) each of the plurality of clients preprocessing graphical images representing the plurality of clients and graphical animation data associated with animation of the graphical images to reconstruct into a predetermined data format; d) 상기 다수의 클라이언트들 각각이 상기 정보에 기초하여 상기 그래픽 이미지를 디스플레이 상에 디스플레이하는 단계와,d) each of the plurality of clients displaying the graphical image on a display based on the information; e) 상기 그래픽 이미지들 및 상기 그래픽 이미지들의 애니메이션을 이용하여 상기 다수의 클라이언트들이 상호 채팅을 수행하는 단계와,e) the plurality of clients chatting with each other using the graphical images and animation of the graphical images; f) 상기 다수의 클라이언트들 각각이 상기 재구성된 데이터에 기초하여 상기 그래픽 이미지들 및 상기 그래픽 이미지들의 애니메이션을 관리하기 위한 통합 데이터를 생성하는 단계와,f) generating, by each of the plurality of clients, integrated data for managing the graphical images and animation of the graphical images based on the reconstructed data; g) 상기 다수의 클라이언트들 각각이 상기 통합 데이터에 기초하여 상기 그래픽 이미지들 및 상기 그래픽 이미지들의 애니메이션을 갱신하여 디스플레이하는 단계g) each of the plurality of clients updating and displaying the graphical images and the animation of the graphical images based on the unified data. 를 포함하되,Including but not limited to: 상기 d) 단계에서, 상기 다수의 클라이언트들 각각이 구비하고 있는 디스플레이 상에는 상기 다수의 클라이언트들을 나타내는 그래픽 이미지들이 디스플레이되며, 상기 채팅 중 송수신되는 통신 메시지 ―상기 통신 메시지는 단어 및/또는 문장으로 이루어진 채팅 텍스트를 포함함 ―에 따라 상기 그래픽 이미지들의 애니메이션이 디스플레이되는 채팅 방법.In step d), graphic images representing the plurality of clients are displayed on a display provided by each of the plurality of clients, and communication messages transmitted and received during the chat, wherein the communication message is a chat consisting of words and / or sentences. And text, wherein an animation of the graphical images is displayed. 제 8 항에 있어서,The method of claim 8, 상기 채팅 요청 클라이언트 정보는 채팅 관련 데이터, 그래픽 이미지 데이터, 애니메이션 데이터를 포함하며, 상기 채팅 상대방 클라이언트 정보는 채팅 상대방 리스트, 채팅 상대방 상태 데이터, 채팅 상대방에 대한 채팅 관련 데이터, 채팅 상대방 그래픽 이미지 데이터, 채팅 상대방 애니메이션 데이터를 포함하되,The chat request client information includes chat related data, graphic image data, and animation data, and the chat counterpart client information includes a chat counterpart list, a chat counterpart status data, a chat related data for a chat counterpart, a chat counterpart graphic image data, and a chat. Include opponent animation data, 상기 데이터 각각은 고유한 색인(index)을 갖고 있는 채팅 방법.Wherein each of said data has a unique index. 제 9 항에 있어서,The method of claim 9, 상기 a) 단계는,Step a) is a1) 상기 다수의 클라이언트들이 상호 채팅을 위해 상기 서버에 로그인(log-in)하는 단계와,a1) the plurality of clients logging in to the server for mutual chat; a2) 상기 다수의 클라이언트들 각각이 사전설정된 장소에 저장하고 있으며, 상기 채팅용 프로그램의 현재 버전(version) 정보를 상기 서버로 전송하는 단계와,a2) storing each of the plurality of clients in a predetermined place, and transmitting current version information of the chat program to the server; a3) 상기 서버는 자체의 사전설정된 장소에 저장되어 있는 상기 프로그램에 대한 최신 버전 정보와 상기 다수의 클라이언트들로부터 수신한 상기 현재 버전 정보를 비교하는 단계와,a3) comparing, by the server, the latest version information for the program stored in its preset location with the current version information received from the plurality of clients; a4) 상기 서버는 상기 비교 결과에 근거하여 상기 다수의 클라이언트들 중 상기 최신 버전 정보와 상기 현재 버전 정보가 일치하지 않는 클라이언트로, 상기 사전설정된 장소에 저장되어 있는 최신 버전의 프로그램을 전송함으로써 상기 채팅용 상기 프로그램을 상기 최신 버전의 프로그램으로 갱신하는 단계a4) the server transmits the latest version of the program stored in the predetermined place to the client of which the latest version information does not match the current version information among the plurality of clients based on the comparison result; Updating the program with the latest version of the program 를 포함하는 채팅 방법.Chat method that includes. 제 10 항에 있어서,The method of claim 10, 상기 b) 단계는,B), 상기 서버가 상기 사전설정된 장소에 저장되어 있는 상기 다수의 클라이언트들 각각에 대한 IP(Internet Protocol) 주소를 채팅 상대방 클라이언트들에게 전송하는 단계The server transmitting an Internet Protocol (IP) address for each of the plurality of clients stored in the predetermined place to chat counterpart clients; 를 포함하는 채팅 방법.Chat method that includes. 제 11 항에 있어서,The method of claim 11, 상기 d) 단계는,Step d), d1) 상기 다수의 클라이언트들 각각이 상기 그래픽 이미지 데이터에 근거하여 자신을 나타내는 상기 그래픽 이미지를 상기 디스플레이 상에 디스플레이하는 단계와,d1) each of the plurality of clients displaying on the display the graphical image representing itself based on the graphical image data; d2) 상기 다수의 클라이언트들 각각이 상기 채팅 상대방 그래픽 이미지 데이터에 근거하여 상기 채팅 상대방 클라이언트들을 나타내는 상대방 그래픽 이미지들을 상기 디스플레이 상에 디스플레이하는 단계와,d2) each of the plurality of clients displaying counterpart graphic images representing the chat counterpart clients on the display based on the chat counterpart graphic image data; d3) 상기 다수의 클라이언트들 각각이 상기 IP 주소에 근거하여 상기 갱신된 채팅용 프로그램을 통해 상기 채팅 상대방 클라이언트와 상기 통신 메시지를 송수신함으로써 상기 채팅을 수행하는 단계d3) each of the plurality of clients performing the chat by sending and receiving the communication message with the chat counterpart client through the updated chat program based on the IP address; 를 포함하는 채팅 방법.Chat method that includes. 제 9항에 있어서,The method of claim 9, 상기 f) 단계는,F) step, f1) 상기 서버가 상기 그래픽 이미지 데이터 및 상기 채팅 상대방 그래픽 이미지 데이터의 갱신 여부를 판단하는 단계와,f1) determining whether the server updates the graphic image data and the chat counterpart graphic image data; f2) 상기 서버는 상기 그래픽 이미지 데이터 및 상기 채팅 상대방 그래픽 이미지 데이터가 갱신된 경우, 이에 관한 데이터를 상기 다수의 클라이언트들 중 해당하는 클라이언트들로 전송하는 단계f2) when the graphic image data and the chat partner graphic image data are updated, transmitting the data about the graphic image data to the corresponding ones of the plurality of clients. 를 더 포함하되,Include more, 상기 그래픽 이미지 데이터 및 상기 채팅 상대방 그래픽 이미지 데이터의 갱신은 상기 다수의 클라이언트들 중 해당하는 클라이언트들에 의해 수행되는 채팅 방법.And updating the graphic image data and the chat counterpart graphic image data by corresponding ones of the plurality of clients. 제 9항에 있어서,The method of claim 9, 상기 c) 단계는,C), c1) 상기 다수의 클라이언트들 각각이 상기 채팅 요청 클라이언트 정보 및 상기 채팅 상대방 클라이언트 정보를 재구성하여 애니메이션 자료 구조를 생성하는 단계와,c1) each of the plurality of clients reconstructs the chat request client information and the chat counterpart client information to generate an animation data structure; c2) 상기 다수의 클라이언트들 각각이 상기 통신 메시지 내에 포함된 상기 채팅 텍스트를 추출하는 단계와,c2) extracting the chat text contained in the communication message by each of the plurality of clients; c3) 상기 다수의 클라이언트들 각각이 상기 추출된 채팅 텍스트에 포함된 단어 및/또는 문장에 대응하는 상기 애니메이션 자료 구조를 검색하는 단계와,c3) each of the plurality of clients searching for the animation data structure corresponding to a word and / or sentence included in the extracted chat text; c4) 상기 다수의 클라이언트들 각각이 상기 검색된 애니메이션 자료 구조를 참조하여, 상기 그래픽 이미지들, 상기 상대방 그래픽 이미지들의 애니메이션, 상기 추출된 채팅 텍스트를 디스플레이하는 단계c4) each of the plurality of clients referring to the retrieved animation data structure to display the graphic images, the animation of the counterpart graphic images, and the extracted chat text; 를 포함하는 채팅 방법.Chat method that includes. 제 14 항에 있어서,The method of claim 14, 상기 애니메이션 자료 구조는 상기 채팅 요청 클라이언트 정보 중 상기 그래픽 이미지 데이터 및 상기 애니메이션 데이터와, 상기 채팅 상대방 클라이언트 정보 중 상기 채팅 상대방 그래픽 이미지 데이터 및 상기 채팅 상대방 애니메이션 데이터에 근거하여, 상기 애니메이션을 구성하는 각각의 프레임(frame)과 연관된 데이터를 색인목록 형식으로 재구성한 자료 구조인 채팅 방법.The animation data structure is configured to construct the animation based on the graphic image data and the animation data of the chat request client information, the chat partner graphic image data and the chat partner animation data of the chat partner client information. A chat method that is a data structure that reconstructs the data associated with a frame into an index list format. 제 15 항에 있어서,The method of claim 15, 상기 c1) 단계는,Step c1), 상기 그래픽 이미지 데이터 및 상기 채팅 상대방 그래픽 이미지 데이터 각각으로부터 상기 그래픽 이미지 및 상기 채팅 상대방 그래픽 이미지의 외곽선 데이터를 추출하는 단계Extracting contour data of the graphic image and the chat partner graphic image from the graphic image data and the chat partner graphic image data, respectively; 를 더 포함하되,Include more, 상기 외곽선 데이터는 해당하는 그래픽 이미지 데이터 또는 채팅 상대방 그래픽 이미지 데이터의 색인과 동일한 색인을 가지며 상기 애니메이션 자료 구조에 포함되어 상기 애니메이션 구현시에 사용되는 채팅 방법.The outline data has a same index as that of the corresponding graphic image data or the chat counterpart graphic image data and is included in the animation data structure to be used when implementing the animation.
KR1020030045130A 2003-07-04 2003-07-04 Chat system and method using animation of graphic images KR100559287B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020030045130A KR100559287B1 (en) 2003-07-04 2003-07-04 Chat system and method using animation of graphic images

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030045130A KR100559287B1 (en) 2003-07-04 2003-07-04 Chat system and method using animation of graphic images

Publications (2)

Publication Number Publication Date
KR20050003697A KR20050003697A (en) 2005-01-12
KR100559287B1 true KR100559287B1 (en) 2006-03-10

Family

ID=37218759

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030045130A KR100559287B1 (en) 2003-07-04 2003-07-04 Chat system and method using animation of graphic images

Country Status (1)

Country Link
KR (1) KR100559287B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101394515B1 (en) * 2007-04-26 2014-05-13 엘지전자 주식회사 Mobile communication device capable of storing video chatting log and operating method thereof

Also Published As

Publication number Publication date
KR20050003697A (en) 2005-01-12

Similar Documents

Publication Publication Date Title
KR100841590B1 (en) Chat system, communication device, control method thereof and computer-readable information storage medium
US20180054466A1 (en) Multiple avatar personalities
US20180011841A1 (en) Enabling an im user to navigate a virtual world
US8402378B2 (en) Reactive avatars
US20040128350A1 (en) Methods and systems for real-time virtual conferencing
WO2007134402A1 (en) Instant messaging system
KR20090086805A (en) Self-evolving artificial intelligent cyber robot system
CN113508369A (en) Communication support system, communication support method, communication support program, and image control program
US20090276492A1 (en) Summarization of immersive collaboration environment
CN103797761B (en) Communication method, client, and terminal
CN1460232A (en) Text to visual speech system and method incorporating facial emotions
CN103368816A (en) Instant communication method based on virtual character and system
AU2004216758A1 (en) Using avatars to communicate
US20210182500A1 (en) Instant messaging application configuration based on virtual world activities
EP2690847A1 (en) Virtual assistant for a telecommunication system
CN112152901A (en) Virtual image control method and device and electronic equipment
JP2001160021A (en) Communication system in virtual space
JP4854424B2 (en) Chat system, communication apparatus, control method thereof, and program
Falchuk et al. Visual modeling for agent-based applications
KR100559287B1 (en) Chat system and method using animation of graphic images
KR100300966B1 (en) Chatting system using animated avatars and method thereof
US20050195927A1 (en) Method and apparatus for conveying messages and simple patterns in communications network
KR20060104980A (en) System and method for interlocking process between emoticon and avatar
KR20030026506A (en) System and method for interlocking process between emoticon and avatar
KR20030071262A (en) System and method of operating an intelligent avatar using internet

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
FPAY Annual fee payment

Payment date: 20130115

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140129

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20151124

Year of fee payment: 10

R401 Registration of restoration
LAPS Lapse due to unpaid annual fee