KR20080018407A - Computer-readable recording medium for recording of 3d character deformation program - Google Patents

Computer-readable recording medium for recording of 3d character deformation program Download PDF

Info

Publication number
KR20080018407A
KR20080018407A KR1020060080462A KR20060080462A KR20080018407A KR 20080018407 A KR20080018407 A KR 20080018407A KR 1020060080462 A KR1020060080462 A KR 1020060080462A KR 20060080462 A KR20060080462 A KR 20060080462A KR 20080018407 A KR20080018407 A KR 20080018407A
Authority
KR
South Korea
Prior art keywords
character
data
script
function
motion
Prior art date
Application number
KR1020060080462A
Other languages
Korean (ko)
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 KR1020060080462A priority Critical patent/KR20080018407A/en
Publication of KR20080018407A publication Critical patent/KR20080018407A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30196Human being; Person
    • G06T2207/30201Face
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/44Morphing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Computing Systems (AREA)
  • Architecture (AREA)
  • Computer Hardware Design (AREA)
  • Processing Or Creating Images (AREA)

Abstract

A computer-readable recording medium having an animation character-change program providing changing of a three-dimensional animation character is provided to shorten time and efforts considerably required for changing a fabricated animation character. A body changing module(110) uses vertex data storing configuration information of a three-dimensional animation character, and provides a figure change script and a Lua script for changing a figure of the three-dimensional animation character with reference to normal data, texture data, and frame data. A material changing module(120) provides an image morphing function for changing the form of a face of the three-dimensional animation character, provides a material script for adjusting the color of the three-dimensional animation character and a change according to time and space of the color, and provides a blend script for adjusting blending of texture images of the three-dimensional animation character. An operation changing module(130) changes an operation of the three-dimensional animation character based on operation data including rotation change values with respect to each frame and central movement value of the three-dimensional animation character.

Description

3차원 캐릭터의 변형을 제공하는 캐릭터 변형 프로그램을 기록한 컴퓨터 판독가능 기록매체{Computer-Readable Recording Medium for Recording of 3D Character Deformation Program}Computer-Readable Recording Medium for Recording of 3D Character Deformation Program

도 1은 본 발명의 바람직한 실시예에 따른 캐릭터 변형 프로그램의 내부 구조를 간단하게 나타낸 도면, 1 is a view showing simply the internal structure of the character transformation program according to a preferred embodiment of the present invention,

도 2는 본 발명의 바람직한 실시예에 따른 체형 변형 모듈에 의하여 체형이 변형된 3차원 캐릭터를 나타낸 도면,2 is a view showing a three-dimensional character whose body shape is deformed by the body shape deformation module according to an embodiment of the present invention;

도 3은 본 발명의 바람직한 실시예에 따라 얼굴 이미지에 특징점을 표시한 도면,3 is a view showing feature points on a face image according to a preferred embodiment of the present invention;

도 4는 본 발명의 바람직한 실시예에 따른 재질 변형 모듈의 이미지 모핑 기능에 의하여 생성되는 얼굴 이미지를 나타낸 도면,4 is a view showing a face image generated by the image morphing function of the material deformation module according to an embodiment of the present invention,

도 5는 본 발명의 바람직한 실시예에 따른 캐릭터 변형 프로그램을 구동하면 디스플레이되는 화면을 나타낸 도면, 5 is a view showing a screen displayed when driving the character transformation program according to a preferred embodiment of the present invention;

도 6a는 본 발명의 바람직한 실시예에 따른 캐릭터 변형 프로그램에서 캐릭터의 뼈대를 설정하는 화면을 나타낸 도면, 6A is a diagram illustrating a screen for setting a skeleton of a character in a character transformation program according to an exemplary embodiment of the present invention;

도 6b는 본 발명의 바람직한 실시예에 따른 캐릭터 변형 프로그램에서 설정한 뼈대에 회전을 설정하는 화면을 나타낸 도면이다. 6B is a diagram illustrating a screen for setting rotation on a skeleton set in a character transformation program according to an exemplary embodiment of the present invention.

< 도면의 주요 부분에 대한 부호의 설명 ><Description of Symbols for Main Parts of Drawings>

100: 캐릭터 변형 프로그램 110: 체형 변형 모듈100: character transformation program 110: body deformation module

120: 재질 변형 모듈 130: 동작 변형 모듈120: material deformation module 130: motion deformation module

본 발명은 3차원 캐릭터의 변형을 제공하는 캐릭터 변형 프로그램을 기록한 컴퓨터 판독가능 기록매체에 관한 것이다. 더욱 상세하게는, 3차원 캐릭터의 공간적인 위치정보를 저장하고 있는 버텍스 데이터를 이용하여 3차원 캐릭터의 체형을 변형하고, 3차원 캐릭터의 변형 대상 이미지와 해당 텍스처 좌표를 제어하는 이미지 모핑 기능을 이용하여 3차원 캐릭터의 재질을 변형하며, 3차원 캐릭터의 동작 데이터와 19개의 뼈대의 회전 및 이동 데이터를 이용하여 3차원 캐릭터의 동작을 변형하는 프로그램을 기록한 컴퓨터 판독가능 기록매체에 관한 것이다.The present invention relates to a computer readable recording medium having recorded thereon a character deformation program providing deformation of a three-dimensional character. More specifically, the image morphing function is used to deform the shape of the 3D character by using the vertex data storing the spatial position information of the 3D character, and to control the transformation target image of the 3D character and the corresponding texture coordinates. The present invention relates to a computer-readable recording medium which records a program for deforming a material of a 3D character and deforming the 3D character by using motion data of the 3D character and rotation and movement data of 19 skeletons.

국내 게임 산업은 2005년에는 4조 9천억 원의 시장규모이고, 2006년에는 5조 6천억 원으로 시장 규모가 커질 것으로 예상되고 있다. 2002년 이후 연 27% 대의 고성장을 하고 있고 해외에서도 한국의 온라인 게임은 많은 인기를 얻고 있다. 게임 시장의 확대와 기술의 발달로 사용자들은 기존의 2차원 게임 보다는 3차원 게임을 선호하게 되었고, 오프라인 게임보다는 온라인 게임이 게임산업에서 중요한 부분으로 자리 잡고 있다.The domestic game industry is expected to grow to 4.9 trillion won in 2005, and to reach 5.6 trillion won in 2006. Since 2002, it has been growing at an annual rate of about 27%, and Korean online games have gained a lot of popularity overseas. With the expansion of the game market and the development of technology, users prefer 3D games to existing 2D games, and online games are becoming an important part of the game industry rather than offline games.

3차원 게임은 여러 가지 구성물로 만들어지고 있지만 그 중에서 사용자에게 관심의 대상이 되고, 가장 많은 자원이 투입되는 것이 캐릭터이다. 2001년에 국내 온라인 게임업체 중 한 곳에서 3차원 아바타를 이용한 온라인 게임을 선보였다. 그 이전에는 아바타라고 하면 2차원으로 표현되는 캐릭터라고 생각되었지만, 이제는 온라인에서 3차원 캐릭터로 표현되는 아바타를 보게 되는 것이 너무나도 당연하다. 과거의 2차원 그래픽 기반의 게임으로부터 완벽한 3차원 중심의 게임으로 사업의 방향이 바뀌었고, 온라인 게임 말고도 3차원 캐릭터를 이용한 온라인 커뮤니티 서비스가 점차로 확대되고 있으며, 캐릭터를 멋지게 잘 만들고 다양한 캐릭터를 얼마나 많이 제공하느냐에 따라서 온라인 게임의 성공 여부를 좌우하는 요소가 되고 있다. 3D games are made up of various components, but among them, the characters are of interest to users and the most resources are put into them. In 2001, one of the domestic online game companies launched an online game using a three-dimensional avatar. Previously, avatars were considered to be characters represented in two dimensions, but now it is natural to see avatars represented as three-dimensional characters online. The direction of the business has changed from the past two-dimensional graphics-based games to the perfect three-dimensional games, and online community services using three-dimensional characters are gradually expanding, in addition to the online games, making the characters nicely and how many characters Whether it is provided, it is a factor that determines the success of online games.

특히 아바타를 이용한 커뮤니티에서는 다양한 아바타의 아이템들을 제공해야 하고 이를 위해 캐릭터 및 아이템 제작에 많은 인력이 투여되고 있으나, 제작된 캐릭터들 중에는 소비자의 눈높이에 따라서 점차 관심에서 멀어져 최종에는 아무런 쓸모가 없어지는 경우가 생기고 있고, 한 번 제작된 캐릭터는 초기에 인기를 얻어 수익성이 좋더라도 계속해서 변화를 주지 않으면 자연스럽게 소비자로부터 외면을 당하기도 하기 때문에 3차원 캐릭터는 온라인 게임에서 중요한 요소이다. In particular, the community using avatars has to provide items of various avatars, and for this, a lot of manpower is given to character and item production, but the produced characters gradually become far from the interests according to the consumer's eye level and become useless at the end. 3D characters are an important element in online games, because once produced characters are initially popular and profitable, even if they are profitable, they are naturally disregarded by consumers unless they continue to change.

3차원 캐릭터는 2차원 캐릭터와 달라서 하나를 제작하는데 비용과 시간이 월등하게 소비된다. 게임에서 캐릭터를 제작하는데 중요하게 고려하는 특징은 다음과 같다. 첫째는 3차원 캐릭터를 사실적으로 표현하기보다는 효율적으로 가능한 한 저 사양의 시스템에서 돌아가게 하는 것이고, 둘째는 최소한의 비용으로 소비자가 만족할 만한 캐릭터를 제공해야 하는 것이다. Three-dimensional characters are different from two-dimensional characters, so it costs a lot of money and time to produce one. The important features to consider when creating a character in the game are: The first is to make the 3D characters run as efficiently as possible on a low-specified system rather than to represent them realistically, and the second is to provide characters that are satisfactory to the consumer at minimal cost.

따라서, 다양한 캐릭터가 나오기 위해서는 많은 인력이 투여되어야 하지만, 이미 제작된 캐릭터를 변형시키는 데에도 하나의 캐릭터를 제작하는 데 소비되는 시간과 노력만큼이 소비되기 때문에 종래에는 사용자로부터 소외되는 캐릭터를 변형시키지 않는다는 문제점이 있었다. Therefore, a lot of manpower should be administered in order for various characters to come out, but in order to transform a character that has already been produced, it takes much time and effort to produce one character. There was a problem.

또한, 캐릭터의 외형의 변화나 다채로운 동작은 그래픽 디자이너의 수작업에 의존해서 만들어지기 때문에 캐릭터가 성장함에 따라 키가 자란다거나, 지나친 과식으로 배가 나온다거나 하는 표현을 위해서는 추가 모델링 작업이 필요하기 때문에 많은 인력과 시간의 추가 투입이라는 문제점이 있었다. In addition, changes in the appearance of the character and various movements are made depending on the manual work of the graphic designer. Therefore, an additional modeling work is required for the expression that the height grows as the character grows or the stomach grows due to overeating. There was a problem of additional input of time and time.

이러한 문제점을 해결하기 위해 본 발명은, 3차원 캐릭터의 공간적인 위치정보를 저장하고 있는 버텍스 데이터를 이용하여 3차원 캐릭터의 체형을 변형하고, 3차원 캐릭터의 변형 대상 이미지와 해당 텍스처 좌표를 제어하는 이미지 모핑 기능을 이용하여 3차원 캐릭터의 재질을 변형하며, 3차원 캐릭터의 동작 데이터와 19개의 뼈대의 회전 및 이동 데이터를 이용하여 3차원 캐릭터의 동작을 변형하는 프로그램을 기록한 컴퓨터 판독가능 기록매체를 제공하는 것을 그 목적으로 한다.In order to solve this problem, the present invention, by transforming the body shape of the three-dimensional character by using the vertex data that stores the spatial position information of the three-dimensional character, and controls the deformation target image and the corresponding texture coordinates of the three-dimensional character A computer-readable recording medium that records a program that modifies the material of the 3D character by using the image morphing function and uses the motion data of the 3D character and the rotation and movement data of the 19 skeletons to record the program of the 3D character. Its purpose is to provide.

