KR20180115633A - 기록 매체, 묘화 방법 및 데이터 구조 - Google Patents

기록 매체, 묘화 방법 및 데이터 구조 Download PDF

Info

Publication number
KR20180115633A
KR20180115633A KR1020180042422A KR20180042422A KR20180115633A KR 20180115633 A KR20180115633 A KR 20180115633A KR 1020180042422 A KR1020180042422 A KR 1020180042422A KR 20180042422 A KR20180042422 A KR 20180042422A KR 20180115633 A KR20180115633 A KR 20180115633A
Authority
KR
South Korea
Prior art keywords
state
attribute
key
parameter
space
Prior art date
Application number
KR1020180042422A
Other languages
English (en)
Other versions
KR102069684B1 (ko
Inventor
유타 이마이
슈이치 이나다
Original Assignee
라이브2디 인크.
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 라이브2디 인크. filed Critical 라이브2디 인크.
Publication of KR20180115633A publication Critical patent/KR20180115633A/ko
Application granted granted Critical
Publication of KR102069684B1 publication Critical patent/KR102069684B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/08Projecting images onto non-planar surfaces, e.g. geodetic screens
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4007Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • G06T15/205Image-based rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • 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
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/04Indexing scheme for image data processing or generation, in general involving 3D image data

Landscapes

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

Abstract

묘화 오브젝트의 제시 요구가 이루어진 상태에 대해, 상태 정보의 보간 연산을 행하는 속성 공간을 속성 테이블 및 상태 테이블에 기초하여 결정하고, 결정한 속성 공간의 각각에 대해 보간 연산을 행하고, 제시 요구가 이루어진 상태의 상태 정보를 도출하여, 묘화 오브젝트를 제시한다. 도출에 있어서, 결정된 속성 공간마다, 해당 속성 공간에 의해 관리되는 차분 정보를 이용하여 보간 연산이 행해지고, 보간 연산 결과의 총합을 기준 상태의 상태 정보에 가산함으로써, 제시 요구가 이루어진 상태의 상태 정보가 도출된다.

Description

기록 매체, 묘화 방법 및 데이터 구조{STORAGE MEDIUM, RENDERING METHOD AND DATA STRUCTURE}
본 발명은, 기록 매체, 묘화 방법 및 데이터 구조에 관한 것으로, 구체적으로는 2차원 화상의 외관을 변화시킴으로써, 해당 화상의 3차원적인 묘화 표현의 제시를 가능하게 하는 기술에 관한 것이다.
디자이너에 의해 그려진 캐릭터 등의 2차원 화상을, 설정된 파라미터에 따라 변형함으로써, 해당 2차원 화상의 3차원적인 묘화 표현을 가능하게 하는 기술이 있다(일본특허공개 제2009-104570호 공보). 보다 상세하게는, 대상물(2차원 화상)의 표현 정의 부품(묘화 오브젝트/아트 메쉬/파츠군)에 대해 소정의 파라미터에 있어서의 상태를 디자이너가 의도한 태양으로 정의함으로써, 미정의된 파라미터에 대한 상태는, 정의된 파라미터에 대한 상태로부터 보간하여 생성함으로써, 파라미터의 변화에 따라 동적으로 2차원 화상의 외관을 변화시키는 기술이, 일본특허공개 제2009-104570호 공보에 개시되어 있다.
일본특허공개 제2009-104570호 공보에서는 예를 들어 캐릭터의 얼굴에 배치되는 눈, 코, 입 등의 묘화 오브젝트는, 얼굴을 표현한 1개의 곡면에 있어서의 배치를 정의해 둠으로써, 해당 곡면이 관상 방향(파라미터)에 따른 형상으로 변형되었을 때에도, 해당 변형을 고려한 형태로 매핑하여, 일괄적으로 곡면에 맞춘 이동이나 변형을 적용시키는 것이 가능하게 구성되어 있다.
그런데, 일본특허공개 제2009-104570호 공보와 같이 곡면에의 매핑을 처리에 포함하는 경우, 곡면에 배치되는 묘화 오브젝트(배치 오브젝트)마다 생기는 변형을 가한 후, 별도 파라미터에 따라 변형시킨 곡면에의 매핑을 실시하여 최종적인 출력 화상이 생성된다. 이때, 출력 화상에 있어 디자이너가 배치 오브젝트에의 미조정을 가함으로써, 특정의 파라미터값 세트에 있어, 디자이너가 소망하는 표현이 실현된다.
한편, 이와 같은 2단계의 처리 공정(배치 오브젝트의 관상 방향 이외의 파라미터(표정 등)에 따른 변형+관상 방향 파라미터에 따른 곡면의 변형 및 해당 곡면에의 배치 오브젝트의 좌표 변환을 포함하는 배치)을 갖고 있음으로써, 특정의 파라미터값 세트에 있어 수행된 조정이 다른 파라미터값 세트로 되었을 경우에, 디자이너가 의도하지 않은 표현이 생길 수 있다. 즉, 곡면을 이용함으로써, 곡면의 이동 변형에 따른 오브젝트 배치가 일괄적으로 가능한 반면, 곡면에의 매핑과의 구속으로 인해 의도하지 않은 표현이 제시될 수 있어서, 디자이너는 여러 가지의 파라미터값 세트에 대해 확인 및 미조정을 하면서, 파탄이 없는 소망하는 표현이 실현될 때까지, 작업을 반복할 필요가 있었다. 특히, 소정의 배치 오브젝트에 대해 변형 등을 수반하는 파라미터를 추가적으로 정의한 경우에는, 디자이너는 해당 파라미터에 따른 묘화 오브젝트의 변형뿐 아니라, 곡면에의 매핑이 수행되었을 경우에 적합한 표현이 되도록, 보간 연산의 기초가 되는 복수의 상태(일본특허공개 제2009-104570호 공보이면 n의 파라미터에 대해 2n)에 있어서의 정의가 필요하고, 묘화 표현의 확충을 위한 파라미터 추가에 따라, 디자이너의 작업 부담은 지수 함수적으로 증가될 수 있는 것이었다.
또한, 일본특허공개 제2009-104570호 공보의 방법에서는, 1컷에 상당하는 2차원 화상에 대해, 3차원적인 묘화 표현이 가능하게 되는 관상 방향의 범위는, 해당 2차원 화상을 이용한 표현에 한정된다. 환언하면, 관상 방향의 범위를 예를 들어 모든 주위로 확장하는 경우에는, 관상 방향에 따라 시인 가능하게 되는 묘화 오브젝트가 변화하는 것을 표현하거나, 혹은 캐릭터의 외관의 특징 등, 특정한 관상 방향에 대해서 소망하는 묘화 표현을 실현하기 위해서, 관상 방향의 변화에 따라, 3차원적인 묘화 표현에 이용하는 묘화 오브젝트군을 전환하여 갈 필요가 있다.
따라서, 이와 같은 전환에 의한 천이가 발생하는 경우에 관상자에게 위화감을 주지 않기 위해, 전환 전후에서 묘화 오브젝트의 형상 등의 묘화 표현의 차이를 작게 하는 것이 바람직하지만, 곡면에의 매핑을 수반하는 방법에서는, 1개의 파라미터값 세트에 있어서의 조정으로 다른 파라미터값 세트에 있어서의 묘화 표현에도 영향이 생길 수 있기 때문에, 적합한 천이를 실현시키는 상태로 하기까지, 디자이너에게 번잡한 조정 작업을 강요할 가능성이 있다.
이에 대하여, 곡면에의 매핑을 실시하지 않고, 파라미터 종류의 수를 증가시켜 묘화 오브젝트의 섬세한 조정을 가능하게 함으로써, 소망하는 묘화 표현을 실현시키는 방법도 생각할 수 있지만, 그 만큼, 파라미터의 변경에 수반하는 묘화 표현의 출력까지 요구하는 보간 연산에 있어서, 참조해야 할 정보량 및 연산량이 지수 함수적으로 증가할 수 있기 때문에, 의도한 묘화 표현의 재현 능력과, 묘화 표현의 제시에 필요한 연산량은 트레이드 오프의 관계에 있다.
본 발명은 종래 기술에서의 상기한 문제를 감안하여 이루어진 것이다. 본 발명은, 소망하는 묘화 표현의 조정을 용이하게 하면서, 연산 부하를 저감시키는 기록 매체, 묘화 방법 및 데이터 구조를 제공한다.
본 발명의 일 양태에 따르면, 요구된 상태의 묘화 오브젝트를 제시하는 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체로서, 상기 프로그램은, 상기 묘화 오브젝트에 관하여 제공된 복수 종류의 속성 및 속성 간의 관련성의 유무를 관리하는 속성 테이블과, 상태 정의가 행해진 속성값 세트 및 해당 정의된 상태를 나타내는 상태 정보를 관리하는 상태 테이블을 기억한 메모리를 포함하는 컴퓨터에, 제시 요구가 이루어진 상기 묘화 오브젝트의 상태를 식별하는 속성값으로 구성된 제시 속성값 세트를 취득하는 처리와, 상기 제시 요구가 이루어진 상태에 관하여, 상태 정보의 보간 연산을 행하는 속성 공간을, 상기 제시 속성값 세트, 상기 속성 테이블 및 상기 상태 테이블에 기초하여 결정하는 처리와, 상기 결정된 속성 공간의 각각에 대해 상기 보간 연산을 행하여, 상기 제시 요구가 이루어진 상태의 상태 정보를 도출하는 처리와, 상기 도출된 상태 정보에 기초하여 상기 묘화 오브젝트를 제시하는 처리를 실행시키고, 상기 묘화 오브젝트에는, 상기 복수 종류의 속성값이 모두 기준값인 것에 의해 식별되는 기준 상태가 정해지고, 상기 복수 종류의 속성의 각각 및 관련성을 갖는 속성군 각각은, 개별 속성 공간을 형성하고, 상기 상태 테이블은, 상기 정의된 상태의 상기 기준 상태로부터 상태 정보의 차분을, 대응하는 속성 공간으로 분리하여 차분 정보로서 관리하는 것이고, 상기 도출하는 처리에 있어서, 상기 결정된 속성 공간마다, 해당 속성 공간에 정의된 상태에 관하여 관리되는 상기 차분 정보를 이용하여 상기 보간 연산이 행해지고, 상기 결정된 속성 공간의 보간 연산 결과의 총합을 상기 기준 상태의 상태 정보에 가산함으로써, 상기 제시 요구가 이루어진 상태의 상태 정보가 도출되는, 기록 매체가 제공된다.
본 발명의 다른 일 양태에 따르면, 요구된 상태의 묘화 오브젝트를 제시하는 묘화 방법으로서, 상기 묘화 오브젝트에 대해 제공된 복수 종류의 속성 및 속성 간의 관련성의 유무를 관리하는 속성 테이블과, 상태 정의가 행해진 속성값 세트 및 해당 정의된 상태를 나타내는 상태 정보를 관리하는 상태 테이블을 취득하는 공정과, 제시 요구가 이루어진 상기 묘화 오브젝트의 상태를 식별하는 속성값으로 구성된 제시 속성값 세트를 취득하는 공정과, 상기 제시 요구가 이루어진 상태에 대해, 상태 정보의 보간 연산을 행하는 속성 공간을, 상기 제시 속성값 세트, 상기 속성 테이블, 및 상기 상태 테이블에 기초하여 결정하는 공정과, 상기 결정된 속성 공간의 각각에 대해 상기 보간 연산을 행하여, 상기 제시 요구가 이루어진 상태의 상태 정보를 도출하는 공정과, 상기 도출된 상태 정보에 기초하여 상기 묘화 오브젝트를 제시하는 공정을 포함하고, 상기 묘화 오브젝트에는, 상기 복수 종류의 속성값이 모두 기준값인 것에 의해 식별되는 기준 상태가 정해지고, 상기 복수 종류의 속성의 각각, 및 관련성을 가지는 속성군의 각각은, 개별의 속성 공간을 형성하고, 상기 상태 테이블은, 상기 정의된 상태의 상기 기준 상태로부터 상태 정보의 차분을, 대응하는 속성 공간으로 분리하여 차분 정보로서 관리하며, 상기 도출하는 공정에 있어서, 상기 결정된 속성 공간마다, 해당 속성 공간에 정의된 상태에 대해 관리되는 상기 차분 정보를 이용하여 상기 보간 연산을 행하고, 상기 결정된 속성 공간의 보간 연산 결과의 총합을 상기 기준 상태의 상태 정보에 가산함으로써, 상기 제시 요구가 이루어진 상태의 상태 정보가 도출되는, 묘화 방법이 제공된다.
본 발명의 또 다른 일 양태에 따르면, 요구된 상태의 묘화 오브젝트의 제시에 이용되며, 상태 정의가 행해진 해당 묘화 오브젝트의 상태를 관리하는 데이터 구조로서, 상기 묘화 오브젝트에 대해 제공된 복수 종류의 속성, 및 속성 간의 관련성의 유무를 관리하는 제1 정보와, 상태 정의가 행해진 속성값 세트, 및 해당 정의된 상태를 나타내는 상태 정보를 관리하는 제2 정보를 포함하고, 상기 묘화 오브젝트에는, 상기 복수 종류의 속성값이 모두 기준값인 것에 의해 식별되는 기준 상태가 정해지고, 상기 복수 종류의 속성의 각각, 및 관련성을 가지는 속성군의 각각은, 개별의 속성 공간을 형성하고, 상기 제2 정보에 있어서, 상기 정의된 상태의 상기 기준 상태로부터 상태 정보의 차분이, 대응하는 속성 공간으로 분리하여 차분 정보로서 관리되는, 데이터 구조가 제공된다.
본 발명의 다른 특징들은 (첨부 도면을 참조한) 예시적인 실시형태들에 대한 이하의 설명으로부터 명확하여진다.
도 1은, 본 발명의 실시형태에 관한 PC(100)의 기능 구성을 나타낸 블럭도.
도 2는, 본 발명의 실시형태에 관한 키폼 편집 애플리케이션의 GUI를 예시한 도면.
도 3a 및 도 3b는, 본 발명의 실시형태에 관한 키폼 편집 애플리케이션에 있어서, 키폼 편집 시의 데이터 보관 유지를 설명하기 위한 도면.
도 4는, 본 발명의 실시형태에 관한 키의 관계를 설명하기 위한 도면.
도 5a, 5b 및 5c는 본 발명의 실시형태에 관한 다차원의 파라미터 공간의 파라미터값 세트에 대해, 보간 연산에 의한 상태 정보의 도출을 설명하기 위한 도면.
도 6a, 6b 및 6c는, 본 발명의 실시형태에 관한 출력용의 데이터 변환을 설명하기 위한 도면.
도 7a, 7b 및 7c는, 본 발명의 실시형태에 관한 출력용의 데이터 변환을 설명하기 위한 다른 도면.
도 8은, 본 발명의 실시형태에 관한 PC(100)에서 행해지는 파라미터 키 설정 처리를 예시한 흐름도.
도 9a 및 9b는, 본 발명의 실시형태에 관한 PC(100)에서 행해지는 키폼 편집 처리를 예시한 흐름도.
도 10a 및 10b는, 본 발명의 실시형태에 관한 베이스 키폼 및 키폼의 갱신 처리를 예시한 흐름도.
도 11a 및 11b는, 본 발명의 실시형태에 관한 반영 처리를 예시한 흐름도.
도 12a, 12b 및 12c는, 본 발명의 실시형태에 관한 편집 시 표시 처리를 예시한 흐름도.
도 13은, 본 발명의 실시형태에 관한 보간 연산을 설명하기 위한 도면.
도 14a, 14b 및 14c는, 본 발명의 실시형태에 관한 런 타임용 데이터 출력 처리를 예시한 흐름도.
도 15a 및 15b는, 본 발명의 실시형태에 관한 종래 방식과의 연산 효율을 대비하기 위한 도면.
[실시형태]
이하, 본 발명의 예시적인 실시형태에 대해, 도면을 참조하여 상세하게 설명한다. 이하에 설명하는 일 실시형태는, 본 발명을 실현하는 장치의 일례로서, 2차원 화상(texture)으로 제각기 구성되는 파츠군을 변형하여, 묘화 오브젝트에 관한 3차원적인 묘화 표현을 제시하는 PC에, 본 발명을 적용한 예를 설명한다. 그러나, 본 발명은, 묘화 오브젝트에 대해 구성된 속성 테이블 및 상태 테이블에 기초하여, 요구된 상태의 묘화 오브젝트의 제시를 실현할 수 있는 임의의 기기에 적용 가능하다.
<용어 정의>
우선, 본 명세서에 있어 이용하는 기본적인 용어에 대해 설명한다.
「파라미터」란, 제시 대상인 묘화 오브젝트에 대해 대응지을 수 있는 속성(변수)을 의미하며, 소정의 수치 범위가 할당되어질 수 있다. 유저는, 해당 속성의 값(파라미터값)을 변경함으로써, 묘화 오브젝트의 스테이터스(status)를 선택할 수 있다. 대응지어지는 파라미터는, 관상 위치나 관상 방향 등의 미리 정해진 개념의 속성을 나타내는 고정적인 것일 필요는 없고, 스테이터스 변경의 지침으로서 유저가 설정한 임의의 개념을 포함하는 것이어도 좋다. 즉, 묘화 오브젝트에 대응지어지는 파라미터는, 스테이터스를 특정하기 위한 변수이며, 해당 변수에 의해 어떻게 묘화 오브젝트의 상태를 변화시킬지는, 유저가 자유롭게 정의 가능하기 때문에, 파라미터는 고정적인 개념에 얽매이는 일 없이 설정 가능하다. 따라서, 묘화 오브젝트에 대응지어지는 파라미터는 복수 종류여도 좋다. 묘화 오브젝트의 제시는, 스테이터스마다 행해진다.
또한, 파라미터의 각각에는, 수치 범위를 규정하는 상한치/하한치나 수치 범위에 있는 정수를 나타내는 정의점인, 「파라미터 키」가 정의된다. 파라미터 키는, 적어도 기준값으로서 설정되는 정의점을 포함하고 있고, 파라미터 종류마다 파라미터 키 리스트에 관리되고 있는 것으로 한다.
또한, 파라미터의 각각은, 특정한 변수의 값에 따라 스테이터스가 변경되는 「파라미터 공간(속성 공간)」을 형성한다. 또한, 묘화 오브젝트에 대응지어지는 복수 종류의 파라미터는, 각각 독립한 개념의 변수를 나타내는 것일 필요는 없으며, 연관되는 것이어도 좋다. 예를 들어, 관상 방향과 관련되는 Pitch 각도 및 Yaw 각도와 같은, 동일한 개념과 관련되는 복수 종류의 변수의 필요성도 고려하여, 파라미터 사이에 관련지음이 이루어지는 것이어도 좋다. 이 경우, 파라미터 각각에 대해, 1개의 변수에 따라 형성되는 1차원의 파라미터 공간과는 별도로, 연관되는 복수의 파라미터에 대해, 복수의 변수에 따라 스테이터스가 변경되는 다차원의 파라미터 공간이 형성된다. 여기서, 파라미터 공간의 차원수는, 해당 공간에 있어서의 스테이터스를 특정하기 위해 이용되는 변수의 수에 대응하고 있고, 상술한 관상 방향의 예에서는, Pitch 각도와 Yaw 각도에 대해 형성되는 파라미터 공간의 차원수는 2(2차원의 파라미터 공간)가 된다.
또한, 묘화 오브젝트의 스테이터스 중, 제시에 관한 보간 연산에서 이용될 수 있는 스테이터스를, 간단히 「키」(파라미터키와는 다른 의미)로서 언급한다. 키는, 스테이터스를 특정하는 식별 정보인 「키폼 인덱스」가 할당되어, 이에 의해 각각 관리된다. 키폼 인덱스란, 스테이터스를 특정하는 1 이상의 파라미터 키의 조합(파라미터 키 세트)으로 구성되는 것으로, 스테이터스의 특정에 필요 충분한 수(종류)의 파라미터값을, 그 조합에 포함한다. 여기서, 키폼 인덱스는, 묘화 오브젝트에 대해 형성되는 파라미터 공간 중 어느 하나에 있어서 스테이터스를 특정하는 것이면 좋고, 특정에 필요 충분한 수란, 키폼 인덱스에 의해 특정 가능한 키를 포함하는, 가장 낮은 차원수의 파라미터 공간을 형성하는 파라미터의 수(차원수)를 의미한다. 상술한 관상 방향의 예에서는, Pitch 각도가 기준값과 다른 값에 의해 식별되고, Yaw 각도가 기준값에 의해 식별되는 키는, Pitch 각도의 파라미터 공간에 의해 특정할 수 있기 때문에, Pitch 각도의 파라미터 키만으로 구성되는 키폼 인덱스가 할당된다.
파라미터 공간과 마찬가지로, 키도, 할당된 키폼 인덱스에 포함되는 파라미터 키의 수로 차원이 정의되는 것으로서, 키폼 인덱스를 참조하면, 해당 키의 정보가 정의되는 파라미터 공간의 특정이 가능하게 구성된다. 또한, 대응지어진 모든 파라미터의 기준값의 파라미터 키의 조합에 의해 특정되는 키는, 「베이스 키」로서 언급하지만, 모든 종류의 파라미터 값으로 특정되되, 기준값만으로 구성되기 때문에, 0차원(혹은 차원의 개념이 없는 것)으로서 취급한다.
「키폼」이란, 키폼 인덱스가 할당된 키(스테이터스)에 대해, 유저에 의해 정의된 묘화 오브젝트의 상태(형상이나 색, 투명도 등)을 의미한다. 키폼은 상태 정보로서 관리되고, 동일한 스테이터스가 지정되었을 경우에는, 정의된 상태가 재현된다.
<PC(100)의 구성>
다음으로, 본 발명의 실시형태에 관한 PC(100)의 기능 구성을, 도 1의 블럭도를 이용하여 설명한다. 또한, 본 실시형태에서는 PC(100)에 있어서, 2차원 화상으로 구성된 묘화 오브젝트의 3차원적 표현을 가능하게 하기 위해서, 묘화 오브젝트에 대해서 파라미터 및 키폼의 정의를 행하는 「키폼 편집 애플리케이션」에 관한 프로그램이 실행됨으로써, 일부의 기능 구성이 실현되는 것으로 한다. 이 애플리케이션에서는, 도 2에 나타내는 바와 같이, 대상의 스테이터스에 있어서 묘화 오브젝트가 소망한 태양이 되도록, 유저는 파라미터 팔레트(201)에 있어서 파라미터값 세트(스테이터스)를 설정하고, 뷰포트(렌더링 윈도우)(202)에 있어서 묘화 오브젝트의 파츠군을 편집함으로써, 키폼을 정의하고 등록할 수 있다. 또한, 키폼이 정의된 적어도 2개의 파라미터 키로 구성되는 구간(파라미터 팔레트(201)에 있어서, 각 파라미터의 슬라이더에 새겨진 눈금으로 나타내는 구간)에 대해서는, 이들 파라미터 키에 대해 정의된 상태 정보가 보간됨으로써, 소망한 파라미터값 세트에 있어서의 묘화 오브젝트의 상태가 뷰포트(202)에 제시된다. 즉, 유저는 키폼을 정의한 구간에 있어서, 스테이터스 변경에 따라 묘화 오브젝트가 어떻게 천이하는지를 확인할 수 있다. 이하에서는, 애플리케이션에 관한 프로그램의 실행에 의해 실현되는 각종 기능을 각각 블록으로 분리하여 설명하지만, 이들은 프로그램에 의해 실현되는 것이어도 좋고, 특정의 하드웨어에 의해 실현되거나, 혹은 이들 양쪽을 이용하여 실현되는 것이어도 좋다.
제어부(101)는, 예를 들어 CPU 등의 제어 장치로서, PC(100)가 가지는 각 블록의 동작을 제어한다. 구체적으로는, 제어부(101)는, 기록 매체(102)에 격납되어 있는 오퍼레이팅 시스템에 관한 프로그램이나, 키폼 편집 애플리케이션에 관한 프로그램 등을 읽어내어, 메모리(103)에 전개하여 실행함으로써, 각 블록의 동작을 제어한다.
기록 매체(102)는, 예를 들어 재기입 가능한 ROM 등의 불휘발성 메모리나, PC(100)에 착탈 가능하게 접속된 HDD 등의 기억 장치이다. 또한, 기록 매체(102)는, 예를 들어 광학 드라이브 등의 소정의 읽고 쓰기 가능한 인터페이스를 거쳐 액세스 가능한 게임 프로그램을 기록한 디스크 등의 기록 매체를 포함하고 있어도 좋다. 기록 매체(102)는, 상술한 프로그램뿐 아니라, 각 블록의 동작에 있어 필요한 파라미터 등의 정보, 및 묘화 오브젝트의 제시에 이용되는 각종 데이터 등을 기억한다.
메모리(103)는, 예를 들어 RAM 등의 휘발성 메모리여도 좋다. 메모리(103)는, 기록 매체(102)로부터 읽어내어진 프로그램 등을 전개하는 전개 영역으로서 뿐만 아니라, 각 블록의 동작에 있어서 출력된 중간 데이터 등을 기억하는 격납 영역으로서도 이용된다. 키폼 편집 애플리케이션의 실행 중, 후술하는 본 발명에 관한 속성 테이블 및 상태 테이블로서의 파라미터 테이블 및 키폼 테이블은, 메모리(103)에서 관리되는 것으로 한다.
파라미터 정의부(104)는, 묘화 오브젝트에의 파라미터의 신규 대응지음 요구에 관한 유저 조작(파라미터 팔레트(201)에의 새로운 파라미터의 추가)이 이루어짐에 따라, 파라미터 테이블에의 파라미터의 등록을 행한다. 파라미터 테이블은, 묘화 오브젝트에 대응지어진 파라미터(의 종류) 및 파라미터 사이의 관련성을 관리하는 테이블이다. 환언하면, 파라미터 테이블은 묘화 오브젝트에 대해 형성되는 파라미터 공간을 관리하는 테이블로서, 각 파라미터에 의해 기술되는 1차원의 파라미터 공간의 존재와, 복수 종류의 파라미터가 연관되는 경우에, 이들 연관되는 파라미터에 의해 형성되는 다차원의 파라미터 공간을 관리한다.
또한, 파라미터 정의부(104)는, 파라미터 키의 추가 요구에 관한 유저 조작(파라미터의 슬라이더에의 정의점의 추가)가 이루어짐에 따라, 메모리(103)에 격납되는 파라미터 키 리스트에 해당 파라미터 키의 정보를 등록한다. 파라미터 키 리스트는, 파라미터 종류마다 정의된 파라미터 키를 관리하는 리스트로서, 각 파라미터에 대해서, 기준값를 포함하는, 적어도 2개의 파라미터 키가 관리된다. 파라미터 키 리스트에의 정보의 등록은, 추가 요구에 관한 유저 조작이 이루어졌을 경우에 한정되는 것은 아니고, 파라미터의 신규 대응지음 요구가 이루어졌을 때에, 대응하는 수치 범위의 상한치 및 하한치(어느 하나는 기준값)를 나타내는 파라미터 키가 등록되는 것이어도 좋다.
또한, 파라미터 정의부(104)는, 파라미터 키 세트의 변경 요구에 관한 유저 조작(파라미터 팔레트(201)에 있어서, 각 파라미터의 슬라이더를 이용하여 어느 하나의 파라미터 키를 선택)이 이루어짐에 따라, 키폼의 정의/편집 대상인 파라미터 키 세트의 정보를 취득하고, 현재의 파라미터값 세트로서 메모리(103)에 격납한다. 도 2에서는, 파라미터 팔레트(201)의 각 파라미터의 슬라이더에 눈금과 함께 나타내는 포인트 중, 검게 채워진 포인트가 현재 선택되어 있는 파라미터 키이고, 백색의 색이 채워지지 않은 포인트가 그 외 정의되어 있는 파라미터 키이다. 또한 포인트 중, 다이아몬드형으로 나타내는 포인트는 기준값의 파라미터 키를 나타내고 있다. 또한, 변경되는 파라미터값은, 파라미터 키로서 정의되어 있는 값에 한정되는 것은 아니다. 상술한 바와 같이, 본 실시형태의 키폼 편집 애플리케이션은, 파라미터 키 사이의 값에 있어서의 묘화 오브젝트의 상태 천이의 확인을 가능하게 하기 때문에, 현재의 파라미터값 세트는 파라미터 키 이외의 값을 포함하여도 좋다.
상태 정의부(105)는, 묘화 오브젝트의 묘화 태양(상태)을 변경하는 유저 조작(뷰포트(202)에 있어서의 묘화 오브젝트에 대응하는 형상 변경, 파츠의 상하 관계 변경, 색 변경, 투과도 변경 등의 조작), 혹은 묘화 태양의 변경이 완료된 것을 나타내는 유저 조작이 이루어짐에 따라, 현재의 파라미터값 세트(파라미터 키 세트)의 정보와 변경 후의 키폼의 정보를 키폼 테이블에 등록한다. 키폼 테이블에의 정보 등록의 상세 내용은 후술하지만, 해당 테이블에는, 상태 정의가 이루어진 파라미터 키 세트에 관련지어져, 키폼 상태 정보가 등록된다.
공간 결정부(106)는, 현재의 파라미터값 세트가 설정됨에 따라, 해당 파라미터값 세트에 대응하는 묘화 오브젝트의 상태 정보의 도출에 이용되는 파라미터 공간을 결정한다. 상세 내용은 후술하지만, 본 실시형태의 키폼 편집 애플리케이션에서는, 연산량이나 메모리 액세스 수를 저감하기 위해, 정의가 이루어진 키폼의 상태 정보를 복수의 파라미터 공간으로 분리하여 관리한다. 그 결과, 묘화 오브젝트의 제시에 있어서, 공간 결정부(106)는, 상태 정보의 도출과 관련되어 참조해야 할 파라미터 공간을 결정한다. 또한, 본 실시형태에서는 주로, 현재의 파라미터값 세트가 파라미터 키로서 등록되어 있지 않은 값을 포함하는 경우에 행해지는 보간 연산에 있어, 참조해야 할 파라미터 공간의 결정을 행하는 방법에 대해서 설명하지만, 현재의 파라미터값 세트가 파라미터 키로서 등록된 값만으로 구성되는 경우이더라도 마찬가지이다.
상태 도출부(107)는, 공간 결정부(106)에 의해 결정된 파라미터 공간의 정보에 기초하여, 현재의 파라미터값 세트에 대응하는 묘화 오브젝트의 상태 정보를 도출하는 처리를 행한다. 보다 상세하게는, 상태 도출부(107)는, 결정된 파라미터 공간에서 정의된 상태에 대해 관리되는 상태 정보를 참조하여 연산(상태 정보의 가산 혹은 보간 연산)을 행하고, 현재의 파라미터값 세트에 대응하는 상태 정보를 도출한다.
묘화부(108)는, 예를 들어 GPU 등의 묘화 장치이면 되고, 표시부(120)의 표시 영역에 표시하는 화상의 생성 및 갱신을 제어한다. 본 실시형태에서는 묘화부(108)는, 키폼 편집 애플리케이션과 관련되는 각종의 GUI의 화상에 더하여, 상태 도출부(107)에 의해 도출된 상태 정보에 기초하여 묘화 오브젝트의 묘화 태양를 변경하고, 해당 변경 후의 태양과 관련되는 묘화 오브젝트를 묘화함으로써, 뷰포트(202)에 제시하는 화상을 생성한다.
표시부(120)는, 예를 들어 LCD 등의 표시장치여도 좋다. 본 실시형태에서는 표시부(120)는, PC(100)가 포함하는 구성요소로서 설명하지만, 본 발명의 실시는 이에 한정되는 것은 아니다. 표시부(120)는, PC(100)와 동일한 케이스에 구성되는 것일 필요는 없으며, PC(100)에 착탈 가능하게 접속되는 외부 표시장치여도 좋다.
조작 입력부(109)는, 예를 들어 마우스, 키보드, 펜 태블릿 등, PC(100)가 가지는 유저 인터페이스이다. 조작 입력부(109)는, 각 인터페이스에 의해 이루어진 조작 입력을 검출하면, 해당 조작 입력에 대응하는 제어 신호를 제어부(101)에 출력한다. 또는, 조작 입력부(109)는, 해당 조작 입력에 대응하는 이벤트의 발생을 제어부(101)에 통지한다.
출력부(110)는, 본 실시형태의 키폼 편집 애플리케이션에 있어서 묘화 오브젝트의 각종 스테이터스에 대해 키폼 정의가 완료된 후, 마찬가지의 상태 천이를 나타내는 묘화 오브젝트의 제시를 외부 애플리케이션이나 외부 장치 등에서 실현하기 위해, 파라미터 테이블 및 키폼 테이블을 최적화된 형식으로 변환하여 출력한다. 이들 테이블에 기초하는 묘화 오브젝트의 제시를 가능하게 하기 위한 기능이 런타임 라이브러리로서 제공되는 경우, 주 프로그램의 실행 중(런타임)에 낮은 연산 부하로 해당 기능이 실현될 것이 요구된다. 따라서, 반복적인 키폼 편집이 상정되는 키폼 편집 애플리케이션과 같이, 파라미터 키 세트마다의 키폼 편집 용이성을 담보하는 관리 형식과는 달리, 소망하는 스테이터스에 관한 묘화 오브젝트의 상태 제시에 있어서의 연산 부하(연산량이나 메모리 액세스 수)를 저감시키도록, 런타임 실행 시에 참조되는 이들 테이블은 출력부(110)에 의해 최적화된다.
<데이터 관리 방식의 개요>
일본특허공개 제2009-104570호 공보에 기재된 방법에서는, 묘화 오브젝트에 대응지어지는 파라미터(변수)가 증가하면, 각 파라미터에 배치된 편집점(파라미터 키)의 조합마다, 해당 묘화 오브젝트의 상태(키폼)를 규정할 필요가 있다. 환언하면, 예를 들어 1체의 캐릭터에 관한 묘화 오브젝트군에 대해 3종류의 파라미터(Qx(관상 방향의 횡방향 각도(yaw)), Qy(관상 방향의 종방향 각도(pitch)), M(입의 개폐도))가 정의되었을 경우, 각 파라미터 키에 의해 규정되는 3차원의 공간(3종류의 파라미터에 의해 규정되는 공간)
0°≤Qx≤60°
0°≤Qy≤30°, 및
0≤M≤1 에 대해, 23=8종류의 묘화 오브젝트군의 상태를 정의할 필요가 있다. 환언하면, 유저는 묘화 오브젝트에 대해 (0, 0, 0), (60, 0, 0), (0, 30, 0), (60, 30, 0), (0, 0, 1), (60, 0, 1), (0, 30, 1) 및 (60, 30, 1)의 8종류의 상태를 정의함으로써, 상기 3차원의 파라미터 공간 범위 내에 있어서의 임의의 값에서의 묘화 오브젝트군의 상태를, 보간 연산에 의해 생성할 수 있었다.
한편, 상술한 바와 같이, 묘화 표현의 다양화를 위해 묘화 오브젝트군에 대해서 대응짓는 파라미터 종류의 수를 증가시키면, 정의해야 하는 상태는 지수 함수적으로 증가한다. 또한, 해당 공간에 대한 보간 연산에 있어서도, 해당 공간에 대해서 정의된 상태를 참조하여, 가중 연산을 행하게 되기 때문에, 연산량 및 메모리 액세스 수가 증가한다.
이에 따라, 본 실시형태의 키폼 편집 애플리케이션에서는, 편집 자유도 및 의도한 상태의 정의가 용이한 조작성을 실현하기 위해, 일본특허공개 제2009-104570호 공보와 같이, 곡면에 매핑하는 방법을 배제하고, 또한 묘화 표현의 다양화를 실현하기 위해 파라미터의 종류가 증가했다고 하더라도, 표시에 관한 연산 부하 및 유저로 하여금 정의하도록 시키는 상태의 수를 저감시켜, 적합한 묘화 표현에 의한 제시를 실현한다.
<키폼 편집 시의 데이터 보관 유지>
이하, 본 실시형태의 키폼 편집 애플리케이션의 키폼 편집 시 (임의의 파라미터 키 세트에 따른 키폼의 정의가 가능한 상태)에 있어서, 파라미터 테이블 및 키폼 테이블을 이용하여 행해지는 데이터 관리 방법에 대해 설명한다. 도 3a 및 도 3b에, 파라미터 테이블(도 3a)과, 키폼 테이블 및 베이스 키폼(도 3b)을 예시한다.
도 3a에 예시하는 바와 같이, 파라미터 테이블에는, 묘화 오브젝트에 대응지어진 복수 종류의 파라미터에 대해서, 이들에 따라 형성되며, 파라미터들 사이의 관련성 유무를 고려한 파라미터 공간이 관리된다. 도 3a의 파라미터 키의 조합예에서는, 파라미터로서 서로 연관되는 PARAM_X, PARAM_Y 및 PARAM_Z의 3종류가 묘화 오브젝트에 대응지어져 있고, 이들 파라미터 각각에 대해 1차원의 파라미터 공간(301)((PARAM_X), (PARAM_Y), (PARAM_Z))이, 또한, 연관되는 복수의 파라미터에 대해 2차원의 파라미터 공간(302)((PARAM_X, PARAM_Y), (PARAM_X, PARAM_Z), (PARAM_Y, PARAM_Z)) 및 3차원의 파라미터 공간(303)((PARAM_X, PARAM_Y, PARAM_Z))이 형성되어 있다. 또한, 파라미터 키 리스트(도시하지 않음)에는, 각각의 파라미터에 대해
PARAM_X:PARAM_X=0.0(기준값), PARAM_X=0.5, 및 PARAM_X=1.0;
PARAM_Y:PARAM_Y=0.0(기준값), PARAM_Y=0.5, 및 PARAM_Y=1.0; 및
PARAM_Z:PARAM_Z=0.0(기준값), PARAM_Z=0.5, 및 PARAM_Z=1.0;
이 관리되고 있는 것으로 한다.
여기서, 모든 파라미터가 기준값인 키폼 인덱스 KeyformIndex:[PARAM_X0.0, PARAM_Y0.0, PARAM_Z0.0]에 의해 베이스 키의 스테이터스가 식별된다. 도 3b에서 기술(304)로 나타내는 바와 같이, 베이스 키폼(베이스 키에 대해 정의되는 키폼(예를 들어 묘화 오브젝트의 디폴트 상태))은, 이 키폼 인덱스를 이용하여 관리된다. 기술(304)로 나타내는 바와 같이 베이스 키폼은, 키폼 인덱스에 관련지어져, 해당 키폼 인덱스의 상태에 있어서의 묘화 오브젝트의 상태 정보(Form:{ID:F0,...})를 관리한다. 베이스 키폼에 대해 관리되는 상태 정보는, 묘화 오브젝트의 묘화 태양을 절대적으로 정의하는 것으로서, 예를 들어 묘화 오브젝트에 대해 할당된 메쉬의 각 정점에 관해서, 렌더링용 좌표 공간의 절대 좌표를 정의하는 정보이면 좋다.
한편, 베이스 키 이외의 키에 대해 정의된 키폼에 대해서는, 본 실시형태에서 도 3b에 기술(305)로 나타내는 키폼 테이블로 관리된다. 여기서, 키폼 테이블로 관리되는 상태 정보의 설명에 앞서, 본 실시형태의 키폼 관리에 도입되는, 차원이 다른 파라미터 공간에 존재하는 키(상태 정의 완료(키폼 정의 완료))의 취급에 대해 설명한다.
본 실시형태의 키폼 편집 애플리케이션에서는, 유저에 의한 상태 정의가 필요한 스테이터스의 수를 저감하기 위해, 베이스 키와, 1차원의 파라미터 공간의 모든 파라미터 키에 대한 상태 정의는 필수로 하지만, 그 이외의 차원의 파라미터 공간의 키에 대한 상태 정의는 임의로 하도록 구성된다. 도 4는, 도 3a의 파라미터 테이블에서 정의되는 PARAM_X, PARAM_Y, PARAM_Z로 규정되는 각 파라미터 공간을 통합하여 나타낸 개념도이다.
도 4에 나타내는 바와 같이, 베이스 키(401)와, 각 파라미터에 배치된 1차원 키(402a~f)는 상태 정의가 필수가 된다.
여기서, n차원 키란, 해당하는 n 종류의 파라미터가 기준값 이외의 파라미터 키인 경우의 스테이터스를 나타내며, 해당하는 n 종류의 파라미터 키에 의해 키폼 인덱스가 구성되는 키를 의미하고, n차원의 파라미터 공간에 속한다. 한편, 복수 종류의 파라미터 키의 조합으로 구성된 키폼 인덱스에 의해 식별되는 그 외의 키(2차원 키 및 3차원 키)는, 상태 정의가 필수로 되지 않는 키이다.
또한, 파라미터 종류와 그 관련성, 및 각 파라미터에 대해 설정되는 파라미터 키가 확정되면, 각 파라미터 공간에 대해서 상태 정의될 수 있는 키의 키폼 인덱스가 키폼 리스트에 더해져, 관리되는 것으로 한다. 예를 들어, PARAM_X와 PARAM_Z가 관련되는 것으로서 설정되고, 나아가 각각 파라미터 키 PARAM_X=0.5, PARAM_X=1.0, PARAM_Z=0.5, PARAM_Z=1.0이 정의되었을 경우, PARAM_X와 PARAM_Z로 형성되는 2차원의 파라미터 공간에 속하고, 상태 정의가 행해질 수 있는 키폼 인덱스
· KeyformIndex:[PARAM_X0.5, PARAM_Z0.5]
· KeyformIndex:[PARAM_X0.5, PARAM_Z1.0]
· KeyformIndex:[PARAM_X1.0, PARAM_Z0.5], 및
· KeyformIndex:[PARAM_X1.0, PARAM_Z1.0]
가, 해당 파라미터 공간에 대해서 키폼 리스트에 등록된다. 키폼 리스트는, 키폼의 정의가 행해질 수 있는 키를 관리하는 것으로서, 키폼이 미정의된 키의 키폼 인덱스를 포함한다. 여기서, 복수 종류의 파라미터가 연관되는(관련성을 가지는)지 아닌지는, 해당 복수 종류의 파라미터가 모두 기준값 이외의 파라미터 키인 키에 대해 상태 정의가 이루어졌는지 아닌지에 의해 확정한다. 구체적으로, 상태 정의가 행해졌을 때, 상태 정의가 행해진 키의 키폼 인덱스에 포함되는, 기준값 이외를 나타내는 복수 종류의 파라미터가 관련성이 있는 것으로서 설정되고, 해당 복수 종류의 파라미터에 관한 다차원의 파라미터 공간이 형성된다.
이와 같은 파라미터 공간에 대해서 상태 정의될 수 있는 키의 키폼 인덱스는, 본 실시형태의 키폼 편집 애플리케이션에서는, 도 2의 폼 컴포지트 팔레트(203)에 나타낸다. 도시되는 예에서는, 폼 컴포지트 팔레트(203)의 상부에는 파라미터 테이블(204)이 나타내져 있고, 묘화 오브젝트(혹은 묘화 오브젝트 내에서 선택된 어느 하나의 파츠)에 대해 형성된 파라미터 공간이 선택 가능하게 나타내어져 있다. 또한, 폼 컴포지트 팔레트(203)의 하부에는, 파라미터 테이블(204)에 있어 선택된 파라미터 공간과 관련되는 키폼 리스트(205)가 나타내어져 있다. 도 2의 예는, 파라미터 테이블(204)에 있어서 PARAM_X를 포함하여 형성되는 2차원의 파라미터 공간이 선택된 상태를 나타내고 있으며, 해당 파라미터 공간인 (PARAM_X, PARAM_Y) 및 (PARAM_X, PARAM_Z)에 속하는 키가, 상태 정의의 유무를 불문하고 열거되어 있다.
또한, 본 실시형태에서는, 각 키의 상태 정보의 도출 및 정의에 관한 처리에서 참조해야 할 키의 특정을 용이하게 하기 위해, 「파생 관계」라는 개념을 키 사이의 관리에 도입한다. 본 실시형태에서는, 파생 관계의 특정은 키폼 인덱스와 키의 차원에 의해서만 행하는 태양에 대해 설명하지만, 파생 관계에 있는 키를 특정하기 위한 추가의 정보를 부가하는 태양에 의해 실현되는 구성이어도 좋다.
임의의 키를 기준으로 생각할 경우, 베이스 키로부터 해당 임의의 키까지 파생하는 파생 관계를 구축하는 키를 「기저 키」라 정의한다. 기저 키는, 임의의 키를 기준으로 생각했을 경우에, 해당 임의의 키보다 저차원이며, 키폼이 정의된 키로서, 해당 임의의 키를 특정하는 일부의 파라미터 키(임의의 키의 키폼 인덱스에 포함되는 파라미터 키)만으로 특정되는 키, 및 베이스 키를 가리킨다. 예를 들어, 도 4에서 KeyformIndex:[PARAM_X1.0, PARAM_Y0.5, PARAM_Z1.0]으로 식별되는 3차원 키의 기저 키의 키폼 인덱스는,
·베이스 키:
KeyformIndex:[PARAM_X0.0, PARAM_Y0.0, PARAM_Z0.0]
· 1차원 키:
KeyformIndex:[PARAM_X1.0]
KeyformIndex:[PARAM_Y0.5], 및
KeyformIndex:[PARAM_Z1.0]
· 2차원 키:(모두 키폼 정의 완료)
KeyformIndex:[PARAM_X1.0, PARAM_Y0.5]
KeyformIndex:[PARAM_Y0.5, PARAM_Z1.0], 및
KeyformIndex:[PARAM_X1.0, PARAM_Z1.0]
이 된다.
이들 키는, 베이스 키를 기초로 하여 파생한 파생 관계를 구축한다(베이스 키→1차원 키→2차원 키→임의의 키). 구체적으로, 파생 관계에 있어, 임의의 키의(베이스 키로까지 거슬러 올라) 파생원에 대응하는 키 모두가 기저 키가 되고, 임의의 키의 상태 정보의 도출과 관련되는 처리에 있어서는, 이들 기저 키에 대해서 키폼 테이블에 의해 관리되는 정보가 참조된다.
한편, 이와 같은 파생 관계에 있어서, 임의의 키의 파생선에 대응하는 키를 「파생 키」라 정의한다. 파생 키는, 임의의 키를 기준으로 생각했을 경우에, 해당 임의의 키보다 고차원이며, 키폼이 정의된 키로서, 해당 임의의 키를 특정하는 모든 파라미터 키를 포함하도록 특정되는 키를 가리킨다. 예를 들어, 도 4에서 KeyformIndex:[PARAM_X1.0, PARAM_Y0.5]에 의해 식별되는 2차원 키의 파생 키는, 키폼 정의 완료 상태인 3차원 키인
KeyformIndex:[PARAM_X1.0, PARAM_Y0.5, PARAM_Z0.5], 및
KeyformIndex:[PARAM_X1.0, PARAM_Y0.5, PARAM_Z1.0]
이 된다.
다음으로, 이와 같은 키의 파생 관계의 개념을 고려하여, 도 3b에 나타내는 키폼 테이불에 대해 설명한다. 본 실시형태의 키폼 편집 애플리케이션에서는, 베이스 키 이외의 키에 대해 정의된 키폼에 대해서는, 베이스 키폼으로부터의 차분을 나타내는 차분 정보가 키폼 테이블에서 관리된다. 보다 구체적으로는, 임의의 키에 관한 키폼에 대해서는, 베이스 키의 상태 정보(베이스 키폼)에, 해당 임의의 키의 모든 기저 키에 대해 관리되는 차분 정보의 총합을 가산함으로써 도출되는 값(상태 정보)으로부터의 차분을 나타내는 차분 정보가, 키폼 테이블에서 해당 임의의 키의 키폼 인덱스에 관련지어져 관리된다. 여기서, 베이스 키에 대해서는 차분 정보는 관리되지 않기 때문에, 모든 기저 키에 대해 관리되는 차분 정보의 총합은, 베이스 키를 제외한 모든 기저 키의 차분 정보의 총합과 동일하다.
환언하면, 다차원의 파라미터 공간에 속하는 키에 대해 특정한 키폼을 정의했을 경우, 해당 키폼의 베이스 키폼으로부터의 차분은, 해당 키가 속하는 차원의 파라미터 공간과, 이보다 낮은 차원수의 파라미터 공간으로 분리하여 키폼 테이블에서 관리되기 때문에, 해당 키의 차분 정보를 적산하여 나감으로써 용이하게 도출할 수 있다. 구체적으로는, 임의의 키에 관한 키폼은, 해당 임의의 키에 대한 상태 정의가 이루어져 있는 경우라면, 베이스 키의 상태 정보, 모든 기저 키의 차분 정보, 및 해당 임의의 키의 차분 정보를 총합함으로써 도출할 수 있다.
따라서, 도 4의 예에서 KeyformIndex:[PARAM_X1.0, PARAM_Y0.5, PARAM_Z1.0]에 의해 식별되는, 정의 완료의 3차원 키의 키폼 F7을 도출하기 위해서는, 베이스 키폼의 상태 정보 F0과, 상술한 기저 키(베이스 키폼을 제외한 6개)의 차분 정보 D2, D3, D6, D7, D8, D9와, KeyformIndex:[PARAM_X1.0, PARAM_Y0.5, PARAM_Z1.0]의 차분 정보 D11를 이용하여, 키폼 F7을
F7=F0+D2+D3+D6+D7+D8+D9+D11에 의해 도출할 수 있다.
한편, 임의의 키에 대한 상태 정의가 이루어지지 않은 경우이더라도, 키폼 테이블로부터 저차원의(적어도 1차원의) 파라미터 공간에 있어서의 파라미터값에 따른 상태 변화를 반영한 차분 정보를 얻을 수 있다. 이 때문에, 본 실시형태의 키폼 편집 애플리케이션에서는, 임의의 키에 대한 상태 정의가 이루어지지 않은 경우에는, 베이스 키의 상태 정보 및 모든 기저 키의 차분 정보를 총합하여 도출된 상태 정보를, 해당 임의의 키에 관한 키폼으로서 사용한다. 구체적으로, 복수 종류의 파라미터의 각각에 의해 형성되는 1차원의 파라미터 공간에 대해, 설정한 파라미터 키의 상태 정의만을 행하면, 이들 파라미터에 의해 복합적으로 형성되는 다차원의 파라미터 공간에 대해서 차분 정보를 도출할 수 있다.
따라서, 도 4의 예에서 KeyformIndex:[PARAM_X1.0, PARAM_Y0.5, PARAM_Z1.0]에 의해 식별되는, 미정의의 3차원 키의 키폼 F7을 도출하기 위해서는, 베이스 키폼의 상태 정보 F0와, 상술한 기저 키(베이스 키폼을 제외한 6개)의 차분 정보 D2, D3, D6, D7, D8, D9를 이용하여, 키폼 F7을,
F7=F0+D2+D3+D6+D7+D8+D9에 의해 도출할 수 있다.
그 결과, 본 실시형태의 키폼 편집 애플리케이션에서는, 다차원의 파라미터 공간에 속하는 키에 대한 상태 정의가 이루어지지 않더라도, 해당 키의 키폼을 저차원의 파라미터 공간에 속하는 기저 키의 상태 정보 및 차분 정보로부터 도출할 수 있다. 그 결과, 다차원의 파라미터 공간에 속하는 키에 대해 관리되는 차분 정보는, 이와 같이 저차원의 파라미터 공간에 속하는 기저 키에 기초하여 도출된 해당 키의 키폼을, 더 조정하는 값으로서의 의미를 갖는다. 구체적으로, 예를 들어 캐릭터를 제작하는 초기 단계인 러프 모델링에서, 유저가 각 파라미터에 대해 제공한 파라미터 키마다의 묘화 오브젝트의(1차원 키의) 키폼을 정의하면, 그 외의 파라미터 키 세트에 있어서의 키폼은 파생적으로 생성된다. 또한, 생성된 임의의 파라미터 키 세트의 키에 대해, 보다 소망하는 형상에 가까워지는 조정을 행하는 경우에는, 기저 키에 관한 차분 정보에 추가되는 차분 정보만이, 해당 임의의 파라미터 키 세트의 키와 관련되어 관리되게 되기 때문에, 저차원의 키에 관한 키폼에 영향을 미치는 일 없이 키폼 리스트를 갱신할 수 있다. 이와 같은, 연산을 간략화하면서 편집 자유도를 담보하는 기능은, 임의의 파라미터 키 세트와 관련되는 키폼의, 베이스 키폼으로부터의 차분을, 파라미터 공간의 대응하는 키로 분리하여 보관 유지하는 구성에 의해 야기되는 것으로, 유저의 작업 부하의 저감에 공헌할 수 있다.
또한, 본 실시형태의 키폼 편집 애플리케이션에서는, 묘화 오브젝트에 대해 정의된 각종의 키폼의 정보에 기초하여, 파라미터 키와 다른 값을 포함하는 파라미터값의 조합(파라미터값 세트)이 설정되었을 경우에, 해당 파라미터값 세트에 대응한 상태 정보를 보간 연산에 의해 도출하고, 해당 상태 정보에 관한 태양의 묘화 오브젝트가 폼 컴포지트 팔레트(203)에 제시된다. 구체적으로, 유저는 묘화 오브젝트의 3차원적인 묘화 표현을 제시함에 있어서, 복수 종류의 키(파라미터 키 세트)에 있어서의 묘화 오브젝트의 키폼을 정의함으로써, 키들 사이의 묘화 오브젝트의 상태를 파라미터값에 따라 보간하여 생성시킬 수 있다. 상술한 바와 같이, 본 실시형태의 키폼 테이블에 의해, 차원이 다른 파라미터 공간으로 분리하여 키폼이 정의된 키의 차분 정보가 관리되기 때문에, 묘화 표현의 제시가 요구된 파라미터값 세트에 따라, 상태 정보의 보간 연산에 필요한 파라미터 공간을 적응적으로 결정할 수 있다. 이에 의해, 불필요한 연산 및 격납된 값의 참조에 관한 메모리 액세스 수를 저감하여, 연산 부하를 저감시킬 수 있다.
예를 들어 도 5a에 나타내는 바와 같은 2차원의 파라미터 공간 중(PARAM_X, PARAM_Y)의 파라미터값 세트(PARAM_X=DX, PRARAM_Y=DY)에 관한 키폼을 도출할 때의 보간 연산은, 파라미터 테이블, 키폼 테이블 및 베이스 키폼이 도 5b와 같을 경우, 도 5c에 나타내는 바와 같은 2종류의 1차원의 파라미터 공간((PARAM_X), (PARAM_Y))에 있어서의 1차원 키의 보간 연산과, 1종류의 2차원의 파라미터 공간에 있어서의 2차원 키의 보간 연산의 총합에 의해 도출할 수 있다. 보다 상세하게는, dx가 베이스 키와 KeyformIndex:[PARAM_X100]으로 나타내지는 구간을 1로 했을 때의, 베이스 키에 대한 파라미터값 PARAM_X=DX의 비율을 나타내고, dy가 베이스 키와 KeyformIndex:[PARAM_Y100]로 나타내지는 구간을 1로 했을 때의, 베이스 키에 대한 파라미터값 PARAM_Y=DY의 비율을 나타내는 경우, 파라미터값 세트에 대응하는 상태 정보 Form(PARAM_XDX, PARAM_YDY)는, 각 키폼의 차분 정보 D1~D3를 이용하여
Form(PARAM_XDX, PARAM_YDY)
=F0(베이스 키폼)
+dx*D1(1차원의 파라미터 공간(PARAM_X)에 있어서의 보간 연산)
+dy*D2(1차원의 파라미터 공간(PARAM_Y)에 있어서의 보간 연산)
+dx*dy*D3(2차원의 파라미터 공간(PARAM_X, PARAM_Y)에 있어서의 보간 연산)에 의해 도출할 수 있다. 구체적으로, 파라미터 공간마다의 보간 연산에 있어서의 상태 참조수를 저감하면서, 연산 규모를 저감하여, 소망하는 파라미터값 세트의 묘화 오브젝트의 상태 정보를 도출할 수 있다. 여기서, 도 5의 예에서는 1차원의 파라미터 공간에 속하는(1종류의 파라미터 키만으로 특정되는) 키는, 2차원의 파라미터 공간에는 속하지 않기 때문에, 2차원의 파라미터 공간에 있어서의 보간 연산에서는, 대응하는 키의 차분 정보는 "차분 없음"(0)으로서 다루어지고, 그 결과 2차원 키의 차분 정보 D3에 2차원의 가중을 실시한 항만이 연산 결과로서 남아 있다.
그 결과, 일본특허공개 제2009-104570호 공보에 기재된 기술과 같이, 파라미터 종류의 수가 n이면, 2n회의 상태 참조를 수반하는 보간 연산을 행하는 것이 아니라, 파라미터 간의 관련성의 유무 및 키폼의 정의의 유무에 따라 최소한의 규모로 보간 연산을 행할 수 있다. 따라서, 본 실시형태의 키폼 편집 애플리케이션에 의하면, 묘화 오브젝트의 표시에 관한 연산 부하가 저감하는만큼, 유저는 보다 많은 종류의 파라미터를 설정할 수 있어서, 적합한 묘화 표현이 얻어지지 않을 가능성이 있는 곡면을 사용하지 않고서, 소망하는 묘화 오브젝트의 상태를 용이하게 정의하기 쉬워진다. 환언하면, 본 실시형태의 파라미터 테이블 및 키폼 테이블과 같은 데이터 관리 구성을 취함으로써, 보다 세밀한(많은) 키폼 설정이 가능하게 되어, 유저가 의도한 상태의 키폼이 정의되기 쉬워진다. 이것은, 상술한 바와 같은, 예를 들어 관상 방향에 따라 표시에 이용하는 묘화 오브젝트를 다른 것으로 전환하는 태양에 있어서, 전환의 경계 부근에 있어서의 묘화 오브젝트의 형상이나 색 등을 정렬하는 것을 용이하게 한다.
<묘화 오브젝트의 제시>
또한, 본 실시형태의 키폼 편집 애플리케이션에 있어서 이루어진 상태 정의에 따른 묘화 오브젝트의 제시와 관련하여, 상술한 바와 같은 (1) 해당 애플리케이션에서의 편집 작업 중에 있어서의 표시와, (2) 연산 부하를 억제하고 높은 리스폰스성이 요구되는, 외부 애플리케이션이나 뷰어 등에서의 표시(키폼 편집 애플리케이션에서의 편집이 완료되고, 외부 애플리케이션에서 이용 가능하도록 출력된 데이터의 표시) 사이에서, 참조용의 데이터 구성을 다르게 한다.
<편집 시에 있어서의 표시>
편집 시에 있어서의 묘화 오브젝트의 표시는, 파라미터값 세트의 변경에 따라, 보간에 의해 생성되는 묘화 오브젝트의 상태 변화를 확인하면서, 새로운 키의 추가 및 이미 정의한 키폼의 변경이 이루어지는 것을 고려하여, 파라미터 테이블 및 키폼 테이블의 구성은 유지한 채로, 베이스 키폼에 대해 가산하는 차분 정보를 도출함으로써 행해진다. 보다 상세하게는, 설정된 파라미터값을 포함하는 파라미터 공간(기준값 이외의 값이 설정된 파라미터가 n종류인 경우에 있어서, 파라미터값을 내포하는 2×n개의 키로 규정되는 값 범위)을 특정하고, 가장 저차원의 파라미터 공간으로부터 가장 고차원의 파라미터 공간으로 순서대로, 가중 연산에 의해 파라미터값에 따른 차분 정보를 적산하고, 최종적인 차분 정보를 베이스 키폼에 가산함으로써, 표시하는 묘화 오브젝트의 상태를 도출한다.
또한, 키폼 편집 애플리케이션에서는, 차분 정보의 적산에 의해 다차원의 파라미터 공간의 묘화 오브젝트의 상태를 도출하는 구성으로 하고 있기 때문에, 저차원의 파라미터 공간에 있어서 키폼의 변경이 가해짐으로써, 해당 변경에 의한 영향이 고차원의 파라미터 공간으로도 파급한다. 이와 같은 변경에 의한 영향의 파급은, 예를 들어 고차원의 파라미터 공간의 키폼의 정의가 적합한 경우에, 이에 지장을 줄 수 있다. 따라서, 키폼 편집 애플리케이션에서는, 임의의 키의 편집 시에 변경시키고 싶지 않은, 상위의 차원의 대응 키(파생 키)에 대한 영향을 회피하기 위한 「핀 고정(pinning)」기능을 가져, 저차원의 파라미터 공간에서의 키폼 변경의 영향을 상쇄하는 구성을 마련한다. 보다 상세하게는, 상태 정의가 이루어진 키에 대해, 핀 고정 기능을 실행하는(저차원의 파라미터 공간에 있어서의 키폼 변경의 영향을 상쇄하는, 환언하면, 저차원의 파라미터 공간에 있어서의 키폼 변경에 의하지 않고, 정의된 키폼을 유지하는)지 아닌지를 나타내는, 예를 들어 논리형의 정보가 메모리(103)에 격납되어 관리된다.
해당 핀 고정 기능의 실행과 관련되는 정보(핀 고정 플래그)는, 예를 들어 도 2의 키폼 리스트(205)에 있어서, 유저가 적용시키고 싶은 키를 선택함으로써 참(True:실행한다)으로 설정되는 것이어도 좋다. 또한, 도시되는 바와 같이 핀 고정 플래그(206)는, 상태 정의가 이루어지지 않은 키에 대해서도 설정 가능이여도좋다. 구체적으로, 임의의 키에 대해, 해당 임의의 키의 기저 키의 차분 정보의 총화에 의해 도출되는 상태 정보가 적합한 경우, 해당 임의의 키에 대해 키폼의 정의를 실시하지 않고서도, 이를 유지하도록(저차원의 파라미터 공간에 있어서의 키폼 편집/정의에 의한 영향을 받지 않도록) 핀 고정 플래그를 설정 가능하게 구성하는 것이어도 좋다. 이 경우, 해당 임의의 키에 영향이 파급될 수 있는 키폼 변경이 이루어졌을 경우에는, 해당 임의의 키의 상태 정보를 유지시키는 차분 정보(변경을 해소하는 차분 정보)가 키폼 테이블에 추가되어, 상태 정의가 이루어진 상태로 변경하면 좋다.
<런타임 실행 시의 표시>
한편, 편집 완료 후의, 런타임 실행 시의 묘화 오브젝트의 표시는, 가중 연산을 행하는 회수(파라미터 공간수) 및 가중 연산에 있어 참조하는 키수를 저감시키도록, 편집 중에 파라미터 테이블에 있어 차원마다 분리하여 관리하고 있던 파라미터 공간을 가능한 한 통합한다. 구체적으로, 편집 용이성을 고려하고 있었던 편집 시와는 달리, 런타임 실행 중에는 차분 정보의 변경을 허용할 필요가 없다. 이에 따라, 서로 배타적인 파라미터 공간만으로 파라미터 테이블이 구성되도록, 대응하는 고차원의 파라미터 공간이 존재할 경우에는, 저차원의 키를 고차원의 키로 변환하고, 또한 차분 정보는 유지되도록 고차원의 파라미터 공간에 존재하고 있던 키의 차분 정보도 갱신하여, 출력용의 파라미터 테이블 및 키폼 테이블이 생성된다.
예를 들어, 묘화 오브젝트에 3종류의 파라미터(PARAM_X, PARAM_Y, PARAM_Z)가 대응지어지고, 도 6a의 파라미터 공간에 검은색 포인트로 나타내는 키(베이스 키(601), 1차원 키(602a~c), 2차원 키(603a 및 b))에 대해 상태 정의가 이루어지고, 백색 포인트로 나타내는 키(2차원 키(604) 및 3차원 키(605))에 대해 상태 정의가 이루어지지 않은 경우, 출력용의 파라미터 테이블 및 키폼 테이블은, 이하와 같이 된다.
도 6a의 예에서는 3차원의 파라미터 공간(3차원 키(605))에 상태 정의가 되어 있지 않기 때문에, 도 6b에 나타내는 바와 같이 편집 시에 보관 유지되는 파라미터 테이블(611)에는, 3차원의 파라미터 공간은 포함되지 않고, 1차원의 파라미터 공간((PARAM_X), (PARAM_Y), (PARAM_Z))과, 2차원의 파라미터 공간((PARAM_X, PARAM_Z), (PARAM_Y, PARAM_Z))이 관리되고 있다. 환언하면, 3차원 키(605)에 상태 정의가 이루어지지 않은 상태는, 관리되고 있는 2차원의 파라미터 공간이 배타적인 공간으로서 취급하는 것이 가능함을 의미한다. 여기서, 배타적인 파라미터 공간이란, 보다 높은 차원의 파라미터 공간과 관련되는 파라미터값 세트에 대해 상태 정보를 도출할 때에, (파라미터값 세트의 차원수에 맞추어) 일괄적으로 보간 연산을 행할 필요가 없이, 각각의 파라미터 공간에 대해 보간 연산을 분리 가능한 공간을 의미한다. 구체적으로, 도 6a에 관한 3차원의 파라미터 공간과 관련되는 파라미터값 세트에 대해 상태 정보를 도출할 때에, 보간 연산과 관련되는 처리 부하를 저감하는(보간 연산에 있어서의 상태 참조수가 저감 23→22) 것이 가능한 공간이라고 판별할 수 있다.
한편, 상태 정의가 이루어져 있는 2차원의 파라미터 공간((PARAM_X, PARAM_Z), (PARAM_Y, PARAM_Z))에 대해서는, 이들 파라미터 공간을 형성하는 파라미터에 관한 1차원의 파라미터 공간은, 각각의 2차원의 파라미터 공간으로 통합할 수 있다. 즉, 2차원의 파라미터 공간에 대한 보간 연산에 있어 상태 참조하는 키는, 각 1차원의 파라미터 공간에 대한 보간 연산에 있어서도 상태 참조하는 키이기 때문에, 파라미터 공간을 통합함으로써, 보간 연산의 회수를 저감(1차원의 파라미터 공간과 관련되는 3회의 보간 연산을 생략)하면서, 전체로 행해지는 보간 연산에 있어서의 상태 참조수의 중복을 저감할 수 있다. 따라서, 출력용의 파라미터 테이블(612)은, 도 6b에 나타내는 바와 같이 2종류의 2차원의 파라미터 공간만으로 구성된다.
또한, 도 6c에 나타내는 바와 같이 편집 시에 보관 유지되는 키폼 테이블(621)이 구성되는 경우, 파라미터 테이블에 맞춘 파라미터 공간의 통합을 적용하기 위해, 1차원의 파라미터 공간에 속하는 키에 대해서는, 키폼 인덱스가 통합처의 파라미터 공간에 맞추어 변경된다(통합처의 파라미터 공간에 맞추어, 부족한 파라미터 키가 기준값으로 보충되어진다).
여기서, 1차원의 파라미터 공간(PARAM_Z)에 속한 KeyformIndex:[PARAM_Z100]으로 나타내는 키는, 2종류의 파라미터 공간의 쌍방이 통합처가 되기 때문에, 각각의 공간용으로 변경된 2종류의 키폼 인덱스(KeyformIndex:[PARAM_X0, PARAM_Z100], KeyformIndex:[PARAM_Y0, PARAM_Z100])가 된다. 그러나, 2종류의 2차원의 파라미터 공간((PARAM_X, PARAM_Z), (PARAM_Y, PARAM_Z))은 배타적으로 보간 연산을 행하기 때문에, 이들 연산 결과를 통합했을 경우에는 KeyformIndex:[PARAM_Z100]의 키의 참조는 중복하여 행해져, 해당 키에 관한 차분 정보 D3의 가중이 2배가 되어 버린다. 따라서, 출력용의 키폼 테이블(622)에서는, 이와 같은 복수의 배타적인 파라미터 공간에서 참조가 중복되는 키에 대해서는, 통합처의 높은 차원수의 파라미터 공간의 수에 따라 차분 정보를 등분한 값으로 변환한다.
또한, 이와 같은 파라미터 공간의 통합이 행해지는 경우, 상태 정보의 도출 방식은, 편집 시와 같이 각 차원의 파라미터 공간에 있어서의 보간 연산의 결과를 총합함으로써 소망하는 파라미터값 세트의 상태 정보를 도출하는 태양으로부터 변화한다. 즉, 통합에 의해 저차원(1차원)의 파라미터 공간에 속하여 있던 키가 동 차원(2차원)의 파라미터 공간에 속하는 키로 변환되는 경우, 통합처가 되는 2차원의 파라미터 공간에 원래 속하여 있던 키(KeyformIndex:[PARAM_X100, PARAM_Z100], KeyformIndex:[PARAM_Y100, PARAM_Z100])는, 편집 시에는 1차원의 파라미터 공간으로 분리되어 있던 차분을 포함한 차분 정보로 변환할 필요가 있다. 따라서, 도 6c에 나타내는 이들 2차원 키의 차분 정보 D4' 및 D5'는, 중복하는 키의 등분 후의 차분 정보를 고려하여,
D4'=D1+1/2*D3+D4
D5'=D2+1/2*D3+D5 로 변환된다.
이와 같이 함으로써 도 6a의 태양에서는, 2차원의 파라미터 공간 중의 파라미터값 세트의 상태 정보의 도출에, 편집 시에는 1차원의 파라미터 공간에 있어서의 보간 연산×3((PARAM_X), (PARAM_Y), (PARAM_Z))과, 2차원의 파라미터 공간에 있어서의 보간 연산×2((PARAM_X, PARAM_Z), (PARAM_Y, PARAM_Z))의 5회의 보간 연산과, 이들의 총합 연산을 필요로 하고 있던 것이, 출력용의 변환에 의해, 2차원의 파라미터 공간에 있어서의 보간 연산×2((PARAM_X, PARAM_Z), (PARAM_Y, PARAM_Z))와, 이들 총합 연산의 수행만으로 되기 때문에, 연산 규모를 축소할 수 있다. 또한, 각 보간 연산에 있어서의 상태 참조수의 관점에서도, 편집 시에는 2×3+22×2=14회인 것이, 출력용의 변환에 의해 22×2=8회가 되어, 메모리 액세스 수를 저감할 수 있다.
또한 예를 들어, 묘화 오브젝트에 3종류의 파라미터(PARAM_X, PARAM_Y, PARAM_Z)가 대응지어지고, 도 7a의 파라미터 공간에서 검은색 포인트로 나타내는 키(베이스 키(701), 1차원 키(702a~c), 2차원 키(703a~b), 3차원 키(705))에 상태 정의가 이루어지고, 백색의 포인트로 나타내는 키(2차원 키(704))에 상태 정의가 이루어지지 않은 경우, 출력용의 파라미터 테이블 및 키폼 테이블은, 이하와 같이 된다.
도 7a의 예에서는 3차원의 파라미터 공간(3차원 키(705))에 상태 정의가 이루어져 있기 때문에, 도 7b에 나타내는 바와 같이 편집 시에 보관 유지되는 파라미터 테이블(711)에는, 1차원의 파라미터 공간((PARAM_X), (PARAM_Y), (PARAM_Z)), 2차원의 파라미터 공간((PARAM_X, PARAM_Z), (PARAM_Y, PARAM_Z)), 및 3차원의 파라미터 공간((PARAM_X, PARAM_Y, PARAM_Z))이 관리되고 있다. 이 때문에, 상태 정의가 이루어져 있는 3차원의 파라미터 공간에 대해, 해당 파라미터 공간을 형성하는 파라미터에 관한 1차원의 파라미터 공간 및 2차원의 파라미터 공간은, 통합할 수 있다. 따라서, 출력용의 파라미터 테이블(712)은, 도 7b에 나타내는 것처럼 1종류의 3차원의 파라미터 공간만으로 구성된다.
또한, 도 7c에 나타내는 바와 같이 편집 시에 보관 유지되는 키폼 테이블(721)이 구성되는 경우, 파라미터 테이블에 맞춘 파라미터 공간의 통합을 적용하기 위해, 1차원의 파라미터 공간에 속하는 키 및 2차원의 파라미터 공간에 속하는 키에 대해서는, 키폼 인덱스가 통합처의(3차원의) 파라미터 공간에 맞추어 변경된다(통합처의 파라미터 공간에 맞추어, 부족한 파라미터 키가 기준값으로 보충되어진다).
여기서, 파라미터 공간의 통합은 차원이 높은 순서로 행해지고, 또한 3차원의 파라미터 공간은 1개밖에 존재하지 않기 때문에, 도 6으로 나타낸 태양과는 달리, 통합처의 파라미터 공간이 복수 존재함에 따른 차분 정보의 분할은 행해지지 않는다. 따라서, 도 7c에 나타내는 이들 3차원 키의 차분 정보 D4', D5' 및 D6'는, 단순하게 저차원의 파라미터 공간의 차분 정보를 적산함으로써,
D4'=D1+D3+D4
D5'=D2+D3+D5
D6'=D1+D2+D3+D4+D5+D6
가 된다.
이와 같이 함으로써 도 7a의 태양에서는, 3차원의 파라미터 공간 중의 파라미터값 세트의 상태 정보의 도출에, 편집 시에는 1차원의 파라미터 공간에 있어서의 보간 연산×3((PARAM_X), (PARAM_Y), (PARAM_Z))과, 2차원의 파라미터 공간에 있어서의 보간 연산×2((PARAM_X, PARAM_Z), (PARAM_Y, PARAM_Z))과, 3차원의 파라미터 공간에 있어서의 보간 연산×1((PARAM_X, PARAM_Y, PARAM_Z))의 6회의 보간 연산과, 이들 총합 연산을 필요로 하고 있던 것이, 출력용의 변환에 의해, 3차원의 파라미터 공간에 있어서의 보간 연산×1((PARAM_X, PARAM_Y, PARAM_Z))만으로 되기 때문에, 연산 규모를 축소할 수 있다. 또한 각 보간 연산에 있어서의 상태 참조수의 관점에서도, 편집 시에는 2×3+22×2+23×1=22회였던 것이, 출력용의 변환에 의해 2 3×1=8회가 되어, 메모리 액세스 수를 저감할 수 있다.
이하, 본 실시형태의 키폼 편집 애플리케이션에서 행해지는 각종 처리에 대해서, 도 8~12 및 14의 흐름도를 참조하여 구체적인 처리를 설명한다. 이들 흐름도에 대응하는 처리는, 제어부(101)가, 예를 들어 기록 매체(102)에 기억되어 있는 대응하는 처리 프로그램을 읽어내고, 메모리(103)에 전개하여 실행함으로써 실현될 수 있다.
<파라미터 키 설정 처리>
우선, 묘화 오브젝트에 대해, 1차원의 파라미터 공간과 관련되는 파라미터를 대응짓거나, 혹은 해당 파라미터에의 파라미터 키의 설정(추가)이 이루어지는 경우에 실행되는 파라미터 키 설정 처리에 대해, 도 8의 흐름도를 이용하여 설명한다. 또한, 본 파라미터 키 설정 처리는, 키폼 편집 애플리케이션의 파라미터 팔레트(201)에 대한, 신규 종류의 파라미터의 대응지음 요구, 또는 이미 대응지어진 파라미터에의 파라미터 키의 추가 요구와 관련되는 조작 입력이 이루어졌던 것이 검출되었을 때에 개시되는 것으로서 설명한다.
S801에서, 파라미터 정의부(104)는, 검출된 요구가 묘화 오브젝트에 대응지어진 파라미터에, 신규 종류의 파라미터를 추가하는 대응지음 요구인지 아닌지를 판단한다. 파라미터 정의부(104)는, 검출된 요구가 신규 종류의 파라미터를 추가하는 대응지음 요구라고 판단했을 경우는 처리를 S802로 옮기고, 대응지음 요구는 아닌, 즉, 파라미터 키의 추가 요구라고 판단했을 경우는 처리를 S806으로 옮긴다.
S802에서, 파라미터 정의부(104)는, 이미 대응지어진 파라미터에 기준값이 아닌 파라미터값이 설정되어 있는 것이 있으면, 해당 파라미터의 파라미터값을 기준값으로 변경한다.
S803에서, 파라미터 정의부(104)는, 새롭게 대응짓는 파라미터의 기준값(1개의 파라미터 키)을 취득한다. 기준값은, 유저에 의해 입력된 값이 취득되는 것이어도 좋고, 디폴트로 정해져 있는 값을 취득하는 것이어도 좋다.
S804에서, 파라미터 정의부(104)는, 대응지음 요구가 이루어진 파라미터를 1차원의 파라미터 공간으로서 등록하고, 파라미터 테이블을 갱신한다.
S805에서, 상태 정의부(105)는, 현재의 묘화 오브젝트의 상태 정보에 기초하여, 베이스 키폼을 등록 또는 갱신한다. 이때, 이미 베이스 키폼의 정보가 격납되어 있었을 경우라도, 상태 정의부(105)는, 베이스 키폼의 키폼 인덱스를, 새롭게 대응지어진 파라미터의 파라미터 키(기준값)를 포함하도록 구성을 변경한다.
한편, S801에 있어서, 검출된 요구가 신규 종류의 파라미터를 추가하는 대응지음 요구는 아니라고 판단했을 경우, 파라미터 정의부(104)는 S806에서, 추가하는 파라미터 키의 파라미터값를 취득한다. 파라미터값은, 유저에 의해 입력된 수치를 취득하는 것이어도 좋고, 지시 입력이 이루어진 슬라이더 상의 좌표에 대응하는 수치를 취득하는 것이어도 좋다.
S807에서, 파라미터 정의부(104)는, S806에 있어 취득한 값에 기초하여, 파라미터 키 리스트에 대상 파라미터의 파라미터 키를 등록한다. 이때, 대상 파라미터를 포함하여 형성되어 있는 다차원의 파라미터 공간이 존재하는 경우에는, 제어부(101)는 등록된 파라미터 키를 포함하는 키폼 인덱스를 생성하고, 키폼 리스트에 추가하면 좋다.
S808에서, 상태 정의부(105)는, S806에 있어 취득한 값을 나타내는 1차원 키의 키폼 인덱스에, 베이스 키폼으로부터의 차분이 없는 것을 나타내는 차분 정보를 관련지어, 키폼 테이블에 추가하여 등록한다. 즉, 새로운 파라미터 키의 추가 시에 있어서는, 아직 해당 파라미터 키에 대한 키폼의 정의는 행해지지 않았기 때문에, 차분 없음인 것을 나타내는 차분 정보가 잠정적으로 격납된다.
이와 같이 함으로써, 유저는 묘화 오브젝트에 대해 소망하는 파라미터를 대응짓고, 또한 파라미터에의 파라미터 키의 설정을 용이하게 행할 수 있다.
<키폼 편집 처리>
다음으로, 파라미터 키가 설정된 후, 하나 이상의 파라미터 키의 조합에 의해 특정되는 키에 대해, 키폼의 정의를 행하기 위해서, 묘화 오브젝트의 편집이 이루어졌을 경우에 실행되는 키폼 편집 처리에 대해, 도 9a 및 9b의 흐름도를 이용하여 설명한다. 또한, 본 키폼 편집 처리는, 키폼 편집 애플리케이션의 파라미터 팔레트(201)에서 임의의 파라미터 키 세트가 설정된 상태에서, 뷰포트(202)의 묘화 오브젝트의 상태를 편집(변경)하는 조작 입력이 이루어진 것이 검출되었을 때에 개시되는 것으로서 설명한다.
여기서, 키폼의 정의/편집은, 파라미터 키 리스트 및 키폼 리스트의 구성 변경과 관련되는 처리의 실행이나 보간 연산의 복잡화를 회피하기 위해, 임의의 파라미터값의 조합에 대해 인정하는 것은 아니고, 파라미터 키의 조합에 한정하여 인정하는 것으로 한다. 따라서, 파라미터 키가 아닌 파라미터값의 조합이 설정되어 있는 동안은, 묘화 오브젝트의 상태 편집이 행해지지 않도록, 제어하면 좋다.
S901에서, 제어부(101)는, 현재 설정되어 있는 파라미터값(파라미터 키 세트)를 취득한다. 현재 설정되어 있는 파라미터값은, 묘화 오브젝트에 대응지어진 파라미터의 모두에 대해 설정되어 있는 파라미터값으로서, 키폼의 정의를 행하는 경우에는, 파라미터 키로서 설정된 임의의 파라미터값(기준값을 포함함)의 조합에 의해 구성된 파라미터 키 세트인 것으로 한다.
S902에서, 제어부(101)는, 편집 중의 키폼이 베이스 키폼인지 아닌지를 판단한다. 본 스텝의 판단은 예를 들어, 현재 설정되어 있는 파라미터 키 세트를 구성하는 각 파라미터의 파라미터값과, 베이스 키폼의 키폼 인덱스를 구성하는 파라미터값을 비교함으로써 행해지면 좋다. 제어부(101)는, 편집 중의 키폼이 베이스 키폼이라고 판단했을 경우는 처리를 S903으로 옮기고, 베이스 키폼은 아니라고 판단했을 경우는 처리를 S904로 옮긴다.
S903에서, 상태 정의부(105)는, 베이스 키폼의 편집 결과를 반영하는 베이스 키폼 갱신 처리를 실행한다.
<베이스 키폼 갱신 처리>
여기서, 본 스텝에서 행해지는 베이스 키폼 갱신 처리에 대해, 도 10a의 흐름도를 이용하여 설명한다.
S1001에서, 상태 정의부(105)는, 편집 후의 베이스 키폼과 관련되는 상태 정보 F0'를 취득한다. 본 스텝에 있어 취득되는 정보는, 편집이 행해진 묘화 오브젝트의 묘화 태양을 절대적으로 정의하는 것이다.
S1002에서, 상태 정의부(105)는, 편집 후의 베이스 키폼에 대해, 편집 전의 베이스 키폼과 관련되는 상태 정보 F0로부터의 조정값 d를 도출한다. 또한, 본 스텝에서 도출하는 조정값 d는, 베이스 키폼을 변경한 것에 수반하는, 파생 키의 키폼에 파급하는 영향을 도출하기 위해 이용되는 값으로, 메모리(103)에 격납되면 좋다.
S1003에서, 상태 정의부(105)는, 베이스 키폼과 관련되는 상태 정보를 편집 후의 F0'으로 갱신하고, 본 베이스 키폼 갱신 처리를 완료한다.
한편, 키폼 편집 처리의 S902에 있어서, 편집 중의 키폼이 베이스 키폼은 아니라고 판단했을 경우, 제어부(101)는 S904에서, 기준값 이외의 파라미터값를 나타내는 파라미터가 복수 존재하는지 아닌지를, 현재 설정되어 있는 파라미터 키 세트에 기초하여 판단한다. 즉, 본 스텝에서는, 다차원의 파라미터 공간의 키에 대해 키폼의 편집이 행해졌는지, 1차원의 파라미터 공간에 대해 행해졌는지를 판별한다. 제어부(101)는, 기준값 이외의 파라미터값을 나타내는 파라미터가 복수 존재한다고 판단했을 경우는 처리를 S905로 옮기고, 1종류뿐이다라고 판단했을 경우는 처리를 S909로 옮긴다.
S905에서, 제어부(101)는, 현재의 키(현재 설정되어 있는 파라미터 키 세트로 특정되는 키)의 키폼 인덱스가 키폼 테이블에 존재하는지 아닌지를 판단한다. 본 스텝의 판단은, 현재 설정되어 있는 파라미터 키 세트의 기준값 이외의 파라미터값를 특정하고, 해당 기준값 이외의 파라미터값의 조합으로 구성된 키폼 인덱스를 관련지은 정보가, 키폼 테이블에 등록되어 있는지 아닌지에 의해 행해진다. 즉, 본 스텝에서는, 현재의 키가 속하는 파라미터 공간이 이미 형성되어 있는, 다시 말하면, 해당 파라미터 공간에 대해 이미 키폼의 정의가 행해진 키가 존재하는지 아닌지를 판단하고 있다. 제어부(101)는, 현재의 키의 키폼 인덱스가 키폼 테이블에 존재한다고 판단했을 경우는 처리를 S909로 옮기고, 존재하지 않는다고 판단했을 경우는 처리를 S906로 옮긴다.
S906에서, 제어부(101)는, 현재의 키가 속하는 파라미터 공간에 대해서, 상태 정의될 수 있는 키의 키폼 인덱스를 키폼 리스트에 등록한다. 상술한 바와 같이, 상태 정의될 수 있는 키는, 현재 설정되어 있는 파라미터 키 세트 중 기준값 이외의 파라미터군에 의해 형성되는 다차원의 파라미터 공간에 속할 수 있는 키로서, 해당 파라미터군에 설정되어 있는(기준값 이외의) 파라미터 키의 조합에 의해, 키폼 인덱스가 정의되는 키이다.
S907에서, 상태 정의부(105)는, 현재의 키에 대응하는 키 폼 인덱스에, 베이스 키폼으로부터의 차분이 없는 것을 나타내는 차분 정보를 관련지어, 키폼 테이블에 추가하여 등록한다. 본 스텝에서 등록되는 차분 정보는, 후술하는 키폼 갱신 처리에서 편집 중의 키폼과 관련되는 차분 정보가 등록될 때까지의 일시적인 정보이다.
S908에서, 파라미터 정의부(104)는, 현재 설정되어 있는 파라미터 키 세트 중 기준값 이외의 파라미터군에 대해, 해당 파라미터군으로 형성되는 파라미터 공간을 파라미터 테이블에 등록하고, 파라미터 테이블을 갱신한다. 본 스텝에서 등록되는 파라미터 공간은, 현재 설정되어 있는 파라미터 키 세트 중 기준값 이외의 파라미터의 수를 차원수로 한다.
S909에서, 상태 정의부(105)는, 편집된 키폼의 정보를 등록하는 키폼 갱신 처리를 실행한다.
<키폼 갱신 처리>
여기서, 본 스텝에서 행해지는 키폼 갱신 처리에 대해, 도 10b의 흐름도를 이용하여 설명한다.
S1011에서, 상태 정의부(105)는, 편집 후의 베이스 키폼과 관련되는 상태 정보 Fc'를 취득한다. 베이스 키폼 갱신 처리의 S1001과 마찬가지로, 본 스텝에 있어 취득되는 정보는, 편집이 행해진 묘화 오브젝트의 묘화 태양을 절대적으로 정의하는 것이다.
S1012에서, 상태 도출부(107)는, 현재의 키에 대해 키폼 테이블에 등록하는 차분 정보 Dc'를 도출한다. 보다 상세하게는, 우선 공간 결정부(106)가, 현재 설정되어 있는 파라미터 키 세트, 파라미터 테이블, 및 키폼 테이블에 기초하여, 현재의 키의 모든 기저 키를 특정한다. 상태 도출부(107)는, 현재의 키의 모든 기저 키의 키폼의 차분 정보의 총화 ΣDb와, 베이스 키폼의 상태 정보 F0를 합산한 상태 정보를 도출한다. 그리고 상태 도출부(107)는, 해당 도출한 상태 정보로부터의, 편집 후의 키폼과 관련되는 상태 정보 Fc'의 차분으로서, 현재의 키에 관한 차분 정보 Dc'를 도출한다.
S1013에서, 상태 정의부(105)는, 편집 후의 키폼에 대해, 편집 전의 해당 키폼과 관련되는 차분 정보 Dc로부터의 조정값 d를 도출한다. 또한 본 스텝에서 도출하는 조정값 d는, 해당 키폼을 변경함에 수반하는, 파생 키의 키폼에 파급하는 영향을 도출하기 위해서 이용되는 값으로, 메모리(103)에 격납되면 좋다.
S1014에서, 상태 정의부(105)는, 키폼 테이블에 격납되어 있는 현재의 키에 관한 차분 정보 Dc를, 편집 후의 키폼과 관련되는 차분 정보 Dc'로 갱신하고, 본 키폼 갱신 처리를 완료한다. 보다 상세하게는, 상태 정의부(105)는, 현재의 키에 대응하는 키폼 인덱스에, 편집 후의 키폼과 관련되는 차분 정보 Dc'를 관련지어, 키폼 테이블을 갱신한다.
이와 같이 편집된 묘화 오브젝트에 대해, 키폼 편집 처리의 S903의 베이스 키폼 갱신 처리 또는 S909의 키폼 갱신 처리를 실행함으로써 키폼 테이블을 갱신한 후, 상태 정의부(105)는 S910에서, 금번 갱신에 의한 파생 키에의 영향을 반영하는 반영 처리를 실행한다.
<반영 처리>
여기서, 본 스텝에서 행해지는 반영 처리에 대해, 도 11a 및 11b의 흐름도를 이용하여 설명한다.
S1101에서, 공간 결정부(106)는, 현재 설정되어 있는 파라미터 키 세트, 파라미터 테이블, 및 키폼 테이블에 기초하여, 현재의 키의 모든 파생 키를 특정한다. 그리고 공간 결정부(106)는, 특정한 파생 키의 키폼 인덱스를, 예를 들어 메모리(103)에 생성한 대상 키폼 리스트에 추가한다.
S1102에서, 제어부(101)는, 대상 키폼 리스트의 키폼 인덱스를, 대응하는 키의 차원수가 낮은 순서로 소트한다. 즉, 제어부(101)는, 대상 키폼 리스트의 키폼 인덱스를, 키폼 인덱스를 구성하는 파라미터수가 적은 순서로 소트한다.
S1103에서, 상태 정의부(105)는, 대상 키폼 리스트로부터 소트 순서대로 미선택의 키폼 인덱스를 선택한다. S1103으로부터 S1107의 루프 처리에서는, 본 스텝에서 선택된 키폼 인덱스에 의해 식별되는 키를, 대상 키로서 처리한다.
S1104에서, 상태 정의부(105)는, 대상 키에 핀 고정 플래그가 설정되어 있는지 아닌지를 판단한다. 상태 정의부(105)는, 대상 키에 핀 고정 플래그가 설정되어 있다고 판단했을 경우는 처리를 S1105로 옮기고, 설정되어 있지 않다고 판단했을 경우는 처리를 S1107로 옮긴다.
S1105에서, 상태 정의부(105)는, 저차원의 키로부터 파급하는 상쇄 계수를 적산하여 가미한 다음, 대상 키의 키폼에 파급하는 조정을 상쇄하는 상쇄 계수를 도출한다. 상술한 바와 같이 본 실시형태의 키폼 편집 애플리케이션에서는, 임의의 키의 키폼은, 베이스 키폼에 대해서, 해당 임의의 키의 기저 키의 차분 정보를 저차원의 파라미터 공간으로부터 순서대로 가산하고, 해당 임의의 키의 차분 정보를 더 가산함으로써 도출된다. 따라서, 임의의 키에 대해 키폼의 편집이 행해졌을 경우, 그 차분 정보의 변경량(조정값)은, 해당 임의의 키의 파생 키에도 파급한다. 한편, 파생 키에 핀 고정 플래그가 설정되어 있는 경우, 해당 파생 키의 상태 정보를 편집 전과 마찬가지로 하도록, 해당 상태 정보의 도출 시에 가산되는 조정값만큼의 영향을, 해당 파생 키의 차분 정보를 조정함으로써 상쇄할 필요가 있다. 따라서, 편집이 행해진 키보다 차원수가 하나 많은 파생 키에 대해서, 편집이 행해진 키에 대해 생기는 조정값만큼의 증가를 상쇄하기 위해서는, 해당 파생 키의 차분 정보에 대해, 조정값에 「-1」을 곱한 값을 가산하면 좋다. 이때, 해당 파생 키에 대해서는, 「-1」이 상쇄 계수가 된다.
그런데, 같은 차원수의 다른 파라미터 공간의 파생 키에도 편집에 의한 영향은 파급할 수 있고, 또한 파생 키는 차원수가 하나 많은 것에 한정되지 않고 존재 할 수 있다. 따라서, 본 스텝에서는, 대상 키폼 리스트로부터 차원수가 낮은 순서로 대상 키를 선택하고 상쇄 계수를 도출함에 있어, 대상 키에 핀 고정 플래그가 설정되어 있는 경우에는, 해당 대상 키보다 낮은 차원수의 키에 대해 정한 상쇄 계수와 조정값에 의해 상태 정보가 변화하는 것도 고려하여, 차원수가 낮은 순서로 재귀적으로 상쇄 계수의 도출을 행한다.
예를 들어, 1차원의 파라미터 공간((PARAM_Z))의 키에 대해 편집이 행해진 경우, 파생 키가 2차원의 파라미터 공간((PARAM_X, PARAM_Z), (PARAM_Y, PARAM_Z)) 및 3차원의 파라미터 공간((PARAM_X, PARAM_Y, PARAM_Z))에 존재하고, 모든 파생 키에 핀 고정 플래그가 설정되어 있는 경우, 2차원의 파라미터 공간의 각각의 파생 키에는 상쇄 계수 「-1」에 의한 상쇄가 이루어진다. 한편, 3차원의 파라미터 공간의 파생 키에 대해서는, 상태 정보의 도출에 있어서 1차원의 파라미터 공간 및 2종류의 2차원의 파라미터 공간으로부터의 조정이 파급한다. 즉, 3차원의 파라미터 공간의 파생 키에 대해서는, 1차원의 파라미터 공간으로부터는 조정값 d, 및 2종류의 2차원의 파라미터 공간의 각각으로부터는 상쇄 계수 「-1」이 곱해진 조정값 d가 파급하기 때문에, 합산하면
d+(-1)*d+(-1)*d=-d
만 편집 전의 상태 정보로부터 변화할 수 있다. 따라서, 3차원의 파라미터 공간의 파생 키에 대해 설정되는 상쇄 계수는 「+1」이 된다.
또한 예를 들어, 1차원의 파라미터 공간((PARAM_Z))의 키에 대해 편집이 행해진 경우, 파생 키가 2차원의 파라미터 공간((PARAM_X, PARAM_Z), (PARAM_Y, PARAM_Z)) 및 3차원의 파라미터 공간((PARAM_X, PARAM_Y, PARAM_Z))에 존재하고, 이들 중 파라미터 공간(PARAM_Y, PARAM_Z)와 (PARAM_X, PARAM_Y, PARAM_Z)의 파생 키에만 핀 고정 플래그가 설정되어 있는 경우, 2차원의 파라미터 공간((PARAM_Y, PARAM_Z))의 파생 키에는 상쇄 계수 「-1」에 의한 상쇄가 이루어진다. 또한 2차원의 파라미터 공간((PARAM_X, PARAM_Z))의 파생 키에는 상쇄 계수는 설정되지 않는다. 한편, 3차원의 파라미터 공간의 파생 키에 대해서는, 상태 정보의 도출에 있어 1차원의 파라미터 공간 및 1종류의 2차원의 파라미터 공간으로부터의 조정이 파급한다. 즉, 3차원의 파라미터 공간의 파생 키에 대해서는, 1차원의 파라미터 공간으로부터는 조정값 d, 및 1종류의 2차원의 파라미터 공간의 각각으로부터는 상쇄 계수 「-1」이 곱해진 조정값 d가 파급하기 때문에, 합산하면
d+(-1)*d=0이 되고,
편집 전 상태 정보로부터의 변화는 생기지 않는다. 따라서, 3차원의 파라미터 공간의 파생 키에 대해 설정되는 상쇄 계수는 「0」이 된다.
S1106에서, 상태 정의부(105)는, 대상 키의 키폼 인덱스에 관련지어 도출한 상쇄 계수를, 예를 들어 메모리(103)에 격납되는 계수 맵에 격납한다.
S1107에서, 상태 정의부(105)는, 대상 키폼 리스트에 핀 고정 플래그의 유무를 판단하지 않은 키의 키폼 인덱스가 존재하는지 아닌지를 판단한다. 상태 정의부(105)는, 미판단의 키의 키폼 인덱스가 존재한다고 판단한 경우는 처리를 S1103으로 되돌리고, 존재하지 않는다고 판단한 경우는 처리를 S1108로 옮긴다.
S1108에서, 상태 정의부(105)는, 계수 맵에 격납된 상쇄 계수의 정보에 기초하여, 키폼 테이블에 포함되는 모든 파생 키에 대해 관리되는 차분 정보에 조정값을 적용한다. 이때, 핀 고정 플래그가 설정되어 있지 않은 파생 키에 대해서는 차분 정보의 조정은 행해지지 않고, 핀 고정 플래그가 설정되어 있는 파생 키에 대해서는 조정값에 상쇄 계수를 곱한 값으로 차분 정보의 조정이 행해진다.
이와 같이 본 키폼 편집 처리에 의해, 묘화 오브젝트에 대해서 행해진 편집을 키폼 테이블에 등록할 수 있다.
<편집 시 표시 처리>
다음으로, 키폼의 편집 시에 있어, 묘화 오브젝트의 묘화 태양을 변경하고 뷰포트(202)에 표시시키는 편집 시 표시 처리에 대해, 도 12a, 12b, 12c의 흐름도를 이용하여 설명한다. 또한, 본 편집 시 표시 처리는, 키폼 편집 애플리케이션의 파라미터 팔레트(201)에서 파라미터값의 변경과 관련되는 조작 입력이 이루어진 것이 검출되었을 때에 개시되는 것으로서 설명한다.
S1201에서, 제어부(101)는, 현재 설정되어 있는 파라미터값 세트를 취득한다. 현재 설정되어 있는 파라미터값은, 묘화 오브젝트에 대응지어진 파라미터의 모두에 대해 설정되어 있는 파라미터값이며, 키폼의 정의를 실시하지 않는 것이라면 각 파라미터에 대해 정해진 수치 범위 중 임의의 값을 나타내는 것이어도 좋다.
S1202에서, 제어부(101)는, 취득한 파라미터값 세트를 나타내는 키폼 인덱스가 키폼 테이블에 존재하는지 아닌지를 판단한다. 즉, 본 스텝에서는, 제어부(101)는, 현재 설정되어 있는 파라미터값 세트가 상태 정의가 행해진 파라미터 키 세트인지 아닌지를 판단한다. 제어부(101)는, 취득한 파라미터값 세트를 나타내는 키폼 인덱스가 키폼 테이불에 존재한다고 판단했을 경우는 처리를 S1203으로 옮기고, 존재하지 않는다고 판단했을 경우는 처리를 S1204로 옮긴다.
S1203에서, 상태 도출부(107)는, 현재 설정되어 있는 파라미터값 세트에 대응하는 키폼의, 베이스 키폼으로부터의 차분 Dx를 도출한다. 보다 상세하게는, 우선 공간 결정부(106)가, 현재 설정되어 있는 파라미터값 세트, 파라미터 테이블, 및 키폼 테이블에 기초하여, 해당 파라미터값 세트에 대응하는 키(현재의 키)의 모든 기저 키를 특정한다. 상태 도출부(107)는, 현재의 키에 대해 키폼 테이블에 관리되고 있는 차분 정보 Dc와, 현재의 키의 모든 기저 키의 차분 정보의 총합 ΣDb를 합산하고, 표시에 관한 최종적인 차분 정보 Dx를
Dx=Dc+ΣDb
로서 도출하고, 처리를 S1213으로 옮긴다.
또한 S1202에서 취득한 파라미터값 세트를 나타내는 키폼 인덱스가 키폼 테이블에 존재하지 않는다고 판단했을 경우, 공간 결정부(106)는 S1204에서, 묘화 오브젝트에 설정된 파라미터 공간 중, 취득한 파라미터값 중 적어도 하나를 포함한 파라미터 공간의 정보를, 예를 들어 메모리(103)에 생성된 공간 리스트에 추가한다. 즉, 본 스텝에서는, 파라미터값 세트에 대응하는 상태 정보의 도출 시에, 보간 연산을 행하는 파라미터 공간의 정보가 취득된다.
S1205에서, 제어부(101)는, 공간 리스트에 포함되는 파라미터 공간을, 차원수가 낮은 순서로 소트한다.
S1206에서, 상태 도출부(107)는, 소트된 공간 리스트에 포함되는, 보간 연산 미실행의 파라미터 공간을 소트 순서로 선택한다. S1206으로부터 S1212의 루프 처리에서는, 본 스텝에서 선택된 파라미터 공간을, 선택 공간으로서 처리한다.
S1207에서, 상태 도출부(107)는, 선택 공간의 보간 연산에서 참조하는, 해당 선택 공간에 속하는 키의 키폼 인덱스가 키폼 테이블에 존재하는지 아닌지를 판단한다. 본 스텝에서는, 우선, 선택 공간에 속하는 키에 키폼이 정의되어 있는지, 즉, 해당 선택 공간에 대해 보간 연산을 행하기 위해 필요한 키폼이 존재하고 있는지 아닌지가 판단된다. 상태 도출부(107)는, 선택 공간에 속하는 키폼 인덱스가 키폼 테이블에 존재한다고 판단했을 경우는 처리를 S1208로 옮기고, 존재하지 않는다고 판단했을 경우는 처리를 S1212로 옮긴다.
S1208에서, 상태 도출부(107)는, 예를 들어 메모리(103)에 보간 연산용의 키폼 테이블(연산용 키폼 테이블)을 정의하고 초기화한다. 여기서 "초기화"란, 선택 공간의 차원수(n)에 따른 수(2n)의 키폼의 정보를 보관 유지 가능한 영역을 확보하는 것을 의미한다.
S1209에서, 상태 도출부(107)는, 보간 연산에서 참조할 수 있는 키의 키폼 인덱스에 관련지어, 차분이 없음을 나타내는 차분 정보를 연산용 키폼 테이블에 등록한다. 또한, 보간 연산에서 참조할 수 있는 키란, 현재 설정되어 있는 파라미터값 세트, 선택 공간을 형성하는 파라미터, 및 선택 공간에서 상태 정의되어 있는 키의 키폼 인덱스에 기초하여 결정된다. 보간 연산은 기본적으로는, 선택 공간을 형성하는 파라미터의 각각에 있어, 현재 해당 파라미터에 설정되어 있는 파라미터값을 범위에 포함한, 해당 파라미터값보다 큰 값 및 작은 값을 나타내는 2개의 파라미터 키로 나타내는 구간에 대해 행해진다. 이 때문에, 보간 연산에서 참조할 수 있는 키란, 선택 공간에 속하는 키 중, 각 파라미터에 대해 정해지는 구간의 끝점의 파라미터 키를 조합함으로써 키폼 인덱스가 구성되어 있는 키가 된다.
예를 들어, 도 13에 나타내는 바와 같이, 묘화 오브젝트에 대해서 1차원의 파라미터 공간((PARAM_X), (PARAM_Y))과 2차원의 파라미터 공간((PARAM_X, PARAM_Y))이 관리되고, 검은색 포인트로 나타내는 키에 키폼이 정의되고, 백색의 포인트로 나타내는 키에 키폼이 미정의이고, 현재 설정된 파라미터값 세트((PARAM_X, PARAM_Y))가 상태 1301인 경우를 생각한다. 이때, 선택 공간이 1차원의 파라미터 공간((PARAM_X))인 경우에는, 현재 설정된 파라미터값 세트 중 PARAM_X 성분의 파라미터값을 범위에 포함한 파라미터 키에 대응하는, 키(1302) 및 키(1303)이 보간 연산에서 참조할 수 있는 키가 된다. 마찬가지로 선택 공간이 1차원의 파라미터 공간((PARAM_Y))인 경우에는, 현재 설정된 파라미터값 세트 중 PARAM_Y 성분의 파라미터값을 범위에 포함한 파라미터 키에 대응하는, 키(1304) 및 키(1305)가 보간 연산에서 참조할 수 있는 키가 된다. 또한 선택 공간이 2차원의 파라미터 공간((PARAM_X, PARAM_Y))인 경우에는, 각 성분에 대해 현재 설정된 파라미터값을 범위에 포함한 파라미터 키가 2개 특정되기 때문에, 2개의 성분이 이들 파라미터 키의 조합으로 특정되는 키(1306~1309)가 보간 연산에서 참조할 수 있는 키가 된다.
S1210에서, 상태 도출부(107)는, 연산용 키폼 테이블에 포함되는 키 중 상태 정의가 이루어져 있는 키에 대해서는, 해당 키에 대해 키폼 테이블에서 관리되는 차분 정보를 이용하여, 연산용 키폼 테이블의 차분 정보를 갱신한다. 도 13의 예에서는, 선택 공간이 2차원의 파라미터 공간인 경우에, 키(1306~1308)에 대해서는 키폼이 정의되어 있기 때문에, 키폼 테이블에서 각 키에 대해 관리되고 있는 차분 정보에, 연산용 키폼 테이블의 정보가 갱신된다. 한편, 키(1309)에 대해서는 키폼이 미정의이기 때문에, 연산용 키폼 테이블의 정보는 갱신되지 않고, 차분 없음을 나타내는 차분 정보가 그대로 보관 유지된다.
S1211에서, 상태 도출부(107)는, 연산용 키폼 테이블에 포함되는 키의 정보에 기초하여, 현재 설정되어 있는 파라미터값 세트에 대응하는 선택 공간의 상태에 대해 선택 공간과 관련되는 보간 연산을 행하고, 해당 상태에 관한 차분 정보 Dc를 도출한다. 또한 상태 도출부(107)는, 도출한 차분 정보 Dc를, 현재 설정되어 있는 파라미터값 세트에 대응하는 상태 정보의 베이스 키폼과 관련되는 상태 정보로부터의 차분을 나타내는 최종적인 차분 정보 Dx에 가산한다. 여기서, 최종적인 차분 정보 Dx는 초기값은 0이며, S1206~S1212의 루프 처리에 있어서 저차원의 파라미터 공간으로부터 순서대로 도출된 차분 정보를 적산하여 나감으로써 완성한다.
도 13의 예에서는, 우선 1차원의 파라미터 공간((PARAM_X))에 대해서 현재 설정되어 있는 PARAM_X 성분의 파라미터값에 따른 가중 연산에 의한 보간 연산
D(x)=dx*D2+(1-dx)*D1이 수행되고, 다음의 1차원의 파라미터 공간((PARAM_Y))에 대해서 현재 설정되어 있는 PARAM_Y 성분의 파라미터값에 따른 가중 연산에 의한 보간 연산
D(y)=dy*D4+(1-dy)*D3이 수행되고, 마지막에 2차원의 파라미터 공간((PARAM_X, PARAM_Y))에 대해서 현재 설정되어 있는 각 성분의 파라미터값에 따른 가중 연산에 의한 보간 연산
D(xy)
=(1-dx)*(1-dy)*D5
+dx*(1-dy)*D6
+(1-dx)*dy*D7
+dx* dy*0
이 수행되고, 그 결과, 최종적인 차분 정보 Dx는
Dx=D(x)+D(y)+D(xy)에 의해 도출된다.
S1212에서, 상태 도출부(107)는, 소트된 공간 리스트에 미선택의 파라미터 공간이 존재하는지 아닌지를 판단한다. 상태 도출부(107)는, 공간 리스트에 미선택의 파라미터 공간이 존재한다고 판단했을 경우는 처리를 S1206으로 되돌리고, 존재하지 않는다고 판단했을 경우는 처리를 S1213으로 옮긴다.
S1213에서, 상태 도출부(107)는, 베이스 키폼과 관련되는 상태 정보 Fb에 최종적인 차분 정보 Dx를 가산함으로써, 현재 설정되어 있는 파라미터값 세트에 대해 표시하는 상태의 상태 정보 Fd를 도출한다.
S1214에서, 묘화부(108)는, 묘화 오브젝트에 상태 정보 Fd를 적용하고, 뷰포트(202)에 관한 화상을 묘화하여, 표시부(120)에 표시시킨다.
이와 같이, 본 실시형태의 편집 시 표시 처리에 의하면, 제시 요구가 이루어진 파라미터값 세트에 대해 보간 연산에 필요한 파라미터 공간을 특정하고, 그리고 필요한 파라미터 공간의 각각에 대해, 해당 파라미터 공간에 속하는 키에 대해 관리되고 있는 차분 정보를 이용하여 보간 연산을 재귀적으로 행함으로써, 제시 요구가 이루어진 파라미터값 세트에 관한 상태 정보를 도출할 수 있다.
<런타임용 데이터 출력 처리>
다음으로, 런타임 실행용의 데이터 출력을 행하는(export) 경우에 실행되는 런타임용 데이터 출력 처리에 대해, 도 14a, 14b, 14c의 흐름도를 참조하여 설명한다. 또한, 본 런타임용 데이터 출력 처리는, 키폼 편집 애플리케이션에 있어서 export에 관한 조작 입력이 이루어진 것이 검출되었을 때에 개시되는 것으로서 설명한다.
또한, 본 실시형태에서는 키폼 편집 애플리케이션에 있어서 본 런타임용 데이터 출력 처리가 행해지는 것으로서 설명하지만, 본 처리의 실시는, 키폼의 정의 등을 행하는 키폼 편집 애플리케이션에 있어서 export라고 하는 형태로 행해지는 태양에 한정되는 것은 아니다. 예를 들어, 외부 애플리케이션이나 뷰어 등에, 키폼 편집 애플리케이션에서 생성된 데이터(편집 시 상태의 파라미터 테이블, 키폼 테이블 및 베이스 키폼)를 입력하는(import) 경우에 실행되는 것이어도 좋다.
S1401에서, 제어부(101)는, 키폼 테이블 및 파라미터 테이블을 복제하고, 출력용 키폼 테이블 및 출력용 파라미터 테이블을 생성하여 메모리(103)에 격납한다.
S1402에서, 제어부(101)는, 묘화 오브젝트에 설정된 파라미터 공간의 정보를, 예를 들어 메모리(103)에 생성한 공간 리스트에 추가한다.
S1403에서, 제어부(101)는, 공간 리스트에 포함되는 파라미터 공간을, 차원수가 높은 순서로 소트한다.
S1404에서, 제어부(101)는, 소트된 공간 리스트에 포함되는, S1404~S1414의 통합과 관련되는 루프 처리를 미실행의 파라미터 공간을 소트 순서대로 선택한다. S1404~S1414의 루프 처리에서는, 본 스텝에서 선택된 파라미터 공간을, 선택 공간으로서 처리한다.
S1405에서, 제어부(101)는, 공간 리스트에 포함되는 선택 공간보다 낮은 차원수의 파라미터 공간으로서, S1405~S1413의 탐색과 관련되는 루프 처리를 미실행의 파라미터 공간을 탐색 대상 공간으로서 설정한다.
S1406에서, 제어부(101)는, 탐색 대상 공간을 형성하는 모든 파라미터가, 선택 공간을 형성하는 파라미터에 포함되는지 아닌지를 판단한다. 제어부(101)는, 탐색 대상 공간을 형성하는 모든 파라미터가 선택 공간을 형성하는 파라미터에 모두 포함된다고 판단했을 경우는 처리를 S1407로 옮기고, 포함되지 않는다고 판단한 경우는 처리를 S1413으로 옮긴다.
S1407에서, 제어부(101)는, 선택 공간과 동 차원의 파라미터 공간으로서, 탐색 대상 공간을 형성하는 모든 파라미터를 포함한 파라미터 공간이, 공간 리스트에(선택 공간도 포함하여) 복수 존재하는지 아닌지를 판단한다. 제어부(101)는, 탐색 대상 공간을 형성하는 모든 파라미터를 포함한 동 차원의 파라미터 공간이 복수 존재한다고 판단했을 경우는 처리를 S1408로 옮기고, 선택 공간 이외에 존재하지 않는다고 판단했을 경우는 처리를 S1410으로 옮긴다.
S1408에서, 제어부(101)는, 공간 리스트에 포함되는 탐색 대상 공간을 형성하는 모든 파라미터를 포함한 동 차원의 파라미터 공간의 수를 계수한다. 그리고 S1409에서, 제어부(101)는, 출력용 키폼 테이블의 탐색 대상 공간의 키의 차분 정보를, 계수한 파라미터 공간수로 나눈 값으로 변경한다.
S1410에서, 제어부(101)는, 탐색 대상 공간에 속하는 키의 차분 정보를, 출력용 키폼 테이블의 선택 공간에 속하는 모든 키의 차분 정보에 가산한다. 또한, 탐색 대상 공간을 형성하는 모든 파라미터를 포함한 동 차원의 파라미터 공간이 복수 존재하는 경우에는, 제어부(101)는, 해당 동 차원의 다른 파라미터 공간에 속하는 모든 키의 차분 정보에 대해, 선택 대상 공간에 속하는 키의 차분 정보를 가산한다.
S1411에서, 제어부(101)는, 출력용 키폼 테이블의 탐색 대상 공간에 속하는 키의 키폼 인덱스를, 베이스 키의 파라미터를 더하여 선택 공간과 동 차원의 파라미터 구성의 키폼 인덱스로 변경한다. 즉, 탐색 대상 공간에 속하는 저차원의 키가, 선택 공간에 속하는 선택 공간과 동 차원의 키로서 관리되도록, 출력용 키폼 테이블에 있어서 키폼 인덱스가 조정된다. 또한, 탐색 대상 공간을 형성하는 모든 파라미터를 포함한 동 차원의 파라미터 공간이 복수 존재하는 경우에는, 제어부(101)는, 탐색 대상 공간에 속하는 키를 복제하여 동 차원의 파라미터 공간의 수를 마련하고, 각각의 파라미터 공간에 대응한 파라미터 구성의 키폼 인덱스로 변경하면 좋다.
S1412에서, 제어부(101)는, 출력용 파라미터 테이블 및 공간 리스트로부터, 탐색 대상 공간의 정보를 삭제한다. 이와 같이 함으로써, 탐색 대상 공간의 정보를 선택 공간의 정보로 변환하고, 출력용 파라미터 테이블 및 출력용 키폼 테이블에 있어서 통합할 수 있다.
S1413에서, 제어부(101)는, 공간 리스트에 포함되는 선택 공간보다 낮은 차원수의 파라미터 공간에, 탐색 대상 공간으로서 미선택의 파라미터 공간이 존재하는지 아닌지를 판단한다. 제어부(101)는, 탐색 대상 공간으로서 미선택의 파라미터 공간이 존재한다고 판단한 경우는 처리를 S1405로 옮기고, 존재하지 않는다고 판단한 경우는 처리를 S1414로 옮긴다.
S1414에서, 제어부(101)는, 공간 리스트에 선택 공간으로서 미선택의 파라미터 공간이 존재하는지 아닌지를 판단한다. 이때, 높은 차원수의 파라미터 공간에 통합된 파라미터 공간에 대해서는 이미 공간 리스트로부터 삭제되어 있다. 제어부(101)는, 선택 공간으로서 미선택의 파라미터 공간이 존재한다고 판단한 경우는 처리를 S1404로 되돌리고, 존재하지 않는다고 판단한 경우는 처리를 S1415로 옮긴다.
S1415에서, 제어부(101)는, 처리가 완료한 출력용 키폼 테이블, 출력용 파라미터 테이블, 및 베이스 키폼의 정보를, 런타임용 데이터로서 출력하고, 본 런타임용 데이터 출력 처리를 완료한다.
이와 같이, 본 런타임용 데이터 출력 처리에 의해, 키폼 테이블 및 파라미터 테이블을, 편집 시보다 정보량을 삭감하여, 실행되는 보간 연산의 회수를 저감 하는 형식으로 변환할 수 있다.
<연산 효율 비교>
마지막으로, 임의의 파라미터값 세트에 대응하는 상태의 묘화 오브젝트의 제시와 관련되어 행해지는 보간 연산에 대해, 일본특허공개 제2009-104570호 공보에 기재된 방식과, 본 실시형태의 키폼 편집 애플리케이션에서의 편집 시에 파라미터 테이블 및 키폼 테이블을 이용하여 행해지는 방식과, 런타임 실행 시에 출력용 파라미터 테이블 및 출력용 키폼 테이블을 이용하여 행해지는 방식에서, 그 연산 효율을 비교한다. 또한, 평가 조건은, 묘화 오브젝트에 7종류의 파라미터를 대응지우고, 파라미터의 각각에 2개의 파라미터 키를 정의하여, 도 15a에 나타내는 바와 같이, 파라미터 간의 관련성의 유무(다차원의 파라미터 공간의 형성)가 정해져 있는 것으로 하고, 보간 연산을 행하는 최대 회수, 보간 연산 완료까지 상태 정보를 참조하는 키의 최대수(펼친 참조 키의 수)에 의해, 효율 평가를 행한다.
우선, 일본특허공개 제2009-104570호 공보에 기재된 방식에서는, 차원수가 다른 파라미터 공간을 제공한다라는 개념이 없기 때문에, 7종류의 파라미터를 묘화 오브젝트에 대응지었을 경우, 모든 파라미터로 형성되는 7차원의 파라미터 공간에 대해 보간 연산이 행해진다. 따라서, 보간 연산의 대상이 되는 파라미터 공간은 1 종류이기 때문에,
보간 연산의 회수:1회
가 된다. 한편, 보간 연산 완료까지의 펼친 참조 키의 수는, 7차원의 파라미터 공간이기 때문에, 파라미터 키의 모든 조합으로부터
펼친 참조 키의 수:27=128
이 된다.
다음으로, 본 실시형태의 키폼 편집 애플리케이션에서의 편집 시에 이용되는 방식에서는, 도 15a에 나타내는 바와 같이 1차원으로부터 4차원까지의 파라미터 공간이 관리되어, 그 각각에 대해 보간 연산을 행하기 때문에,
보간 연산의 회수:7+7+2+1=17회
가 된다. 한편, 보간 연산 완료까지의 펼친 참조 키의 수는, 7종류의 1차원의 파라미터 공간, 7종류의 2차원의 파라미터 공간, 2종류의 3차원의 파라미터 공간, 4종류의 4차원의 파라미터 공간의 각각에서 참조가 행해지기 때문에,
펼친 참조 키의 수:2*7+22*7+23*2+24*1=74
가 된다.
마지막으로, 본 실시형태의 런타임 실행 시에 이용되는 방식에서는, 도 15b에 나타내는 바와 같이 파라미터 공간은 통합되기 때문에,
보간 연산의 회수:3+1=4회
가 된다. 한편, 보간 연산 완료까지의 펼친 참조 키의 수는, 3종류의 2차원의 파라미터 공간, 1종류의 4차원의 파라미터 공간의 각각에서 참조가 행해지기 때문에,
펼친 참조 키의 수:22*3+24*1=28
이 된다.
따라서, 상태 정보의 참조에 관한 메모리 액세스 수의 관점에서, 보간 연산과 관련되는 연산 부하의 저감이 실현되고 있다. 또한, 보간 연산의 회수는 증가할 수 있는 것으로, 1회의 보간 연산에 있어서 가중하여 가산하는 항의 수가, 일본특허공개 제2009-104570호 공보에 기재된 방식에서는 27개, 편집 시에 이용되는 방식에서는 최대 24개, 런타임 실행 시에 이용되는 방식에서도 최대 24개가 되기 때문에, 연산 규모를 저감할 수 있어, 연산에 확보해야 할 메모리 영역을 저감시킬 수 있다.
이상 설명한 바와 같이, 본 실시형태의 장치에 의하면, 소망하는 묘화 표현의 조정을 용이하게 하면서, 연산 부하를 저감시키는 것이 가능하게 된다.
[변형예]
상술한 실시형태에서는, 대응지어진 복수 종류의 파라미터에 대해, 임의의 파라미터 키 세트를 선택하고, 키폼의 정의가 행해지는 것으로서 설명하였지만, 본 발명의 실시는 이에 한정되는 것은 아니다.
예를 들어 투명도 변경이나 이펙트 등의 파라미터는, 다른 파라미터에 의한 묘화 오브젝트의 상태 천이에 의하지 않고, 묘화 오브젝트의 전체에 대해 공통하여 적용하는 것이 매우 적합하고, 감히 이와 같은 파라미터의 파라미터 키의 조합을 포함한 다차원의 파라미터 공간의 키폼을 정의할 메리트가 적다. 환언하면, 이와 같은 파라미터와 그 외의 파라미터의 조합을 고려한 키폼 정의를 허용하여 버림으로써, 의도하지 않는 상태 천이를 정의하여 버릴 가능성도 있다.
따라서, 이와 같은 파라미터에 대한 키폼의 정의는, 해당 파라미터에 대해서만 독립적으로 행할 수 있으면 좋고, 파라미터의 대응지음 시에, 예를 들어 다른 파라미터와의 조합을 일절 배제하는, 완전 배타 속성인 것을 나타내는 정보를 해당 파라미터에 관련지으면 좋다. 이 경우, 해당 완전 배타 속성의 파라미터가 기준값 이외의 파라미터 키에 설정되어 있을 때에, 다른 파라미터가 기준값 이외의 파라미터 키에 설정되었을 때에는, 해당 파라미터 키 세트에 대해 키폼의 정의에 관한 묘화 오브젝트의 편집 조작이 불능이 되도록 제어하는 것이어도 좋다.
또한, 예를 들어 캐릭터의 입술 모션을 규정하기 위해서, 기본적인 입의 개폐의 상태 천이에 대해서, 그 개폐 형상(환형, 역삼각형 등)을 더욱 조정하는 파라미터의 할당이 소망되는 상황도(입의 개폐에 한정하지 않고) 있다. 한편으로, 이와 같은 기본적인 상태 천이에 대해서 추가하는 조정용의 파라미터의 각각은, 도달 목표가 다른 것이기 때문에, 동시적으로 파라미터를 변경하는 상황을 상정하기 어렵고, 이들 조정용의 파라미터의 파라미터 키의 조합을 포함한 다차원의 파라미터 공간의 키폼을 정의할 메리트가 적다.
따라서, 이와 같은 조정 용도 등의 파라미터에 대한 키폼의 정의는, 해당 파라미터에 대해서만이나, 기본적인 파라미터와의 조합에 대해 가능하면 되고, 파라미터의 대응지음 시에, 예를 들어 마찬가지로 조정 용도의 파라미터와의 조합만을 배제하는, 일부 배타 속성인 것을 나타내는 정보를 해당 파라미터에 관련지으면 된다. 이 경우, 기준값 이외의 파라미터 키가 설정된 일부 배타 속성의 파라미터가 복수 존재할 경우에는, 해당 파라미터 키 세트에 대한 키폼의 정의에 관한 묘화 오브젝트의 편집 조작이 불능이 되도록 제어하는 것이어도 좋다. 또한, 기준값 이외의 파라미터 키가 설정된 일부 배타 속성의 파라미터가 1개만 존재하거나, 또는 존재하지 않는 경우에는, 해당 파라미터 키 세트에 대한 키폼의 정의에 관한 묘화 오브젝트의 편집 조작이 가능해지도록 제어하는 것이어도 좋다.
이와 같이 함으로써, 유저가 복수 종류의 파라미터 키의 조합과 관련되는 키폼 정의에 대해, 사용 용도 등이 확정되어 있는 경우에는, 미리 파라미터의 대응지음 시에 완전 배타 속성이나 일부 배타 속성을 적절히 설정함으로써, 불필요한 다차원의 파라미터 공간의 정의나 키폼의 정의가 행해지는 것을 회피하면서, 상태 정보의 도출과 관련되는 연산량을 저감할 수 있도록, 키폼 편집 애플리케이션 측의 동작을 제어할 수 있다.
다른 실시형태
예시적인 실시형태들을 참조하여 본 발명을 설명하였지만, 본 발명은 이들 개시된 실시형태에 한정되지 않는다. 이하의 특허청구항의 청구범위는 그러한 모든 변형과 등가의 구조 및 기능을 아우르도록 최광의로 해석되어야 한다. 또한, 본 발명에 따른 묘화 방법은, 하나 이상의 컴퓨터 상에서 실행되는 프로그램에 의해 구현될 수 있다. 프로그램은 컴퓨터 판독 가능한 기록 매체나 전자 통신 회선을 통해 제공/배포될 수 있다.

Claims (15)

  1. 요구된 상태의 묘화 오브젝트를 제시하는 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체로서,
    상기 프로그램은, 상기 묘화 오브젝트에 관하여 제공된 복수 종류의 속성 및 속성 간의 관련성의 유무를 관리하는 속성 테이블과, 상태 정의가 행해진 속성값 세트 및 해당 정의된 상태를 나타내는 상태 정보를 관리하는 상태 테이블을 기억한 메모리를 포함하는 컴퓨터에,
    제시 요구가 이루어진 상기 묘화 오브젝트의 상태를 식별하는 속성값으로 구성된 제시 속성값 세트를 취득하는 처리와,
    상기 제시 요구가 이루어진 상태에 관하여, 상태 정보의 보간 연산을 행하는 속성 공간을, 상기 제시 속성값 세트, 상기 속성 테이블 및 상기 상태 테이블에 기초하여 결정하는 처리와,
    상기 결정된 속성 공간의 각각에 대해 상기 보간 연산을 행하여, 상기 제시 요구가 이루어진 상태의 상태 정보를 도출하는 처리와,
    상기 도출된 상태 정보에 기초하여 상기 묘화 오브젝트를 제시하는 처리
    를 실행시키고,
    상기 묘화 오브젝트에는, 상기 복수 종류의 속성값이 모두 기준값인 것에 의해 식별되는 기준 상태가 정해지고,
    상기 복수 종류의 속성의 각각 및 관련성을 갖는 속성군 각각은, 개별 속성 공간을 형성하고,
    상기 상태 테이블은, 상기 정의된 상태의 상기 기준 상태로부터 상태 정보의 차분을, 대응하는 속성 공간으로 분리하여 차분 정보로서 관리하는 것이고,
    상기 도출하는 처리에 있어서,
    상기 결정된 속성 공간마다, 해당 속성 공간에 정의된 상태에 관하여 관리되는 상기 차분 정보를 이용하여 상기 보간 연산이 행해지고,
    상기 결정된 속성 공간의 보간 연산 결과의 총합을 상기 기준 상태의 상태 정보에 가산함으로써, 상기 제시 요구가 이루어진 상태의 상태 정보가 도출되는,
    프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.
  2. 제1항에 있어서,
    속성 공간은, 관련지어져 있는 속성의 수에 따른 차원 수를 갖는 것이고,
    상기 상태 테이블에 있어서, 상기 정의된 상태의 상기 기준 상태로부터의 상태 정보의 차분은, 해당 상태 정의가 행해진 속성값 세트의 모든 속성군에 의해 형성되는 제1 속성 공간과,
    해당 상태 정의가 행해진 속성값 세트의 일부의 속성에 의해 형성되는, 상기 제1 속성 공간보다 낮은 차원 수의 제2 속성 공간으로 분리하여 관리되는, 기록 매체.
  3. 제2항에 있어서,
    상기 정의된 상태에 관해 상기 제1 속성 공간에 의해 관리되는 상기 차분 정보는, 해당 정의된 상태에 관해 상기 제2 속성 공간에 의해 관리되는 상기 차분 정보의 총합을 상기 기준 상태의 상태 정보에 가산하여 도출되는 상태 정보로부터의 차분인, 기록 매체.
  4. 제2항에 있어서,
    상기 결정하는 처리에 있어서 결정되는 속성 공간은, 상기 제시 속성값 세트 중 적어도 어느 하나의 속성에 의해 형성되는 속성 공간인, 기록 매체.
  5. 제4항에 있어서,
    상기 도출하는 처리에 있어서, 상기 결정된 속성 공간 중 상기 정의된 상태가 존재하지 않는 속성 공간에 관해서는, 상기 보간 연산이 행해지지 않는, 기록 매체.
  6. 제2항 내지 제5항 중 어느 한 항에 있어서,
    상기 복수 종류의 속성의 각각에는, 기준값를 포함하는, 상기 상태 정의가 행해진 속성값 세트에 포함되는 속성값에 대해 정의점이 제공되고,
    상기 제시 요구가 이루어진 상태의 상태 정보에 관한 상기 보간 연산은, 상기 결정된 속성 공간에 관련지어져 있는 각 속성에 있어서, 상기 제시 속성값 세트의 같은 속성의 값을 범위에 포함하는, 2개의 상기 정의점으로 나타내지는 구간을 대상으로 하여 행해지는, 기록 매체.
  7. 제6항에 있어서,
    상기 결정된 속성 공간마다 행해지는 상기 보간 연산에 있어서, 속성 공간의 해당 보간 연산의 대상이 되는, 상기 정의점의 조합에 의해 구성되는 속성값 세트에 상태 정의가 행해져 있지 않은 경우, 해당 속성값 세트에 의해 식별되는 상태에 대해서는, 차분이 없음을 나타내는 상기 차분 정보가 이용되는, 기록 매체.
  8. 제2항에 있어서,
    상기 프로그램은, 상기 묘화 오브젝트의 상태가 편집된 것에 따라, 상기 상태 테이블을 갱신하는 처리를, 상기 컴퓨터에 더 실행시키고,
    상기 갱신하는 처리는,
    상기 편집된 상태를 식별하는 편집 속성값 세트를 취득하는 처리와,
    상기 편집된 상태의 상기 기준 상태로부터의 상태 정보의 차분을, 상기 상태 테이불에 등록하는 처리
    를 포함하는, 기록 매체.
  9. 제8항에 있어서,
    상기 갱신하는 처리는, 상기 편집 속성값 세트의 모든 속성군에 의해 형성되는 제3 속성 공간보다 높은 차원 수의 제4 속성 공간에 정의된 상태로서, 상기 편집된 상태에 대해 상기 제3 속성 공간에 의해 관리되는 상기 차분 정보를 이용하여 상태 정보가 도출되는 상태에 대해, 해당 상태의 상태 정보가 편집 전후에서 변화하지 않도록 조정하는 처리를 더 포함하는, 기록 매체.
  10. 제9항에 있어서,
    상기 상태 테이블은, 낮은 차원 수의 속성 공간에 대해서 행해진 편집에 따라 상태 정보를 변화시킬지 아닐지를 나타내는 정보를, 상기 정의된 상태의 각각에 대해 더 관리하고,
    상기 제4 속성 공간에 정의된 상태에 대해 상기 편집에 따라 상태 정보를 변화시키지 않는 것을 나타내는 정보가 관리되고 있는 경우에, 상기 조정하는 처리가 실행되는, 기록 매체.
  11. 제8항에 있어서,
    상기 속성 테이블은, 상기 복수 종류의 속성의 각각에 대해, 다른 속성과의 관련지음을 허용할지 아닐지를 나타내는 정보를 더 관리하고,
    상기 편집 속성값 세트가 기준값 이외의 속성값을 나타내는 속성을 복수개 포함하고, 또한 해당 복수의 속성과 상기 다른 속성과의 관련지음이 허용되지 않는 속성을 포함하는 경우에, 상기 등록하는 처리는 실행되지 않도록 제어되는, 기록 매체.
  12. 제2항에 있어서,
    상기 프로그램은,
    상기 묘화 오브젝트에 대해 형성되는 속성 공간을, 관련지어진 속성의 모두를 포함하고, 또한, 보다 높은 차원 수를 가지는 속성 공간에 통합하는 처리와,
    상기 통합 후의 속성 공간의 각각에 대해, 상기 통합에 이용된 속성 공간에 정의되어 있던 상태를 식별하는 속성값 세트를, 해당 통합 후의 속성 공간에 관련지어진 속성군의 속성값으로 구성되는 속성값 세트로 변환하는 처리와,
    상기 통합 후의 속성 공간의 각각에 대해, 상기 통합에 이용된 속성 공간에서 관리되고 있던 상기 차분 정보에 기초하여, 해당 통합 후의 속성 공간에 정의된 상태의 차분 정보를 생성하는 처리와,
    상기 변환된 속성값 세트, 및 해당 속성값 세트에 대응하는 상기 생성된 차분 정보를 관리하는, 새로운 상태 테이블을 출력하는 처리를 상기 컴퓨터에 더 실행시키고,
    상기 통합 후의 속성 공간에 정의된 상태의 차분 정보는, 상기 통합 전에 해당 상태를 정의하고 있던 속성 공간에 의해 관리되고 있던 상기 차분 정보에, 상기 통합 전에 해당 속성 공간보다 낮은 차원수를 갖고, 또한 상기 통합에 이용된 속성 공간에 의해 관리되고 있던 상기 차분 정보를 가산한 값인, 기록 매체.
  13. 제12항에 있어서,
    상기 통합 전의 하나의 속성 공간에 대해, 해당 하나의 속성 공간에 관련지어진 모든 속성을 포함하고, 또한, 보다 높은 차원수를 가지는 속성 공간이 동일한 차원수에 복수 존재하는 경우에, 상기 생성하는 처리에 있어서, 상기 하나의 속성 공간에서 관리되고 있던 상기 차분 정보를 해당 동일한 차원수에 존재하는 속성 공간의 수로 나눈 값이, 상기 통합에 있어서 가산되는, 기록 매체.
  14. 요구된 상태의 묘화 오브젝트를 제시하는 묘화 방법으로서,
    상기 묘화 오브젝트에 대해 제공된 복수 종류의 속성 및 속성 간의 관련성의 유무를 관리하는 속성 테이블과, 상태 정의가 행해진 속성값 세트 및 해당 정의된 상태를 나타내는 상태 정보를 관리하는 상태 테이블을 취득하는 공정과,
    제시 요구가 이루어진 상기 묘화 오브젝트의 상태를 식별하는 속성값으로 구성된 제시 속성값 세트를 취득하는 공정과,
    상기 제시 요구가 이루어진 상태에 대해, 상태 정보의 보간 연산을 행하는 속성 공간을, 상기 제시 속성값 세트, 상기 속성 테이블, 및 상기 상태 테이블에 기초하여 결정하는 공정과,
    상기 결정된 속성 공간의 각각에 대해 상기 보간 연산을 행하여, 상기 제시 요구가 이루어진 상태의 상태 정보를 도출하는 공정과,
    상기 도출된 상태 정보에 기초하여 상기 묘화 오브젝트를 제시하는 공정
    을 포함하고,
    상기 묘화 오브젝트에는, 상기 복수 종류의 속성값이 모두 기준값인 것에 의해 식별되는 기준 상태가 정해지고,
    상기 복수 종류의 속성의 각각, 및 관련성을 가지는 속성군의 각각은, 개별의 속성 공간을 형성하고,
    상기 상태 테이블은, 상기 정의된 상태의 상기 기준 상태로부터 상태 정보의 차분을, 대응하는 속성 공간으로 분리하여 차분 정보로서 관리하며,
    상기 도출하는 공정에 있어서,
    상기 결정된 속성 공간마다, 해당 속성 공간에 정의된 상태에 대해 관리되는 상기 차분 정보를 이용하여 상기 보간 연산을 행하고,
    상기 결정된 속성 공간의 보간 연산 결과의 총합을 상기 기준 상태의 상태 정보에 가산함으로써, 상기 제시 요구가 이루어진 상태의 상태 정보가 도출되는,
    묘화 방법.
  15. 요구된 상태의 묘화 오브젝트의 제시에 이용되며, 상태 정의가 행해진 해당 묘화 오브젝트의 상태를 관리하는 데이터 구조로서,
    상기 묘화 오브젝트에 대해 제공된 복수 종류의 속성, 및 속성 간의 관련성의 유무를 관리하는 제1 정보와,
    상태 정의가 행해진 속성값 세트, 및 해당 정의된 상태를 나타내는 상태 정보를 관리하는 제2 정보를 포함하고,
    상기 묘화 오브젝트에는, 상기 복수 종류의 속성값이 모두 기준값인 것에 의해 식별되는 기준 상태가 정해지고,
    상기 복수 종류의 속성의 각각, 및 관련성을 가지는 속성군의 각각은, 개별의 속성 공간을 형성하고,
    상기 제2 정보에 있어서, 상기 정의된 상태의 상기 기준 상태로부터 상태 정보의 차분이, 대응하는 속성 공간으로 분리하여 차분 정보로서 관리되는, 데이터 구조.
KR1020180042422A 2017-04-13 2018-04-11 기록 매체, 묘화 방법 및 컴퓨터로 판독가능한 기록매체 KR102069684B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201762485257P 2017-04-13 2017-04-13
US62/485,257 2017-04-13
JPJP-P-2017-108294 2017-05-31
JP2017108294A JP6231713B1 (ja) 2017-04-13 2017-05-31 プログラム、記録媒体、及び描画方法

Publications (2)

Publication Number Publication Date
KR20180115633A true KR20180115633A (ko) 2018-10-23
KR102069684B1 KR102069684B1 (ko) 2020-01-23

Family

ID=60321123

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180042422A KR102069684B1 (ko) 2017-04-13 2018-04-11 기록 매체, 묘화 방법 및 컴퓨터로 판독가능한 기록매체

Country Status (6)

Country Link
US (1) US20180300935A1 (ko)
JP (1) JP6231713B1 (ko)
KR (1) KR102069684B1 (ko)
CN (1) CN108734652A (ko)
CA (1) CA3001210A1 (ko)
HK (1) HK1256254A1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160086891A (ko) * 2013-12-02 2016-07-20 라이브2디 인크. 화상처리장치, 화상처리방법 및 프로그램

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6989838B2 (en) * 2003-06-26 2006-01-24 Intel Corporation Methods, systems, and data structures for generating a rasterizer
US20070006065A1 (en) * 2005-07-01 2007-01-04 Microsoft Corporation Conditional event timing for interactive multimedia presentations
US20070229501A1 (en) * 2006-03-31 2007-10-04 Vladmir Kouznetsov Method and system for organizing and rendering multiple geometric parts within a volume graphics data set
US20090010507A1 (en) * 2007-07-02 2009-01-08 Zheng Jason Geng System and method for generating a 3d model of anatomical structure using a plurality of 2d images
JP2009104570A (ja) * 2007-10-23 2009-05-14 Cybernoids Co Ltd 画像の形成用のデータ構造及び画像の形成方法
US20090168082A1 (en) * 2007-12-28 2009-07-02 Aschenbrenner Jean M Methods and apparatus for an output lookup table design and data access layer in color management resource engines
US8766986B1 (en) * 2012-06-22 2014-07-01 Google Inc. Efficient caching and drawing of objects whose rendering properties change frequently
JP5665068B1 (ja) * 2014-09-05 2015-02-04 株式会社Live2D プログラム、情報処理装置、制御方法及び記録媒体
CN104978413B (zh) * 2015-06-24 2018-09-18 北京超图软件股份有限公司 Gis线数据在浏览器端可视化的装置和方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160086891A (ko) * 2013-12-02 2016-07-20 라이브2디 인크. 화상처리장치, 화상처리방법 및 프로그램

Also Published As

Publication number Publication date
CA3001210A1 (en) 2018-10-13
JP2018181287A (ja) 2018-11-15
JP6231713B1 (ja) 2017-11-15
CN108734652A (zh) 2018-11-02
HK1256254A1 (zh) 2019-09-20
US20180300935A1 (en) 2018-10-18
KR102069684B1 (ko) 2020-01-23

Similar Documents

Publication Publication Date Title
US5923573A (en) Three-dimensional CAD system for producing a three-dimensional model
US8264488B2 (en) Information processing apparatus, information processing method, and program
JP5218109B2 (ja) 可視化データ処理装置、可視化データ処理装置の制御方法、及び可視化データ処理装置の制御プログラム
US20030011601A1 (en) Graphics image creation apparatus, and method and program therefor
JP5801646B2 (ja) 情報処理装置、情報処理方法、およびプログラム
US20140184592A1 (en) Creating, editing, and querying parametric models, e.g., using nested bounding volumes
CN113010612B (zh) 一种图数据可视化构建方法、查询方法及装置
CN102142152A (zh) 用于在计算机屏幕上显示对象的方法、装置和程序
Martin et al. A VR-CAD Data Model for Immersive Design: The cRea-VR Proof of Concept
CN113535165A (zh) 界面生成方法、装置、电子设备及计算机可读存储介质
US5982388A (en) Image presentation device with user-inputted attribute changing procedures
Lipp et al. Local editing of procedural models
Geveci et al. Vtk
JP6863675B2 (ja) 画像分割
KR102069684B1 (ko) 기록 매체, 묘화 방법 및 컴퓨터로 판독가능한 기록매체
US9582247B1 (en) Preserving data correlation in asynchronous collaborative authoring systems
US20160125659A1 (en) Methods and systems for multilevel editing of subdivided polygonal data
CN115168601A (zh) 一种针对时序知识图谱的可视化分析系统和方法
US11625900B2 (en) Broker for instancing
KR101268865B1 (ko) 3d 가상현실 저작도구의 실시간 재질 생성을 위한 편집 방법
JP2002024298A (ja) 3次元形状処理装置、3次元形状表示方法およびその方法を実施するためのプログラムを記憶した記憶媒体
CN113763497B (zh) 链接关系管理方法、装置、计算机设备和存储介质
US9569875B1 (en) Ordered list management
JP2019040419A (ja) 画像処理装置、及びプログラム
FI117655B (fi) Menetelmä tietokoneavusteisen polygonimallin prosessointiin, laite ja tietokoneohjelma

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