JP2018181287A - プログラム、記録媒体、及び描画方法 - Google Patents

プログラム、記録媒体、及び描画方法 Download PDF

Info

Publication number
JP2018181287A
JP2018181287A JP2017108294A JP2017108294A JP2018181287A JP 2018181287 A JP2018181287 A JP 2018181287A JP 2017108294 A JP2017108294 A JP 2017108294A JP 2017108294 A JP2017108294 A JP 2017108294A JP 2018181287 A JP2018181287 A JP 2018181287A
Authority
JP
Japan
Prior art keywords
state
attribute
key
parameter
space
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
JP2017108294A
Other languages
English (en)
Other versions
JP6231713B1 (ja
Inventor
勇太 今井
Yuta Imai
勇太 今井
修一 稲田
Shuichi Inada
修一 稲田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Live2D Inc
Original Assignee
Live2D Inc
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 Live2D Inc filed Critical Live2D Inc
Application granted granted Critical
Publication of JP6231713B1 publication Critical patent/JP6231713B1/ja
Priority to CA3001210A priority Critical patent/CA3001210A1/en
Priority to CN201810329260.1A priority patent/CN108734652A/zh
Priority to KR1020180042422A priority patent/KR102069684B1/ko
Priority to US15/950,824 priority patent/US20180300935A1/en
Publication of JP2018181287A publication Critical patent/JP2018181287A/ja
Priority to HK18115311.0A priority patent/HK1256254A1/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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

【課題】所望の描画表現の調整を容易ならしめつつ、演算負荷を低減させる。【解決手段】描画オブジェクトの提示に係り、描画オブジェクトについて設けられた複数種類の属性、及び属性間の関連性の有無を管理する属性テーブルと、状態定義が行われた属性値セット、及び該定義された状態の基準状態から状態情報の差分を、対応する属性空間に分離して差分情報として管理する状態テーブルと、を設ける。提示要求がなされた状態について、状態情報の補間演算を行う属性空間を属性テーブル及び状態テーブルに基づいて決定し、決定した属性空間の各々について補間演算を行い、提示要求がなされた状態の状態情報を導出し、描画オブジェクトを提示する。導出において、決定された属性空間ごとに、該属性空間で管理される差分情報を用いて補間演算が行われ、補間演算結果の総和を基準状態の状態情報に加算することで、提示要求がなされた状態の状態情報が導出される。【選択図】図5

Description

本発明は、プログラム、記録媒体、描画方法、及びデータ構造に関し、特に2次元画像の外観を変化させることで、該画像の3次元的な描画表現の提示を可能ならしめる技術に関する。
デザイナによって描かれたキャラクタ等の2次元画像を、設定されたパラメータに応じて変形することで、該2次元画像の3次元的な描画表現を可能ならしめる技術がある(特許文献1)。より詳しくは、対象物(2次元画像)の表現定義部品(描画オブジェクト/アートメッシュ/パーツ群)に対して所定のパラメータにおける状態をデザイナの意図した態様で定義することで、未定義のパラメータについての状態は、定義されたパラメータの状態から補間して生成することで、パラメータの変化に応じて動的に2次元画像の外観を変化させる技術が、特許文献1に開示されている。
特許文献1では例えばキャラクタの顔に配置される目、鼻、口等の描画オブジェクトは、顔を表現した1つの曲面における配置を定義しておくことで、該曲面が観賞方向(パラメータ)に応じた形状に変形した際にも、該変形を考慮した形でマッピングし、一括で曲面に合わせた移動や変形を適用させることが可能に構成されている。
特開2009−104570号公報
ところで、特許文献1のように曲面へのマッピングを処理に含む場合、曲面に配置される描画オブジェクト(配置オブジェクト)ごとに生じる変形を加えた後、別途パラメータに応じて変形させた曲面へのマッピングを行って最終的な出力画像が生成される。このとき、出力画像においてデザイナが配置オブジェクトへの微調整を加えることで、特定のパラメータ値セットにおいて、デザイナ所望の表現が実現される。
一方で、このような2段階の処理工程(配置オブジェクトの観賞方向以外のパラメータ(表情等)に応じた変形+観賞方向パラメータに応じた曲面の変形及び該曲面への配置オブジェクトの座標変換を含む配置)を有していることで、特定のパラメータ値セットにおいてなされた調整が、他のパラメータ値セットとなった場合に、デザイナの意図しない表現を生じ得る。即ち、曲面を利用することで、曲面の移動変形に応じたオブジェクト配置を一括で可能である反面、曲面へのマッピングとの拘束により意図しない表現が提示され得、デザイナは種々のパラメータ値セットについて確認及び微調整をしつつ、破綻のないような所望の表現が実現されるまで、作業を繰り返す必要があった。特に、所定の配置オブジェクトについて変形等を伴うパラメータを追加定義した場合には、デザイナは該パラメータに応じた描画オブジェクトの変形だけでなく、曲面へのマッピングがなされた場合に好適な表現となるよう、補間演算の基礎となる複数の状態(特許文献1であればnのパラメータに対して2n)における定義が必要であり、描画表現の拡充のためのパラメータ追加に応じて、デザイナの作業負担は指数関数的に増加し得るものであった。
また、特許文献1の手法では、1カットに相当する2次元画像について、3次元的な描画表現が可能となる観賞方向の範囲は、該2次元画像を用いた表現に限られる。換言すれば、観賞方向の範囲を例えば全周囲に拡張する場合には、観賞方向に応じて視認可能となる描画オブジェクトが変化することを表現する、あるいはキャラクタの外観の特徴等、特定の観賞方向に対して所望の描画表現を実現するために、観賞方向の変化に応じて、3次元的な描画表現に用いる描画オブジェクト群を切り替えていく必要がある。
従って、これらの切り替えによる遷移が発生する場合に観賞者に違和感を与えぬために、切り替え前後で描画オブジェクトの形状等の描画表現の差異を小さくすることが好ましいが、曲面へのマッピングを伴う手法では、1つのパラメータ値セットにおける調整で他のパラメータ値セットにおける描画表現にも影響が生じ得るため、好適な遷移を実現させる状態とするまでに、デザイナに煩雑な調整作業を強いる可能性があった。
これに対し、曲面へのマッピングを行わず、パラメータ種類を増加させて描画オブジェクトの細かな調整を可能ならしめることで、所望の描画表現を実現させる手法も考えられるが、その分、パラメータ変更に伴う描画表現の出力までに要する補間演算において、参照すべき情報量や演算量が指数関数的に増加し得るため、意図した描画表現の再現能力と、描画表現の提示に必要な演算量とはトレードオフな関係にあった。
本発明は、上述の問題点に鑑みてなされたものであり、所望の描画表現の調整を容易ならしめつつ、演算負荷を低減させるプログラム、記録媒体、描画方法、及びデータ構造を提供することを目的とする。
前述の目的を達成するために、本発明のプログラムは、要求された状態の描画オブジェクトを提示するプログラムであって、描画オブジェクトについて設けられた複数種類の属性、及び属性間の関連性の有無を管理する属性テーブルと、状態定義が行われた属性値セット、及び該定義された状態を示す状態情報を管理する状態テーブルと、を記憶した記憶手段を有するコンピュータに、提示要求がなされた描画オブジェクトの状態を識別する属性値で構成された提示属性値セットを取得する処理と、提示要求がなされた状態について、状態情報の補間演算を行う属性空間を、提示属性値セット、属性テーブル、及び状態テーブルに基づいて決定する処理と、決定された属性空間の各々について補間演算を行い、提示要求がなされた状態の状態情報を導出する処理と、導出された状態情報に基づいて描画オブジェクトを提示する処理と、を実行させ、描画オブジェクトには、複数種類の属性値がいずれも基準値であることで識別される基準状態が定められ、複数種類の属性の各々、及び関連性を有する属性群の各々は、個別の属性空間を形成し、状態テーブルは、定義された状態の基準状態から状態情報の差分を、対応する属性空間に分離して差分情報として管理するものであり、導出する処理において、決定された属性空間ごとに、該属性空間に定義された状態について管理される差分情報を用いて補間演算が行われ、決定された属性空間の補間演算結果の総和を基準状態の状態情報に加算することで、提示要求がなされた状態の状態情報が導出されることを特徴とする。
このような構成により本発明によれば、所望の描画表現の調整を容易ならしめつつ、演算負荷を低減させることが可能となる。
本発明の実施形態に係るPC100の機能構成を示したブロック図 本発明の実施形態に係るキーフォーム編集アプリケーションのGUIを例示した図 本発明の実施形態に係るキーフォーム編集アプリケーションにおいて、キーフォーム編集時のデータ保持を説明するための図 本発明の実施形態に係るキーの関係を説明するための図 本発明の実施形態に係る多次元のパラメータ空間のパラメータ値セットについて、補間演算による状態情報の導出を説明するための図 本発明の実施形態に係る出力用のデータ変換を説明するための図 本発明の実施形態に係る出力用のデータ変換を説明するための別の図 本発明の実施形態に係るPC100で行われるパラメータキー設定処理を例示したフローチャート 本発明の実施形態に係るPC100で行われるキーフォーム編集処理を例示したフローチャート 本発明の実施形態に係るベースキーフォームまたはキーフォームの更新処理を例示したフローチャート 本発明の実施形態に係る反映処理を例示したフローチャート 本発明の実施形態に係る編集時表示処理を例示したフローチャート 本発明の実施形態に係る補間演算を説明するための図 本発明の実施形態に係るランタイム用データ出力処理を例示したフローチャート 本発明の実施形態に係る従来方式との演算効率を対比するための図
[実施形態]
以下、本発明の例示的な実施形態について、図面を参照して詳細に説明する。なお、以下に説明する一実施形態は、本発明を実現する装置の一例としての、2次元画像(テクスチャ)で各々が構成されるパーツ群を変形し、描画オブジェクトに係る3次元的な描画表現を提示するPCに、本発明を適用した例を説明する。しかし、本発明は、描画オブジェクトについて構成された属性テーブル及び状態テーブルに基づいて、要求された状態の描画オブジェクトの提示を実現することが可能な任意の機器に適用可能である。
《用語定義》
まず、本明細書において用いる基本的な用語について説明する。
「パラメータ」とは、提示対象である描画オブジェクトについて対応付けられる属性(変数)を示し、所与の数値範囲が割り当てられている。ユーザは、該属性の値(パラメータ値)を変更することで、描画オブジェクトのステータスを選択することができる。対応付けられるパラメータは、観賞位置や観賞方向等の予め定められた概念の属性を示す固定的なものである必要はなく、ステータス変更の指針としてユーザが設定した任意の概念を含むものであってよい。即ち、描画オブジェクトに対応付けられるパラメータは、ステータスを特定するための変数であり、該変数によってどのように描画オブジェクトの状態を変化させるかは、ユーザが自由に定義可能であるため、パラメータは固定的な概念に捉われることなく設定可能である。従って、描画オブジェクトに対応付けられるパラメータは複数種類であってよい。描画オブジェクトの提示は、ステータスごとになされる。
またパラメータの各々には、数値範囲を規定する上限値/下限値や数値範囲における定数である定義点である、「パラメータキー」が定義される。パラメータキーは、少なくとも基準値として設定される定義点を含んでおり、パラメータ種類ごとにパラメータキーリストに管理されているものとする。
また、パラメータの各々は、特定の変数の値に応じてステータスが変更される「パラメータ空間(属性空間)」を形成する。なお、描画オブジェクトに対応付けられる複数種類のパラメータは、各々独立した概念の変数を示すものである必要はなく、連関するものであってもよい。例えば、観賞方向に係るPitch角度及びYaw角度といった、同一の概念に係る複数種類の変数の必要性も考慮し、パラメータ間で関連付けがなされるものであってよい。この場合、パラメータそれぞれについて、1つの変数に応じて形成される1次元のパラメータ空間とは別に、連関する複数のパラメータについて、複数の変数に応じてステータスが変更される多次元のパラメータ空間が形成される。ここで、パラメータ空間の次元数は、該空間におけるステータスを一意に特定するために用いられる変数の数に対応しており、上述の観賞方向の例では、Pitch角度とYaw角度について形成されるパラメータ空間の次元数は2(2次元のパラメータ空間)となる。
また描画オブジェクトのステータスのうち、提示に係る補間演算で用いられうるステータスを、単に「キー」(パラメータキーと別意)として言及する。キーは、ステータスを一意に特定する識別情報である「キーフォームインデックス」が割り当てられ、各々管理される。キーフォームインデックスとは、ステータスを特定する1以上のパラメータキーの組み合わせ(パラメータキーセット)で構成されるものであり、ステータスの特定に必要十分な数(種類)のパラメータ値を、組み合わせに含む。ここで、キーフォームインデックスは、描画オブジェクトについて形成されるパラメータ空間のいずれかにおいてステータスを一意に特定するものであればよく、必要十分な数とは、キーフォームインデックスにより一意に特定可能なキーを含む、最も低い次元数のパラメータ空間を形成するパラメータの数(次元数)を指す。上述の観賞方向の例では、Pitch角度が基準値と異なる値、Yaw角度が基準値で識別されるキーは、Pitch角度のパラメータ空間で特定できるため、Pitch角度のパラメータキーのみで構成されるキーフォームインデックスが割り当てられる。
パラメータ空間と同様、キーも、割り当てられたキーフォームインデックスに含まれるパラメータキーの数で次元が定義されるものとし、キーフォームインデックスを参照すれば、該キーの情報が定義されるパラメータ空間の特定が可能に構成される。なお、対応付けられた全パラメータの基準値のパラメータキーの組み合わせで特定されるキーは「ベースキー」として言及するが、全種類のパラメータ値で特定されるものの、基準値のみで構成されるため、0次元(もしくは次元の概念がないもの)として扱う。
「キーフォーム」とは、キーフォームインデックスが割り当てられたキー(ステータス)について、ユーザによって定義された描画オブジェクトの状態(形状や色、透明度等)を指す。キーフォームは状態情報として管理され、同一のステータスが指定された場合には、定義された状態が再現される。
《PC100の構成》
次に、本発明の実施形態に係るPC100の機能構成を、図1のブロック図を用いて説明する。なお、本実施形態ではPC100において、2次元画像で構成された描画オブジェクトの3次元的表現を可能ならしめるために、描画オブジェクトに対してパラメータやキーフォームの定義を行う「キーフォーム編集アプリケーション」に係るプログラムが実行されることで、一部の機能構成が実現されるものとする。該アプリケーションでは、図2に示されるように、対象のステータスにおいて描画オブジェクトが所望の態様となるよう、ユーザはパラメータパレット201においてパラメータ値セット(ステータス)を設定し、ビューポート(レンダリングウィンドウ)202において描画オブジェクトのパーツ群を編集することで、キーフォームを定義して登録することができる。また、キーフォームが定義された少なくとも2つのパラメータキーで構成される区間(パラメータパレット201において、各パラメータのスライダに刻まれた目盛りで示される区間)については、これらパラメータキーについて定義された状態情報が補間されることで、所望のパラメータ値セットにおける描画オブジェクトの状態がビューポート202に提示される。即ち、ユーザはキーフォームを定義した区間において、ステータス変更によって描画オブジェクトがどのように遷移するかを確認することができる。以下では、アプリケーションに係るプログラムの実行により実現される各種機能をそれぞれブロックに分離して説明するが、これらはプログラムによって実現されるものであってもよいし、特定のハードウェアによって実現される、あるいはこれらの双方を用いて実現されるものであってもよい。
制御部101は、例えばCPU等の制御装置であり、PC100が有する各ブロックの動作を制御する。具体的には制御部101は、記録媒体102に格納されているオペレーティングシステムに係るプログラムや、キーフォーム編集アプリケーションに係るプログラム等を読み出し、メモリ103に展開して実行することにより、各ブロックの動作を制御する。
記録媒体102は、例えば書き換え可能なROM等の不揮発性メモリや、PC100に着脱可能に接続された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は、PC100が有する構成要素であるものとして説明するが、本発明の実施はこれに限られるものではない。表示部120は、PC100と筐体を同じに構成されるものである必要はなく、PC100に着脱可能に接続される外部の表示装置であってもよい。
操作入力部109は、例えばマウス、キーボード、ペンタブレット等、PC100が有するユーザインタフェースである。操作入力部109は、各種インタフェースによりなされた操作入力を検出すると、該操作入力に対応する制御信号を制御部101に出力する。または操作入力部109は、該操作入力対応するイベントの発生を制御部101に通知する。
出力部110は、本実施形態のキーフォーム編集アプリケーションにおいて描画オブジェクトの各種ステータスについてキーフォーム定義が完了した後、同様の状態遷移を示す描画オブジェクトの提示を外部アプリケーションや外部装置等で実現するため、パラメータテーブル及びキーフォームテーブルを最適化した形式に変換して出力する。これらテーブルに基づく描画オブジェクトの提示を可能ならしめる機能がランタイムライブラリとして提供される場合、主たるプログラムの実行中(ランタイム)に低い演算負荷で該機能が実現されることが要求される。従って、繰り返しのキーフォーム編集が想定されるキーフォーム編集アプリケーションのように、パラメータキーセットごとのキーフォーム編集容易性を担保した管理形式とは異なり、所望のステータスに係る描画オブジェクトの状態提示における演算負荷(演算量やメモリアクセス数)を低減せしめるよう、ランタイム実行時に参照されるこれらテーブルは、出力部110により最適化されたものとなる。
《データ管理方式の概要》
特許文献1に記載される方式では、描画オブジェクトに対応付けられるパラメータ(変数)が増加すれば、各パラメータに設けられた編集点(パラメータキー)の組み合わせごとに、該描画オブジェクトの状態(キーフォーム)を規定する必要がある。即ち、例えば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次元のパラメータ空間範囲内における任意の値での描画オブジェクト群の状態を、補間演算によって生成することができるものであった。
一方で、上述したように、描画表現の多様化のために描画オブジェクト群に対して対応付けるパラメータ種類を増加させれば、定義しなければならない状態は指数関数的に増加する。また、該空間についての補間演算においても、空間に対して定義された状態を参照し、重み付け演算を行うことになるため、演算量やメモリアクセス数が増大する。
そこで、本実施形態のキーフォーム編集アプリケーションでは、編集の自由度や意図した状態の定義が容易な操作性を実現するため、特許文献1のような曲面にマッピングする手法を排し、かつ描画表現の多様化を実現するためのパラメータ種類が増加したとしても、表示に係る演算負荷やユーザに定義させる状態数を低減させて、好適な描画表現での提示を実現する。
〈キーフォーム編集時のデータ保持〉
以下、本実施形態のキーフォーム編集アプリケーションのキーフォーム編集時(任意のパラメータキーセットに応じたキーフォームの定義が可能な状態)において、パラメータテーブル及びキーフォームテーブルを用いて行われるデータ管理方式について説明する。図3に、パラメータテーブル(図3(a))と、キーフォームテーブル及びベースキーフォーム(図3(b))とを例示する。
図3(a)に例示されるようにパラメータテーブルには、描画オブジェクトに対応付けられた複数種類のパラメータについて、それらによって形成される、パラメータ間の関連性有無を考慮したパラメータ空間が管理される。パラメータキーの組み合わせ図3(a)の例では、パラメータとして互いに連関する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]
によってベースキーのステータスが識別される。図3(b)に記述304で示されるようにベースキーフォーム(ベースキーについて定義されるキーフォーム(例えば描画オブジェクトのデフォルトの状態))は、該キーフォームインデックスを用いて管理される。記述304で示されるようにベースキーフォームは、キーフォームインデックスに関連付けて、該キーフォームインデックスの状態における描画オブジェクトの状態情報(Form:{ID:F0,...})を管理する。ベースキーフォームについて管理される状態情報は、描画オブジェクトの描画態様を絶対的に定義するものであり、例えば描画オブジェクトについて割り当てられたメッシュの各頂点について、レンダリング用座標空間の絶対座標を定義する情報であってよい。
一方、ベースキー以外のキーについて定義されたキーフォームについては、本実施形態では図3(b)に記述305で示されるキーフォームテーブルで管理される。ここで、キーフォームテーブルで管理される状態情報の説明に先立ち、本実施形態のキーフォーム管理に導入される、次元の異なるパラメータ空間に存在するキー(状態定義済み(キーフォーム定義済))の取り扱いについて説明する。
本実施形態のキーフォーム編集アプリケーションでは、ユーザによる状態定義が必要なステータスの数を低減するため、ベースキーと、1次元のパラメータ空間のそれぞれの全てのパラメータキーについての状態定義は必須とするが、それ以外の次元のパラメータ空間のキーの状態定義は任意とするよう構成される。図4は、図3(a)のパラメータテーブルに定義される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]
となる。
次に、このようなキーの派生関係の概念を踏まえ、図3(b)に示されるキーフォームテーブルについて説明する。本実施形態のキーフォーム編集アプリケーションでは、ベースキー以外のキーについて定義されたキーフォームについては、ベースキーフォームからの差分を示す差分情報がキーフォームテーブルに管理される。より詳しくは任意のキーに係るキーフォームについては、ベースキーの状態情報(ベースキーフォーム)に、該任意のキーの全ての基底キーについて管理される差分情報の総和を加算することで導出される値(状態情報)からの差分を示す差分情報が、キーフォームテーブルにて該任意のキーのキーフォームインデックスに関連付けて管理される。ここで、ベースキーについては差分情報は管理されないため、全ての基底キーについて管理される差分情報の総和は、ベースキーを除く全ての基底キーの差分情報の総和と同一である。
換言すれば、多次元のパラメータ空間に属するキーについてキーフォームを定義した場合、該キーフォームのベースキーフォームからの差分は、該キーの属する次元のパラメータ空間と、これよりも低い次元数のパラメータ空間とに分離してキーフォームテーブルで管理されるため、該当のキーの差分情報を積算していくことで容易に導出することができる。即ち、任意のキーに係るキーフォームは、該任意のキーについての状態定義がなされている場合であれば、ベースキーの状態情報、全ての基底キーの差分情報、及び該任意のキーの差分情報を総和することで導出することができる。
従って、図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=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=F0+D2+D3+D6+D7+D8+D9
で導出することができる。
故に、本実施形態のキーフォーム編集アプリケーションでは、多次元のパラメータ空間に属するキーについての状態定義がなされていなくとも、該キーのキーフォームを低次元のパラメータ空間に属する基底キーの状態情報や差分情報から導出できる。故に、多次元のパラメータ空間に属するキーについて管理される差分情報は、このように低次元のパラメータ空間に属する基底キーに基づいて導出された該キーのキーフォームを、さらに調整する値としての意をもつ。つまり、例えばキャラクタを制作する初期段階であるラフモデリングにおいて、ユーザは各パラメータについて設けたパラメータキーごとの描画オブジェクトの(1次元キーの)キーフォームを定義すれば、その他のパラメータキーセットにおけるキーフォームは派生的に生成される。また、生成された任意のパラメータキーセットのキーについて、より所望の形状に近づける調整を行った場合には、基底キーに係る差分情報に上乗せされる差分情報のみが、該任意のパラメータキーセットのキーに係り管理されることになるため、低次元のキーに係るキーフォームに影響を及ぼすことなくキーフォームリストを更新することができる。このような、演算を簡略化しつつ編集自由度を担保する機能は、任意のパラメータキーセットに係るキーフォームの、ベースキーフォームからの差分を、パラメータ空間の対応するキーに分離して保持する構成によってもたらされるものであり、ユーザの作業負荷の低減に貢献し得る。
また、本実施形態のキーフォーム編集アプリケーションでは、描画オブジェクトに定義された各種のキーフォームの情報に基づいて、パラメータキーと異なる値を含むパラメータ値の組み合わせ(パラメータ値セット)が設定された場合に、該パラメータ値セットに対応した状態情報を補間演算により導出し、該状態情報に係る態様の描画オブジェクトがフォームコンポジットパレット203に提示される。即ち、ユーザは描画オブジェクトの3次元的な描画表現を提示させるにあたり、複数種類のキー(パラメータキーセット)における描画オブジェクトのキーフォームを定義することで、キー間の描画オブジェクトの状態をパラメータ値に応じて補間生成させることができる。上述したように、本実施形態のキーフォームテーブルによって、次元の異なるパラメータ空間に分離してキーフォームが定義されたキーの差分情報が管理されるため、描画表現の提示が要求されたパラメータ値セットに応じて、状態情報の補間演算に必要なパラメータ空間を適応的に決定することができる。これにより、必要以上な演算や格納値参照に係るメモリアクセス数を低減し、演算負荷を低減することができる。
例えば図5(a)に示されるような2次元のパラメータ空間中(PARAM_X, PARAM_Y)のパラメータ値セット(PARAM_X=DX, PRARAM_Y=DY)に係るキーフォームを導出する際の補間演算は、パラメータテーブル、キーフォームテーブル及びベースキーフォームが図5(b)のようである場合、図5(c)に示されるような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次元の重み付けを行った項のみが演算結果として残っている。
故に、特許文献1に記載の技術のように、パラメータ種類数がnであれば2n回の状態参照を伴う補間演算を行うのではなく、パラメータ間の関連性の有無やキーフォームの定義の有無に応じて最小限の規模で補間演算を行うことができる。従って、本実施形態のキーフォーム編集アプリケーションによれば、描画オブジェクトの表示に係る演算負荷が低減する分、ユーザはより多くの種類のパラメータを設定することができ、好適な描画表現とならない可能性がある曲面を使用せずとも、所望の描画オブジェクトの状態を容易に定義しやすくなる。換言すれば、本実施形態のパラメータテーブル及びキーフォームテーブルのようなデータ管理構成とすることで、より細かな(多くの)キーフォーム設定が可能となり、ユーザの意図した状態のキーフォームが定義しやすくなる。このことは、上述したような、例えば観賞方向に応じて表示に用いる描画オブジェクトを別のものに切り替えるような態様において、切り替えの境界付近における描画オブジェクトの形状や色等を揃えることを容易ならしめる。
《描画オブジェクトの提示》
また、本実施形態のキーフォーム編集アプリケーションにおいてなされた状態定義に応じて描画オブジェクトの提示は、上述したような(1)該アプリケーションでの編集作業中における表示と、(2)演算負荷を抑えて高いレスポンス性が要求される、外部アプリケーションやビューワ等での表示(キーフォーム編集アプリケーションでの編集が完了し、外部アプリケーションにおいて利用可能なように出力されたデータの表示)とで、参照用のデータ構成を異ならせる。
〈編集時における表示〉
編集時における描画オブジェクトの表示は、パラメータ値セットの変更に伴い、補間によって生成される描画オブジェクトの状態変化を確認しつつ、新たなキーの追加や既に定義したキーフォームの変更がなされることを考慮し、パラメータテーブルやキーフォームテーブルの構成は維持したまま、ベースキーフォームに対して加算する差分情報を導出することで行われる。より詳しくは、設定されたパラメータ値を含むパラメータ空間(基準値以外の値が設定されたパラメータがn種類である場合において、パラメータ値を内包する2×n個のキーで規定される値範囲)を特定し、低次元のパラメータ空間から順に、重み付け演算によってパラメータ値に応じた差分情報を積算し、最終的な差分情報をベースキーフォームに加算することで、表示する描画オブジェクトの状態を導出する。
なお、キーフォーム編集アプリケーションでは、差分情報の積算によって多次元のパラメータ空間の描画オブジェクトの状態を導出する構成としているため、低次元のパラメータ空間においてキーフォームの変更が加えられることで、該変更による影響が高次元のパラメータ空間にも波及する。このような変更による影響の波及は、例えば高次元のパラメータ空間のキーフォームの定義が好適であった場合に、これを崩すことになり得る。従って、キーフォーム編集アプリケーションでは、任意のキーの編集時に変更させたくない、上位の次元の対応キー(派生キー)についての影響を回避するための「ピン止め」機能を有し、低次元のパラメータ空間でのキーフォーム変更の影響を相殺する構成を設ける。より詳しくは、状態定義がなされたキーについて、ピン止め機能を実行する(低次元のパラメータ空間におけるキーフォーム変更の影響を相殺する、即ち低次元のパラメータ空間におけるキーフォーム変更によらず、定義されたキーフォームを維持する)か否かを示す、例えば論理型の情報がメモリ103に格納されて管理される。
該ピン止め機能の実行に係る情報(ピン止めフラグ)は、例えば図2のキーフォームリスト205において、ユーザが適用させたいキーを選択することにより真(True:実行する)に設定されるものであってよい。なお、図示されるようにピン止めフラグ206は、状態定義がなされていないキーについても設定可能であってよい。即ち、任意のキーについて、該任意のキーの基底キーの差分情報の総和によって導出される状態情報が好適であった場合、該任意のキーについてキーフォームの定義を行っておらずとも、これを維持するよう(低次元のパラメータ空間におけるキーフォーム編集/定義の影響を受けぬよう)ピン止めフラグを設定可能に構成するものであってよい。この場合、該任意のキーに影響が波及し得るキーフォーム変更がなされた場合には、該任意のキーの状態情報を維持させるような差分情報(変更を解消するような差分情報)がキーフォームテーブルに追加され、状態定義がなされた状態に変更すればよい。
〈ランタイム実行時の表示〉
一方、編集完了後の、ランタイム実行時の描画オブジェクトの表示は、重み付け演算を行う回数(パラメータ空間数)及び重み付け演算において参照するキー数を低減するよう、編集時にパラメータテーブルにおいて次元ごとに分離して管理していたパラメータ空間を、可能な限り統合する。即ち、編集容易性を考慮していた編集時とは異なり、ランタイム実行時では差分情報の変更を許容する必要がない。このため、相互に排他的なパラメータ空間のみでパラメータテーブルが構成されるよう、対応する高次元のパラメータ空間が存在する場合には、低次元のキーを高次元のキーに変換し、また差分情報は維持されるように高次元のパラメータ空間に存在していたキーの差分情報も更新して、出力用のパラメータテーブル及びキーフォームテーブルが生成される。
例えば、描画オブジェクトに3種類のパラメータ(PARAM_X, PARAM_Y, PARAM_Z)が対応付けられ、図6(a)のパラメータ空間に黒塗り点で示されるキー(ベースキー601、1次元キー602a〜c、2次元キー603a及びb)に状態定義がなされ、白抜き点で示されるキー(2次元キー604、3次元キー605)に状態定義がなされていない場合、出力用のパラメータテーブル及びキーフォームテーブルは、以下のようになる。
図6(a)の例では3次元のパラメータ空間(3次元キー605)に状態定義がなされていないため、図6(b)に示されるように編集時に保持されるパラメータテーブル611には、3次元のパラメータ空間は含まれず、1次元のパラメータ空間((PARAM_X)、(PARAM_Y)、(PARAM_Z))と、2次元のパラメータ空間((PARAM_X, PARAM_Z)、(PARAM_Y, PARAM_Z))とが管理されている。換言すれば、3次元キー605に状態定義がなされていない状態は、管理されている2次元のパラメータ空間が排他的な空間として取り扱うことが可能であることを意味する。ここで、排他的なパラメータ空間とは、より高い次元のパラメータ空間に係るパラメータ値セットについて状態情報を導出する際に、(パラメータ値セットの次元数に合わせて)まとめて補間演算を行う必要がなく、各々のパラメータ空間について補間演算を分離可能な空間を指す。即ち、図6(a)に係る3次元のパラメータ空間に係るパラメータ値セットについて状態情報を導出する際に、補間演算に係る処理負荷を低減する(補間演算における状態参照数が低減23→22)ことが可能な空間であると判別できる。
一方、状態定義がなされている2次元のパラメータ空間((PARAM_X, PARAM_Z)、(PARAM_Y, PARAM_Z))については、これらパラメータ空間を形成するパラメータに係る1次元のパラメータ空間は、それぞれの2次元のパラメータ空間に統合することが可能である。即ち、2次元のパラメータ空間についての補間演算において状態参照するキーは、各1次元のパラメータ空間についての補間演算においても状態参照するキーであるため、パラメータ空間を統合することで、補間演算の回数を低減(1次元のパラメータ空間に係る3回の補間演算を省略)しつつ、全体で行われる補間演算における状態参照数の重複を低減することができる。従って、出力用のパラメータテーブル612は、図6(b)に示されるように2種類の2次元のパラメータ空間のみで構成される。
また、図6(c)に示されるように編集時に保持されるキーフォームテーブル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次元のパラメータ空間に分離されていた差分を含んだ差分情報に変換する必要がある。従って、図6(c)に示されるこれら2次元キーの差分情報D4’及びD5’は、重複するキーの等分後の差分情報を考慮し、
D4’=D1+1/2*D3+D4
D5’=D2+1/2*D3+D5
に変換される。
このようにすることで図6(a)の態様では、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)が対応付けられ、図7(a)のパラメータ空間に黒塗り点で示されるキー(ベースキー701、1次元キー702a〜c、2次元キー703a及びb、3次元キー705)に状態定義がなされ、白抜き点で示されるキー(2次元キー704)に状態定義がなされていない場合、出力用のパラメータテーブル及びキーフォームテーブルは、以下のようになる。
図7(a)の例では3次元のパラメータ空間(3次元キー705)に状態定義がなされているため、図7(b)に示されるように編集時に保持されるパラメータテーブル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は、図7(b)に示されるように1種類の3次元のパラメータ空間のみで構成される。
また、図7(c)に示されるように編集時に保持されるキーフォームテーブル721が構成される場合、パラメータテーブルに合わせたパラメータ空間の統合を適用するため、1次元のパラメータ空間に属するキー及び2次元のパラメータ空間に属するキーについては、キーフォームインデックスが統合先の(3次元の)パラメータ空間に合わせて変更される(統合先のパラメータ空間に合わせて、不足するパラメータキーが基準値で補われる)。
ここで、パラメータ空間の統合は次元の高い順に行われ、また3次元のパラメータ空間は1つしか存在しないため、図6で示した態様とは異なり、統合先のパラメータ空間が複数存在することによる差分情報の分割は行われない。故に、図7(c)に示されるこれら3次元キーの差分情報D4’、D5’及びD6’は、単純に低次元のパラメータ空間の差分情報を積算することで、
D4’=D1+D3+D4
D5’=D2+D3+D5
D6’=D1+D2+D3+D4+D5+D6
となる。
このようにすることで図7(a)の態様では、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回であったものが、出力用の変換により23×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次元キーのキーフォームインデックスに、ベースキーフォームからの差分がないことを示す差分情報を関連付けて、キーフォームテーブルに追加して登録する。即ち、新たなパラメータキーの追加時においては、まだ該パラメータキーについてのキーフォームの定義は行われていないため、差分なしであることを示す差分情報が暫定的に格納される。
このようにすることで、ユーザは描画オブジェクトに対して所望のパラメータを対応付け、またパラメータへのパラメータキーの設定を容易に行うことができる。
《キーフォーム編集処理》
次に、パラメータキーが設定された後、1以上のパラメータキーの組み合わせで特定されるキーについて、キーフォームの定義を行うために、描画オブジェクトの編集がなされた場合に実行されるキーフォーム編集処理について、図9のフローチャートを用いて説明する。なお、本キーフォーム編集処理は、キーフォーム編集アプリケーションのパラメータパレット201で任意のパラメータキーセットが設定された状態で、ビューポート202の描画オブジェクトの状態を編集(変更)する操作入力がなされたことが検出された際に開始されるものとして説明する。
ここで、キーフォームの定義/編集は、パラメータキーリスト及びキーフォームリストの構成変更に係る処理の実行や、補間演算の複雑化を回避するため、任意のパラメータ値の組み合わせについて認めるものではなく、パラメータキーの組み合わせに限定して認めるものとする。故に、パラメータキーではないパラメータ値の組み合わせが設定されている間は、描画オブジェクトの状態編集が行えないよう、制御すればよい。
S901で、制御部101は、現在設定されているパラメータ値(パラメータキーセット)を取得する。現在設定されているパラメータ値は、描画オブジェクトに対応付けられたパラメータの全てについて設定されているパラメータ値であり、キーフォームの定義を行う場合には、パラメータキーとして設定されたいずれかのパラメータ値(基準値含む)の組み合わせで構成されたパラメータキーセットであるものとする。
S902で、制御部101は、編集中のキーフォームがベースキーフォームであるか否かを判断する。本ステップの判断は例えば、現在設定されているパラメータキーセットを構成する各パラメータのパラメータ値と、ベースキーフォームのキーフォームインデックスを構成するパラメータ値とを比較することで行われればよい。制御部101は、編集中のキーフォームがベースキーフォームであると判断した場合は処理をS903に移し、ベースキーフォームではないと判断した場合は処理をS904に移す。
S903で、状態定義部105は、ベースキーフォームの編集結果を反映するベースキーフォーム更新処理を実行する。
〈ベースキーフォーム更新処理〉
ここで、本ステップで行われるベースキーフォーム更新処理について、図10(a)のフローチャートを用いて説明する。
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は、編集されたキーフォームの情報を登録するキーフォーム更新処理を実行する。
〈キーフォーム更新処理〉
ここで、本ステップで行われるキーフォーム更新処理について、図10(b)のフローチャートを用いて説明する。
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で、今回の更新による派生キーへの影響を反映する反映処理を実行する。
〈反映処理〉
ここで、本ステップで行われる反映処理について、図11のフローチャートを用いて説明する。
S1101で、空間決定部106は、現在設定されているパラメータキーセット、パラメータテーブル、及びキーフォームテーブルに基づいて、現在のキーの全ての派生キーを特定する。そして空間決定部106は、特定した派生キーのキーフォームインデックスを、例えばメモリ103に生成した対象キーフォームリストに追加する。
S1102で、制御部101は、対象キーフォームリストのキーフォームインデックスを、対応するキーの次元数が低い順にソートする。即ち、制御部101は、対象キーフォームリストのキーフォームインデックスを、キーフォームインデックスを構成するパラメータ数の少ない順にソートする。
S1103で、状態定義部105は、対象キーフォームリストからソート順に未選択のキーフォームインデックスを選択する。S1103からS1107のループ処理では、本ステップで選択されたキーフォームインデックスにより識別されるキーを、対象キーとして処理する。
S1104で、状態定義部105は、対象キーにピン止めフラグが設定されているか否かを判断する。状態定義部105は、対象キーにピン止めフラグが設定されていると判断した場合は処理をS1105に移し、設定されていないと判断した場合は処理をS1107に移す。
S1105で、状態定義部105は、低次元のキーから波及する相殺係数を積算して加味した上で、対象キーのキーフォームに波及する調整を相殺する相殺係数を導出する。上述したように本実施形態のキーフォーム編集アプリケーションでは、任意のキーのキーフォームは、ベースキーフォームに対して、該任意のキーの基底キーの差分情報を低次元のパラメータ空間から順に加算し、該任意のキーの差分情報をさらに加算することで導出される。従って、任意のキーについてキーフォームの編集が行われた場合、その差分情報の変更量(調整値)は、該任意のキーの派生キーにも波及する。一方で、派生キーにピン止めフラグが設定されている場合、該派生キーの状態情報を編集前と同じにすべく、該状態情報の導出時に加算される調整値分の影響を、該派生キーの差分情報を調整することで相殺する必要がある。従って、編集が行われたキーよりも次元数が1つ多い派生キーについて、編集が行われたキーについて生じる調整値分の増加を相殺するためには、該派生キーの差分情報に対し、調整値に「−1」を乗じた値を加算すればよい。このとき、該派生キーについては、「−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に表示させる編集時表示処理について、図12のフローチャートを用いて説明する。なお、本編集時表示処理は、キーフォーム編集アプリケーションのパラメータパレット201でパラメータ値の変更に係る操作入力がなされたことが検出された際に開始されるものとして説明する。
S1201で、制御部101は、現在設定されているパラメータ値セットを取得する。現在設定されているパラメータ値は、描画オブジェクトに対応付けられたパラメータの全てについて設定されているパラメータ値であり、キーフォームの定義を行わないのであれば各パラメータについて定められた数値範囲のいずれかの値を示すものであってよい。
S1202で、制御部101は、取得したパラメータ値セットを示すキーフォームインデックスがキーフォームテーブルに存在するか否かを判断する。即ち、本ステップでは、制御部101は、現在設定されているパラメータ値セットが状態定義の行われたパラメータキーセットであるか否かを判断する。制御部101は、取得したパラメータ値セットを示すキーフォームインデックスがキーフォームテーブルに存在すると判断した場合は処理をS1203に移し、存在しないと判断した場合は処理をS1204に移す。
S1203で、状態導出部107は、現在設定されているパラメータ値セットに対応するキーフォームの、ベースキーフォームからの差分Dxを導出する。より詳しくは、まず空間決定部106が、現在設定されているパラメータ値セット、パラメータテーブル、及びキーフォームテーブルに基づいて、該パラメータ値セットに対応するキー(現在のキー)の全ての基底キーを特定する。状態導出部107は、現在のキーについてキーフォームテーブルに管理されている差分情報Dcと、現在のキーの全ての基底キーの差分情報の総和ΣDbとを合算し、表示に係る最終的な差分情報Dx
x=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
x=D(x)+D(y)+D(xy)
により導出される。
S1212で、状態導出部107は、ソートされた空間リストに未選択のパラメータ空間が存在するか否かを判断する。状態導出部107は、空間リストに未選択のパラメータ空間が存在すると判断した場合は処理をS1206に戻し、存在しないと判断した場合は処理をS1213に移す。
S1213で、状態導出部107は、ベースキーフォームに係る状態情報Fbに最終的な差分情報Dxを加算することで、現在設定されているパラメータ値セットについて表示する状態の状態情報Fdを導出する。
S1214で、描画部108は、描画オブジェクトに状態情報Fdを適用して、ビューポート202に係る画像を描画し、表示部120に表示させる。
このように、本実施形態の編集時表示処理によれば、提示要求がなされたパラメータ値セットについて補間演算に必要なパラメータ空間を特定し、そして必要なパラメータ空間の各々について、該パラメータ空間に属するキーについて管理されている差分情報を用いて補間演算することを再帰的に行うことで、提示要求がなされたパラメータ値セットに係る状態情報を導出することができる。
《ランタイム用データ出力処理》
次に、ランタイム実行用のデータ出力を行う(エクスポート)場合に実行されるランタイム用データ出力処理について、図14のフローチャートを参照して説明する。なお、本ランタイム用データ出力処理は、キーフォーム編集アプリケーションにおいてエクスポートに係る操作入力がなされたことが検出された際に開始されるものとして説明する。
また、本実施形態ではキーフォーム編集アプリケーションにおいて本ランタイム用データ出力処理が行われるものとして説明するが、本処理の実施は、キーフォームの定義等を行うキーフォーム編集アプリケーションにおいてエクスポートという形で行われる態様に限られるものではない。例えば、外部アプリケーションやビューワ等に、キーフォーム編集アプリケーションで生成されたデータ(編集時の状態のパラメータテーブル、キーフォームテーブル及びベースキーフォーム)を入力する(インポート)場合に実行されるものであってもよい。
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は、処理が完了した出力用キーフォームテーブル、出力用パラメータテーブル、及びベースキーフォームの情報を、ランタイム用データとして出力し、本ランタイム用データ出力処理を完了する。
このように、本ランタイム用データ出力処理により、キーフォームテーブル及びパラメータテーブルを、編集時よりも情報量を削減し、実行される補間演算の回数を低減する形式に変換することができる。
《演算効率比較》
最後に、任意のパラメータ値セットに対応する状態の描画オブジェクトの提示に係り行われる補間演算について、特許文献1に記載の方式と、本実施形態のキーフォーム編集アプリケーションでの編集時にパラメータテーブル及びキーフォームテーブルを用いて行われる方式と、ランタイム実行時に出力用パラメータテーブル及び出力用キーフォームテーブルを用いて行われる方式とで、その演算効率を比較する。なお、評価条件は、描画オブジェクトに7種類のパラメータを対応付け、パラメータの各々に2つのパラメータキーを定義し、図15(a)に示されるように、パラメータ間の関連性の有無(多次元のパラメータ空間の形成)が定められているものとし、補間演算を行う最大回数、補間演算完了までに状態情報を参照するキーの最大数(延べ参照キー数)により、効率評価を行う。
まず、特許文献1に記載の方式では、次元数の異なるパラメータ空間を設けるとの概念がないため、7種類のパラメータを描画オブジェクトに対応付けた場合、全てのパラメータで形成される7次元のパラメータ空間について補間演算が行われる。従って、補間演算の対象となるパラメータ空間は1種類であるため、
補間演算の回数:1回
となる。一方、補間演算完了までの延べ参照キー数は、7次元のパラメータ空間であるため、パラメータキーの全ての組み合わせから
延べ参照キー数:27=128
となる。
次に、本実施形態のキーフォーム編集アプリケーションでの編集時に用いられる方式では、図15(a)に示されるように1次元から4次元までのパラメータ空間が管理され、その各々について補間演算を行うため、
補間演算の回数:7+7+2+1=17回
となる。一方、補間演算完了までの延べ参照キー数は、7種類の1次元のパラメータ空間、7種類の2次元のパラメータ空間、2種類の3次元のパラメータ空間、4種類の4次元のパラメータ空間の各々で参照が行われるため、
延べ参照キー数:2*7+22*7+23*2+24*1=74
となる。
最後に、本実施形態のランタイム実行時に用いられる方式では、図15(b)に示されるようにパラメータ空間は統合されるため、
補間演算の回数:3+1=4回
となる。一方、補間演算完了までの延べ参照キー数は、3種類の2次元のパラメータ空間、1種類の4次元のパラメータ空間の各々で参照が行われるため、
延べ参照キー数:22*3+24*1=28
となる。
従って、状態情報の参照に係るメモリアクセス数の観点で、補間演算に係る演算負荷の低減が実現されている。また、補間演算の回数は増加し得るものの、1回の補間演算において重み付け加算する項の数が、特許文献1に記載の方式では27個、編集時に用いられる方式では最大で24個、ランタイム実行時に用いられる方式でも最大で24個となるため、演算規模を低減することができ、演算にあたり確保すべきメモリ領域を低減することができる。
以上説明したように、本実施形態の装置によれば、所望の描画表現の調整を容易ならしめつつ、演算負荷を低減させることが可能となる。
[変形例]
上述した実施形態では、対応付けた複数種類のパラメータについて、任意のパラメータキーセットを選択し、キーフォームの定義が行えるものとして説明したが、本発明の実施はこれに限られるものではない。
例えば透明度変更やエフェクト等のパラメータは、他のパラメータによる描画オブジェクトの状態遷移によらず、描画オブジェクトの全体に対して共通して適用することが好適であり、敢えてこのようなパラメータのパラメータキーの組み合わせを含んだ多次元のパラメータ空間のキーフォームを定義するメリットが少ない。換言すれば、このようなパラメータとその他のパラメータとの組み合わせを考慮したキーフォーム定義を許容してしまうことで、意図しない状態遷移を定義してしまう可能性もある。
従って、このようなパラメータについてのキーフォームの定義は、該パラメータについてのみ独立で行えればよく、パラメータの対応付け時に、例えば他のパラメータとの組み合わせを一切排除する、完全排他属性であることを示す情報を該パラメータに関連付ければよい。この場合、該完全排他属性のパラメータが基準値以外のパラメータキーに設定されている際に、他のパラメータが基準値以外のパラメータキーに設定された際には、当該パラメータキーセットについてキーフォームの定義に係る描画オブジェクトの編集操作が不能となるよう制御するものであってもよい。
また例えばキャラクタの口唇モーションを規定するために、基本的な口の開閉の状態遷移に対して、その開閉形状(丸型、逆三角型等)をさらに調整するパラメータの割り当てが所望される状況も(口の開閉に限らず)ある。一方で、このような基本的な状態遷移に対して上乗せする調整用のパラメータの各々は、到達目標が異なるものであるため、同時的にパラメータ変更する状況が想定しづらく、これら調整用のパラメータのパラメータキーの組み合わせを含んだ多次元のパラメータ空間のキーフォームを定義するメリットが少ない。
従って、このような調整用途等のパラメータについてのキーフォームの定義は、該パラメータについてのみか、基本的なパラメータとの組み合わせについて可能であればよく、パラメータの対応付け時に、例えば同様に調整用途のパラメータとの組み合わせのみを排除する、一部排他属性であることを示す情報を該パラメータに関連付ければよい。この場合、基準値以外のパラメータキーが設定された一部排他属性のパラメータが複数存在する場合には、当該パラメータキーセットについてのキーフォームの定義に係る描画オブジェクトの編集操作が不能となるよう制御するものであってよい。また、基準値以外のパラメータキーが設定された一部排他属性のパラメータが1つのみ存在する、または存在しない場合には、当該パラメータキーセットについてのキーフォームの定義に係る描画オブジェクトの編集操作が可能となるよう制御するものであってよい。
このようにすることで、ユーザが複数種類のパラメータキーの組み合わせに係るキーフォーム定義について、使用用途等が確定している場合には、予めパラメータの対応付け時に完全排他属性や一部排他属性を適宜設定することで、不要な多次元のパラメータ空間の定義やキーフォームの定義が行われることを回避しつつ、状態情報の導出に係る演算量を低減することができるよう、キーフォーム編集アプリケーション側の動作を制御することができる。
[その他の実施形態]
本発明は上記実施の形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。また本発明を実現する装置は、1以上のコンピュータを該装置として機能させるプログラムによっても実現可能である。該プログラムは、コンピュータが読み取り可能な記録媒体に記録されることにより、あるいは電気通信回線を通じて、提供/配布することができる。
100:PC、101:制御部、102:記録媒体、103:メモリ、104:パラメータ定義部、105:状態定義部、106:空間決定部、107:状態導出部、108:描画部、109:操作入力部、110:出力部、120:表示部