이러한 목적을 달성하기 위하여, 본 발명의 제 1 목적에 의하면, 3차원 캐릭터를 변형하는 프로그램을 기록한 기록매체에 있어서 상기 프로그램은, 3차원 캐릭터의 외형 정보를 저장하고 있는 버텍스 데이터(Vertex Data)를 이용하고, 3차원 캐릭터의 노말 데이터, 텍스처 데이터, 뼈대 데이터를 참조하여 3차원 캐릭터의 체 형을 변형하기 위한 체형 변형 스크립트와 루아 스크립트를 제공하는 체형 변형 모듈; 3차원 캐릭터의 얼굴 형태를 변형하기 위한 이미지 모핑 기능을 제공하고, 3차원 캐릭터의 색상과 색상의 시간과 공간에 따른 변화를 조절하는 재질 스크립트를 제공하며, 3차원 캐릭터의 텍스처 이미지 간의 섞임을 제어하는 블랜드 스크립트를 제공하는 재질 변형 모듈; 및 3차원 캐릭터의 각 뼈대에 대한 회전 변화 값과 중심의 이동 값을 포함한 동작 데이터를 바탕으로 3차원 캐릭터의 동작을 변형을 제공하는 동작 변형 모듈을 포함하는 것을 특징으로 하는 3차원 캐릭터를 변형하는 프로그램을 기록한 컴퓨터 판독가능한 기록매체를 제공한다.In order to achieve this object, according to the first object of the present invention, in a recording medium on which a program for deforming a three-dimensional character is recorded, the program stores vertex data storing the external form information of the three-dimensional character. A body shape transformation module for providing a body shape transformation script and a lua script for modifying the body shape of the 3D character with reference to normal data, texture data, and skeleton data of the 3D character; Provides image morphing function to transform 3D character's face shape, provides material script to control 3D character's color and color change over time and space, and controls blending between texture images of 3D character A material deformation module for providing a blend script; And a motion deformation module for providing a deformation of the motion of the 3D character based on motion data including a rotation change value and a movement value of the center of each skeleton of the 3D character. A computer readable recording medium having recorded thereon a program is provided.

이하, 본 발명의 바람직한 실시예를 첨부된 도면들을 참조하여 상세히 설명한다. 우선 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어서, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. First of all, in adding reference numerals to the components of each drawing, it should be noted that the same reference numerals are used as much as possible even if displayed on different drawings. In addition, in describing the present invention, when it is determined that the detailed description of the related well-known configuration or function may obscure the gist of the present invention, the detailed description thereof will be omitted.

도 1은 본 발명의 바람직한 실시예에 따른 캐릭터 변형 프로그램의 내부 구조를 간단하게 나타낸 도면이다.1 is a diagram schematically showing the internal structure of the character transformation program according to a preferred embodiment of the present invention.

본 발명의 바람직한 실시예에 따른 캐릭터 변형 프로그램(100)은 체형 변형 모듈(110), 재질 변형 모듈(120) 및 동작 변형 모듈(130)을 포함하여 구성된다. Character deformation program 100 according to a preferred embodiment of the present invention is configured to include a body deformation module 110, a material deformation module 120 and a motion deformation module 130.

또한, 캐릭터 변형 프로그램(100)의 스크립트 기본 구조는 XML(eXtensible Markup Language)로 작성하였으며, 자료 구조를 직접적인 수학적 함수로 기술하기 위하여 루아(LUA)를 이용하여 작성하도록 한다.In addition, the basic structure of the script of the character transformation program 100 is written in XML (eXtensible Markup Language), and the data structure is written using Lua (LUA) to describe a direct mathematical function.

본 발명에서 루아는 일반적인 프로시저 방식의 프로그래밍을 지원하도록 설계된 확장 프로그래밍 언어로서, 객체지향 프로그래밍, 함수적 프로그래밍, 데이터 중심 프로그래밍을 지원하고, C 또는 C++와 같은 프로그래밍 언어와 결합하여 가볍고 강력한 스크립트 언어로 사용할 수 있다.In the present invention, Lua is an extended programming language designed to support general procedural programming, and supports object-oriented programming, functional programming, and data-centric programming, and is a lightweight and powerful scripting language in combination with a programming language such as C or C ++. Can be used.

또한, 루아는 라이브러리 형태로 구현되어 ANSI C 또는 C++와 유사한 서브셋(SubSet) 형태의 언어인 클린 C(Clean C)로 되어 있고, 확장 언어로서 역할을 하기 위해 메인 프로그램의 개념을 가지지 않으며, 임베드 프로그램 또는 호스트 프로그램에 임베디드(포함)되어 동하기 때문에 본 발명에서는 자료 구조를 직접적인 수학적 함수로 기술하기 위하여 XML로 작성한 스크립트에서 루아의 코드를 실행할 수 있는 함수를 호출하도록 한다.In addition, Lua is implemented as a library and is in the form of Clean C, a subset language similar to ANSI C or C ++, and does not have the concept of a main program to serve as an extension language. Or, because it is embedded (included) in the host program, the present invention calls a function that can execute Lua code in a script written in XML to describe the data structure as a direct mathematical function.

본 발명의 바람직한 실시예에 따른 체형 변형 모듈(110)은 3차원 캐릭터의 외형 정보를 저장하고 있는 버텍스 데이터(Vertex Data)를 이용하여 3차원 캐릭터의 체형을 변형시키는 데, 버텍스 데이터에는 3차원 캐릭터의 버텍스 좌표값이 저장되어 있다. The body shape deformation module 110 according to a preferred embodiment of the present invention deforms the body shape of the 3D character by using vertex data that stores the appearance information of the 3D character, and the vertex data includes the 3D character. Vertex coordinate value of is stored.

또한, 3차원 캐릭터의 체형을 변형함에 따라 피부의 변화가 버텍스의 노말값의 방향과 연동하기 때문에 노말 데이터(Normal Data)를 참조하고, 체형의 변형 중에 텍스처 이미지와 연동하여 버텍스 데이터를 변화시키는 경우에는 텍스처 데이터(Texture Data)를 참조하며, 3차원 캐릭터의 크기를 변형하는 경우에 뼈대 데이터(Bone Data)를 참조하는 데, 버텍스 데이터의 버텍스 좌표값은 (vx, vy, vz), 노 말 데이터의 노말 좌표값은 (nx, ny, nz), 텍스처 데이터의 텍스처 좌표값은 (tx, ty, tz), 뼈대 데이터의 뼈대 좌표값은 (bx, by, bz)로 표현하도록 한다. In addition, when the body shape of the 3D character is deformed, the skin change is linked with the direction of the normal value of the vertex, so the normal data is referred to, and the vertex data is changed in conjunction with the texture image during the deformation of the body shape. Refers to texture data, and when changing the size of a 3D character, it refers to bone data.The vertex coordinate values of the vertex data are (vx, vy, vz), normal data. The normal coordinates are expressed as (nx, ny, nz), the texture coordinates of texture data are (tx, ty, tz), and the skeleton coordinates of skeleton data are expressed as (bx, by, bz).

체형 변형 모듈(110)에서 사용하는 스크립트는 <deform> 요소 안의 자식 요소로 포함되며, 체형 변형 스크립트와 관련된 함수는 <deformVertex>...</deformVertex>에 기술한다. The script used in the body deformation module 110 is included as a child element in the <deform> element, and functions related to the body deformation script are described in <deformVertex> ... </ deformVertex>.

또한, 체형 변형 모듈(110)에서 사용하는 스크립트는 일반적인 모델의 버텍스 데이터를 변형할 수 있는 함수와 캐릭터의 특성에만 적용되는 함수로 구성하였으며, 추후 확장이 용이하도록 버텍스 키워드를 제한하지 않았다. In addition, the script used in the body deformation module 110 is composed of a function that can transform the vertex data of the general model and a function applied only to the characteristics of the character, and did not limit the vertex keyword to facilitate future expansion.

체형 변형 모듈(110)은 XML의 구조적 형식을 이용하여 미리 정해진 기능의 함수에 인자 값을 수정하여 변형하는 함수 체형 스크립트와 다양한 수학적 함수와 알고리즘을 적용하여 체형을 변형할 수 있는 루아 스크립트로 구성된다. Body shape modification module 110 is composed of a function body script that modifies the argument value to a function of a predetermined function by using the structural form of XML and Lua script that can be modified by applying a variety of mathematical functions and algorithms .

함수 체형 스크립트는 범용적인 메쉬(Mesh) 구조의 버텍스 데이터에 시간에 따른 변화를 기술하는 스크립트 함수로 구성된다. 주로 배경 모델에서 버텍스 데이터를 움직이게 할 때 사용되며, 캐릭터 외에도 임의의 모델에 적용할 수 있다.Function body scripts consist of script functions that describe changes over time in vertex data of a general mesh structure. It is mainly used to move vertex data in the background model, and can be applied to any model in addition to the character.

파동 함수의 형태로 버텍스 데이터 값을 변화시키는 wave 함수는 캐릭터의 호흡에 의한 운동이나, 진동 등과 같이 주기적인 움직임을 표현할 때 사용하고, 파동이 적용되는 크기를 조절하는 div, 파동의 형태를 정의하는 func, 버텍스의 값이 원래보다 얼마나 떨어지는 지를 표시하는 base, 변형에 의한 최대값을 정의하는 amp, 파동의 기본 모양에서 볼 때의 시작 위치를 정해주는 phase 및 1초 동안의 파동 반복 회수를 정해주는 freq 등의 속성으로 구성되어 있으며, "<wave div=“” func=“” base=“” amp=“” phase=“” freq=“” />"와 같은 형태로 표현한다. The wave function, which changes the vertex data value in the form of a wave function, is used to express periodic movements such as movement or vibration caused by the character's breathing, and defines the shape of the wave and the div that controls the size of the wave. func, a base indicating how far the vertex falls from the original, an amp defining the maximum value of the deformation, a phase defining the starting position in terms of the basic shape of the wave, and the number of wave repetitions in one second. It consists of attributes such as freq, and is expressed in the form of "<wave div =“ ”func =“ ”base =“ ”amp =“ ”phase =“ ”freq =“ ”/>”.

div는 뼈대의 길이 하나의 단위에 해당하고, 함수 단위를 사용한다. func는 사인 파동을 나타내는 Sin, 산 모양으로 점차 커지다가 꼭대기에서 작아지는 모양의 파동을 나타내는 Triangl, 일정한 주기로 최대값과 최소값으로 갑자기 변하는 Square, 톱니 모양의 파동을 나타내는 Sawtooth 및 톱니 모양과 반대의 파동을 나타내는 InverseSawtooth 등의 스트링으로 표현된 스트링 값으로 표현한다. base는 일반적으로 파동의 중심의 위치를 표시하는 데, 양수의 경우는 원래 표면 보다 위로 올라간 위치이고, 음수인 경우 아래에 위치이다. amp는 파동의 최대 변화량으로 설정한 양수 또는 음수의 절대값을 산출하여 amp에 설정한 크기 값 이상으로 변하지 않도록 한다. phase는 원래 모양에서 시작하도록 보통 0으로 설정한다. The div corresponds to a unit of length of the skeleton and uses a function unit. func is Sin, which represents a sine wave, Triangl, which is a wave that grows in the shape of a mountain, and then becomes smaller at the top.Square that suddenly changes to the maximum and minimum values at regular intervals, Sawtooth and serrated wave, which are serrated waves. It is expressed as a string value expressed as a string such as InverseSawtooth. The base usually indicates the position of the center of the wave, positive for the position above the original surface, and negative for the position below. The amp calculates the absolute value of the positive or negative number set as the maximum change in the wave so that it does not change beyond the magnitude value set in the amp. phase is usually set to zero to start at its original shape.

wave 함수와 달리 정해진 방향으로 캐릭터의 버텍스 전부를 움직이는 move 함수는 움직이는 방향이 (x,y,z)의해 결정되고, 실제 이동되는 버텍스의 크기는 x, y, z의 이동값에 amp 값을 곱한 크기가 적용되며, "<move x=“” y=“” z=“” func=“” base=“” amp=“” phase=“” freq=“”/>"와 같은 형태로 표현한다.Unlike the wave function, the move function that moves all the vertices of the character in a given direction is determined by the movement direction (x, y, z), and the size of the vertices actually moved is the value of the x, y, z movement multiplied by the amp value. The size is applied and expressed as "<move x =“ ”y =“ ”z =“ ”func =“ ”base =“ ”amp =“ ”phase =“ ”freq =“ ”/>”.

예를 들어, move = "10 0 0 sin 0 100 0 5"의 경우, 실제 이동의 최대값은 x축 방향으로 10*100 만큼 이동하게 되는 것이다. For example, if move = "10 0 0 sin 0 100 0 5", the maximum value of the actual movement is to move by 10 * 100 in the x-axis direction.

버텍스의 이동 없이 버텍스 노말 값만을 변경하는 normal 함수는 노말 값의 변형 후에 사용될 스크립트의 여러 가지 요소, 빛의 음영효과, 반사, 환경 맵핑 등에 영향을 주어 다양한 효과를 만드는데 사용하기 때문에 버텍스 좌표 자체에는 직접적인 영향을 주지 않고, "<normal div=“” func=“” base=“” amp=“” freq= “”/>"와 같은 형태로 표현한다. The normal function, which changes only the vertex normal value without moving the vertex, is used to create various effects by affecting various elements of the script, light shading, reflection, environment mapping, etc. that will be used after the normal value is transformed. Without effect, it is expressed in the form "<normal div =" "func =" "base =" "amp =" "freq =" ”/>".

불룩한 모양을 기둥의 축 방향으로 이동하게 하는 기능의 bulge 함수는 굽은 기둥과 같은 형태를 디자인하는데 사용하며, "<bulge width=“” height=“” speed=“”/>"와 같은 형태로 표현한다.The bulge function, which moves the bulging shape in the axial direction of the column, is used to design the shape of a curved column, which is expressed as "<bulge width =“ ”height =“ ”speed =“ ”/>”. do.

메쉬의 변형 부분을 테이블로 기술하고 해당되는 버텍스에 적용하는 기능의 table 함수는 변형되는 버텍스 값을 테이블에 1대 1로 적용하여 다양한 버텍스 군을 한꺼번에 변형하는 데, 테이블의 이름을 정의하는 name, 앞에 정의된 테이블의 버텍스 테이블 값을 참조하는 use, 테이블을 적용할 때 해당 버텍스에 따라 적절한 비율을 직접 쓰거나 시간에 따라 변하는 주기함수를 지정하는 ratio 및 테이블에서 사용하는 좌표를 표시하는 vertex를 속성으로 포함하고, "<table name=“” use=“” ratio=“값 | func base amp phase freq”/>"와 같은 형태로 표현한다. The table function, which describes the deformation part of the mesh as a table and applies the corresponding vertex value to the table one to one, transforms various vertex groups at once. Uses referencing the vertex table value of the previously defined table, properties that directly write the appropriate ratio according to the vertex when applying the table, or ratio specifying the periodic function that changes over time, and vertex indicating the coordinates used in the table. In the form of "<table name =" "use =" "ratio =" value | func base amp phase freq "/>".

예를 들면, 얼굴이 살찌는 것을 표현할 경우에 얼굴 데이터가 살찌기 전의 상태와 살찐 후의 상태에 해당하는 버텍스 좌표를 테이블로 기술하여 놓고, 임의의 캐릭터에 얼굴 부위의 살찌는 변형을 버텍스에 근거하여 적절한 값을 테이블에서 가져와 적용하도록 하는 것이다. For example, when expressing a face's fatness, the vertex coordinates corresponding to the state before and after the face data becomes fat are described in a table, and the fat deformation of the face part is given to an arbitrary character based on the vertex. To get it from the table and apply it.

ratio의 지정된 값은 테이블 내의 첫 번째 버텍스 좌표 값에서 두 번째 버텍스 좌표값으로의 비율을 의미하는 데, ratio의 값이 0인 경우에는 첫 번째 버텍스 좌표값이 되고, 1인 경우는 두 번째 버텍스 좌표값이 되며, 첫 번째와 두 번째 버텍스 좌표값의 중간값을 적용하기 위해서는 ratio를 0.5로 설정한다. The specified value of ratio means the ratio from the first vertex coordinate value in the table to the second vertex coordinate value. If the value of ratio is 0, it is the first vertex coordinate value. Value, and set the ratio to 0.5 to apply the intermediate value of the first and second vertex coordinates.

또한, ratio는 캐릭터가 호흡하는 것과 같은 효과를 만들기 위하여 0에서 1 사이의 지정된 값이 아닌 주기 속성으로 기술하여 시간에 따라 값이 달라지도록 할 수 있는 데, 주기 속성으로 기술할 때에도 최대값과 최소값은 0에서 1 사이가 되도록 해주어야 한다. 예를 들어 ratio="sin 0.5 0.5 0 0.5"로 기술된 경우 호흡하는 동작이 2초에 1회 배를 크게 올렸다 내리는 동작으로 표현된다. In addition, ratio can be described as a periodic property rather than a specified value between 0 and 1 in order to create an effect such as a character breathing so that the value can change with time. Must be between 0 and 1. For example, when ratio = "sin 0.5 0.5 0 0.5" is described, the breathing motion is expressed as the up and down times of the boat once every two seconds.

vertex는 -1로 분리되는 좌표값을 가지고, 일대일 대응관계를 이루어야 하는데, 테이블 값의 원본에 해당하는 source와 테이블 값의 대상에 해당하는 target 중 어느 하나로 표현되며, "type =“source|target”"와 같은 형태로 표현한다. The vertex has coordinate values separated by -1 and should have a one-to-one correspondence. The vertex is expressed as either a source corresponding to the source of the table value or a target corresponding to the target of the table value, and "type =" source | target " In the form of ".

캐릭터의 버텍스를 다양한 알고리즘과 수학적 함수로 변형하는 루아 스크립트는 함수 체형 스크립트만으로 변형하기 힘든 체형의 변형을 <deformVertex> ... </deformVertex>의 사이에 루아 스크립트로 변형시킬 버텍스 좌표, 노말 좌표, 뼈대 좌표를 이용한 알고리즘을 설계한다. Lua script that transforms a character's vertices into various algorithms and mathematical functions, vertex coordinates, normal coordinates, and transformations that transform body shapes that are difficult to transform with only the function body script into a Lua script between <deformVertex> ... </ deformVertex>. Design an algorithm using skeletal coordinates.

본 발명에서는 <deformVertex>....</deformVertex> 내에서 <deformScript>가 존재하는 경우 <deformScript>....</deformScript> 내에 기술된 모든 함수는 루아 스크립트로 인식하도록 정의한다.In the present invention, when <deformScript> exists in <deformVertex> .... </ deformVertex>, all functions described in <deformScript> .... </ deformScript> are defined to be recognized as Lua scripts.

<deformVertex> <deformScript name="doublesize" vptr="vertex"> <!-- 루아스크립트가 이곳부터 위치한다 --> local temp = {} local nsize= vertex["size"] for i=0,nsize-1,4 do temp[i] = vertex[i]*2 temp[i+1] = vertex[i+1]*2 temp[i+2] = vertex[i+2]*2 temp[i+3] = vertex[i+3] end return temp,nsize,0 <!-- 루아스크립트가 여기까지 위치한다 --> </deformScript>  <deformVertex> <deformScript name = "doublesize" vptr = "vertex"> <!-Luascript is here-> local temp = {} local nsize = vertex ["size"] for i = 0, nsize -1,4 do temp [i] = vertex [i] * 2 temp [i + 1] = vertex [i + 1] * 2 temp [i + 2] = vertex [i + 2] * 2 temp [i + 3] = vertex [i + 3] end return temp, nsize, 0 <!-Luascript is here-> </ deformScript>

표 1은 루아 스크립트를 이용하여 작성한 함수에서 버텍스 좌표를 입력 받아서 2배로 확대하는 알고리즘이다. Table 1 shows the algorithm that receives vertex coordinates and doubles them by using Lua script.

예를 들어, 캐릭터의 체형 중 배에 해당하는 뼈대에 속한 버텍스 데이터를 지정하고, 지정한 버텍스 데이터를 뼈의 위치를 중심으로 바깥쪽 방향으로 2배로 뚱뚱하게 불룩한 모습을 표현하는데 표 1의 루아 스크립트로 작성된 알고리즘을 적용할 수 있다. For example, specify the vertex data belonging to the skeleton corresponding to the belly of the character's figure, and express the fat bulging with the specified vertex data twice as far outward from the bone position. The written algorithm can be applied.

도 2는 표 1의 루아 스크립트를 적용하여 배를 불룩하게 만든 캐릭터를 나타낸 도면이다. FIG. 2 is a view showing a character who bulges a boat by applying the lua script of Table 1. FIG.

그림 2A와 같은 3차원 캐릭터의 배 부분에 표 1의 루아 스크립트를 적용하면 그림 2B와 같이 배 부분이 불룩해진 3차원 캐릭터로 캐릭터의 체형이 변형된다. If the Lua script in Table 1 is applied to the belly of the 3D character as shown in Figure 2A, the body shape is transformed into a 3D character with a bulging belly as shown in Figure 2B.

체형 변형 모듈(110)에서 사용하는 요소(deformVertex, deformScript)와 속성(name, wave, move, normal, bulge)의 파싱하는 부분을 구현한다. 체형 변형과 관련된 클래스는 ADSDformAction을 기본 클래스로 하여, 기본적인 변형은 deform 함수로 수행하도록 하고, 이 클래스를 상속받아 ADSDeformWave, ADSDeformNormal, ADSDeformBulge, ADSDeformMove, ADSDeformTable 클래스가 해당 스크립트의 함수적 기능을 담당한다. 체형 변형 스크립트를 불러와 해석하는 기본 클래스 이름은 ADSDeform으로서 스크립트를 해석하는 함수는 loadXML에서 구현된다.Implement the parsing part of the elements (deformVertex, deformScript) and attributes (name, wave, move, normal, bulge) used in the body deformation module 110. The class related to the shape transformation is ADSDformAction as the base class, and the basic transformation is performed by the deform function.Inheriting this class, the ADSDeformWave, ADSDeformNormal, ADSDeformBulge, ADSDeformMove, and ADSDeformTable classes are in charge of the function of the script. The base class name for calling and resolving body shape scripts is ADSDeform, and the function for resolving scripts is implemented in loadXML.

본 발명의 바람직한 실시예에 따른 재질 변형 모듈(120)은 2차원 이미지 모핑(Morphing) 기능을 지원하도록 하여 캐릭터의 얼굴 모습을 제어하고, 캐릭터의 질감과 관련된 요소를 XML 스크립트의 함수에서 직접 제어하도록 한다. Material deformation module 120 according to a preferred embodiment of the present invention to support a two-dimensional image morphing (Morphing) function to control the face of the character, and to directly control elements related to the texture of the character in the function of the XML script do.

도 3은 본 발명의 바람직한 실시예에 따라 얼굴 텍스처 이미지에 설정한 특징점을 나타낸 도면이다. 3 is a diagram illustrating feature points set in a face texture image according to an exemplary embodiment of the present invention.

도 3에서와 같이 본 발명에서는 캐릭터 얼굴 이미지를 제어하는 과정에서 기본적으로 얼굴 텍스처가 1장의 이미지로 표현되는 경우로 가정하였고, 얼굴의 중요한 요소인 눈, 눈썹, 코, 입을 47개의 특징점으로 제어할 수 있도록 하였다. 또한, 캐릭터의 얼굴 모습이 자연스럽게 다른 모습으로 바뀌도록 하기 위해 스크립트에서는 모든 얼굴 텍스처에 특징점을 지정하여 특징점의 위치에 따라 캐릭터의 변형의 중간 이미지를 생성하도록 한다. In the present invention, as shown in FIG. 3, it is assumed that the face texture is basically expressed as one image in the process of controlling the character face image, and control the eyes, eyebrows, nose, and mouth, which are important elements of the face, with 47 feature points. To make it possible. Also, to make the character's face look naturally different, the script assigns feature points to all face textures to create an intermediate image of the character's transformation based on the location of the feature points.