Claims (16)

  1. 要求された状態の描画オブジェクトを提示するプログラムであって、
    前記描画オブジェクトについて設けられた複数種類の属性、及び属性間の関連性の有無を管理する属性テーブルと、状態定義が行われた属性値セット、及び該定義された状態を示す状態情報を管理する状態テーブルと、を記憶した記憶手段を有するコンピュータに、
    提示要求がなされた前記描画オブジェクトの状態を識別する属性値で構成された提示属性値セットを取得する処理と、
    前記提示要求がなされた状態について、状態情報の補間演算を行う属性空間を、前記提示属性値セット、前記属性テーブル、及び前記状態テーブルに基づいて決定する処理と、
    前記決定された属性空間の各々について前記補間演算を行い、前記提示要求がなされた状態の状態情報を導出する処理と、
    前記導出された状態情報に基づいて前記描画オブジェクトを提示する処理と、
    を実行させ、
    前記描画オブジェクトには、前記複数種類の属性値がいずれも基準値であることで識別される基準状態が定められ、
    前記複数種類の属性の各々、及び関連性を有する属性群の各々は、個別の属性空間を形成し、
    前記状態テーブルは、前記定義された状態の前記基準状態から状態情報の差分を、対応する属性空間に分離して差分情報として管理するものであり、
    前記導出する処理において、
    前記決定された属性空間ごとに、該属性空間に定義された状態について管理される前記差分情報を用いて前記補間演算が行われ、
    前記決定された属性空間の補間演算結果の総和を前記基準状態の状態情報に加算することで、前記提示要求がなされた状態の状態情報が導出される
    ことを特徴とするプログラム。
  2. 属性空間は、関連付けられている属性の数に応じた次元数を有するものであり、
    前記状態テーブルにおいて、前記定義された状態の前記基準状態からの状態情報の差分は、該状態定義が行われた属性値セットの全ての属性群で形成される第1の属性空間と、該状態定義が行われた属性値セットの一部の属性で形成される、前記第1の属性空間よりも低い次元数の第2の属性空間とに分離して管理される
    ことを特徴とする請求項1に記載のプログラム。
  3. 前記定義された状態について前記第1の属性空間で管理される前記差分情報は、該定義された状態について前記第2の属性空間で管理される前記差分情報の総和を、前記基準状態の状態情報に加算して導出される状態情報からの差分であることを特徴とする請求項2に記載のプログラム。
  4. 前記決定する処理において決定される属性空間は、前記提示属性値セットの少なくともいずれかの属性で形成される属性空間であることを特徴とする請求項2または3に記載のプログラム。
  5. 前記導出する処理において、前記決定された属性空間のうちの前記定義された状態が存在しない属性空間については、前記補間演算が行われないことを特徴とする請求項4に記載のプログラム。
  6. 前記複数種類の属性の各々には、基準値を含む、前記状態定義が行われた属性値セットに含まれる属性値について定義点が設けられ、
    前記提示要求がなされた状態の状態情報に係る前記補間演算は、前記決定された属性空間に関連付けられている各属性において、前記提示属性値セットの同属性の値を範囲に含む、2つの前記定義点で示される区間を対象として行われる
    ことを特徴とする請求項2乃至5のいずれか1項に記載のプログラム。
  7. 前記決定された属性空間ごとに行われる前記補間演算において、属性空間の該補間演算の対象となる、前記定義点の組み合わせで構成される属性値セットに状態定義がなされていない場合、該属性値セットにより識別される状態については、差分がないことを示す前記差分情報が用いられることを特徴とする請求項6に記載のプログラム。
  8. 前記プログラムは、前記描画オブジェクトの状態が編集されたことに応じて、前記状態テーブルを更新する処理を、さらに前記コンピュータに実行させ、
    前記更新する処理は、
    前記編集された状態を識別する編集属性値セットを取得する処理と、
    前記編集された状態の前記基準状態からの状態情報の差分を、前記状態テーブルに登録する処理と、
    を含むことを特徴とする請求項2乃至7のいずれか1項に記載のプログラム。
  9. 前記更新する処理は、前記編集属性値セットの全ての属性群で形成される第3の属性空間よりも高い次元数の第4の属性空間に定義された状態であって、前記編集された状態について前記第3の属性空間で管理される前記差分情報を用いて状態情報が導出される状態について、該状態の状態情報が編集前後で変化しないように調整する処理をさらに含む
    ことを特徴とする請求項8に記載のプログラム。
  10. 前記状態テーブルは、低い次元数の属性空間に対してなされた編集に応じて状態情報を変化させるか否かを示す情報を、前記定義された状態の各々についてさらに管理し
    前記第4の属性空間に定義された状態について前記編集に応じて状態情報を変化させないことを示す情報が管理されている場合に、前記調整する処理は実行される
    ことを特徴とする請求項9に記載のプログラム。
  11. 前記属性テーブルは、前記複数種類の属性の各々について、他の属性との関連付けを許容するか否かを示す情報をさらに管理し、
    前記編集属性値セットが基準値以外の属性値を示す属性を複数含み、かつ該複数の属性に前記他の属性との関連付けが許容されない属性を含む場合に、前記登録する処理は実行されないよう制御される
    ことを特徴とする請求項8乃至10のいずれか1項に記載のプログラム。
  12. 前記プログラムは、
    前記描画オブジェクトについて形成される属性空間を、関連付けられた属性の全てを含み、かつ、より高い次元数を有する属性空間に統合する処理と、
    前記統合後の属性空間の各々について、前記統合に用いられた属性空間に定義されていた状態を識別する属性値セットを、該統合後の属性空間に関連付けられた属性群の属性値で構成される属性値セットに変換する処理と、
    前記統合後の属性空間の各々について、前記統合に用いられた属性空間で管理されていた前記差分情報に基づいて、該統合後の属性空間に定義された状態の差分情報を生成する処理と、
    前記変換された属性値セット、及び該属性値セットに対応する前記生成された差分情報を管理する、新たな状態テーブルを出力する処理と、
    をさらに前記コンピュータに実行させ、
    前記統合後の属性空間に定義された状態の差分情報は、前記統合前に該状態を定義していた属性空間で管理されていた前記差分情報に、前記統合前に該属性空間よりも低い次元数を有し、かつ前記統合に用いられた属性空間で管理されていた前記差分情報を加算した値である
    ことを特徴とする請求項2乃至11のいずれか1項に記載のプログラム。
  13. 前記統合前の1つの属性空間について、該1つの属性空間に関連付けられた全ての属性を含み、かつ、より高い次元数を有する属性空間が同一の次元数に複数存在する場合に、前記生成する処理において、前記1つの属性空間で管理されていた前記差分情報を該同一の次元数に存在する属性空間の数で除した値が、前記統合において加算されることを特徴とする請求項12に記載のプログラム。
  14. 請求項1乃至13のいずれか1項に記載のプログラムを記録した、コンピュータが読み取り可能な記録媒体。
  15. 要求された状態の描画オブジェクトを提示する描画方法であって、
    前記描画オブジェクトについて設けられた複数種類の属性、及び属性間の関連性の有無を管理する属性テーブルと、状態定義が行われた属性値セット、及び該定義された状態を示す状態情報を管理する状態テーブルと、を取得する工程と、
    提示要求がなされた前記描画オブジェクトの状態を識別する属性値で構成された提示属性値セットを取得する工程と
    前記提示要求がなされた状態について、状態情報の補間演算を行う属性空間を、前記提示属性値セット、前記属性テーブル、及び前記状態テーブルに基づいて決定する工程と、
    前記決定された属性空間の各々について前記補間演算を行い、前記提示要求がなされた状態の状態情報を導出する工程と、
    前記導出された状態情報に基づいて前記描画オブジェクトを提示する工程と、
    を有し、
    前記描画オブジェクトには、前記複数種類の属性値がいずれも基準値であることで識別される基準状態が定められ、
    前記複数種類の属性の各々、及び関連性を有する属性群の各々は、個別の属性空間を形成し、
    前記状態テーブルは、前記定義された状態の前記基準状態から状態情報の差分を、対応する属性空間に分離して差分情報として管理するものであり、
    前記導出する工程において、
    前記決定された属性空間ごとに、該属性空間に定義された状態について管理される前記差分情報を用いて前記補間演算が行われ、
    前記決定された属性空間の補間演算結果の総和を前記基準状態の状態情報に加算することで、前記提示要求がなされた状態の状態情報が導出される
    ことを特徴とする描画方法。
  16. 要求された状態の描画オブジェクトの提示に用いられる、状態定義が行われた該描画オブジェクトの状態を管理するデータ構造であって、
    前記描画オブジェクトについて設けられた複数種類の属性、及び属性間の関連性の有無を管理する第1の情報と、
    状態定義が行われた属性値セット、及び該定義された状態を示す状態情報を管理する第2の情報と、
    を含み、
    前記描画オブジェクトには、前記複数種類の属性値がいずれも基準値であることで識別される基準状態が定められ、
    前記複数種類の属性の各々、及び関連性を有する属性群の各々は、個別の属性空間を形成し、
    前記第2の情報において、前記定義された状態の前記基準状態から状態情報の差分が、対応する属性空間に分離して差分情報として管理される
    ことを特徴とするデータ構造。