또한, 본 발명에서는 재질 변형 모듈(120)에서 지원하는 이미지 모핑 기능이 특징점을 이용한 2차원 이미지 모핑 기법을 적용하여 젊은 얼굴의 이미지에서 나이든 얼굴로 변화할 때 중간 얼굴을 생성하도록 하여 20대의 여성 얼굴에서 60대의 여성 얼굴로의 텍스처 이미지의 변형에 따라서 중간의 연령대의 이미지를 자동으로 생성하도록 하였다.In addition, in the present invention, the image morphing function supported by the material deformation module 120 applies a two-dimensional image morphing technique using a feature point to generate a middle face when the young face changes from an image of a young face to an older face. Has automatically generated images of middle age according to the transformation of texture images into female faces in their 60s.

본 발명에서 재질 변형 스크립트는 표면의 질감을 나타내는 질감 스크립트와 이미지의 변형을 제어하는 이미지 스크립트를 포함한다.In the present invention, the material deformation script includes a texture script indicating a texture of a surface and an image script for controlling deformation of an image.

캐릭터의 재질에는 반짝이는 금속 느낌, 부드러운 피부 느낌, 돌의 거친 느낌 등을 표현하는 빛의 반사와 관계된 요소가 있는 데, 난반사로 자연스러운 밝기를 묘사하는 주변 색상, 물질의 기본 색상을 묘사하는 분산 색상, 강렬한 빛의 반사를 묘사하는 반사 색상 및 형광등이나 전구를 묘사하는 발산 색상으로 나뉜다.The material of the character has factors related to the reflection of light, such as a shiny metallic feel, a soft skin feel, a roughness of the stone, etc. The ambient color depicts natural brightness with diffuse reflection, and the diffuse color depicts the basic color of the material. It is divided into reflective colors depicting intense light reflections and divergent colors depicting fluorescent or light bulbs.

따라서, 본 발명에서는 물질의 기본 색상의 시간과 공간의 따른 변화를 조절하는 기능을 재질 스크립트에 넣었으며, 기본적인 텍스처 이미지들 간의 섞임을 제어할 수 있는 블랜드(Blend) 기능을 스크립트로 제어하도록 하였다.Therefore, in the present invention, the function of adjusting the change of time and space of the basic color of the material is put in the material script, and the script function to control the blend function that can control the blending between the basic texture images.

캐릭터의 재질 속성에 해당하는 요소를 제어하는 material 함수는 빛이 없는 경우에도 주변 광의 강도에 반응하는 감도를 나타내는 ambient, 재질의 기본 색상을 표시하는 diffuse, 캐릭터에 비추어지는 빛에 대한 반사율을 결정하는 specular 및 전구와 같이 발광하는 물체의 질감을 묘사하는 emission의 속성을 포함하는 데, 적색 빛에 반응하는 비율인 경우에는 r로, 녹색 빛에 반응하는 비율인 경우에는 g로, 청색 빛에 반응하는 비율인 경우에는 b로 정의하여 각각의 속성에 입력하는 스트링값을 Ag, Ab, Dr, Dg, Db, Sr, Sg, Sb, Er, Eg 및 Eb로 표시하고, 각각의 스트링 값은 0에서 1 사이 값으로 표시하며, "<material ambient="Ar Ag Ab" diffuse="Dr Dg Db" specular="Sr Sg Sb" emission="Er Eg Eb"/>"와 같은 형태로 표현한다. The material function, which controls the elements corresponding to the character's material properties, determines the ambient light sensitivity, even if there is no light, the diffuse color that displays the base color of the material, and the reflectance of the light shining on the character. It contains the properties of emission, which describe the texture of an emitting object, such as specular and bulb, with r for red light, g for green light, and blue light. In the case of ratio, the string value defined in b and input to each attribute is expressed as Ag, Ab, Dr, Dg, Db, Sr, Sg, Sb, Er, Eg and Eb, and each string value is 0 to 1 It is expressed in the form of "<material ambient =" Ar Ag Ab "diffuse =" Dr Dg Db "specular =" Sr Sg Sb "emission =" Er Eg Eb "/>".

캐릭터의 재질의 기본 색상을 바꾸거나 주기적인 변화를 표현하는 rgbgen 함수는 버텍스에서 지정한 색상을 사용하거나 wave 함수와 연동하여 밝게 빛나며 주기적인 변화를 표현한다.The rgbgen function, which changes the base color of the character's material or expresses periodic changes, uses the color specified by the vertex or works in conjunction with the wave function to brighten and express periodic changes.

재질 스크립트에서 사용할 색상의 종류를 지정하는 type 속성은 주기적인 함수 형태로 색상의 변화를 주는 경우에는 wave, 재질의 색상을 기본값으로 설정하는 경우에는 identity, 재질의 모델링 데이터에서 설정한 색상 값을 사용하는 경우에는 vertex의 스트링 값을 입력하고, 색상의 주기적인 변화를 표현하는 wave 속성은 sin, triangle, square, sawtooth, inversesawtooth 등의 스트링 값을 입력한다.The type property, which specifies the type of color to be used in the material script, is a periodic function that uses wave for changing colors, identity for setting the material's color as the default, and color values set in the modeling data of the material. In this case, enter the string value of the vertex, and enter the string values such as sin, triangle, square, sawtooth, and inversesawtooth for the wave attribute representing the periodic change of color.

재질의 이미지 간의 합성 방법을 결정하는 기능을 하는 blendfunc 함수는 이미지의 색상을 섞는 blend 속성을 입력하는 데, type 속성을 지정하는 경우에는 type 속성에 따른 blend가 사용되므로 blend 속성은 생략하며, "<blendfunc blend="srcparam destparam" type="add|filter|blend"/>"와 같은 형태로 표현한다. The blendfunc function, which determines how a material is blended between images, enters a blend property that blends the colors of the image. When the type property is specified, the blend property is omitted because the blend according to the type property is used. blendfunc blend = "srcparam destparam" type = "add | filter | blend" /> "

blend 속성은 srcparam과 destparam의 연산으로 이미지의 색상을 혼합하는 데, srcparam은 원본 색상의 비율 또는 종류를 결정하는 값으로서 원본 색상과 곱하고, destparam은 대상 색상의 비율 또는 종류를 결정하는 값으로서 대상 색상과 곱한다.The blend attribute blends the colors of the image by the operation of srcparam and destparam, where srcparam is a value that determines the proportion or type of the original color, and multiplies it by the source color. destparam is a value that determines the proportion or type of the target color. Multiply by

type 속성은 blend 속성에서 srcparam과 destparam값이 모두 1인 경우에는 add를, blend 속성의 srcparam을 대상 색상으로 치환하고 destparam을 0으로 설정하는 경우에는 filter를, blend 속성의 srcparam은 0으로 destparam은 원본 색상으로 설정하는 경우에는 blend를 입력한다. The type attribute of the blend attribute add if the srcparam and destparam values are 1, the filter if the blend attribute replaces the srcparam with the target color and the destparam is set to 0. The blend attribute's srcparam is 0 and the destparam is the original. To set the color, enter blend.

이미지 스크립트는 재질의 이미지와 텍스처의 좌표를 변경하는 스크립트 요소로서, 이미지의 변형의 대부분이 표현되고, 얼굴 이미지의 특징점을 지정한다.An image script is a script element that changes the coordinates of an image of a material and a texture. Most of the deformation of an image is expressed and a feature point of a face image is specified.

텍스처 이미지의 경로 및 파일 이름을 정의하는 map 함수는 텍스처 이미지 파일의 경로를 포함한 파일 이름을 기술하는 name, 사용하는 이미지의 종류를 표시하는 type 속성을 포함하는 데, 텍스처 이미지가 얼굴 이미지인 경우에는 controlpoint 함수를 표시하여 47 개의 특징점의 위치를 표시하여 주며, "<map name="mapname" type="base|light|env|face"/>"와 "<controlpoint> x1 y1, x2 y2, x3 y3, ... , x47 y47 </controlpoint>"와 같은 형태로 표현한다. The map function, which defines the path and file name of the texture image, includes a name that describes the file name, including the path to the texture image file, and a type property that indicates the type of image to use. It displays the controlpoint function and displays the location of 47 feature points. The "<map name =" mapname "type =" base | light | env | face "/>" and "<controlpoint> x1 y1, x2 y2, x3 y3 , ..., x47 y47 </ controlpoint> ".

map 함수에서 사용하는 type 속성에는 보통의 이미지일 경우 base를, 라이트맵으로 사용되는 이미지인 경우에는 light를, 환경맵인 경우에는 env를, 얼굴 이미지인 경우에는 face를 입력하고, face를 입력하는 경우에는 47 개의 2차원 좌표를 controlpoint 함수에 반드시 입력하여 이미지 모핑의 기준을 정하도록 한다.In the type property used in the map function, enter base for normal images, light for images used as lightmaps, env for environment maps, face for face images, and enter face. In this case, 47 two-dimensional coordinates must be input to the controlpoint function to define the image morphing criteria.

텍스처의 좌표를 변환하는 tcmod 함수는 텍스처 좌표를 sx, sy 값만큼 확대 또는 축소하는 scale, 텍스처 좌표를 dx, dy만큼 이동하는 scroll, 텍스처 좌표를 theta 만큼 회전하는 rotate, 주어진 함수로 텍스처 좌표를 변경하는 strech 등의 속성을 포함하여 1차원 선형 변환에 사용하며, "<tcmod scale="sx sy" scroll="dx dy" rotate="theta" stretch="func base amp phase freq" transform="m1...m5"/>"와 같은 형태로 표현한다. The tcmod function, which transforms texture coordinates, scales the texture coordinates up or down by sx and sy values, scrolls the texture coordinates by dx, dy, rotates the texture coordinates by theta, and rotates the texture coordinates with the given function. It is used for one-dimensional linear transformation, including attributes such as strech, and "<tcmod scale =" sx sy "scroll =" dx dy "rotate =" theta "stretch =" func base amp phase freq "transform =" m1. ..m5 "/>"

<deformShader> <map name="face20.jpg" type="face"> <controlpoint> 0.1725 0.675, 0.235 0.7075, 0.3075 0.7175, 0.3725 0.7, 0.43 0.67, 0.235 0.7, 0.3075 0.71, 0.3725 0.695, 0.325 0.585, 0.2025 0.5875, 0.275 0.6375, 0.3625 0.6375, 0.4175 0.5775, 0.3625 0.5375, 0.28 0.5375, 0.5775 0.6675, 0.6425 0.7025, 0.7075 0.7175, 0.7725 0.7075, 0.8275 0.6775, 0.6425 0.6975, 0.7075 0.71, 0.7725 0.6975, 0.6925 0.585, 0.595 0.5775, 0.6475 0.6375, 0.735 0.6325, 0.7975 0.585, 0.7275 0.5375, 0.655 0.535, 0.505 0.5825, 0.4375 0.3925, 0.5025 0.4, 0.555 0.3875, 0.38 0.285, 0.47 0.305, 0.525 0.305, 0.6175 0.285, 0.4675 0.2775, 0.5 0.265, 0.53 0.2775, 0.44 0.27, 0.5 0.265, 0.56 0.2725, 0.435 0.24, 0.5 0.2275, 0.5725 0.24 </controlpoint> </map> <map name="face60.jpg" type="face"> <controlpoint> 0.1825 0.68, 0.235 0.7125, 0.3075 0.72, 0.3675 0.715, 0.4225 0.6975, 0.24 0.695, 0.305 0.705, 0.37 0.7, 0.3075 0.5925, 0.205 0.5825, 0.2625 0.6175, 0.3575 0.64, 0.4 0.5775, 0.35 0.5425, 0.2775 0.5425, 0.5775 0.6925, 0.6375 0.7175, 0.7075 0.72, 0.7725 0.71, 0.8175 0.68, 0.64 0.7, 0.7075 0.7025, 0.7675 0.6925, 0.6925 0.59, 0.6025 0.5775, 0.65 0.6375, 0.7375 0.6175, 0.795 0.58, 0.7275 0.55, 0.6575 0.54, 0.505 0.5825, 0.4375 0.3925, 0.5025 0.4, 0.555 0.3875, 0.3825 0.2725, 0.465 0.3075, 0.53 0.31, 0.615 0.2725, 0.4675 0.2775, 0.5 0.2675, 0.53 0.2775, 0.44 0.27, 0.5 0.2675, 0.56 0.2725, 0.435 0.2375 0.5 0.225, 0.5725 0.24 </controlpoint> </map> </deformShader>  <deformShader> <map name = "face20.jpg" type = "face"> <controlpoint> 0.1725 0.675, 0.235 0.7075, 0.3075 0.7175, 0.3725 0.7, 0.43 0.67, 0.235 0.7, 0.3075 0.71, 0.3725 0.695, 0.325 0.585, 0.2025 0.5875 , 0.275 0.6375, 0.3625 0.6375, 0.4175 0.5775, 0.3625 0.5375, 0.28 0.5375, 0.5775 0.6675, 0.6425 0.7025, 0.7075 0.7175, 0.7725 0.7075, 0.8275 0.6775, 0.6425 0.6975, 0.7075 0.71, 0.7725 0.6975, 0.6925 0.585, 0.595 0.5775, 0.6475 0.6375, 0.735 0.6325, 0.7975 0.585, 0.7275 0.5375, 0.655 0.535, 0.505 0.5825, 0.4375 0.3925, 0.5025 0.4, 0.555 0.3875, 0.38 0.285, 0.47 0.305, 0.525 0.305, 0.6175 0.285, 0.4675 0.2775, 0.5 0.265, 0.53 0.2775, 0.44 0.27, 0.5 0.265, 0.56 0.2725, 0.435 0.24, 0.5 0.2275, 0.5725 0.24 </ controlpoint> </ map> <map name = "face60.jpg" type = "face"> <controlpoint> 0.1825 0.68, 0.235 0.7125, 0.3075 0.72, 0.3675 0.715, 0.4225 0.6975, 0.24 0.695, 0.305 0.705, 0.37 0.7, 0.3075 0.5925, 0.205 0.5825, 0.2625 0.6175, 0.3575 0.64, 0.4 0.577 5, 0.35 0.5425, 0.2775 0.5425, 0.5775 0.6925, 0.6375 0.7175, 0.7075 0.72, 0.7725 0.71, 0.8175 0.68, 0.64 0.7, 0.7075 0.7025, 0.7675 0.6925, 0.6925 0.59, 0.6025 0.5775, 0.65 0.6375, 0.7375 0.6175, 0.795 0.58, 0.7275 0.55, 0.6575 0.54, 0.505 0.5825, 0.4375 0.3925, 0.5025 0.4, 0.555 0.3875, 0.3825 0.2725, 0.465 0.3075, 0.53 0.31, 0.615 0.2725, 0.4675 0.2775, 0.5 0.2675, 0.53 0.2775, 0.44 0.27, 0.5 0.2675, 0.56 0.2725, 0.435 0.2375 0.5 0.225, 0.5725 0.24 </ controlpoint> </ map> </ deformShader>

표 2는 캐릭터의 얼굴 이미지를 변하게 하는 스크립트로서, 20대의 얼굴 이미지인 face20.jpg 파일과 60대의 얼굴 이미지인 face60.jpg 파일을 이용하여 20대 얼굴 이미지와 60대 얼굴 이미지의 중간에 해당하는 얼굴 이미지를 자동으로 생성한다. 도 4와 같이 표 2의 스크립트에 의한 텍스처 모핑 기능으로 생성된 이미지는 그림 4B이고, 그림 4A는 원본 이미지인 face20.jpg이며, 그림 4C는 대상 이미지인 face60.jpg이다. Table 2 shows the script that changes the character's face image. The face that is halfway between the 20's and 60's face images using the face20.jpg file, which is the face image of the 20s, and the face60.jpg file, which is the face image of the 60s. Automatically generate an image. As shown in Figure 4, the image generated by the texture morphing function by the script in Table 2 is shown in Figure 4B, Figure 4A is the original image face20.jpg, Figure 4C is the target image face60.jpg.

본 발명에서 재질 변형 모듈(120)을 구동하기 위한 모든 함수는 <deformShader>와 </deformShader> 사이에 존재하도록 한다. In the present invention, all functions for driving the material deformation module 120 are present between <deformShader> and </ deformShader>.

체형 변형 스크립트와 마찬가지로 기본적인 형태는 TinyXML 클래스의 Document 자료구조를 이용하고, 재질 스크립트에서 표현되는 요소와 속성을 해당 캐릭터의 텍스처 및 재질 변수에 연결하여 렌더링 시에 표현될 수 있도록 한다. Like the body transformation script, the basic form uses the Document data structure of the TinyXML class and connects the elements and attributes expressed in the material script to the texture and material variables of the character so that they can be rendered at render time.

본 발명의 바람직한 실시예에 따른 동작 변형 모듈(130)은 3차원 캐릭터의 각 뼈대의 회전 변화값과 중심의 이동값을 포함한 동작 데이터를 바탕으로 3차원 캐릭터의 동작을 변형시킨다. The motion deformation module 130 according to a preferred embodiment of the present invention deforms the motion of the 3D character based on the motion data including the rotation change value and the center movement value of each skeleton of the 3D character.

캐릭터에 적용되는 동작데이터는 뼈대의 구성을 알 수 있는 기본 뼈대 정보와 기본 뼈대의 움직임 정보로 이루어져 있는 데, BVH 파일의 모션캡쳐 데이터가 대표적인 예이다. The motion data applied to the character is composed of basic skeleton information and basic skeleton information that can know the configuration of the skeleton, the motion capture data of the BVH file is a typical example.

// 뼈대의 골격 정보 HIERARCHY ROOT Hips { OFFSET 0 -2 0 CHANNELS 6 Xposition Yposition Zposition Zrotation Xrotation Yrotation JOINT LeftHip { OFFSET 9.24534 0 0.0065797 CHANNELS 3 Zrotation Xrotation Yrotation JOINT LeftKnee { OFFSET 0 -39.9265 0 CHANNELS 3 Zrotation Xrotation Yrotation JOINT LeftAnkle { OFFSET 0 -38.6177 0 CHANNELS 3 Zrotation Xrotation Yrotation End Site ...................... .... 중간 생략 JOINT Head { OFFSET -0.0493344 11.713 -0.444875 CHANNELS 3 Zrotation Xrotation Yrotation End Site { OFFSET 0.298768 11.7265 0.856213 } } } } // 동작 데이터 MOTION Frames: 165 Frame Time: 0.033333333 0.4223 85.8318 -0.4882 2.4007 2.7725 1.9305 ......(생략) 0.3766 85.8723 -0.4500 2.2092 2.6025 1.9741 ......(생략) 0.3594 85.8987 -0.4216 2.0903 2.4808 2.0241 ......(생략) 0.4223 85.8318 -0.4882 2.0403 2.4762 2.0402 ......(생략) .... 중간 생략 .... 2.3061 85.9629 0.5953 2.0180 1.6200 -0.6675 ......(생략) 2.2931 85.9644 0.6052 1.9909 1.6288 -0.6267 ......(생략)  // skeletal information of skeleton HIERARCHY ROOT Hips {OFFSET 0 -2 0 CHANNELS 6 Xposition Yposition Zposition Zrotation Xrotation Yrotation JOINT LeftHip {OFFSET 9.24534 0 0.0065797 CHANNELS 3 Zrotation Xrotation Yrotation JOINT LeftKnee {OFFSET 0 -39.9265 0 CHANNELS 3 Zrotation JOINT Left {OFFSET 0 -38.6177 0 CHANNELS 3 Zrotation Xrotation Yrotation End Site .............. Middle omitted JOINT Head {OFFSET -0.0493344 11.713 -0.444875 CHANNELS 3 Zrotation Xrotation Yrotation End Site {OFFSET 0.298768 11.7265 0.856213}}}}} // Motion Data MOTION Frames: 165 Frame Time: 0.033333333 0.4223 85.8318 -0.4882 2.4007 2.7725 1.9305 ... (Omitted) 0.3766 85.8723 -0.4500 2.2092 2.6025 1.9741 ...... (Omitted) 0.3594 85.8987 -0.4216 2.0 903 2.4808 2.0241 ... (Omitted) 0.4223 85.8318 -0.4882 2.0403 2.4762 2.0402 ... (Omitted) .... Mid omitted .... 2.3061 85.9629 0.5953 2.0180 1.6200 -0.6675 ..... (Omitted) 2.2931 85.9644 0.6052 1.9909 1.6288 -0.6267 ... (Omitted)

표 3을 살펴보면 앞 부분에서는 모션캡쳐를 한 캐릭터의 뼈대 정보가 담겨있고, 뒷부분에 해당 동작의 캡쳐한 프레임수와 데이터의 초당 프레임수, 모션데이터의 이동 값과 회전 값이 있다. Looking at Table 3, the first part contains the skeleton information of the motion-captured character, and the second part captures the number of captured frames, the number of frames per second of data, and the movement and rotation values of the motion data.

BVH 파일의 헤더 부분에 뼈대 정보는 뼈대의 연결구조와 길이, 연결된 동작 데이터의 타입이 있고, 이 헤더 정보로부터 아래에 나타나는 데이터의 개수가 결정된다. 일반적으로 모든 뼈대는 6개의 자유도로 이동 값과 회전 값을 가질 수 있으나, 최초의 루트에 해당하는 뼈대를 제외하고는 대부분 회전 값만 가지게 된다. 그러한 정보를 바탕으로 실제 동작데이터가 뒤에 위치하게 된다. Skeleton information in the header portion of the BVH file includes the structure and length of the skeleton, the type of motion data connected, and the number of data shown below is determined from this header information. In general, all skeletons can have movement and rotation values in six degrees of freedom, but most skeletons have only rotation values except for the skeleton that corresponds to the first route. Based on such information, the actual operation data is placed behind.

동작 데이터는 전체 프레임의 개수와 1초에 진행할 프레임의 수 정보를 표시한 후 1줄에 모든 뼈대의 움직임 정보를 표현한다. 표 3의 경우는 전체 프레임이 165이므로 동작 데이터는 165행으로 표현되며, 각 줄에서 첫 번째 항은 헤더에서 정의한 자유도 중 첫 번째 것에 해당하는 방식으로 1대1 대응으로 해석한다.The motion data displays the total number of frames and the number of frames to be processed in one second, and then expresses the movement information of all the skeletons in one line. In the case of Table 3, since the entire frame is 165, the motion data is represented by 165 rows, and the first term in each line is interpreted as a one-to-one correspondence in a manner corresponding to the first of the degrees of freedom defined in the header.

본 발명의 바람직한 실시예에 따른 동작 변형 모듈(130)에서 스크립트로 제어하는 캐릭터 동작 요소는 캐릭터 각 뼈대의 회전 변화값과 캐릭터 중심의 이동값이다. 모션캡쳐에 의한 3차원 캐릭터의 동작 데이터는 19개의 회전값과 1개의 이동값이다. The character motion element controlled by the script in the motion transformation module 130 according to a preferred embodiment of the present invention is a rotation change value and a character center movement value of each character skeleton. Motion data of the 3D character by motion capture are 19 rotation values and 1 movement value.

이는 일반적으로 특정한 사람이나 캐릭터의 동작에 대한 데이터로서, 동작 데이터를 특정 캐릭터에 적용하기 위해서는 동작 데이터를 보정 또는 변형하여야 하므로 동작 변형 모듈(130)은 뼈대를 변경하고, 변경된 뼈대에 맞도록 동작 데이터를 변경하는 <bonemodifier>와 뼈대와 상관없이 동작을 변경하는 <motionmodifier>를 포함하며, <deformMotion> 과 </deformMotion> 사이에 존재하도록 한다. This is generally data about a specific person or character's motion, and in order to apply the motion data to a specific character, the motion data must be corrected or deformed, so the motion deformation module 130 changes the skeleton, and the motion data to fit the changed skeleton. Include <bonemodifier> to change the and <motionmodifier> to change the motion irrespective of the skeleton, so that it exists between <deformMotion> and </ deformMotion>.