JP2017108294A 2017-04-13 2017-05-31 プログラム、記録媒体、及び描画方法 Active JP6231713B1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CA3001210A CA3001210A1 (en) 2017-04-13 2018-04-11 Storage medium, rendering method and data structure
CN201810329260.1A CN108734652A (zh) 2017-04-13 2018-04-11 存储介质、描绘方法及数据结构
KR1020180042422A KR102069684B1 (ko) 2017-04-13 2018-04-11 기록 매체, 묘화 방법 및 컴퓨터로 판독가능한 기록매체
US15/950,824 US20180300935A1 (en) 2017-04-13 2018-04-11 Storage medium, rendering method and data structure
HK18115311.0A HK1256254A1 (zh) 2017-04-13 2018-11-29 存儲介質、描繪方法及數據結構

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201762485257P 2017-04-13 2017-04-13
US62/485,257 2017-04-13

Publications (2)

Publication Number Publication Date
JP6231713B1 JP6231713B1 (ja) 2017-11-15
JP2018181287A true JP2018181287A (ja) 2018-11-15

Family

ID=60321123

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017108294A Active JP6231713B1 (ja) 2017-04-13 2017-05-31 プログラム、記録媒体、及び描画方法

Country Status (6)

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

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009104570A (ja) * 2007-10-23 2009-05-14 Cybernoids Co Ltd 画像の形成用のデータ構造及び画像の形成方法
JP2016057691A (ja) * 2014-09-05 2016-04-21 株式会社Live2D プログラム、情報処理装置、制御方法及び記録媒体