서로 다른 뼈대를 갖는 동작 간의 데이터 변형에 사용되는 <bonemodifier>와 </bonemodifier> 사이에 사용되는 함수는 뼈대를 회전시키면서 동작을 유지하는 rotate 함수 및 뼈대의 길이를 변경하는 Stretch 함수이다. The functions used between <bonemodifier> and </ bonemodifier>, which are used to transform data between motions with different skeletons, are the rotate function, which stretches the skeleton while maintaining the motion, and the Stretch function, which changes the length of the skeleton.

rotate 함수는 각도를 변경하고자 하는 관절의 이름을 설정하는 jointname 및 관절의 변형 각도를 도(Degree) 단위로 x축, y축, z축의 순서로 기술하여 x, y, z 순서로 회전을 적용하는 rotatedelta의 속성을 포함한다. The rotate function describes the jointname that sets the name of the joint whose angle is to be changed, and the deformation angle of the joint in degrees in the order of the x-axis, y-axis, and z-axis to apply rotation in the order of x, y, z. Contains attributes of rotatedelta.

stretch 함수는 두 개 이상의 이어진 뼈대를 같이 변형하는 경우 이어진 뼈대 중 최하위의 관절의 위치를 보존하기 위해 동작을 변형하는 데, stretch 함수에서의 jointname 속성에는 길이를 변경할 대상이 되는 관절 중 최상위 관절의 이름을 입력하고, 변경 깊이를 입력한다. 변경 깊이는 길이 변경의 대상이 되는 관절의 깊이를 나타내는 데, 변경 깊이의 기본값은 1이고, 변경 깊이를 0으로 설정하면 변경 대상이 되는 관절의 자손 중 최하위 자손까지의 거리가 변경 깊이로 설정되며, 2 개 이상의 이어진 관절을 같이 변형하면 변형 깊이를 2 이상으로 입력하도록 한다. The stretch function modifies its behavior to preserve the position of the lowest joint in the subsequent bones when the two or more subsequent bones are deformed together.The jointname property of the stretch function includes the name of the top joint of the joints whose length is to be changed. And enter the change depth. The depth of change indicates the depth of the joint to be changed in length. The default value of the change depth is 1, and when the change depth is set to 0, the distance to the lowest child of the descendants of the joint to be changed is set as the change depth. For example, if two or more joints are deformed together, enter the deformation depth as two or more.

또한, stretch 함수는 각 관절의 길이변경비율을 설정하는 stretchratio 속성을 포함하는 데, 해당 관절의 길이를 길이 비율만큼 늘리거나 줄이는 기능의 stretchratio 속성은 jointname 속성의 변경 깊이와 stretchratio 속성의 길이 비율의 개수가 반드시 일치하여야 하고, 길이 비율은 1인 경우에는 원래의 길이를 보존하고, 2인 경우에는 원래 길이의 두 배가 된다.In addition, the stretch function includes a stretchratio property that sets the length change ratio of each joint. The stretchratio property of a function that increases or decreases the length of the joint by the length ratio is the number of change depths of the jointname property and the length ratio of the stretchratio property. Must match, and if the length ratio is 1, the original length is preserved, and if 2, it is twice the original length.

<bonemodifier> <rotate jointname="root" rotatedelta="0 90 0"/> </bonemodifier>  <bonemodifier> <rotate jointname = "root" rotatedelta = "0 90 0" /> </ bonemodifier>

표 4는 bonemodifier 내에서 캐릭터를 회전시키는 스크립트이다. 뼈대에 동작이 적용되어 사용자에게 보이는 최종 동작은 유지하면서, 전체 뼈대를 y축으로 90도 만큼 더 회전시키도록 한다. Table 4 shows the script that rotates the character within the bonemodifier. Motion is applied to the armature, which rotates the entire arm by 90 degrees along the y axis, while maintaining the final motion seen by the user.

캐릭터의 특성, 상황적인 요인, 특정한 제약 등으로 인하여 뼈대의 변형이 없이 일정한 구간의 동작을 변형하는 <motionmodifier>와 </motionmodifier> 사이에 사용되는 함수는 특정 프레임에서의 동작을 회전 변형하고, 그 프레임 전후의 동작을 보간하는 rotate 함수 및 특정 관절의 위치에 맞추어 특정 프레임의 루트를 이동하고, 그 프레임의 전후에서 위치 값을 보간하는 translate 함수이다. The function used between <motionmodifier> and </ motionmodifier>, which transforms a certain section of motion without skeletal deformation due to character characteristics, situational factors, and specific constraints, rotates and transforms the motion in a specific frame. Rotate function to interpolate the motion before and after the frame and translate function to move the root of a specific frame according to the position of a specific joint and interpolate the position value before and after the frame.

rotate 함수는 동작을 변경하고자 하는 관절의 이름을 설정하는 jointname, 동작을 변경하고자 하는 대상 프레임의 위치를 -1, 0∼총 프레임수로 표시하는 targetframe, x축, y축, z축의 순서로 회전이 적용되도록 동작의 변경 각도를 표시하는 rotatedelta, 보간 시작 프레임부터 보간 종료 프레임까지를 보간하는 interpolation 및 관절의 최종 각도를 표시하는 rotateabs 등의 속성을 포함한다. The rotate function rotates in order of the jointname that sets the name of the joint whose motion is to be changed, and the targetframe, the x-axis, the y-axis, and the z-axis that indicate the position of the target frame whose motion is to be changed from -1, 0 to the total number of frames. These include attributes such as rotatedelta, which indicates the angle of change of motion to be applied, interpolation that interpolates from the interpolation start frame to the end of the interpolation frame, and rotateabs, which indicates the final angle of the joint.

targetframe 속성의 기본값은 -1이며, -1인 경우에는 모든 프레임에 대하여 변경하는 것을 의미한다. The default value of the targetframe property is -1, and if it is -1, it means to change for all frames.

interpolation 속성에서 demper의 경우는 해당 관절에 대해서만 보간을 수행하지만, endeffector의 경우는 대상 관절의 하위관절의 동작에도 영향을 준다.In the interpolation attribute, the demper interpolates only the joint, but the endeffector also affects the motion of the lower joint of the target joint.

rotateabs 속성은 rotatedelta 속성 대신 사용이 가능한 데, 예를 들어, x축에 대해서는 목표각도를 설정하고 싶지 않다면 ‘x축의 목표각도’위치에 x를 대입하는 형태로 표현한다. The rotateabs attribute can be used instead of the rotatedelta attribute. For example, if you don't want to set the target angle for the x-axis, you can write x at the position of the target angle on the x-axis.

translate 함수는 루트의 위치 이동을 계산하는데 있어서 기준이 되는 관절의 이름을 설정하는 jointname, 동작을 변경하고자 하는 대상 프레임의 위치를 -1, 0∼총 프레임수로 표시하는 targetframe, 기준 관절의 위치 변화를 기술하는 translatedelta, 완충의 시작 프레임부터 대상 프레임을 거쳐 프레임 끝까지 위치 이동을 보간하는 demper 및 관절의 위치를 표시하는 translateabs 등의 속성을 포함한다. The translate function is used to set the name of the joint that is the reference for calculating the positional movement of the root, the targetframe indicating the position of the target frame whose motion is to be changed from -1, 0 to the total number of frames, and the change of the position of the reference joint. It includes attributes such as translatedelta describing the delta, interpolating the positional movement from the start frame of the buffer to the end of the frame through the target frame, and translateabs indicating the position of the joint.

translatedelta 속성은 기준관절의 위치변화를 deltaX deltaY deltaZ의 형태로 기술하고, translateabs 속성은 translatedelta 속성 대신 사용이 가능한데, 예를 들어, x 위치에 대해서 목표 위치를 설정하고 싶지 않다면 x를 대입한다.The translatedelta attribute describes the positional change of the reference joint in the form of deltaX deltaY deltaZ, and the translateabs attribute can be used instead of the translatedelta attribute. For example, if you do not want to set the target position with respect to the x position, substitute x.

<motionmodifier> <rotate jointname="left_upper_leg" targetframe="1000" rotatedelta="-90 0 0" interpolation="demper 0 2000"/> </motionmodifier>  <motionmodifier> <rotate jointname = "left_upper_leg" targetframe = "1000" rotatedelta = "-90 0 0" interpolation = "demper 0 2000" /> </ motionmodifier>

표 5는 캐릭터의 1000 프레임의 왼쪽 무릎을 x축으로 90도 만큼 더 회전시키는 스크립트이다. 0∼2000 프레임 사이를 코사인 곡선을 이용해 부드럽게 보간하도록 한다. Table 5 shows a script that rotates the character's left knee 1000 degrees further 90 degrees along the x-axis. Smooth interpolation between 0 and 2000 frames using a cosine curve.

본 발명은 XML 형식의 구조적인 스크립트를 해석하기 위하여 범용적인 XML 문법 해석 모듈을 이용하고, TinyXML 클래스를 사용하여 기본적인 문법 파서의 안전성을 보장한다.The present invention utilizes a universal XML grammar parsing module to interpret structural scripts in XML format and uses the TinyXML class to ensure the safety of basic grammar parsers.

동작 변형 스크립트는 BVH 형식의 모션캡쳐 데이터를 입력 데이터로 하여 XML로 기술된 동작의 이동과 회전 정보의 변형과 루아 스크립트로 제어하는 데이터의 변형을 해석하는 데, 이를 해석하는 중요 클래스는 ADSDeformMotion class이고, ADSBoneMotion에서 실제적으로 스크립트를 해석하여 실행해주는 역할은 modify 함수의 역할이다.The motion transformation script interprets the motion movement and rotation information described in XML and the deformation of the data controlled by Lua script using motion capture data of BVH format as input data.The important class to interpret this is ADSDeformMotion class. In this case, the role of modifying and executing scripts in ADSBoneMotion is the role of modify function.

본 발명의 바람직한 실시예에 따른 캐릭터 변형 프로그램(100)을 구동하면 도 5와 같은 기본적인 화면을 디스플레이한다. Driving the character transformation program 100 according to the preferred embodiment of the present invention displays a basic screen as shown in FIG.

본 발명에서 캐릭터 변형 프로그램(100)은 VRML 형식의 데이터를 입력받고, 텍스처 이미지는 JPG, TGA 포맷을 불러와 저장할 수 있도록 하였으며, BVH 포맷의 모션 캡쳐 데이터를 캐릭터에 적용하여 동작을 변형하도록 한다. In the present invention, the character transformation program 100 receives the data in the VRML format, and the texture image can be called and stored in the JPG, TGA format, and modify the motion by applying the motion capture data of the BVH format to the character.

도 6a는 본 발명의 바람직한 실시예에 따른 캐릭터 변형 프로그램에서 캐릭터의 뼈대를 설정하는 화면을 나타낸 도면이다. 6A is a diagram illustrating a screen for setting a skeleton of a character in a character transformation program according to an exemplary embodiment of the present invention.

본 발명의 바람직한 실시예에 따른 캐릭터 변형 프로그램(100)은 3차원 캐릭터의 기본적인 형태 정보와 이미지 정보를 로딩(Loading)하여 모델 데이터를 생성하는 데, 이 모델 데이터에 애니메이션이 가능하도록 하려면, 즉, 3차원 캐릭터의 동작을 변형하려면 뼈대 정보를 설정해주어야 한다. The character transformation program 100 according to the preferred embodiment of the present invention generates model data by loading basic shape information and image information of a three-dimensional character. To modify the behavior of a 3D character, you need to set up the skeleton information.

따라서, 본 발명에서 캐릭터 변형 프로그램(100)은 3차원 캐릭터에 19개의 뼈대 정보를 설정하는 기능을 제공하고, 16개의 손가락 관절을 설정하는 기능을 제공한다. Therefore, in the present invention, the character deformation program 100 provides a function of setting 19 skeleton information in a 3D character and provides a function of setting 16 finger joints.

도 6b는 본 발명의 바람직한 실시예에 따른 캐릭터 변형 프로그램에서 설정한 뼈대에 회전을 설정하는 화면을 나타낸 도면이다. 6B is a diagram illustrating a screen for setting rotation on a skeleton set in a character transformation program according to an exemplary embodiment of the present invention.

도 6a에서 3차원 캐릭터에 설정한 뼈대 정보를 바탕으로 각각의 버텍스마다 관절에 대하여 얼마나 회전 값을 적용할지를 결정하여야 하는 데, 이는 스킨 비중 값으로 나타낸다. 스킨 비중 값에 따라 애니메이션의 자연스러움이 결정되기 때문이다. Based on the skeletal information set for the 3D character in FIG. 6A, it is necessary to determine how much the rotation value is applied to the joint for each vertex, which is expressed as a skin specific gravity value. This is because the naturalness of the animation is determined by the skin specific gravity value.

이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The above description is merely illustrative of the technical idea of the present invention, and those skilled in the art to which the present invention pertains may make various modifications and changes without departing from the essential characteristics of the present invention. Therefore, the embodiments disclosed in the present invention are not intended to limit the technical idea of the present invention but to describe the present invention, and the scope of the technical idea of the present invention is not limited by these embodiments. The scope of protection of the present invention should be interpreted by the following claims, and all technical ideas within the scope equivalent thereto should be construed as being included in the scope of the present invention.

이상에서 설명한 바와 같이 본 발명에 의하면, 캐릭터 변형 프로그램을 이용하여 기존에 제작한 3차원 캐릭터의 변형을 제공함으로써, 사용자로부터 소외되는 캐릭터를 변형하여 캐릭터를 사용하는 사용자에게 만족감을 주고, 제작된 캐릭터를 변형시키는 데 소비하는 시간과 노력을 획기적으로 단축시키는 효과가 있다. As described above, according to the present invention, by providing a deformation of the existing three-dimensional character produced by using the character transformation program, the character who is alienated from the user is deformed to give a satisfaction to the user using the character, the produced character It has the effect of dramatically reducing the time and effort spent modifying the system.

Claims (4)

3차원 캐릭터를 변형하는 프로그램을 기록한 기록매체에 있어서 상기 프로그램은, In the recording medium recording a program for deforming a three-dimensional character, the program, 상기 3차원 캐릭터의 외형 정보를 저장하고 있는 버텍스 데이터(Vertex Data)를 이용하고, 상기 3차원 캐릭터의 노말 데이터, 텍스처 데이터, 뼈대 데이터를 참조하여 상기 3차원 캐릭터의 체형을 변형하기 위한 체형 변형 스크립트와 루아 스크립트를 제공하는 체형 변형 모듈;Body shape modification script for deforming the body shape of the 3D character by using vertex data storing the appearance information of the 3D character and referring to normal data, texture data, and skeleton data of the 3D character Body deformation module for providing a Lua script; 상기 3차원 캐릭터의 얼굴 형태를 변형하기 위한 이미지 모핑 기능을 제공하고, 상기 3차원 캐릭터의 색상과 상기 색상의 시간과 공간에 따른 변화를 조절하는 재질 스크립트를 제공하며, 상기 3차원 캐릭터의 텍스처 이미지 간의 섞임을 제어하는 블랜드 스크립트를 제공하는 재질 변형 모듈; 및 It provides an image morphing function for modifying the shape of the face of the three-dimensional character, provides a material script for adjusting the color of the three-dimensional character and the change over time and space of the color, and the texture image of the three-dimensional character A material deformation module for providing a blend script to control mixing between; And 상기 3차원 캐릭터의 각 뼈대에 대한 회전 변화 값과 중심의 이동 값을 포함한 동작 데이터를 바탕으로 상기 3차원 캐릭터의 동작을 변형을 제공하는 동작 변형 모듈Motion deformation module that provides a deformation of the motion of the three-dimensional character based on the motion data including the rotation change value and the movement value of the center of the skeleton of the three-dimensional character 을 포함하는 것을 특징으로 하는 3차원 캐릭터를 변형하는 프로그램을 기록한 컴퓨터 판독가능한 기록매체.And a computer readable recording medium having recorded thereon a program for deforming a three-dimensional character. 제 1 항에 있어서, 상기 루아 스크립트는, The method of claim 1, wherein the Lua script, 상기 3차원 캐릭터의 체형을 변형하기 위한 수학적 함수를 제공하며, 상기 수학적 함수에 상기 버텍스 데이터, 상기 노말 데이터, 상기 텍스처 데이터 및 상기 뼈대 데이터를 입력하는 것을 특징으로 하는 3차원 캐릭터를 변형하는 프로그램을 기록한 컴퓨터 판독가능한 기록매체.And a mathematical function for deforming the body shape of the 3D character, and inputting the vertex data, the normal data, the texture data, and the skeleton data to the mathematical function. Computer-readable recording medium. 제 2 항에 있어서, 상기 재질 변형 모듈은, The method of claim 2, wherein the material deformation module, 상기 3차원 캐릭터의 얼굴 이미지에 47개의 특징점을 설정하고, 상기 특징점을 바탕으로 상기 3차원 캐릭터의 얼굴을 변형하는 중에 상기 특징점의 위치에 따라 상기 3차원 캐릭터를 변형하는 중간 이미지를 생성하도록 하는 것을 특징으로 하는 3차원 캐릭터를 변형하는 프로그램을 기록한 컴퓨터 판독가능한 기록매체.47 feature points are set in the face image of the 3D character, and while the face of the 3D character is deformed based on the feature point, an intermediate image for deforming the 3D character according to the position of the feature point is generated. A computer-readable recording medium having recorded thereon a program for deforming a three-dimensional character. 제 1 항에 있어서, 상기 동작 변형 모듈은, The method of claim 1, wherein the motion modification module, 상기 3차원 캐릭터의 뼈대 정보를 설정하는 기능을 제공하고, 상기 3차원 캐릭터에 설정한 상기 뼈대 정보에 대한 회전 값을 설정하는 기능을 제공하는 것을 특징으로 하는 3차원 캐릭터를 변형하는 프로그램을 기록한 컴퓨터 판독가능한 기록매체.A computer for recording a program for deforming a three-dimensional character, providing a function of setting skeleton information of the three-dimensional character and providing a function of setting a rotation value of the skeleton information set in the three-dimensional character. Readable record carrier.
KR1020060080462A 2006-08-24 2006-08-24 Computer-readable recording medium for recording of 3d character deformation program KR20080018407A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060080462A KR20080018407A (en) 2006-08-24 2006-08-24 Computer-readable recording medium for recording of 3d character deformation program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060080462A KR20080018407A (en) 2006-08-24 2006-08-24 Computer-readable recording medium for recording of 3d character deformation program

Publications (1)

Publication Number Publication Date
KR20080018407A true KR20080018407A (en) 2008-02-28

Family

ID=39385439

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060080462A KR20080018407A (en) 2006-08-24 2006-08-24 Computer-readable recording medium for recording of 3d character deformation program

Country Status (1)

Country Link
KR (1) KR20080018407A (en)