Family Cites Families (8)

* 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
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
JP5505848B1 (ja) * 2013-12-02 2014-05-28 株式会社サイバーノイズ 画像処理装置、画像処理方法及びプログラム
CN104978413B (zh) * 2015-06-24 2018-09-18 北京超图软件股份有限公司 Gis线数据在浏览器端可视化的装置和方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009104570A (ja) * 2007-10-23 2009-05-14 Cybernoids Co Ltd 画像の形成用のデータ構造及び画像の形成方法
JP2016057691A (ja) * 2014-09-05 2016-04-21 株式会社Live2D プログラム、情報処理装置、制御方法及び記録媒体

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
""Live2D Euclidのモデルはどうやって作るのか。alive2016セッションレポート"", [ONLINE], JPN7017002758, 4 July 2016 (2016-07-04), ISSN: 0003625868 *
""Live2D Euclidの全貌が明らかに。Cubism 3.0など新情報が続々だった「alive 2016」基調講演レポート"", [ONLINE], JPN7017002760, 4 July 2016 (2016-07-04), ISSN: 0003625867 *
中城哲也: ""第5章 2Dの拡張により3Dっぽい表現を可能にする映像技術 2Dキャラクタを3D化せずに立体的に表", INTERFACE, vol. 第37巻, 第1号, JPN6017031945, 1 January 2011 (2011-01-01), JP, pages 78 - 86, ISSN: 0003625866 *
笹原正哉: ""「Live2D」Cubism2.1新機能紹介"", I/O, vol. 第40巻, 第12号, JPN6017031943, 1 December 2015 (2015-12-01), JP, pages 27 - 29, ISSN: 0003625865 *