Cited By (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100919826B1 (en) * 2008-03-13 2009-10-01 한국전자통신연구원 Apparatus and method of local deformation using sweep
KR100947439B1 (en) * 2008-06-12 2010-03-12 주식회사 넥슨 System and method for morphing item according to change of form in real time
WO2012149772A1 (en) * 2011-09-27 2012-11-08 华为技术有限公司 Method and apparatus for generating morphing animation
US9058653B1 (en) 2011-06-10 2015-06-16 Flir Systems, Inc. Alignment of visible light sources based on thermal images
US9143703B2 (en) 2011-06-10 2015-09-22 Flir Systems, Inc. Infrared camera calibration techniques
US9207708B2 (en) 2010-04-23 2015-12-08 Flir Systems, Inc. Abnormal clock rate detection in imaging sensor arrays
US9208542B2 (en) 2009-03-02 2015-12-08 Flir Systems, Inc. Pixel-wise noise reduction in thermal images
US9235876B2 (en) 2009-03-02 2016-01-12 Flir Systems, Inc. Row and column noise reduction in thermal images
US9235023B2 (en) 2011-06-10 2016-01-12 Flir Systems, Inc. Variable lens sleeve spacer
US9292909B2 (en) 2009-06-03 2016-03-22 Flir Systems, Inc. Selective image correction for infrared imaging devices
KR20160060472A (en) 2014-11-20 2016-05-30 주식회사 씨지픽셀스튜디오 Secondary motion making method by additional creation of bone
USD765081S1 (en) 2012-05-25 2016-08-30 Flir Systems, Inc. Mobile communications device attachment with camera
US9451183B2 (en) 2009-03-02 2016-09-20 Flir Systems, Inc. Time spaced infrared image enhancement
US9473681B2 (en) 2011-06-10 2016-10-18 Flir Systems, Inc. Infrared camera system housing with metalized surface
US9509924B2 (en) 2011-06-10 2016-11-29 Flir Systems, Inc. Wearable apparatus with integrated infrared imaging module
US9521289B2 (en) 2011-06-10 2016-12-13 Flir Systems, Inc. Line based image processing and flexible memory system
US9517679B2 (en) 2009-03-02 2016-12-13 Flir Systems, Inc. Systems and methods for monitoring vehicle occupants
KR101707203B1 (en) 2015-09-04 2017-02-15 주식회사 씨지픽셀스튜디오 Transforming method of computer graphic animation file by applying joint rotating value
US9635285B2 (en) 2009-03-02 2017-04-25 Flir Systems, Inc. Infrared imaging enhancement with fusion
US9674458B2 (en) 2009-06-03 2017-06-06 Flir Systems, Inc. Smart surveillance camera systems and methods
US9706138B2 (en) 2010-04-23 2017-07-11 Flir Systems, Inc. Hybrid infrared sensor array having heterogeneous infrared sensors
US9706139B2 (en) 2011-06-10 2017-07-11 Flir Systems, Inc. Low power and small form factor infrared imaging
US9706137B2 (en) 2011-06-10 2017-07-11 Flir Systems, Inc. Electrical cabinet infrared monitor
US9716843B2 (en) 2009-06-03 2017-07-25 Flir Systems, Inc. Measurement device for electrical installations and related methods
US9723227B2 (en) 2011-06-10 2017-08-01 Flir Systems, Inc. Non-uniformity correction techniques for infrared imaging devices
US9756262B2 (en) 2009-06-03 2017-09-05 Flir Systems, Inc. Systems and methods for monitoring power systems
US9756264B2 (en) 2009-03-02 2017-09-05 Flir Systems, Inc. Anomalous pixel detection
US9807319B2 (en) 2009-06-03 2017-10-31 Flir Systems, Inc. Wearable imaging devices, systems, and methods
US9811884B2 (en) 2012-07-16 2017-11-07 Flir Systems, Inc. Methods and systems for suppressing atmospheric turbulence in images
US9819880B2 (en) 2009-06-03 2017-11-14 Flir Systems, Inc. Systems and methods of suppressing sky regions in images
US9843742B2 (en) 2009-03-02 2017-12-12 Flir Systems, Inc. Thermal image frame capture using de-aligned sensor array
US9848134B2 (en) 2010-04-23 2017-12-19 Flir Systems, Inc. Infrared imager with integrated metal layers
US9900526B2 (en) 2011-06-10 2018-02-20 Flir Systems, Inc. Techniques to compensate for calibration drifts in infrared imaging devices
US9948872B2 (en) 2009-03-02 2018-04-17 Flir Systems, Inc. Monitor and control systems and methods for occupant safety and energy efficiency of structures
CN107945267A (en) * 2017-12-13 2018-04-20 四川川大智胜软件股份有限公司 A kind of method and apparatus for human face three-dimensional model grain table
US9961277B2 (en) 2011-06-10 2018-05-01 Flir Systems, Inc. Infrared focal plane array heat spreaders
US9973692B2 (en) 2013-10-03 2018-05-15 Flir Systems, Inc. Situational awareness by compressed display of panoramic views
US9986175B2 (en) 2009-03-02 2018-05-29 Flir Systems, Inc. Device attachment with infrared imaging sensor
US9998697B2 (en) 2009-03-02 2018-06-12 Flir Systems, Inc. Systems and methods for monitoring vehicle occupants
US10051210B2 (en) 2011-06-10 2018-08-14 Flir Systems, Inc. Infrared detector array with selectable pixel binning systems and methods
US10079982B2 (en) 2011-06-10 2018-09-18 Flir Systems, Inc. Determination of an absolute radiometric value using blocked infrared sensors
US10091439B2 (en) 2009-06-03 2018-10-02 Flir Systems, Inc. Imager with array of multiple infrared imaging modules
CN108933969A (en) * 2018-07-25 2018-12-04 深圳市茁壮网络股份有限公司 A kind of method and system for realizing digital TV video frequency animation
US10169666B2 (en) 2011-06-10 2019-01-01 Flir Systems, Inc. Image-assisted remote control vehicle systems and methods
US10244190B2 (en) 2009-03-02 2019-03-26 Flir Systems, Inc. Compact multi-spectrum imaging with fusion
US10389953B2 (en) 2011-06-10 2019-08-20 Flir Systems, Inc. Infrared imaging device having a shutter
KR20190110218A (en) * 2018-03-20 2019-09-30 한국전자통신연구원 System and method for implementing Dynamic virtual object
KR20200006959A (en) 2019-12-27 2020-01-21 주식회사 엔씨소프트 Apparatus and method of handling configuration information of a character using screen shot image
US10757308B2 (en) 2009-03-02 2020-08-25 Flir Systems, Inc. Techniques for device attachment with dual band imaging sensor
US10841508B2 (en) 2011-06-10 2020-11-17 Flir Systems, Inc. Electrical cabinet infrared monitor systems and methods
US11297264B2 (en) 2014-01-05 2022-04-05 Teledyne Fur, Llc Device attachment with dual band imaging sensor

Cited By (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100919826B1 (en) * 2008-03-13 2009-10-01 한국전자통신연구원 Apparatus and method of local deformation using sweep
KR100947439B1 (en) * 2008-06-12 2010-03-12 주식회사 넥슨 System and method for morphing item according to change of form in real time
US9635285B2 (en) 2009-03-02 2017-04-25 Flir Systems, Inc. Infrared imaging enhancement with fusion
US10244190B2 (en) 2009-03-02 2019-03-26 Flir Systems, Inc. Compact multi-spectrum imaging with fusion
US9756264B2 (en) 2009-03-02 2017-09-05 Flir Systems, Inc. Anomalous pixel detection
US10033944B2 (en) 2009-03-02 2018-07-24 Flir Systems, Inc. Time spaced infrared image enhancement
US10757308B2 (en) 2009-03-02 2020-08-25 Flir Systems, Inc. Techniques for device attachment with dual band imaging sensor
US9208542B2 (en) 2009-03-02 2015-12-08 Flir Systems, Inc. Pixel-wise noise reduction in thermal images
US9235876B2 (en) 2009-03-02 2016-01-12 Flir Systems, Inc. Row and column noise reduction in thermal images
US9998697B2 (en) 2009-03-02 2018-06-12 Flir Systems, Inc. Systems and methods for monitoring vehicle occupants
US9517679B2 (en) 2009-03-02 2016-12-13 Flir Systems, Inc. Systems and methods for monitoring vehicle occupants
US9986175B2 (en) 2009-03-02 2018-05-29 Flir Systems, Inc. Device attachment with infrared imaging sensor
US9948872B2 (en) 2009-03-02 2018-04-17 Flir Systems, Inc. Monitor and control systems and methods for occupant safety and energy efficiency of structures
US9451183B2 (en) 2009-03-02 2016-09-20 Flir Systems, Inc. Time spaced infrared image enhancement
US9843742B2 (en) 2009-03-02 2017-12-12 Flir Systems, Inc. Thermal image frame capture using de-aligned sensor array
US9843743B2 (en) 2009-06-03 2017-12-12 Flir Systems, Inc. Infant monitoring systems and methods using thermal imaging
US9292909B2 (en) 2009-06-03 2016-03-22 Flir Systems, Inc. Selective image correction for infrared imaging devices
US9716843B2 (en) 2009-06-03 2017-07-25 Flir Systems, Inc. Measurement device for electrical installations and related methods
US9819880B2 (en) 2009-06-03 2017-11-14 Flir Systems, Inc. Systems and methods of suppressing sky regions in images
US9674458B2 (en) 2009-06-03 2017-06-06 Flir Systems, Inc. Smart surveillance camera systems and methods
US9807319B2 (en) 2009-06-03 2017-10-31 Flir Systems, Inc. Wearable imaging devices, systems, and methods
US10091439B2 (en) 2009-06-03 2018-10-02 Flir Systems, Inc. Imager with array of multiple infrared imaging modules
US9756262B2 (en) 2009-06-03 2017-09-05 Flir Systems, Inc. Systems and methods for monitoring power systems
US9848134B2 (en) 2010-04-23 2017-12-19 Flir Systems, Inc. Infrared imager with integrated metal layers
US9207708B2 (en) 2010-04-23 2015-12-08 Flir Systems, Inc. Abnormal clock rate detection in imaging sensor arrays
US9706138B2 (en) 2010-04-23 2017-07-11 Flir Systems, Inc. Hybrid infrared sensor array having heterogeneous infrared sensors
US9509924B2 (en) 2011-06-10 2016-11-29 Flir Systems, Inc. Wearable apparatus with integrated infrared imaging module
US9235023B2 (en) 2011-06-10 2016-01-12 Flir Systems, Inc. Variable lens sleeve spacer
US9723228B2 (en) 2011-06-10 2017-08-01 Flir Systems, Inc. Infrared camera system architectures
US9716844B2 (en) 2011-06-10 2017-07-25 Flir Systems, Inc. Low power and small form factor infrared imaging
US9706137B2 (en) 2011-06-10 2017-07-11 Flir Systems, Inc. Electrical cabinet infrared monitor
US9706139B2 (en) 2011-06-10 2017-07-11 Flir Systems, Inc. Low power and small form factor infrared imaging
US10841508B2 (en) 2011-06-10 2020-11-17 Flir Systems, Inc. Electrical cabinet infrared monitor systems and methods
US10389953B2 (en) 2011-06-10 2019-08-20 Flir Systems, Inc. Infrared imaging device having a shutter
US9538038B2 (en) 2011-06-10 2017-01-03 Flir Systems, Inc. Flexible memory systems and methods
US9521289B2 (en) 2011-06-10 2016-12-13 Flir Systems, Inc. Line based image processing and flexible memory system
US9473681B2 (en) 2011-06-10 2016-10-18 Flir Systems, Inc. Infrared camera system housing with metalized surface
US9900526B2 (en) 2011-06-10 2018-02-20 Flir Systems, Inc. Techniques to compensate for calibration drifts in infrared imaging devices
US10250822B2 (en) 2011-06-10 2019-04-02 Flir Systems, Inc. Wearable apparatus with integrated infrared imaging module
US10230910B2 (en) 2011-06-10 2019-03-12 Flir Systems, Inc. Infrared camera system architectures
US9961277B2 (en) 2011-06-10 2018-05-01 Flir Systems, Inc. Infrared focal plane array heat spreaders
US10169666B2 (en) 2011-06-10 2019-01-01 Flir Systems, Inc. Image-assisted remote control vehicle systems and methods
US9058653B1 (en) 2011-06-10 2015-06-16 Flir Systems, Inc. Alignment of visible light sources based on thermal images
US9723227B2 (en) 2011-06-10 2017-08-01 Flir Systems, Inc. Non-uniformity correction techniques for infrared imaging devices
US9143703B2 (en) 2011-06-10 2015-09-22 Flir Systems, Inc. Infrared camera calibration techniques
US10051210B2 (en) 2011-06-10 2018-08-14 Flir Systems, Inc. Infrared detector array with selectable pixel binning systems and methods
US10079982B2 (en) 2011-06-10 2018-09-18 Flir Systems, Inc. Determination of an absolute radiometric value using blocked infrared sensors
WO2012149772A1 (en) * 2011-09-27 2012-11-08 华为技术有限公司 Method and apparatus for generating morphing animation
US8531484B2 (en) 2011-09-27 2013-09-10 Huawei Technologies Co., Ltd. Method and device for generating morphing animation
USD765081S1 (en) 2012-05-25 2016-08-30 Flir Systems, Inc. Mobile communications device attachment with camera
US9811884B2 (en) 2012-07-16 2017-11-07 Flir Systems, Inc. Methods and systems for suppressing atmospheric turbulence in images
US9973692B2 (en) 2013-10-03 2018-05-15 Flir Systems, Inc. Situational awareness by compressed display of panoramic views
US11297264B2 (en) 2014-01-05 2022-04-05 Teledyne Fur, Llc Device attachment with dual band imaging sensor
KR20160060472A (en) 2014-11-20 2016-05-30 주식회사 씨지픽셀스튜디오 Secondary motion making method by additional creation of bone
KR101707203B1 (en) 2015-09-04 2017-02-15 주식회사 씨지픽셀스튜디오 Transforming method of computer graphic animation file by applying joint rotating value
CN107945267A (en) * 2017-12-13 2018-04-20 四川川大智胜软件股份有限公司 A kind of method and apparatus for human face three-dimensional model grain table
CN107945267B (en) * 2017-12-13 2021-02-26 四川川大智胜软件股份有限公司 Method and equipment for fusing textures of three-dimensional model of human face
KR20190110218A (en) * 2018-03-20 2019-09-30 한국전자통신연구원 System and method for implementing Dynamic virtual object
CN108933969B (en) * 2018-07-25 2021-02-09 深圳市茁壮网络股份有限公司 Method and system for realizing digital television video animation
CN108933969A (en) * 2018-07-25 2018-12-04 深圳市茁壮网络股份有限公司 A kind of method and system for realizing digital TV video frequency animation
KR20200006959A (en) 2019-12-27 2020-01-21 주식회사 엔씨소프트 Apparatus and method of handling configuration information of a character using screen shot image

Similar Documents

Publication Publication Date Title
KR20080018407A (en) Computer-readable recording medium for recording of 3d character deformation program
US10540817B2 (en) System and method for creating a full head 3D morphable model
JP5829371B2 (en) Facial animation using motion capture data
US5267154A (en) Biological image formation aiding system and biological image forming method
US8139068B2 (en) Three-dimensional animation of soft tissue of characters using controls associated with a surface mesh
US20030184544A1 (en) Modeling human beings by symbol manipulation
US8115774B2 (en) Application of selective regions of a normal map based on joint position in a three-dimensional model
JP2000512039A (en) Programmable computer graphic objects
CN111124119B (en) Building model presentation and interaction method based on virtual reality technology
US8704823B1 (en) Interactive multi-mesh modeling system
CN109325990A (en) Image processing method and image processing apparatus, storage medium
US8665261B1 (en) Automatic spatial correspondence disambiguation
US8681147B1 (en) Fractured texture coordinates
JP2000242811A (en) Image processing method and its image processor, and recording medium where integrated shaped model data and image processing program used for the same are recorded
Orvalho et al. Transferring the rig and animations from a character to different face models
Thorn Learn unity for 2d game development
Johnson Towards enhanced visual clarity of sign language avatars through recreation of fine facial detail
CN116583881A (en) Data stream, apparatus and method for volumetric video data
US10319133B1 (en) Posing animation hierarchies with dynamic posing roots
WO2017002483A1 (en) Program, information processing device, depth definition method, and recording medium
US8228335B1 (en) Snapsheet animation visualization
Rhalibi et al. Charisma: High-performance Web-based MPEG-compliant animation framework
CN114119821A (en) Hair rendering method, device and equipment of virtual object
JP2023540434A (en) System and method for computer animation using operation order transformation engine
Oliverio Maya 8.0 Character Modeling

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application