Also Published As

Publication number Publication date
CA3001210A1 (en) 2018-10-13
JP6231713B1 (ja) 2017-11-15
KR20180115633A (ko) 2018-10-23
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
Cordeil et al. IATK: An immersive analytics toolkit
KR100989459B1 (ko) 비디오 프레임 시퀀스를 제공하는 장치 및 방법, 장면 모델을 제공하는 장치 및 방법, 장면 모델, 메뉴 구조를 생성하는 장치 및 방법 그리고 컴퓨터 프로그램
US7661071B2 (en) Creation of three-dimensional user interface
EP0636971B1 (en) Method and apparatus for producing a composite second image in the spatial context of a first image
JP5218109B2 (ja) 可視化データ処理装置、可視化データ処理装置の制御方法、及び可視化データ処理装置の制御プログラム
Gyulassy et al. Direct feature visualization using Morse-Smale complexes
CN102142152A (zh) 用于在计算机屏幕上显示对象的方法、装置和程序
KR20030073424A (ko) 렌더링시스템, 렌더링방법 및 그 기록매체
WO2016099317A1 (ru) Способ и система визуального управления данными
Martin et al. A VR-CAD Data Model for Immersive Design: The cRea-VR Proof of Concept
Geveci et al. Vtk
US7917535B1 (en) Task membership and task masks
JP2016100016A (ja) 画像分割
JP5077011B2 (ja) 表示制御装置、表示制御方法、及び、表示制御プログラム
KR102069684B1 (ko) 기록 매체, 묘화 방법 및 컴퓨터로 판독가능한 기록매체
US9582247B1 (en) Preserving data correlation in asynchronous collaborative authoring systems
CN111886602A (zh) 信息处理方法、信息处理设备和程序
CN115691772A (zh) 运营可视化系统及相应计算机设备和存储介质
CN104303132A (zh) 多感官情感表达
JP2002024298A (ja) 3次元形状処理装置、3次元形状表示方法およびその方法を実施するためのプログラムを記憶した記憶媒体
KR101268865B1 (ko) 3d 가상현실 저작도구의 실시간 재질 생성을 위한 편집 방법
WO2019039603A1 (ja) 画像処理装置、及びプログラム
WO2022254800A1 (ja) 構造体の設計探索装置、構造体の設計探索方法及び構造体の製造方法
TWI817186B (zh) 物件操作系統及物件操作方法
US20230267137A1 (en) Recommender for responsive visualization transformations

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170828

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170913

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170925

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20171010

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171019

R150 Certificate of patent or registration of utility model

Ref document number: 6231713

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250