(57)【要約】【課題】所望の描画表現の調整を容易ならしめつつ、演算負荷を低減させる。【解決手段】描画オブジェクトの提示に係り、描画オブジェクトについて設けられた複数種類の属性、及び属性間の関連性の有無を管理する属性テーブルと、状態定義が行われた属性値セット、及び該定義された状態の基準状態から状態情報の差分を、対応する属性空間に分離して差分情報として管理する状態テーブルと、を設ける。提示要求がなされた状態について、状態情報の補間演算を行う属性空間を属性テーブル及び状態テーブルに基づいて決定し、決定した属性空間の各々について補間演算を行い、提示要求がなされた状態の状態情報を導出し、描画オブジェクトを提示する。導出において、決定された属性空間ごとに、該属性空間で管理される差分情報を用いて補間演算が行われ、補間演算結果の総和を基準状態の状態情報に加算することで、提示要求がなされた状態の状態情報が導出される。【選択図】図５
2018181287.tif 000002
【特許請求の範囲】
【請求項１】
要求された状態の描画オブジェクトを提示するプログラムであって、
前記描画オブジェクトについて設けられた複数種類の属性、及び属性間の関連性の有無を管理する属性テーブルと、状態定義が行われた属性値セット、及び該定義された状態を示す状態情報を管理する状態テーブルと、を記憶した記憶手段を有するコンピュータに、
提示要求がなされた前記描画オブジェクトの状態を識別する属性値で構成された提示属性値セットを取得する処理と、
前記提示要求がなされた状態について、状態情報の補間演算を行う属性空間を、前記提示属性値セット、前記属性テーブル、及び前記状態テーブルに基づいて決定する処理と、
前記決定された属性空間の各々について前記補間演算を行い、前記提示要求がなされた状態の状態情報を導出する処理と、
前記導出された状態情報に基づいて前記描画オブジェクトを提示する処理と、
を実行させ、
前記描画オブジェクトには、前記複数種類の属性値がいずれも基準値であることで識別される基準状態が定められ、
前記複数種類の属性の各々、及び関連性を有する属性群の各々は、個別の属性空間を形成し、
前記状態テーブルは、前記定義された状態の前記基準状態から状態情報の差分を、対応する属性空間に分離して差分情報として管理するものであり、
前記導出する処理において、
前記決定された属性空間ごとに、該属性空間に定義された状態について管理される前記差分情報を用いて前記補間演算が行われ、
前記決定された属性空間の補間演算結果の総和を前記基準状態の状態情報に加算することで、前記提示要求がなされた状態の状態情報が導出される
ことを特徴とするプログラム。
【請求項２】
属性空間は、関連付けられている属性の数に応じた次元数を有するものであり、
前記状態テーブルにおいて、前記定義された状態の前記基準状態からの状態情報の差分は、該状態定義が行われた属性値セットの全ての属性群で形成される第１の属性空間と、該状態定義が行われた属性値セットの一部の属性で形成される、前記第１の属性空間よりも低い次元数の第２の属性空間とに分離して管理される
ことを特徴とする請求項１に記載のプログラム。
【請求項３】
前記定義された状態について前記第１の属性空間で管理される前記差分情報は、該定義された状態について前記第２の属性空間で管理される前記差分情報の総和を、前記基準状態の状態情報に加算して導出される状態情報からの差分であることを特徴とする請求項２に記載のプログラム。
【請求項４】
前記決定する処理において決定される属性空間は、前記提示属性値セットの少なくともいずれかの属性で形成される属性空間であることを特徴とする請求項２または３に記載のプログラム。
【請求項５】
前記導出する処理において、前記決定された属性空間のうちの前記定義された状態が存在しない属性空間については、前記補間演算が行われないことを特徴とする請求項４に記載のプログラム。
【請求項６】
前記複数種類の属性の各々には、基準値を含む、前記状態定義が行われた属性値セットに含まれる属性値について定義点が設けられ、
前記提示要求がなされた状態の状態情報に係る前記補間演算は、前記決定された属性空間に関連付けられている各属性において、前記提示属性値セットの同属性の値を範囲に含む、２つの前記定義点で示される区間を対象として行われる
ことを特徴とする請求項２乃至５のいずれか１項に記載のプログラム。
【請求項７】
前記決定された属性空間ごとに行われる前記補間演算において、属性空間の該補間演算の対象となる、前記定義点の組み合わせで構成される属性値セットに状態定義がなされていない場合、該属性値セットにより識別される状態については、差分がないことを示す前記差分情報が用いられることを特徴とする請求項６に記載のプログラム。
【請求項８】
前記プログラムは、前記描画オブジェクトの状態が編集されたことに応じて、前記状態テーブルを更新する処理を、さらに前記コンピュータに実行させ、
前記更新する処理は、
前記編集された状態を識別する編集属性値セットを取得する処理と、
前記編集された状態の前記基準状態からの状態情報の差分を、前記状態テーブルに登録する処理と、
を含むことを特徴とする請求項２乃至７のいずれか１項に記載のプログラム。
【請求項９】
前記更新する処理は、前記編集属性値セットの全ての属性群で形成される第３の属性空間よりも高い次元数の第４の属性空間に定義された状態であって、前記編集された状態について前記第３の属性空間で管理される前記差分情報を用いて状態情報が導出される状態について、該状態の状態情報が編集前後で変化しないように調整する処理をさらに含む
ことを特徴とする請求項８に記載のプログラム。
【請求項１０】
前記状態テーブルは、低い次元数の属性空間に対してなされた編集に応じて状態情報を変化させるか否かを示す情報を、前記定義された状態の各々についてさらに管理し
前記第４の属性空間に定義された状態について前記編集に応じて状態情報を変化させないことを示す情報が管理されている場合に、前記調整する処理は実行される
ことを特徴とする請求項９に記載のプログラム。
【請求項１１】
前記属性テーブルは、前記複数種類の属性の各々について、他の属性との関連付けを許容するか否かを示す情報をさらに管理し、
前記編集属性値セットが基準値以外の属性値を示す属性を複数含み、かつ該複数の属性に前記他の属性との関連付けが許容されない属性を含む場合に、前記登録する処理は実行されないよう制御される
ことを特徴とする請求項８乃至１０のいずれか１項に記載のプログラム。
【請求項１２】
前記プログラムは、
前記描画オブジェクトについて形成される属性空間を、関連付けられた属性の全てを含み、かつ、より高い次元数を有する属性空間に統合する処理と、
前記統合後の属性空間の各々について、前記統合に用いられた属性空間に定義されていた状態を識別する属性値セットを、該統合後の属性空間に関連付けられた属性群の属性値で構成される属性値セットに変換する処理と、
前記統合後の属性空間の各々について、前記統合に用いられた属性空間で管理されていた前記差分情報に基づいて、該統合後の属性空間に定義された状態の差分情報を生成する処理と、
前記変換された属性値セット、及び該属性値セットに対応する前記生成された差分情報を管理する、新たな状態テーブルを出力する処理と、
をさらに前記コンピュータに実行させ、
前記統合後の属性空間に定義された状態の差分情報は、前記統合前に該状態を定義していた属性空間で管理されていた前記差分情報に、前記統合前に該属性空間よりも低い次元数を有し、かつ前記統合に用いられた属性空間で管理されていた前記差分情報を加算した値である
ことを特徴とする請求項２乃至１１のいずれか１項に記載のプログラム。
【請求項１３】
前記統合前の１つの属性空間について、該１つの属性空間に関連付けられた全ての属性を含み、かつ、より高い次元数を有する属性空間が同一の次元数に複数存在する場合に、前記生成する処理において、前記１つの属性空間で管理されていた前記差分情報を該同一の次元数に存在する属性空間の数で除した値が、前記統合において加算されることを特徴とする請求項１２に記載のプログラム。
【請求項１４】
請求項１乃至１３のいずれか１項に記載のプログラムを記録した、コンピュータが読み取り可能な記録媒体。
【請求項１５】
要求された状態の描画オブジェクトを提示する描画方法であって、
前記描画オブジェクトについて設けられた複数種類の属性、及び属性間の関連性の有無を管理する属性テーブルと、状態定義が行われた属性値セット、及び該定義された状態を示す状態情報を管理する状態テーブルと、を取得する工程と、
提示要求がなされた前記描画オブジェクトの状態を識別する属性値で構成された提示属性値セットを取得する工程と
前記提示要求がなされた状態について、状態情報の補間演算を行う属性空間を、前記提示属性値セット、前記属性テーブル、及び前記状態テーブルに基づいて決定する工程と、
前記決定された属性空間の各々について前記補間演算を行い、前記提示要求がなされた状態の状態情報を導出する工程と、
前記導出された状態情報に基づいて前記描画オブジェクトを提示する工程と、
を有し、
前記描画オブジェクトには、前記複数種類の属性値がいずれも基準値であることで識別される基準状態が定められ、
前記複数種類の属性の各々、及び関連性を有する属性群の各々は、個別の属性空間を形成し、
前記状態テーブルは、前記定義された状態の前記基準状態から状態情報の差分を、対応する属性空間に分離して差分情報として管理するものであり、
前記導出する工程において、
前記決定された属性空間ごとに、該属性空間に定義された状態について管理される前記差分情報を用いて前記補間演算が行われ、
前記決定された属性空間の補間演算結果の総和を前記基準状態の状態情報に加算することで、前記提示要求がなされた状態の状態情報が導出される
ことを特徴とする描画方法。
【請求項１６】
要求された状態の描画オブジェクトの提示に用いられる、状態定義が行われた該描画オブジェクトの状態を管理するデータ構造であって、
前記描画オブジェクトについて設けられた複数種類の属性、及び属性間の関連性の有無を管理する第１の情報と、
状態定義が行われた属性値セット、及び該定義された状態を示す状態情報を管理する第２の情報と、
を含み、
前記描画オブジェクトには、前記複数種類の属性値がいずれも基準値であることで識別される基準状態が定められ、
前記複数種類の属性の各々、及び関連性を有する属性群の各々は、個別の属性空間を形成し、
前記第２の情報において、前記定義された状態の前記基準状態から状態情報の差分が、対応する属性空間に分離して差分情報として管理される
ことを特徴とするデータ構造。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、記録媒体、描画方法、及びデータ構造に関し、特に２次元画像の外観を変化させることで、該画像の３次元的な描画表現の提示を可能ならしめる技術に関する。
【背景技術】
【０００２】
デザイナによって描かれたキャラクタ等の２次元画像を、設定されたパラメータに応じて変形することで、該２次元画像の３次元的な描画表現を可能ならしめる技術がある（特許文献１）。より詳しくは、対象物（２次元画像）の表現定義部品（描画オブジェクト／アートメッシュ／パーツ群）に対して所定のパラメータにおける状態をデザイナの意図した態様で定義することで、未定義のパラメータについての状態は、定義されたパラメータの状態から補間して生成することで、パラメータの変化に応じて動的に２次元画像の外観を変化させる技術が、特許文献１に開示されている。
【０００３】
特許文献１では例えばキャラクタの顔に配置される目、鼻、口等の描画オブジェクトは、顔を表現した１つの曲面における配置を定義しておくことで、該曲面が観賞方向（パラメータ）に応じた形状に変形した際にも、該変形を考慮した形でマッピングし、一括で曲面に合わせた移動や変形を適用させることが可能に構成されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−１０４５７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、特許文献１のように曲面へのマッピングを処理に含む場合、曲面に配置される描画オブジェクト（配置オブジェクト）ごとに生じる変形を加えた後、別途パラメータに応じて変形させた曲面へのマッピングを行って最終的な出力画像が生成される。このとき、出力画像においてデザイナが配置オブジェクトへの微調整を加えることで、特定のパラメータ値セットにおいて、デザイナ所望の表現が実現される。
【０００６】
一方で、このような２段階の処理工程（配置オブジェクトの観賞方向以外のパラメータ（表情等）に応じた変形＋観賞方向パラメータに応じた曲面の変形及び該曲面への配置オブジェクトの座標変換を含む配置）を有していることで、特定のパラメータ値セットにおいてなされた調整が、他のパラメータ値セットとなった場合に、デザイナの意図しない表現を生じ得る。即ち、曲面を利用することで、曲面の移動変形に応じたオブジェクト配置を一括で可能である反面、曲面へのマッピングとの拘束により意図しない表現が提示され得、デザイナは種々のパラメータ値セットについて確認及び微調整をしつつ、破綻のないような所望の表現が実現されるまで、作業を繰り返す必要があった。特に、所定の配置オブジェクトについて変形等を伴うパラメータを追加定義した場合には、デザイナは該パラメータに応じた描画オブジェクトの変形だけでなく、曲面へのマッピングがなされた場合に好適な表現となるよう、補間演算の基礎となる複数の状態（特許文献１であればｎのパラメータに対して２n）における定義が必要であり、描画表現の拡充のためのパラメータ追加に応じて、デザイナの作業負担は指数関数的に増加し得るものであった。
【０００７】
また、特許文献１の手法では、１カットに相当する２次元画像について、３次元的な描画表現が可能となる観賞方向の範囲は、該２次元画像を用いた表現に限られる。換言すれば、観賞方向の範囲を例えば全周囲に拡張する場合には、観賞方向に応じて視認可能となる描画オブジェクトが変化することを表現する、あるいはキャラクタの外観の特徴等、特定の観賞方向に対して所望の描画表現を実現するために、観賞方向の変化に応じて、３次元的な描画表現に用いる描画オブジェクト群を切り替えていく必要がある。
【０００８】
従って、これらの切り替えによる遷移が発生する場合に観賞者に違和感を与えぬために、切り替え前後で描画オブジェクトの形状等の描画表現の差異を小さくすることが好ましいが、曲面へのマッピングを伴う手法では、１つのパラメータ値セットにおける調整で他のパラメータ値セットにおける描画表現にも影響が生じ得るため、好適な遷移を実現させる状態とするまでに、デザイナに煩雑な調整作業を強いる可能性があった。
【０００９】
これに対し、曲面へのマッピングを行わず、パラメータ種類を増加させて描画オブジェクトの細かな調整を可能ならしめることで、所望の描画表現を実現させる手法も考えられるが、その分、パラメータ変更に伴う描画表現の出力までに要する補間演算において、参照すべき情報量や演算量が指数関数的に増加し得るため、意図した描画表現の再現能力と、描画表現の提示に必要な演算量とはトレードオフな関係にあった。
【００１０】
本発明は、上述の問題点に鑑みてなされたものであり、所望の描画表現の調整を容易ならしめつつ、演算負荷を低減させるプログラム、記録媒体、描画方法、及びデータ構造を提供することを目的とする。
【課題を解決するための手段】
【００１１】
前述の目的を達成するために、本発明のプログラムは、要求された状態の描画オブジェクトを提示するプログラムであって、描画オブジェクトについて設けられた複数種類の属性、及び属性間の関連性の有無を管理する属性テーブルと、状態定義が行われた属性値セット、及び該定義された状態を示す状態情報を管理する状態テーブルと、を記憶した記憶手段を有するコンピュータに、提示要求がなされた描画オブジェクトの状態を識別する属性値で構成された提示属性値セットを取得する処理と、提示要求がなされた状態について、状態情報の補間演算を行う属性空間を、提示属性値セット、属性テーブル、及び状態テーブルに基づいて決定する処理と、決定された属性空間の各々について補間演算を行い、提示要求がなされた状態の状態情報を導出する処理と、導出された状態情報に基づいて描画オブジェクトを提示する処理と、を実行させ、描画オブジェクトには、複数種類の属性値がいずれも基準値であることで識別される基準状態が定められ、複数種類の属性の各々、及び関連性を有する属性群の各々は、個別の属性空間を形成し、状態テーブルは、定義された状態の基準状態から状態情報の差分を、対応する属性空間に分離して差分情報として管理するものであり、導出する処理において、決定された属性空間ごとに、該属性空間に定義された状態について管理される差分情報を用いて補間演算が行われ、決定された属性空間の補間演算結果の総和を基準状態の状態情報に加算することで、提示要求がなされた状態の状態情報が導出されることを特徴とする。
【発明の効果】
【００１２】
このような構成により本発明によれば、所望の描画表現の調整を容易ならしめつつ、演算負荷を低減させることが可能となる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施形態に係るＰＣ１００の機能構成を示したブロック図
【図２】本発明の実施形態に係るキーフォーム編集アプリケーションのＧＵＩを例示した図
【図３】本発明の実施形態に係るキーフォーム編集アプリケーションにおいて、キーフォーム編集時のデータ保持を説明するための図
【図４】本発明の実施形態に係るキーの関係を説明するための図
【図５】本発明の実施形態に係る多次元のパラメータ空間のパラメータ値セットについて、補間演算による状態情報の導出を説明するための図
【図６】本発明の実施形態に係る出力用のデータ変換を説明するための図
【図７】本発明の実施形態に係る出力用のデータ変換を説明するための別の図
【図８】本発明の実施形態に係るＰＣ１００で行われるパラメータキー設定処理を例示したフローチャート
【図９】本発明の実施形態に係るＰＣ１００で行われるキーフォーム編集処理を例示したフローチャート
【図１０】本発明の実施形態に係るベースキーフォームまたはキーフォームの更新処理を例示したフローチャート
【図１１】本発明の実施形態に係る反映処理を例示したフローチャート
【図１２】本発明の実施形態に係る編集時表示処理を例示したフローチャート
【図１３】本発明の実施形態に係る補間演算を説明するための図
【図１４】本発明の実施形態に係るランタイム用データ出力処理を例示したフローチャート
【図１５】本発明の実施形態に係る従来方式との演算効率を対比するための図
【発明を実施するための形態】
【００１４】
［実施形態］
以下、本発明の例示的な実施形態について、図面を参照して詳細に説明する。なお、以下に説明する一実施形態は、本発明を実現する装置の一例としての、２次元画像（テクスチャ）で各々が構成されるパーツ群を変形し、描画オブジェクトに係る３次元的な描画表現を提示するＰＣに、本発明を適用した例を説明する。しかし、本発明は、描画オブジェクトについて構成された属性テーブル及び状態テーブルに基づいて、要求された状態の描画オブジェクトの提示を実現することが可能な任意の機器に適用可能である。
【００１５】
《用語定義》
まず、本明細書において用いる基本的な用語について説明する。
【００１６】
「パラメータ」とは、提示対象である描画オブジェクトについて対応付けられる属性（変数）を示し、所与の数値範囲が割り当てられている。ユーザは、該属性の値（パラメータ値）を変更することで、描画オブジェクトのステータスを選択することができる。対応付けられるパラメータは、観賞位置や観賞方向等の予め定められた概念の属性を示す固定的なものである必要はなく、ステータス変更の指針としてユーザが設定した任意の概念を含むものであってよい。即ち、描画オブジェクトに対応付けられるパラメータは、ステータスを特定するための変数であり、該変数によってどのように描画オブジェクトの状態を変化させるかは、ユーザが自由に定義可能であるため、パラメータは固定的な概念に捉われることなく設定可能である。従って、描画オブジェクトに対応付けられるパラメータは複数種類であってよい。描画オブジェクトの提示は、ステータスごとになされる。
【００１７】
またパラメータの各々には、数値範囲を規定する上限値／下限値や数値範囲における定数である定義点である、「パラメータキー」が定義される。パラメータキーは、少なくとも基準値として設定される定義点を含んでおり、パラメータ種類ごとにパラメータキーリストに管理されているものとする。
【００１８】
また、パラメータの各々は、特定の変数の値に応じてステータスが変更される「パラメータ空間（属性空間）」を形成する。なお、描画オブジェクトに対応付けられる複数種類のパラメータは、各々独立した概念の変数を示すものである必要はなく、連関するものであってもよい。例えば、観賞方向に係るＰｉｔｃｈ角度及びＹａｗ角度といった、同一の概念に係る複数種類の変数の必要性も考慮し、パラメータ間で関連付けがなされるものであってよい。この場合、パラメータそれぞれについて、１つの変数に応じて形成される１次元のパラメータ空間とは別に、連関する複数のパラメータについて、複数の変数に応じてステータスが変更される多次元のパラメータ空間が形成される。ここで、パラメータ空間の次元数は、該空間におけるステータスを一意に特定するために用いられる変数の数に対応しており、上述の観賞方向の例では、Ｐｉｔｃｈ角度とＹａｗ角度について形成されるパラメータ空間の次元数は２（２次元のパラメータ空間）となる。
【００１９】
また描画オブジェクトのステータスのうち、提示に係る補間演算で用いられうるステータスを、単に「キー」（パラメータキーと別意）として言及する。キーは、ステータスを一意に特定する識別情報である「キーフォームインデックス」が割り当てられ、各々管理される。キーフォームインデックスとは、ステータスを特定する１以上のパラメータキーの組み合わせ（パラメータキーセット）で構成されるものであり、ステータスの特定に必要十分な数（種類）のパラメータ値を、組み合わせに含む。ここで、キーフォームインデックスは、描画オブジェクトについて形成されるパラメータ空間のいずれかにおいてステータスを一意に特定するものであればよく、必要十分な数とは、キーフォームインデックスにより一意に特定可能なキーを含む、最も低い次元数のパラメータ空間を形成するパラメータの数（次元数）を指す。上述の観賞方向の例では、Ｐｉｔｃｈ角度が基準値と異なる値、Ｙａｗ角度が基準値で識別されるキーは、Ｐｉｔｃｈ角度のパラメータ空間で特定できるため、Ｐｉｔｃｈ角度のパラメータキーのみで構成されるキーフォームインデックスが割り当てられる。
【００２０】
パラメータ空間と同様、キーも、割り当てられたキーフォームインデックスに含まれるパラメータキーの数で次元が定義されるものとし、キーフォームインデックスを参照すれば、該キーの情報が定義されるパラメータ空間の特定が可能に構成される。なお、対応付けられた全パラメータの基準値のパラメータキーの組み合わせで特定されるキーは「ベースキー」として言及するが、全種類のパラメータ値で特定されるものの、基準値のみで構成されるため、０次元（もしくは次元の概念がないもの）として扱う。
【００２１】
「キーフォーム」とは、キーフォームインデックスが割り当てられたキー（ステータス）について、ユーザによって定義された描画オブジェクトの状態（形状や色、透明度等）を指す。キーフォームは状態情報として管理され、同一のステータスが指定された場合には、定義された状態が再現される。
【００２２】
《ＰＣ１００の構成》
次に、本発明の実施形態に係るＰＣ１００の機能構成を、図１のブロック図を用いて説明する。なお、本実施形態ではＰＣ１００において、２次元画像で構成された描画オブジェクトの３次元的表現を可能ならしめるために、描画オブジェクトに対してパラメータやキーフォームの定義を行う「キーフォーム編集アプリケーション」に係るプログラムが実行されることで、一部の機能構成が実現されるものとする。該アプリケーションでは、図２に示されるように、対象のステータスにおいて描画オブジェクトが所望の態様となるよう、ユーザはパラメータパレット２０１においてパラメータ値セット（ステータス）を設定し、ビューポート（レンダリングウィンドウ）２０２において描画オブジェクトのパーツ群を編集することで、キーフォームを定義して登録することができる。また、キーフォームが定義された少なくとも２つのパラメータキーで構成される区間（パラメータパレット２０１において、各パラメータのスライダに刻まれた目盛りで示される区間）については、これらパラメータキーについて定義された状態情報が補間されることで、所望のパラメータ値セットにおける描画オブジェクトの状態がビューポート２０２に提示される。即ち、ユーザはキーフォームを定義した区間において、ステータス変更によって描画オブジェクトがどのように遷移するかを確認することができる。以下では、アプリケーションに係るプログラムの実行により実現される各種機能をそれぞれブロックに分離して説明するが、これらはプログラムによって実現されるものであってもよいし、特定のハードウェアによって実現される、あるいはこれらの双方を用いて実現されるものであってもよい。
【００２３】
制御部１０１は、例えばＣＰＵ等の制御装置であり、ＰＣ１００が有する各ブロックの動作を制御する。具体的には制御部１０１は、記録媒体１０２に格納されているオペレーティングシステムに係るプログラムや、キーフォーム編集アプリケーションに係るプログラム等を読み出し、メモリ１０３に展開して実行することにより、各ブロックの動作を制御する。
【００２４】
記録媒体１０２は、例えば書き換え可能なＲＯＭ等の不揮発性メモリや、ＰＣ１００に着脱可能に接続されたＨＤＤ等の記憶装置である。また、記録媒体１０２は、例えば光学ドライブ等の所定の読み書き可能なインタフェースを介してアクセス可能なゲームプログラムを記録したディスク等の記録媒体を含んでいてもよい。記録媒体１０２は、上述したプログラムだけでなく、各ブロックの動作において必要なパラメータ等の情報、描画オブジェクトの提示に用いられる各種データ等を記憶する。
【００２５】
メモリ１０３は、例えばＲＡＭ等の揮発性メモリであってよい。メモリ１０３は、記録媒体１０２から読み出されたプログラム等を展開する展開領域としてだけでなく、各ブロックの動作において出力された中間データ等を記憶する格納領域としても用いられる。キーフォーム編集アプリケーションの実行中、後述する、本発明に係る属性テーブル及び状態テーブルとしてのパラメータテーブル及びキーフォームテーブルは、メモリ１０３に管理されるものとする。
【００２６】
パラメータ定義部１０４は、描画オブジェクトへのパラメータの新規対応付け要求に係るユーザ操作（パラメータパレット２０１への新たなパラメータの追加）がなされたことに応じて、パラメータテーブルへのパラメータの登録を行う。パラメータテーブルは、描画オブジェクトに対応付けられたパラメータ（の種類）及びパラメータ間の関連性を管理するテーブルである。換言すれば、パラメータテーブルは描画オブジェクトについて形成されるパラメータ空間を管理するテーブルであり、各パラメータで示される１次元のパラメータ空間の存在と、複数種類のパラメータが連関する場合に、これらの連関するパラメータで形成される多次元のパラメータ空間とを管理する。
【００２７】
またパラメータ定義部１０４は、パラメータキーの追加要求に係るユーザ操作（パラメータのスライダへの定義点の追加）がなされたことに応じて、メモリ１０３に格納されるパラメータキーリストに該パラメータキーの情報を登録する。パラメータキーリストは、パラメータ種類ごとに定義されたパラメータキーを管理するリストであり、各パラメータについて、基準値を含む、少なくとも２つのパラメータキーが管理される。パラメータキーリストへの情報登録は、追加要求に係るユーザ操作がなされた場合に限られるものではなく、パラメータの新規対応付け要求がなされた際に、対応する数値範囲の上限値及び下限値（いずれかは基準値）を示すパラメータキーが登録されるものであってよい。
【００２８】
またパラメータ定義部１０４は、パラメータキーセットの変更要求に係るユーザ操作（パラメータパレット２０１において、各パラメータのスライダを用いていずれかのパラメータキーを選択）がなされたことに応じて、キーフォームの定義／編集対象であるパラメータキーセットの情報を取得し、現在のパラメータ値セットとしてメモリ１０３に格納する。図２では、パラメータパレット２０１の各パラメータのスライダに目盛りと共に示されるポイントのうち、黒塗りで示すポイントが現在選択されているパラメータキーであり、白抜きで示すポイントがその他定義されているパラメータキーである。またポイントのうち、菱形で示されるポイントは基準値のパラメータキーを示している。なお、変更されるパラメータ値は、パラメータキーとして定義されている値に限られるものではない。上述したように、本実施形態のキーフォーム編集アプリケーションは、パラメータキー間の値における描画オブジェクトの状態遷移の確認を可能ならしめるため、現在のパラメータ値セットはパラメータキー以外の値を含むものであってよい。
【００２９】
状態定義部１０５は、描画オブジェクトの描画態様（状態）を変更するユーザ操作（ビューポート２０２における描画オブジェクトに対する形状変更、パーツ上下関係変更、色変更、透過度変更等の操作）、もしくは描画態様の変更が完了したことを示すユーザ操作がなされたことに応じて、現在のパラメータ値セット（パラメータキーセット）の情報と変更後のキーフォームの情報をキーフォームテーブルに登録する。キーフォームテーブルへの情報登録の詳細は後述するが、該テーブルには、状態定義がなされたパラメータキーセットに関連付けて、キーフォームの状態情報が登録される。
【００３０】
空間決定部１０６は、現在のパラメータ値セットが設定されたことに応じて、該パラメータ値セットに対応する描画オブジェクトの状態情報の導出に用いられるパラメータ空間を決定する。詳細は後述するが、本実施形態のキーフォーム編集アプリケーションでは、演算量やメモリアクセス数を低減するため、定義がなされたキーフォームの状態情報を複数のパラメータ空間に分離して管理する。故に、描画オブジェクトの提示にあたり、空間決定部１０６は、状態情報の導出に係り参照すべきパラメータ空間を決定する。なお、本実施形態では主に、現在のパラメータ値セットがパラメータキーとして登録されていない値を含む場合に行われる補間演算において、参照すべきパラメータ空間の決定を行う手法について説明するが、現在のパラメータ値セットがパラメータキーとして登録された値のみで構成される場合であっても同様である。
【００３１】
状態導出部１０７は、空間決定部１０６により決定されたパラメータ空間の情報に基づき、現在のパラメータ値セットに対応する描画オブジェクトの状態情報を導出する処理を行う。より詳しくは、状態導出部１０７は、決定されたパラメータ空間に定義された状態について管理される状態情報を参照して演算（状態情報の加算あるいは補間演算）を行い、現在のパラメータ値セットに対応する状態情報を導出する。
【００３２】
描画部１０８は、例えばＧＰＵ等の描画装置であってよく、表示部１２０の表示領域に表示する画像の生成及び更新を制御する。本実施形態では描画部１０８は、キーフォーム編集アプリケーションに係る各種のＧＵＩの画像に加え、状態導出部１０７により導出された状態情報に基づき描画オブジェクトの描画態様を変更し、該変更後の態様に係る描画オブジェクトを描画することで、ビューポート２０２に提示する画像を生成する。
【００３３】
表示部１２０は、例えばＬＣＤ等の表示装置であってよい。本実施形態では表示部１２０は、ＰＣ１００が有する構成要素であるものとして説明するが、本発明の実施はこれに限られるものではない。表示部１２０は、ＰＣ１００と筐体を同じに構成されるものである必要はなく、ＰＣ１００に着脱可能に接続される外部の表示装置であってもよい。
【００３４】
操作入力部１０９は、例えばマウス、キーボード、ペンタブレット等、ＰＣ１００が有するユーザインタフェースである。操作入力部１０９は、各種インタフェースによりなされた操作入力を検出すると、該操作入力に対応する制御信号を制御部１０１に出力する。または操作入力部１０９は、該操作入力対応するイベントの発生を制御部１０１に通知する。
【００３５】
出力部１１０は、本実施形態のキーフォーム編集アプリケーションにおいて描画オブジェクトの各種ステータスについてキーフォーム定義が完了した後、同様の状態遷移を示す描画オブジェクトの提示を外部アプリケーションや外部装置等で実現するため、パラメータテーブル及びキーフォームテーブルを最適化した形式に変換して出力する。これらテーブルに基づく描画オブジェクトの提示を可能ならしめる機能がランタイムライブラリとして提供される場合、主たるプログラムの実行中（ランタイム）に低い演算負荷で該機能が実現されることが要求される。従って、繰り返しのキーフォーム編集が想定されるキーフォーム編集アプリケーションのように、パラメータキーセットごとのキーフォーム編集容易性を担保した管理形式とは異なり、所望のステータスに係る描画オブジェクトの状態提示における演算負荷（演算量やメモリアクセス数）を低減せしめるよう、ランタイム実行時に参照されるこれらテーブルは、出力部１１０により最適化されたものとなる。
【００３６】
《データ管理方式の概要》
特許文献１に記載される方式では、描画オブジェクトに対応付けられるパラメータ（変数）が増加すれば、各パラメータに設けられた編集点（パラメータキー）の組み合わせごとに、該描画オブジェクトの状態（キーフォーム）を規定する必要がある。即ち、例えば１体のキャラクタに係る描画オブジェクト群について３種類のパラメータ（Ｑｘ（観賞方向の横方向角度（Ｙａｗ）），Ｑｙ（観賞方向の縦方向角度（Ｐｉｔｃｈ）），Ｍ（口の開閉度））が定義された場合、各パラメータキーで規定される３次元の空間（３種類のパラメータで規定される空間）
０°≦Ｑｘ≦６０°
０°≦Ｑｙ≦３０°
０  ≦Ｍ  ≦１
について、２3＝８種類の描画オブジェクト群の状態を定義する必要がある。つまり、ユーザは描画オブジェクトに対して（０，０，０）、（６０，０，０）、（０，３０，０）、（６０，３０，０）、（０，０，１）、（６０，０，１）、（０，３０，１）、（６０，３０，１）の８種類の状態を定義することで、上記３次元のパラメータ空間範囲内における任意の値での描画オブジェクト群の状態を、補間演算によって生成することができるものであった。
【００３７】
一方で、上述したように、描画表現の多様化のために描画オブジェクト群に対して対応付けるパラメータ種類を増加させれば、定義しなければならない状態は指数関数的に増加する。また、該空間についての補間演算においても、空間に対して定義された状態を参照し、重み付け演算を行うことになるため、演算量やメモリアクセス数が増大する。
【００３８】
そこで、本実施形態のキーフォーム編集アプリケーションでは、編集の自由度や意図した状態の定義が容易な操作性を実現するため、特許文献１のような曲面にマッピングする手法を排し、かつ描画表現の多様化を実現するためのパラメータ種類が増加したとしても、表示に係る演算負荷やユーザに定義させる状態数を低減させて、好適な描画表現での提示を実現する。
【００３９】
〈キーフォーム編集時のデータ保持〉
以下、本実施形態のキーフォーム編集アプリケーションのキーフォーム編集時（任意のパラメータキーセットに応じたキーフォームの定義が可能な状態）において、パラメータテーブル及びキーフォームテーブルを用いて行われるデータ管理方式について説明する。図３に、パラメータテーブル（図３（ａ））と、キーフォームテーブル及びベースキーフォーム（図３（ｂ））とを例示する。
【００４０】
図３（ａ）に例示されるようにパラメータテーブルには、描画オブジェクトに対応付けられた複数種類のパラメータについて、それらによって形成される、パラメータ間の関連性有無を考慮したパラメータ空間が管理される。パラメータキーの組み合わせ図３（ａ）の例では、パラメータとして互いに連関するPARAM_X、PARAM_Y及びPARAM_Zの３種類が描画オブジェクトに対応付けられており、これらパラメータ各々について１次元のパラメータ空間３０１（(PARAM_X)、(PARAM_Y)、(PARAM_Z)）が、また、連関する複数パラメータについて２次元のパラメータ空間３０２（(PARAM_X, PARAM_Y)、(PARAM_X, PARAM_Z)、(PARAM_Y, PARAM_Z)）及び３次元のパラメータ空間３０３（(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]
によってベースキーのステータスが識別される。図３（ｂ）に記述３０４で示されるようにベースキーフォーム（ベースキーについて定義されるキーフォーム（例えば描画オブジェクトのデフォルトの状態））は、該キーフォームインデックスを用いて管理される。記述３０４で示されるようにベースキーフォームは、キーフォームインデックスに関連付けて、該キーフォームインデックスの状態における描画オブジェクトの状態情報（Form:{ID:F0,...}）を管理する。ベースキーフォームについて管理される状態情報は、描画オブジェクトの描画態様を絶対的に定義するものであり、例えば描画オブジェクトについて割り当てられたメッシュの各頂点について、レンダリング用座標空間の絶対座標を定義する情報であってよい。
【００４２】
一方、ベースキー以外のキーについて定義されたキーフォームについては、本実施形態では図３（ｂ）に記述３０５で示されるキーフォームテーブルで管理される。ここで、キーフォームテーブルで管理される状態情報の説明に先立ち、本実施形態のキーフォーム管理に導入される、次元の異なるパラメータ空間に存在するキー（状態定義済み（キーフォーム定義済））の取り扱いについて説明する。
【００４３】
本実施形態のキーフォーム編集アプリケーションでは、ユーザによる状態定義が必要なステータスの数を低減するため、ベースキーと、１次元のパラメータ空間のそれぞれの全てのパラメータキーについての状態定義は必須とするが、それ以外の次元のパラメータ空間のキーの状態定義は任意とするよう構成される。図４は、図３（ａ）のパラメータテーブルに定義されるPARAM_X、PARAM_Y、PARAM_Zで規定される各パラメータ空間を統合して示した概念図である。
【００４４】
図４に示されるように、ベースキー４０１と、各パラメータに設けられた１次元キー４０２ａ〜ｆは状態定義が必須となる。ここで、ｎ次元キーとは、該当するｎ種類のパラメータが基準値以外のパラメータキーである場合のステータスを示し、該当するｎ種類のパラメータキーでキーフォームインデックスが構成されるキーであって、ｎ次元のパラメータ空間に属する。一方、複数種類のパラメータキーの組み合わせで構成されたキーフォームインデックスで識別されるその他のキー（２次元キー及び３次元キー）は、状態定義が必須とされないキーとなる。
【００４５】
なお、パラメータ種類とその関連性、及び各パラメータについて設定されるパラメータキーが確定すると、各パラメータ空間について状態定義され得るキーのキーフォームインデックスがキーフォームリストに加えられ、管理されるものとする。例えば、PARAM_XとPARAM_Zとが関連するものとして設定され、さらに各々パラメータキーPARAM_X=0.5、PARAM_X=1.0、PARAM_Z=0.5、PARAM_Z=1.0が定義された場合、PARAM_XとPARAM_Zとで形成される２次元のパラメータ空間に属し、状態定義が行われ得るキーフォームインデックス
・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]
が、該パラメータ空間についてキーフォームリストに登録される。キーフォームリストは、キーフォームの定義が行われ得るキーを管理するものであり、キーフォームが未定義のキーのキーフォームインデックスも含む。ここで、複数種類のパラメータが連関する（関連性を有する）か否かは、該複数種類のパラメータがいずれも基準値以外のパラメータキーであるキーについて状態定義がなされたか否かにより確定する。即ち、状態定義が行われた際、状態定義が行われたキーのキーフォームインデックスに含まれる、基準値以外を示す複数種類のパラメータについて関連性があるものとして設定され、該複数種類のパラメータに係る多次元のパラメータ空間が形成される。
【００４６】
このようなパラメータ空間について状態定義され得るキーのキーフォームインデックスは、本実施形態のキーフォーム編集アプリケーションでは、図２のフォームコンポジットパレット２０３に示される。図示される例では、フォームコンポジットパレット２０３の上部にはパラメータテーブル２０４が示されており、描画オブジェクト（もしくは描画オブジェクトのうちから選択されたいずれかのパーツ）について形成されたパラメータ空間が選択可能に示されている。またフォームコンポジットパレット２０３の下部には、パラメータテーブル２０４において選択されたパラメータ空間に係るキーフォームリスト２０５が示されている。図２の例は、パラメータテーブル２０４においてPARAM_Xを含んで形成される２次元のパラメータ空間が選択された状態を示しており、該当のパラメータ空間である(PARAM_X, PARAM_Y)及び(PARAM_X, PARAM_Z)に属するキーが、状態定義の有無を問わず列挙されている。
【００４７】
また本実施形態では、各キーの状態情報の導出や定義に係る処理で参照すべきキーの特定を容易ならしめるため、「派生関係」との概念をキー間の管理に導入する。本実施形態では、派生関係の特定はキーフォームインデックスとキーの次元のみによって行う態様について説明するが、派生関係にあるキーを特定するための追加の情報を付加する等の態様によって実現されるものであってもよい。
【００４８】
任意のキーを基準に考える場合、ベースキーから該任意のキーまで派生する派生関係を構築するキーを「基底キー」と定義する。基底キーは、任意のキーを基準に考えた場合に、該キーより低次元の、キーフォームが定義されたキーであって、該キーを特定する一部のパラメータキー（任意のキーのキーフォームインデックスに含まれるパラメータキー）のみで特定されるキー及びベースキーを指す。例えば、図４においてKeyformIndex:[PARAM_X1.0, PARAM_Y0.5, PARAM_Z1.0]で識別される３次元キーの基底キーのキーフォームインデックスは、
・ベースキー：
KeyformIndex:[PARAM_X0.0, PARAM_Y0.0, PARAM_Z0.0]
・１次元キー：
KeyformIndex:[PARAM_X1.0]
KeyformIndex:[PARAM_Y0.5]
KeyformIndex:[PARAM_Z1.0]
・２次元キー：（いずれもキーフォーム定義済み）
KeyformIndex:[PARAM_X1.0, PARAM_Y0.5]
KeyformIndex:[PARAM_Y0.5, PARAM_Z1.0]
KeyformIndex:[PARAM_X1.0, PARAM_Z1.0]
となる。これらのキーは、ベースキーを基礎として派生した派生関係を構築する（ベースキー→１次元キー→２次元キー→任意のキー）。即ち、派生関係において、任意のキーの（ベースキーにまで遡って）派生元にあたるキー全てが基底キーとなり、任意のキーの状態情報の導出に係る処理においては、これら基底キーについてキーフォームテーブルで管理される情報が参照される。
【００４９】
一方、このような派生関係において、任意のキーの派生先にあたるキーを「派生キー」と定義する。派生キーは、任意のキーを基準に考えた場合に、該キーより高次元の、キーフォームが定義されたキーであって、該キーを特定する全てのパラメータキーを含んで特定されるキーを指す。例えば、図４においてKeyformIndex:[PARAM_X1.0, PARAM_Y0.5]で識別される２次元キーの派生キーは、キーフォーム定義済みである３次元キーの
KeyformIndex:[PARAM_X1.0, PARAM_Y0.5, PARAM_Z0.5]
KeyformIndex:[PARAM_X1.0, PARAM_Y0.5, PARAM_Z1.0]
となる。
【００５０】
次に、このようなキーの派生関係の概念を踏まえ、図３（ｂ）に示されるキーフォームテーブルについて説明する。本実施形態のキーフォーム編集アプリケーションでは、ベースキー以外のキーについて定義されたキーフォームについては、ベースキーフォームからの差分を示す差分情報がキーフォームテーブルに管理される。より詳しくは任意のキーに係るキーフォームについては、ベースキーの状態情報（ベースキーフォーム）に、該任意のキーの全ての基底キーについて管理される差分情報の総和を加算することで導出される値（状態情報）からの差分を示す差分情報が、キーフォームテーブルにて該任意のキーのキーフォームインデックスに関連付けて管理される。ここで、ベースキーについては差分情報は管理されないため、全ての基底キーについて管理される差分情報の総和は、ベースキーを除く全ての基底キーの差分情報の総和と同一である。
【００５１】
換言すれば、多次元のパラメータ空間に属するキーについてキーフォームを定義した場合、該キーフォームのベースキーフォームからの差分は、該キーの属する次元のパラメータ空間と、これよりも低い次元数のパラメータ空間とに分離してキーフォームテーブルで管理されるため、該当のキーの差分情報を積算していくことで容易に導出することができる。即ち、任意のキーに係るキーフォームは、該任意のキーについての状態定義がなされている場合であれば、ベースキーの状態情報、全ての基底キーの差分情報、及び該任意のキーの差分情報を総和することで導出することができる。
【００５２】
従って、図４の例においてKeyformIndex:[PARAM_X1.0, PARAM_Y0.5, PARAM_Z1.0]で識別される、定義済みの３次元キーのキーフォームＦ７を導出するためには、ベースキーフォームの状態情報Ｆ０と、上述した基底キー（ベースキーフォームを除く６つ）の差分情報Ｄ２、Ｄ３、Ｄ６、Ｄ７、Ｄ８、Ｄ９と、KeyformIndex:[PARAM_X1.0, PARAM_Y0.5, PARAM_Z1.0]の差分情報Ｄ１１を用いて、
Ｆ７＝Ｆ０＋Ｄ２＋Ｄ３＋Ｄ６＋Ｄ７＋Ｄ８＋Ｄ９＋Ｄ１１
で導出することができる。
【００５３】
一方、任意のキーについての状態定義がなされていない場合であっても、キーフォームテーブルによれば低次元の（少なくとも１次元の）パラメータ空間におけるパラメータ値に応じた状態変化を反映した差分情報として得ることができる。このため、本実施形態のキーフォーム編集アプリケーションでは、任意のキーについての状態定義がなされていない場合には、ベースキーの状態情報及び全ての基底キーの差分情報を総和して導出された状態情報を、該任意のキーに係るキーフォームとして使用する。即ち、複数種類のパラメータの各々で形成される１次元のパラメータ空間について、設定したパラメータキーの状態定義のみを行えば、これらパラメータによって複合的に形成される多次元のパラメータ空間については、差分情報を導出することができる。
【００５４】
従って、図４の例においてKeyformIndex:[PARAM_X1.0, PARAM_Y0.5, PARAM_Z1.0]で識別される、未定義の３次元キーのキーフォームＦ７を導出するためには、ベースキーフォームの状態情報Ｆ０と、上述した基底キー（ベースキーフォームを除く６つ）の差分情報Ｄ２、Ｄ３、Ｄ６、Ｄ７、Ｄ８、Ｄ９とを用いて、
Ｆ７＝Ｆ０＋Ｄ２＋Ｄ３＋Ｄ６＋Ｄ７＋Ｄ８＋Ｄ９
で導出することができる。
【００５５】
故に、本実施形態のキーフォーム編集アプリケーションでは、多次元のパラメータ空間に属するキーについての状態定義がなされていなくとも、該キーのキーフォームを低次元のパラメータ空間に属する基底キーの状態情報や差分情報から導出できる。故に、多次元のパラメータ空間に属するキーについて管理される差分情報は、このように低次元のパラメータ空間に属する基底キーに基づいて導出された該キーのキーフォームを、さらに調整する値としての意をもつ。つまり、例えばキャラクタを制作する初期段階であるラフモデリングにおいて、ユーザは各パラメータについて設けたパラメータキーごとの描画オブジェクトの（１次元キーの）キーフォームを定義すれば、その他のパラメータキーセットにおけるキーフォームは派生的に生成される。また、生成された任意のパラメータキーセットのキーについて、より所望の形状に近づける調整を行った場合には、基底キーに係る差分情報に上乗せされる差分情報のみが、該任意のパラメータキーセットのキーに係り管理されることになるため、低次元のキーに係るキーフォームに影響を及ぼすことなくキーフォームリストを更新することができる。このような、演算を簡略化しつつ編集自由度を担保する機能は、任意のパラメータキーセットに係るキーフォームの、ベースキーフォームからの差分を、パラメータ空間の対応するキーに分離して保持する構成によってもたらされるものであり、ユーザの作業負荷の低減に貢献し得る。
【００５６】
また、本実施形態のキーフォーム編集アプリケーションでは、描画オブジェクトに定義された各種のキーフォームの情報に基づいて、パラメータキーと異なる値を含むパラメータ値の組み合わせ（パラメータ値セット）が設定された場合に、該パラメータ値セットに対応した状態情報を補間演算により導出し、該状態情報に係る態様の描画オブジェクトがフォームコンポジットパレット２０３に提示される。即ち、ユーザは描画オブジェクトの３次元的な描画表現を提示させるにあたり、複数種類のキー（パラメータキーセット）における描画オブジェクトのキーフォームを定義することで、キー間の描画オブジェクトの状態をパラメータ値に応じて補間生成させることができる。上述したように、本実施形態のキーフォームテーブルによって、次元の異なるパラメータ空間に分離してキーフォームが定義されたキーの差分情報が管理されるため、描画表現の提示が要求されたパラメータ値セットに応じて、状態情報の補間演算に必要なパラメータ空間を適応的に決定することができる。これにより、必要以上な演算や格納値参照に係るメモリアクセス数を低減し、演算負荷を低減することができる。
【００５７】
例えば図５（ａ）に示されるような２次元のパラメータ空間中（PARAM_X, PARAM_Y）のパラメータ値セット（PARAM_X=DX, PRARAM_Y=DY）に係るキーフォームを導出する際の補間演算は、パラメータテーブル、キーフォームテーブル及びベースキーフォームが図５（ｂ）のようである場合、図５（ｃ）に示されるような２種類の１次元のパラメータ空間（(PARAM_X)、(PARAM_Y)）における１次元キーの補間演算と、１種類の２次元のパラメータ空間における２次元キーの補間演算との総和により導出することができる。より詳しくは、ｄｘがベースキーとKeyformIndex:[PARAM_X100]で示される区間を１としたときの、ベースキーからのパラメータ値PARAM_X=DXの割合、ｄｙがベースキーとKeyformIndex:[PARAM_Y100]で示される区間を１としたときの、ベースキーからのパラメータ値PARAM_Y=DYの割合を示す場合、パラメータ値セットに対応する状態情報Form(PARAM_XDX, PARAM_YDY)は、各キーフォームの差分情報Ｄ１〜Ｄ３を用いて
Form(PARAM_XDX, PARAM_YDY)
＝Ｆ０（ベースキーフォーム）
＋ｄｘ＊Ｄ１（１次元のパラメータ空間(PARAM_X)における補間演算）
＋ｄｙ＊Ｄ２（１次元のパラメータ空間(PARAM_Y)における補間演算）
＋ｄｘ＊ｄｙ＊Ｄ３（２次元のパラメータ空間(PARAM_X, PARAM_Y)における補間演算）
によって導出することができる。即ち、パラメータ空間ごとの補間演算における状態参照数を低減しつつ、演算規模を低減して、所望のパラメータ値セットの描画オブジェクトの状態情報を導出することができる。ここで、図５の例では１次元のパラメータ空間に属する（１種類のパラメータキーのみで特定される）キーは、２次元のパラメータ空間には属していないため、２次元のパラメータ空間における補間演算では、対応するキーの差分情報は差分なし（０）として扱われ、結果２次元キーの差分情報Ｄ３に２次元の重み付けを行った項のみが演算結果として残っている。
【００５８】
故に、特許文献１に記載の技術のように、パラメータ種類数がｎであれば２n回の状態参照を伴う補間演算を行うのではなく、パラメータ間の関連性の有無やキーフォームの定義の有無に応じて最小限の規模で補間演算を行うことができる。従って、本実施形態のキーフォーム編集アプリケーションによれば、描画オブジェクトの表示に係る演算負荷が低減する分、ユーザはより多くの種類のパラメータを設定することができ、好適な描画表現とならない可能性がある曲面を使用せずとも、所望の描画オブジェクトの状態を容易に定義しやすくなる。換言すれば、本実施形態のパラメータテーブル及びキーフォームテーブルのようなデータ管理構成とすることで、より細かな（多くの）キーフォーム設定が可能となり、ユーザの意図した状態のキーフォームが定義しやすくなる。このことは、上述したような、例えば観賞方向に応じて表示に用いる描画オブジェクトを別のものに切り替えるような態様において、切り替えの境界付近における描画オブジェクトの形状や色等を揃えることを容易ならしめる。
【００５９】
《描画オブジェクトの提示》
また、本実施形態のキーフォーム編集アプリケーションにおいてなされた状態定義に応じて描画オブジェクトの提示は、上述したような（１）該アプリケーションでの編集作業中における表示と、（２）演算負荷を抑えて高いレスポンス性が要求される、外部アプリケーションやビューワ等での表示（キーフォーム編集アプリケーションでの編集が完了し、外部アプリケーションにおいて利用可能なように出力されたデータの表示）とで、参照用のデータ構成を異ならせる。
【００６０】
〈編集時における表示〉
編集時における描画オブジェクトの表示は、パラメータ値セットの変更に伴い、補間によって生成される描画オブジェクトの状態変化を確認しつつ、新たなキーの追加や既に定義したキーフォームの変更がなされることを考慮し、パラメータテーブルやキーフォームテーブルの構成は維持したまま、ベースキーフォームに対して加算する差分情報を導出することで行われる。より詳しくは、設定されたパラメータ値を含むパラメータ空間（基準値以外の値が設定されたパラメータがｎ種類である場合において、パラメータ値を内包する２×ｎ個のキーで規定される値範囲）を特定し、低次元のパラメータ空間から順に、重み付け演算によってパラメータ値に応じた差分情報を積算し、最終的な差分情報をベースキーフォームに加算することで、表示する描画オブジェクトの状態を導出する。
【００６１】
なお、キーフォーム編集アプリケーションでは、差分情報の積算によって多次元のパラメータ空間の描画オブジェクトの状態を導出する構成としているため、低次元のパラメータ空間においてキーフォームの変更が加えられることで、該変更による影響が高次元のパラメータ空間にも波及する。このような変更による影響の波及は、例えば高次元のパラメータ空間のキーフォームの定義が好適であった場合に、これを崩すことになり得る。従って、キーフォーム編集アプリケーションでは、任意のキーの編集時に変更させたくない、上位の次元の対応キー（派生キー）についての影響を回避するための「ピン止め」機能を有し、低次元のパラメータ空間でのキーフォーム変更の影響を相殺する構成を設ける。より詳しくは、状態定義がなされたキーについて、ピン止め機能を実行する（低次元のパラメータ空間におけるキーフォーム変更の影響を相殺する、即ち低次元のパラメータ空間におけるキーフォーム変更によらず、定義されたキーフォームを維持する）か否かを示す、例えば論理型の情報がメモリ１０３に格納されて管理される。
【００６２】
該ピン止め機能の実行に係る情報（ピン止めフラグ）は、例えば図２のキーフォームリスト２０５において、ユーザが適用させたいキーを選択することにより真（Ｔｒｕｅ：実行する）に設定されるものであってよい。なお、図示されるようにピン止めフラグ２０６は、状態定義がなされていないキーについても設定可能であってよい。即ち、任意のキーについて、該任意のキーの基底キーの差分情報の総和によって導出される状態情報が好適であった場合、該任意のキーについてキーフォームの定義を行っておらずとも、これを維持するよう（低次元のパラメータ空間におけるキーフォーム編集／定義の影響を受けぬよう）ピン止めフラグを設定可能に構成するものであってよい。この場合、該任意のキーに影響が波及し得るキーフォーム変更がなされた場合には、該任意のキーの状態情報を維持させるような差分情報（変更を解消するような差分情報）がキーフォームテーブルに追加され、状態定義がなされた状態に変更すればよい。
【００６３】
〈ランタイム実行時の表示〉
一方、編集完了後の、ランタイム実行時の描画オブジェクトの表示は、重み付け演算を行う回数（パラメータ空間数）及び重み付け演算において参照するキー数を低減するよう、編集時にパラメータテーブルにおいて次元ごとに分離して管理していたパラメータ空間を、可能な限り統合する。即ち、編集容易性を考慮していた編集時とは異なり、ランタイム実行時では差分情報の変更を許容する必要がない。このため、相互に排他的なパラメータ空間のみでパラメータテーブルが構成されるよう、対応する高次元のパラメータ空間が存在する場合には、低次元のキーを高次元のキーに変換し、また差分情報は維持されるように高次元のパラメータ空間に存在していたキーの差分情報も更新して、出力用のパラメータテーブル及びキーフォームテーブルが生成される。
【００６４】
例えば、描画オブジェクトに３種類のパラメータ（PARAM_X, PARAM_Y, PARAM_Z）が対応付けられ、図６（ａ）のパラメータ空間に黒塗り点で示されるキー（ベースキー６０１、１次元キー６０２ａ〜ｃ、２次元キー６０３ａ及びｂ）に状態定義がなされ、白抜き点で示されるキー（２次元キー６０４、３次元キー６０５）に状態定義がなされていない場合、出力用のパラメータテーブル及びキーフォームテーブルは、以下のようになる。
【００６５】
図６（ａ）の例では３次元のパラメータ空間（３次元キー６０５）に状態定義がなされていないため、図６（ｂ）に示されるように編集時に保持されるパラメータテーブル６１１には、３次元のパラメータ空間は含まれず、１次元のパラメータ空間（(PARAM_X)、(PARAM_Y)、(PARAM_Z)）と、２次元のパラメータ空間（(PARAM_X, PARAM_Z)、(PARAM_Y, PARAM_Z)）とが管理されている。換言すれば、３次元キー６０５に状態定義がなされていない状態は、管理されている２次元のパラメータ空間が排他的な空間として取り扱うことが可能であることを意味する。ここで、排他的なパラメータ空間とは、より高い次元のパラメータ空間に係るパラメータ値セットについて状態情報を導出する際に、（パラメータ値セットの次元数に合わせて）まとめて補間演算を行う必要がなく、各々のパラメータ空間について補間演算を分離可能な空間を指す。即ち、図６（ａ）に係る３次元のパラメータ空間に係るパラメータ値セットについて状態情報を導出する際に、補間演算に係る処理負荷を低減する（補間演算における状態参照数が低減２3→２2）ことが可能な空間であると判別できる。
【００６６】
一方、状態定義がなされている２次元のパラメータ空間（(PARAM_X, PARAM_Z)、(PARAM_Y, PARAM_Z)）については、これらパラメータ空間を形成するパラメータに係る１次元のパラメータ空間は、それぞれの２次元のパラメータ空間に統合することが可能である。即ち、２次元のパラメータ空間についての補間演算において状態参照するキーは、各１次元のパラメータ空間についての補間演算においても状態参照するキーであるため、パラメータ空間を統合することで、補間演算の回数を低減（１次元のパラメータ空間に係る３回の補間演算を省略）しつつ、全体で行われる補間演算における状態参照数の重複を低減することができる。従って、出力用のパラメータテーブル６１２は、図６（ｂ）に示されるように２種類の２次元のパラメータ空間のみで構成される。
【００６７】
また、図６（ｃ）に示されるように編集時に保持されるキーフォームテーブル６２１が構成される場合、パラメータテーブルに合わせたパラメータ空間の統合を適用するため、１次元のパラメータ空間に属するキーについては、キーフォームインデックスが統合先のパラメータ空間に合わせて変更される（統合先のパラメータ空間に合わせて、不足するパラメータキーが基準値で補われる）。
【００６８】
ここで、１次元のパラメータ空間（PARAM_Z）に属するKeyformIndex:[PARAM_Z100]で示されるキーは、２種類のパラメータ空間の双方が統合先となるため、それぞれの空間用に変更された２種類のキーフォームインデックス（KeyformIndex:[PARAM_X0, PARAM_Z100], KeyformIndex:[PARAM_Y0, PARAM_Z100]）となる。しかしながら、２種類の２次元のパラメータ空間（(PARAM_X, PARAM_Z)、(PARAM_Y, PARAM_Z)）は排他的に補間演算を行うため、これらの演算結果を統合した場合にはKeyformIndex:[PARAM_Z100]のキーの参照は重複して行われ、該キーに係る差分情報Ｄ３の重みが２倍となってしまう。従って、出力用のキーフォームテーブル６２２では、このような複数の排他的なパラメータ空間で参照が重複するキーについては、統合先の高い次元数のパラメータ空間の数に応じて差分情報を等分した値に変換する。
【００６９】
また、このようなパラメータ空間の統合が行われる場合、状態情報の導出方式は、編集時のように各次元のパラメータ空間における補間演算の結果を総和することで所望のパラメータ値セットの状態情報を導出する態様から変化する。即ち、統合によって低次元（１次元）のパラメータ空間に属していたキーが同次元（２次元）のパラメータ空間に属するキーに変換される場合、統合先となる２次元のパラメータ空間に元々属していたキー（KeyformIndex:[PARAM_X100, PARAM_Z100]、KeyformIndex:[PARAM_Y100, PARAM_Z100]）は、編集時には１次元のパラメータ空間に分離されていた差分を含んだ差分情報に変換する必要がある。従って、図６（ｃ）に示されるこれら２次元キーの差分情報Ｄ４’及びＤ５’は、重複するキーの等分後の差分情報を考慮し、
Ｄ４’＝Ｄ１＋１／２＊Ｄ３＋Ｄ４
Ｄ５’＝Ｄ２＋１／２＊Ｄ３＋Ｄ５
に変換される。
【００７０】
このようにすることで図６（ａ）の態様では、２次元のパラメータ空間中のパラメータ値セットの状態情報の導出に、編集時には１次元のパラメータ空間における補間演算×３（(PARAM_X)、(PARAM_Y)、(PARAM_Z)）と、２次元のパラメータ空間における補間演算×２（(PARAM_X, PARAM_Z)、(PARAM_Y, PARAM_Z)）との５回の補間演算と、これらの総和演算を要していたものが、出力用の変換により、２次元のパラメータ空間における補間演算×２（(PARAM_X, PARAM_Z)、(PARAM_Y, PARAM_Z)）と、これらの総和演算のみとなるため、演算規模を縮小することができる。また各補間演算における状態参照数の観点でも、編集時には２×３＋２2×２＝１４回であったものが、出力用の変換により２2×２＝８回となり、メモリアクセス数を低減することができる。
【００７１】
また例えば、描画オブジェクトに３種類のパラメータ（PARAM_X, PARAM_Y, PARAM_Z）が対応付けられ、図７（ａ）のパラメータ空間に黒塗り点で示されるキー（ベースキー７０１、１次元キー７０２ａ〜ｃ、２次元キー７０３ａ及びｂ、３次元キー７０５）に状態定義がなされ、白抜き点で示されるキー（２次元キー７０４）に状態定義がなされていない場合、出力用のパラメータテーブル及びキーフォームテーブルは、以下のようになる。
【００７２】
図７（ａ）の例では３次元のパラメータ空間（３次元キー７０５）に状態定義がなされているため、図７（ｂ）に示されるように編集時に保持されるパラメータテーブル７１１には、１次元のパラメータ空間（(PARAM_X)、(PARAM_Y)、(PARAM_Z)）、２次元のパラメータ空間（(PARAM_X, PARAM_Z)、(PARAM_Y, PARAM_Z)）、及び３次元のパラメータ空間（(PARAM_X, PARAM_Y, PARAM_Z)）が管理されている。このため、状態定義がなされている３次元のパラメータ空間に対し、該パラメータ空間を形成するパラメータに係る１次元のパラメータ空間及び２次元のパラメータ空間は、統合することが可能である。従って、出力用のパラメータテーブル７１２は、図７（ｂ）に示されるように１種類の３次元のパラメータ空間のみで構成される。
【００７３】
また、図７（ｃ）に示されるように編集時に保持されるキーフォームテーブル７２１が構成される場合、パラメータテーブルに合わせたパラメータ空間の統合を適用するため、１次元のパラメータ空間に属するキー及び２次元のパラメータ空間に属するキーについては、キーフォームインデックスが統合先の（３次元の）パラメータ空間に合わせて変更される（統合先のパラメータ空間に合わせて、不足するパラメータキーが基準値で補われる）。
【００７４】
ここで、パラメータ空間の統合は次元の高い順に行われ、また３次元のパラメータ空間は１つしか存在しないため、図６で示した態様とは異なり、統合先のパラメータ空間が複数存在することによる差分情報の分割は行われない。故に、図７（ｃ）に示されるこれら３次元キーの差分情報Ｄ４’、Ｄ５’及びＤ６’は、単純に低次元のパラメータ空間の差分情報を積算することで、
Ｄ４’＝Ｄ１＋Ｄ３＋Ｄ４
Ｄ５’＝Ｄ２＋Ｄ３＋Ｄ５
Ｄ６’＝Ｄ１＋Ｄ２＋Ｄ３＋Ｄ４＋Ｄ５＋Ｄ６
となる。
【００７５】
このようにすることで図７（ａ）の態様では、３次元のパラメータ空間中のパラメータ値セットの状態情報の導出に、編集時には１次元のパラメータ空間における補間演算×３（(PARAM_X)、(PARAM_Y)、(PARAM_Z)）と、２次元のパラメータ空間における補間演算×２（(PARAM_X, PARAM_Z)、(PARAM_Y, PARAM_Z)）と、３次元のパラメータ空間における補間演算×１（(PARAM_X, PARAM_Y, PARAM_Z)）の６回の補間演算と、これらの総和演算を要していたものが、出力用の変換により、３次元のパラメータ空間における補間演算×１（(PARAM_X, PARAM_Y, PARAM_Z)）のみとなるため、演算規模を縮小することができる。また各補間演算における状態参照数の観点でも、編集時には２×３＋２2×２＋２3×１＝２２回であったものが、出力用の変換により２3×１＝８回となり、メモリアクセス数を低減することができる。
【００７６】
以下、本実施形態のキーフォーム編集アプリケーションで行われる各種処理について、図８〜１２及び１４のフローチャートを参照して具体的な処理を説明する。これらフローチャートに対応する処理は、制御部１０１が、例えば記録媒体１０２に記憶されている対応する処理プログラムを読み出し、メモリ１０３に展開して実行することにより実現することができる。
【００７７】
《パラメータキー設定処理》
まず、描画オブジェクトに対し、１次元のパラメータ空間に係るパラメータを対応付ける、あるいは該パラメータへのパラメータキーの設定（追加）がなされる場合に実行されるパラメータキー設定処理について、図８のフローチャートを用いて説明する。なお、本パラメータキー設定処理は、キーフォーム編集アプリケーションのパラメータパレット２０１に対する、新規種類のパラメータの対応付け要求、または既に対応付けられたパラメータへのパラメータキーの追加要求に係る操作入力がなされたことが検出された際に開始されるものとして説明する。
【００７８】
Ｓ８０１で、パラメータ定義部１０４は、検出された要求が描画オブジェクトに対応付けられたパラメータに、新規種類のパラメータを追加する対応付け要求であるか否かを判断する。パラメータ定義部１０４は、検出された要求が新規種類のパラメータを追加する対応付け要求であると判断した場合は処理をＳ８０２に移し、対応付け要求ではない、即ち、パラメータキーの追加要求であると判断した場合は処理をＳ８０６に移す。
【００７９】
Ｓ８０２で、パラメータ定義部１０４は、既に対応付けられたパラメータに基準値でないパラメータ値が設定されているものがあれば、当該パラメータのパラメータ値を基準値に変更する。
【００８０】
Ｓ８０３で、パラメータ定義部１０４は、新たに対応付けするパラメータの基準値（１つのパラメータキー）を取得する。基準値は、ユーザにより入力された値を取得されるものであってもよいし、デフォルトで定められている値を取得されるものであってもよい。
【００８１】
Ｓ８０４で、パラメータ定義部１０４は、対応付け要求がなされたパラメータを１次元のパラメータ空間として登録して、パラメータテーブルを更新する。
【００８２】
Ｓ８０５で、状態定義部１０５は、現在の描画オブジェクトの状態情報に基づいて、ベースキーフォームを登録または更新する。このとき、既にベースキーフォームの情報が格納されていた場合であっても、状態定義部１０５は、ベースキーフォームのキーフォームインデックスを、新たに対応付けたパラメータのパラメータキー（基準値）を含むよう構成変更する。
【００８３】
一方、Ｓ８０１において、検出された要求が新規種類のパラメータを追加する対応付け要求ではないと判断した場合、パラメータ定義部１０４はＳ８０６で、追加するパラメータキーのパラメータ値を取得する。パラメータ値は、ユーザにより入力された数値を取得されるものであってもよいし、指示入力がなされたスライダ上の座標に対応する数値を取得されるものであってよい。
【００８４】
Ｓ８０７で、パラメータ定義部１０４は、Ｓ８０６において取得した値に基づいて、パラメータキーリストに対象パラメータのパラメータキーを登録する。このとき、対象パラメータを含んで形成されている多次元のパラメータ空間が存在する場合には、制御部１０１は登録されたパラメータキーを含むキーフォームインデックスを生成し、キーフォームリストに追加すればよい。
【００８５】
Ｓ８０８で、状態定義部１０５は、Ｓ８０６において取得した値を示す１次元キーのキーフォームインデックスに、ベースキーフォームからの差分がないことを示す差分情報を関連付けて、キーフォームテーブルに追加して登録する。即ち、新たなパラメータキーの追加時においては、まだ該パラメータキーについてのキーフォームの定義は行われていないため、差分なしであることを示す差分情報が暫定的に格納される。
【００８６】
このようにすることで、ユーザは描画オブジェクトに対して所望のパラメータを対応付け、またパラメータへのパラメータキーの設定を容易に行うことができる。
【００８７】
《キーフォーム編集処理》
次に、パラメータキーが設定された後、１以上のパラメータキーの組み合わせで特定されるキーについて、キーフォームの定義を行うために、描画オブジェクトの編集がなされた場合に実行されるキーフォーム編集処理について、図９のフローチャートを用いて説明する。なお、本キーフォーム編集処理は、キーフォーム編集アプリケーションのパラメータパレット２０１で任意のパラメータキーセットが設定された状態で、ビューポート２０２の描画オブジェクトの状態を編集（変更）する操作入力がなされたことが検出された際に開始されるものとして説明する。
【００８８】
ここで、キーフォームの定義／編集は、パラメータキーリスト及びキーフォームリストの構成変更に係る処理の実行や、補間演算の複雑化を回避するため、任意のパラメータ値の組み合わせについて認めるものではなく、パラメータキーの組み合わせに限定して認めるものとする。故に、パラメータキーではないパラメータ値の組み合わせが設定されている間は、描画オブジェクトの状態編集が行えないよう、制御すればよい。
【００８９】
Ｓ９０１で、制御部１０１は、現在設定されているパラメータ値（パラメータキーセット）を取得する。現在設定されているパラメータ値は、描画オブジェクトに対応付けられたパラメータの全てについて設定されているパラメータ値であり、キーフォームの定義を行う場合には、パラメータキーとして設定されたいずれかのパラメータ値（基準値含む）の組み合わせで構成されたパラメータキーセットであるものとする。
【００９０】
Ｓ９０２で、制御部１０１は、編集中のキーフォームがベースキーフォームであるか否かを判断する。本ステップの判断は例えば、現在設定されているパラメータキーセットを構成する各パラメータのパラメータ値と、ベースキーフォームのキーフォームインデックスを構成するパラメータ値とを比較することで行われればよい。制御部１０１は、編集中のキーフォームがベースキーフォームであると判断した場合は処理をＳ９０３に移し、ベースキーフォームではないと判断した場合は処理をＳ９０４に移す。
【００９１】
Ｓ９０３で、状態定義部１０５は、ベースキーフォームの編集結果を反映するベースキーフォーム更新処理を実行する。
【００９２】
〈ベースキーフォーム更新処理〉
ここで、本ステップで行われるベースキーフォーム更新処理について、図１０（ａ）のフローチャートを用いて説明する。
【００９３】
Ｓ１００１で、状態定義部１０５は、編集後のベースキーフォームに係る状態情報Ｆ0'を取得する。本ステップにおいて取得される情報は、編集が行われた描画オブジェクトの描画態様を絶対的に定義するものである。
【００９４】
Ｓ１００２で、状態定義部１０５は、編集後のベースキーフォームについて、編集前のベースキーフォームに係る状態情報Ｆ0からの調整値ｄを導出する。なお、本ステップで導出する調整値ｄは、ベースキーフォームを変更したことに伴う、派生キーのキーフォームに波及する影響を導出するために用いられる値であり、メモリ１０３に格納されればよい。
【００９５】
Ｓ１００３で、状態定義部１０５は、ベースキーフォームに係る状態情報を編集後のＦ0'に更新して、本ベースキーフォーム更新処理を完了する。
【００９６】
一方、キーフォーム編集処理のＳ９０２において、編集中のキーフォームがベースキーフォームではないと判断した場合、制御部１０１はＳ９０４で、基準値以外のパラメータ値を示すパラメータが複数存在するか否かを、現在設定されているパラメータキーセットに基づいて判断する。即ち、本ステップでは、多次元のパラメータ空間のキーについてキーフォームの編集が行われたのか、１次元のパラメータ空間について行われたのかを判別する。制御部１０１は、基準値以外のパラメータ値を示すパラメータが複数存在すると判断した場合は処理をＳ９０５に移し、１種類のみであると判断した場合は処理をＳ９０９に移す。
【００９７】
Ｓ９０５で、制御部１０１は、現在のキー（現在設定されているパラメータキーセットで特定されるキー）のキーフォームインデックスがキーフォームテーブルに存在するか否かを判断する。本ステップの判断は、現在設定されているパラメータキーセットの基準値以外のパラメータ値を特定し、該基準値以外のパラメータ値の組み合わせで構成されたキーフォームインデックスを関連付けた情報が、キーフォームテーブルに登録されているか否かにより行われる。即ち、本ステップでは、現在のキーが属するパラメータ空間が既に形成されている、つまり、該パラメータ空間について既にキーフォームの定義が行われたキーが存在するか否かを判断している。制御部１０１は、現在のキーのキーフォームインデックスがキーフォームテーブルに存在すると判断した場合は処理をＳ９０９に移し、存在しないと判断した場合は処理をＳ９０６に移す。
【００９８】
Ｓ９０６で、制御部１０１は、現在のキーが属するパラメータ空間について、状態定義され得るキーのキーフォームインデックスをキーフォームリストに登録する。上述した通り、状態定義され得るキーは、現在設定されているパラメータキーセットのうちの基準値以外のパラメータ群によって形成される多次元のパラメータ空間に属し得るキーであって、該パラメータ群に設定されている（基準値以外の）パラメータキーの組み合わせによって、キーフォームインデックスが定義されるキーである。
【００９９】
Ｓ９０７で、状態定義部１０５は、現在のキーに対応するキーフォームインデックスに、ベースキーフォームからの差分がないことを示す差分情報を関連付けて、キーフォームテーブルに追加して登録する。本ステップで登録される差分情報は、後述のキーフォーム更新処理で編集中のキーフォームに係る差分情報が登録されるまでの一時的な情報である。
【０１００】
Ｓ９０８で、パラメータ定義部１０４は、現在設定されているパラメータキーセットのうちの基準値以外のパラメータ群について、該パラメータ群で形成されるパラメータ空間をパラメータテーブルに登録して、パラメータテーブルを更新する。本ステップで登録されるパラメータ空間は、現在設定されているパラメータキーセットのうちの基準値以外のパラメータの数を次元数とする。
【０１０１】
Ｓ９０９で、状態定義部１０５は、編集されたキーフォームの情報を登録するキーフォーム更新処理を実行する。
【０１０２】
〈キーフォーム更新処理〉
ここで、本ステップで行われるキーフォーム更新処理について、図１０（ｂ）のフローチャートを用いて説明する。
【０１０３】
Ｓ１０１１で、状態定義部１０５は、編集後のキーフォームに係る状態情報Ｆc'を取得する。ベースキーフォーム更新処理のＳ１００１と同様、本ステップにおいて取得される情報は、編集が行われた描画オブジェクトの描画態様を絶対的に定義するものである。
【０１０４】
Ｓ１０１２で、状態導出部１０７は、現在のキーについてキーフォームテーブルに登録する差分情報Ｄc'を導出する。より詳しくは、まず空間決定部１０６が、現在設定されているパラメータキーセット、パラメータテーブル、及びキーフォームテーブルに基づいて、現在のキーの全ての基底キーを特定する。状態導出部１０７は、現在のキーの全ての基底キーのキーフォームの差分情報の総和ΣＤbと、ベースキーフォームの状態情報Ｆ0とを合算した状態情報を導出する。そして状態導出部１０７は、該導出した状態情報からの、編集後のキーフォームに係る状態情報Ｆc'の差分として、現在のキーに係る差分情報Ｄc'を導出する。
【０１０５】
Ｓ１０１３で、状態定義部１０５は、編集後のキーフォームについて、編集前の該キーフォームに係る差分情報Ｄcからの調整値ｄを導出する。なお、本ステップで導出する調整値ｄは、該キーフォームを変更したことに伴う、派生キーのキーフォームに波及する影響を導出するために用いられる値であり、メモリ１０３に格納されればよい。
【０１０６】
Ｓ１０１４で、状態定義部１０５は、キーフォームテーブルに格納されている現在のキーに係る差分情報Ｄcを、編集後のキーフォームに係る差分情報Ｄc'に更新して、本キーフォーム更新処理を完了する。より詳しくは、状態定義部１０５は、現在のキーに対応するキーフォームインデックスに、編集後のキーフォームに係る差分情報Ｄc'を関連付けて、キーフォームテーブルを更新する。
【０１０７】
このように編集された描画オブジェクトについて、キーフォーム編集処理のＳ９０３のベースキーフォーム更新処理またはＳ９０９のキーフォーム更新処理を実行することでキーフォームテーブルを更新した後、状態定義部１０５はＳ９１０で、今回の更新による派生キーへの影響を反映する反映処理を実行する。
【０１０８】
〈反映処理〉
ここで、本ステップで行われる反映処理について、図１１のフローチャートを用いて説明する。
【０１０９】
Ｓ１１０１で、空間決定部１０６は、現在設定されているパラメータキーセット、パラメータテーブル、及びキーフォームテーブルに基づいて、現在のキーの全ての派生キーを特定する。そして空間決定部１０６は、特定した派生キーのキーフォームインデックスを、例えばメモリ１０３に生成した対象キーフォームリストに追加する。
【０１１０】
Ｓ１１０２で、制御部１０１は、対象キーフォームリストのキーフォームインデックスを、対応するキーの次元数が低い順にソートする。即ち、制御部１０１は、対象キーフォームリストのキーフォームインデックスを、キーフォームインデックスを構成するパラメータ数の少ない順にソートする。
【０１１１】
Ｓ１１０３で、状態定義部１０５は、対象キーフォームリストからソート順に未選択のキーフォームインデックスを選択する。Ｓ１１０３からＳ１１０７のループ処理では、本ステップで選択されたキーフォームインデックスにより識別されるキーを、対象キーとして処理する。
【０１１２】
Ｓ１１０４で、状態定義部１０５は、対象キーにピン止めフラグが設定されているか否かを判断する。状態定義部１０５は、対象キーにピン止めフラグが設定されていると判断した場合は処理をＳ１１０５に移し、設定されていないと判断した場合は処理をＳ１１０７に移す。
【０１１３】
Ｓ１１０５で、状態定義部１０５は、低次元のキーから波及する相殺係数を積算して加味した上で、対象キーのキーフォームに波及する調整を相殺する相殺係数を導出する。上述したように本実施形態のキーフォーム編集アプリケーションでは、任意のキーのキーフォームは、ベースキーフォームに対して、該任意のキーの基底キーの差分情報を低次元のパラメータ空間から順に加算し、該任意のキーの差分情報をさらに加算することで導出される。従って、任意のキーについてキーフォームの編集が行われた場合、その差分情報の変更量（調整値）は、該任意のキーの派生キーにも波及する。一方で、派生キーにピン止めフラグが設定されている場合、該派生キーの状態情報を編集前と同じにすべく、該状態情報の導出時に加算される調整値分の影響を、該派生キーの差分情報を調整することで相殺する必要がある。従って、編集が行われたキーよりも次元数が１つ多い派生キーについて、編集が行われたキーについて生じる調整値分の増加を相殺するためには、該派生キーの差分情報に対し、調整値に「−１」を乗じた値を加算すればよい。このとき、該派生キーについては、「−１」が相殺係数となる。
【０１１４】
ところで、同じ次元数の他のパラメータ空間の派生キーにも編集による影響は波及し得、また派生キーは次元数が１つ多いものに限らず存在し得る。故に、本ステップでは、対象キーフォームリストから次元数の低い順に対象キーを選択して相殺係数を導出するにあたり、対象キーにピン止めフラグが設定されている場合には、該対象キーよりも低い次元数のキーについて定めた相殺係数と調整値によって状態情報が変化することも考慮して、次元数の低い順に再帰的に相殺係数の導出を行う。
【０１１５】
例えば、１次元のパラメータ空間（(PARAM_Z)）のキーについて編集が行われた場合、派生キーが２次元のパラメータ空間（(PARAM_X, PARAM_Z)、(PARAM_Y, PARAM_Z)）及び３次元のパラメータ空間（(PARAM_X, PARAM_Y, PARAM_Z)）に存在し、いずれの派生キーもピン止めフラグが設定されている場合、２次元のパラメータ空間の各々の派生キーには相殺係数「−１」による相殺がなされる。他方、３次元のパラメータ空間の派生キーについては、状態情報の導出において１次元のパラメータ空間及び２種類の２次元のパラメータ空間からの調整が波及する。即ち、３次元のパラメータ空間の派生キーについては、１次元のパラメータ空間からは調整値ｄ、及び２種類の２次元のパラメータ空間の各々からは相殺係数「−１」が乗じられた調整値ｄが波及するため、合算すると
ｄ＋（−１）＊ｄ＋（−１）＊ｄ＝−ｄ
だけ編集前の状態情報から変化し得る。従って、３次元のパラメータ空間の派生キーについて設定される相殺係数は「＋１」となる。
【０１１６】
また例えば、１次元のパラメータ空間（(PARAM_Z)）のキーについて編集が行われた場合、派生キーが２次元のパラメータ空間（(PARAM_X, PARAM_Z)、(PARAM_Y, PARAM_Z)）及び３次元のパラメータ空間（(PARAM_X, PARAM_Y, PARAM_Z)）に存在し、このうちパラメータ空間(PARAM_Y, PARAM_Z)と(PARAM_X, PARAM_Y, PARAM_Z)の派生キーにのみピン止めフラグが設定されている場合、２次元のパラメータ空間（(PARAM_Y, PARAM_Z)）の派生キーには相殺係数「−１」による相殺がなされる。また２次元のパラメータ空間（(PARAM_X, PARAM_Z)）の派生キーには相殺係数は設定されない。他方、３次元のパラメータ空間の派生キーについては、状態情報の導出において１次元のパラメータ空間及び１種類の２次元のパラメータ空間からの調整が波及する。即ち、３次元のパラメータ空間の派生キーについては、１次元のパラメータ空間からは調整値ｄ、及び１種類の２次元のパラメータ空間の各々からは相殺係数「−１」が乗じられた調整値ｄが波及するため、合算すると
ｄ＋（−１）＊ｄ＝０
となり、編集前の状態情報と変化は生じない。従って、３次元のパラメータ空間の派生キーについて設定される相殺係数は「０」となる。
【０１１７】
Ｓ１１０６で、状態定義部１０５は、対象キーのキーフォームインデックスに関連付けて導出した相殺係数を、例えばメモリ１０３に格納される係数マップに格納する。
【０１１８】
Ｓ１１０７で、状態定義部１０５は、対象キーフォームリストにピン止めフラグの有無を判断していないキーのキーフォームインデックスが存在するか否かを判断する。状態定義部１０５は、未判断のキーのキーフォームインデックスが存在すると判断した場合は処理をＳ１１０３に戻し、存在しないと判断した場合は処理をＳ１１０８に移す。
【０１１９】
Ｓ１１０８で、状態定義部１０５は、係数マップに格納された相殺係数の情報に基づいて、キーフォームテーブルに含まれる全ての派生キーについて管理される差分情報に調整値を適用する。このとき、ピン止めフラグが設定されていない派生キーについては差分情報の調整は行われず、ピン止めフラグが設定されている派生キーについては調整値に相殺係数を乗じた値で差分情報の調整が行われる。
【０１２０】
このように本キーフォーム編集処理により、描画オブジェクトに対して行われた編集をキーフォームテーブルに登録することができる。
【０１２１】
《編集時表示処理》
次に、キーフォームの編集時において、描画オブジェクトの描画態様を変更してビューポート２０２に表示させる編集時表示処理について、図１２のフローチャートを用いて説明する。なお、本編集時表示処理は、キーフォーム編集アプリケーションのパラメータパレット２０１でパラメータ値の変更に係る操作入力がなされたことが検出された際に開始されるものとして説明する。
【０１２２】
Ｓ１２０１で、制御部１０１は、現在設定されているパラメータ値セットを取得する。現在設定されているパラメータ値は、描画オブジェクトに対応付けられたパラメータの全てについて設定されているパラメータ値であり、キーフォームの定義を行わないのであれば各パラメータについて定められた数値範囲のいずれかの値を示すものであってよい。
【０１２３】
Ｓ１２０２で、制御部１０１は、取得したパラメータ値セットを示すキーフォームインデックスがキーフォームテーブルに存在するか否かを判断する。即ち、本ステップでは、制御部１０１は、現在設定されているパラメータ値セットが状態定義の行われたパラメータキーセットであるか否かを判断する。制御部１０１は、取得したパラメータ値セットを示すキーフォームインデックスがキーフォームテーブルに存在すると判断した場合は処理をＳ１２０３に移し、存在しないと判断した場合は処理をＳ１２０４に移す。
【０１２４】
Ｓ１２０３で、状態導出部１０７は、現在設定されているパラメータ値セットに対応するキーフォームの、ベースキーフォームからの差分Ｄxを導出する。より詳しくは、まず空間決定部１０６が、現在設定されているパラメータ値セット、パラメータテーブル、及びキーフォームテーブルに基づいて、該パラメータ値セットに対応するキー（現在のキー）の全ての基底キーを特定する。状態導出部１０７は、現在のキーについてキーフォームテーブルに管理されている差分情報Ｄcと、現在のキーの全ての基底キーの差分情報の総和ΣＤbとを合算し、表示に係る最終的な差分情報Ｄxを
Ｄx＝Ｄc＋ΣＤb
として導出し、処理をＳ１２１３に移す。
【０１２５】
またＳ１２０２で取得したパラメータ値セットを示すキーフォームインデックスがキーフォームテーブルに存在しないと判断した場合、空間決定部１０６はＳ１２０４で、描画オブジェクトに設定されたパラメータ空間のうち、取得したパラメータ値の少なくともいずれかを含むパラメータ空間の情報を、例えばメモリ１０３に生成された空間リストに追加する。即ち、本ステップでは、パラメータ値セットに対応する状態情報の導出にあたり、補間演算を行うパラメータ空間の情報が取得される。
【０１２６】
Ｓ１２０５で、制御部１０１は、空間リストに含まれるパラメータ空間を、次元数が低い順にソートする。
【０１２７】
Ｓ１２０６で、状態導出部１０７は、ソートされた空間リストに含まれる、補間演算を未実行のパラメータ空間をソート順に選択する。Ｓ１２０６からＳ１２１２のループ処理では、本ステップで選択されたパラメータ空間を、選択空間として処理する。
【０１２８】
Ｓ１２０７で、状態導出部１０７は、選択空間の補間演算で参照する、該選択空間に属するキーのキーフォームインデックスがキーフォームテーブルに存在するか否かを判断する。本ステップでは、まず、選択空間に属するキーにキーフォームが定義されているか、即ち、該選択空間について補間演算を行うために必要なキーフォームが存在しているか否かが判断される。状態導出部１０７は、選択空間に属するキーフォームインデックスがキーフォームテーブルに存在すると判断した場合は処理をＳ１２０８に移し、存在しないと判断した場合は処理をＳ１２１２に移す。
【０１２９】
Ｓ１２０８で、状態導出部１０７は、例えばメモリ１０３に補間演算用のキーフォームテーブル（演算用キーフォームテーブル）を定義し、初期化する。ここで初期化とは、選択空間の次元数（ｎ）に応じた数（２n）のキーフォームの情報を保持可能な領域を確保することを意味する。
【０１３０】
Ｓ１２０９で、状態導出部１０７は、補間演算で参照し得るキーのキーフォームインデックスに関連付けて、差分がないことを示す差分情報を演算用キーフォームテーブルに登録する。なお、補間演算で参照し得るキーとは、現在設定されているパラメータ値セット、選択空間を形成するパラメータ、及び選択空間にて状態定義されているキーのキーフォームインデックスに基づいて決定される。補間演算は基本的には、選択空間を形成するパラメータのそれぞれにおいて、現在該パラメータに設定されているパラメータ値を範囲に含む、該パラメータ値より大きい値及び小さい値を示す２つのパラメータキーで示される区間について行われる。このため、補間演算で参照し得るキーとは、選択空間に属するキーのうち、各パラメータについて定まる区間の端点のパラメータキーを組み合わせることでキーフォームインデックスが構成されているキーとなる。
【０１３１】
例えば、図１３に示されるように、描画オブジェクトに対して１次元のパラメータ空間（(PARAM_X)、(PARAM_Y)）と２次元のパラメータ空間（(PARAM_X, PARAM_Y)）とが管理され、黒塗り点で示されるキーにキーフォームが定義され、白抜き点で示されるキーにキーフォームが未定義であり、現在設定されたパラメータ値セット（(PARAM_X, PARAM_Y)）が状態１３０１である場合を考える。このとき、選択空間が１次元のパラメータ空間（(PARAM_X)）である場合には、現在設定されたパラメータ値セットのうちのPARAM_X成分のパラメータ値を範囲に含むパラメータキーに対応する、キー１３０２及び１３０３が補間演算で参照し得るキーとなる。同様に選択空間が１次元のパラメータ空間（(PARAM_Y)）である場合には、現在設定されたパラメータ値セットのうちのPARAM_Y成分のパラメータ値を範囲に含むパラメータキーに対応する、キー１３０４及び１３０５が補間演算で参照し得るキーとなる。また選択空間が２次元のパラメータ空間（(PARAM_X, PARAM_Y)）である場合には、各成分について現在設定されたパラメータ値を範囲に含むパラメータキーが２つ特定されるため、２つの成分がこれらのパラメータキーの組み合わせで特定されるキー１３０６〜１３０９が補間演算で参照し得るキーとなる。
【０１３２】
Ｓ１２１０で、状態導出部１０７は、演算用キーフォームテーブルに含まれるキーのうち状態定義がなされているキーについては、該キーについてキーフォームテーブルで管理される差分情報を用いて、演算用キーフォームテーブルの差分情報を更新する。図１３の例では、選択空間が２次元のパラメータ空間である場合に、キー１３０６〜１３０８についてはキーフォームが定義されているため、キーフォームテーブルで各キーについて管理されている差分情報に、演算用キーフォームテーブルの情報が更新される。一方、キー１３０９についてはキーフォームが未定義であるため、演算用キーフォームテーブルの情報は更新されず、差分なしであることを示す差分情報がそのまま保持される。
【０１３３】
Ｓ１２１１で、状態導出部１０７は、演算用キーフォームテーブルに含まれるキーの情報に基づき、現在設定されているパラメータ値セットに対応する選択空間の状態について選択空間に係る補間演算を行い、該状態に係る差分情報Ｄcを導出する。また状態導出部１０７は、導出した差分情報Ｄcを、現在設定されているパラメータ値セットに対応する状態情報のベースキーフォームに係る状態情報からの差分を示す最終的な差分情報Ｄxに加算する。ここで、最終的な差分情報Ｄxは初期値は０であり、Ｓ１２０６〜Ｓ１２１２のループ処理において低次元のパラメータ空間から順に導出された差分情報を積算していくことで完成する。
【０１３４】
図１３の例では、まず１次元のパラメータ空間（(PARAM_X)）について現在設定されているPARAM_X成分のパラメータ値に応じた重み付け演算による補間演算
Ｄ（ｘ）＝ｄｘ＊Ｄ２＋（１−ｄｘ）＊Ｄ１
がなされ、次に１次元のパラメータ空間（(PARAM_Y)）について現在設定されているPARAM_Y成分のパラメータ値に応じた重み付け演算による補間演算
Ｄ（ｙ）＝ｄｙ＊Ｄ４＋（１−ｄｙ）＊Ｄ３
がなされ、最後に２次元のパラメータ空間（(PARAM_X, PARAM_Y)）について現在設定されている各成分のパラメータ値に応じた重み付け演算による補間演算
Ｄ（ｘｙ）
＝（１−ｄｘ）＊（１−ｄｙ）＊Ｄ５
＋      ｄｘ  ＊（１−ｄｙ）＊Ｄ６
＋（１−ｄｘ）＊      ｄｙ  ＊Ｄ７
＋      ｄｘ  ＊      ｄｙ  ＊０
がなされ、結果、最終的な差分情報Ｄxは
Ｄx＝Ｄ（ｘ）＋Ｄ（ｙ）＋Ｄ（ｘｙ）
により導出される。
【０１３５】
Ｓ１２１２で、状態導出部１０７は、ソートされた空間リストに未選択のパラメータ空間が存在するか否かを判断する。状態導出部１０７は、空間リストに未選択のパラメータ空間が存在すると判断した場合は処理をＳ１２０６に戻し、存在しないと判断した場合は処理をＳ１２１３に移す。
【０１３６】
Ｓ１２１３で、状態導出部１０７は、ベースキーフォームに係る状態情報Ｆbに最終的な差分情報Ｄxを加算することで、現在設定されているパラメータ値セットについて表示する状態の状態情報Ｆdを導出する。
【０１３７】
Ｓ１２１４で、描画部１０８は、描画オブジェクトに状態情報Ｆdを適用して、ビューポート２０２に係る画像を描画し、表示部１２０に表示させる。
【０１３８】
このように、本実施形態の編集時表示処理によれば、提示要求がなされたパラメータ値セットについて補間演算に必要なパラメータ空間を特定し、そして必要なパラメータ空間の各々について、該パラメータ空間に属するキーについて管理されている差分情報を用いて補間演算することを再帰的に行うことで、提示要求がなされたパラメータ値セットに係る状態情報を導出することができる。
【０１３９】
《ランタイム用データ出力処理》
次に、ランタイム実行用のデータ出力を行う（エクスポート）場合に実行されるランタイム用データ出力処理について、図１４のフローチャートを参照して説明する。なお、本ランタイム用データ出力処理は、キーフォーム編集アプリケーションにおいてエクスポートに係る操作入力がなされたことが検出された際に開始されるものとして説明する。
【０１４０】
また、本実施形態ではキーフォーム編集アプリケーションにおいて本ランタイム用データ出力処理が行われるものとして説明するが、本処理の実施は、キーフォームの定義等を行うキーフォーム編集アプリケーションにおいてエクスポートという形で行われる態様に限られるものではない。例えば、外部アプリケーションやビューワ等に、キーフォーム編集アプリケーションで生成されたデータ（編集時の状態のパラメータテーブル、キーフォームテーブル及びベースキーフォーム）を入力する（インポート）場合に実行されるものであってもよい。
【０１４１】
Ｓ１４０１で、制御部１０１は、キーフォームテーブル及びパラメータテーブルを複製し、出力用キーフォームテーブル及び出力用パラメータテーブルを生成してメモリ１０３に格納する。
【０１４２】
Ｓ１４０２で、制御部１０１は、描画オブジェクトに設定されたパラメータ空間の情報を、例えばメモリ１０３に生成した空間リストに追加する。
【０１４３】
Ｓ１４０３で、制御部１０１は、空間リストに含まれるパラメータ空間を、次元数が高い順にソートする。
【０１４４】
Ｓ１４０４で、制御部１０１は、ソートされた空間リストに含まれる、Ｓ１４０４〜Ｓ１４１４の統合に係るループ処理を未実行のパラメータ空間をソート順に選択する。Ｓ１４０４〜Ｓ１４１４のループ処理では、本ステップで選択されたパラメータ空間を、選択空間として処理する。
【０１４５】
Ｓ１４０５で、制御部１０１は、空間リストに含まれる選択空間より低い次元数のパラメータ空間であって、Ｓ１４０５〜Ｓ１４１３の探索に係るループ処理を未実行のパラメータ空間を探索対象空間として設定する。
【０１４６】
Ｓ１４０６で、制御部１０１は、探索対象空間を形成する全てのパラメータが、選択空間を形成するパラメータに含まれるか否かを判断する。制御部１０１は、探索対象空間を形成する全てのパラメータが選択空間を形成するパラメータに全て含まれると判断した場合は処理をＳ１４０７に移し、含まれないと判断した場合は処理をＳ１４１３に移す。
【０１４７】
Ｓ１４０７で、制御部１０１は、選択空間と同次元のパラメータ空間であって、探索対象空間を形成する全てのパラメータを含むパラメータ空間が、空間リストに（選択空間も含めて）複数存在するか否かを判断する。制御部１０１は、探索対象空間を形成する全てのパラメータを含む同次元のパラメータ空間が複数存在すると判断した場合は処理をＳ１４０８に移し、選択空間以外に存在しないと判断した場合は処理をＳ１４１０に移す。
【０１４８】
Ｓ１４０８で、制御部１０１は、空間リストに含まれる探索対象空間を形成する全てのパラメータを含む同次元のパラメータ空間の数を計数する。そしてＳ１４０９で、制御部１０１は、出力用キーフォームテーブルの探索対象空間のキーの差分情報を、計数したパラメータ空間数で除した値に変更する。
【０１４９】
Ｓ１４１０で、制御部１０１は、探索対象空間に属するキーの差分情報を、出力用キーフォームテーブルの選択空間に属する全キーの差分情報に加算する。なお、探索対象空間を形成する全てのパラメータを含む同次元のパラメータ空間が複数存在する場合には、制御部１０１は、該同次元の他のパラメータ空間に属する全キーの差分情報に対し、選択対象空間に属するキーの差分情報を加算する。
【０１５０】
Ｓ１４１１で、制御部１０１は、出力用キーフォームテーブルの探索対象空間に属するキーのキーフォームインデックスを、ベースキーのパラメータを加えて選択空間と同次元のパラメータ構成のキーフォームインデックスに変更する。即ち、探索対象空間に属する低次元のキーが、選択空間に属する選択空間と同次元のキーとして管理されるよう、出力用キーフォームテーブルにおいてキーフォームインデックスが調整される。なお、探索対象空間を形成する全てのパラメータを含む同次元のパラメータ空間が複数存在する場合には、制御部１０１は、探索対象空間に属するキーを複製して同次元のパラメータ空間の数設け、それぞれのパラメータ空間に対応したパラメータ構成のキーフォームインデックスに変更すればよい。
【０１５１】
Ｓ１４１２で、制御部１０１は、出力用パラメータテーブル及び空間リストから、探索対象空間の情報を削除する。このようにすることで、探索対象空間の情報を選択空間の情報に変換し、出力用パラメータテーブル及び出力用キーフォームテーブルにおいて統合することができる。
【０１５２】
Ｓ１４１３で、制御部１０１は、空間リストに含まれる選択空間より低い次元数のパラメータ空間に、探索対象空間として未選択のパラメータ空間が存在するか否かを判断する。制御部１０１は、探索対象空間として未選択のパラメータ空間が存在すると判断した場合は処理をＳ１４０５に移し、存在しないと判断した場合は処理をＳ１４１４に移す。
【０１５３】
Ｓ１４１４で、制御部１０１は、空間リストに選択空間として未選択のパラメータ空間が存在するか否かを判断する。このとき、高い次元数のパラメータ空間に統合されたパラメータ空間については既に空間リストから削除されている。制御部１０１は、選択空間として未選択のパラメータ空間が存在すると判断した場合は処理をＳ１４０４に戻し、存在しないと判断した場合は処理をＳ１４１５に移す。
【０１５４】
Ｓ１４１５で、制御部１０１は、処理が完了した出力用キーフォームテーブル、出力用パラメータテーブル、及びベースキーフォームの情報を、ランタイム用データとして出力し、本ランタイム用データ出力処理を完了する。
【０１５５】
このように、本ランタイム用データ出力処理により、キーフォームテーブル及びパラメータテーブルを、編集時よりも情報量を削減し、実行される補間演算の回数を低減する形式に変換することができる。
【０１５６】
《演算効率比較》
最後に、任意のパラメータ値セットに対応する状態の描画オブジェクトの提示に係り行われる補間演算について、特許文献１に記載の方式と、本実施形態のキーフォーム編集アプリケーションでの編集時にパラメータテーブル及びキーフォームテーブルを用いて行われる方式と、ランタイム実行時に出力用パラメータテーブル及び出力用キーフォームテーブルを用いて行われる方式とで、その演算効率を比較する。なお、評価条件は、描画オブジェクトに７種類のパラメータを対応付け、パラメータの各々に２つのパラメータキーを定義し、図１５（ａ）に示されるように、パラメータ間の関連性の有無（多次元のパラメータ空間の形成）が定められているものとし、補間演算を行う最大回数、補間演算完了までに状態情報を参照するキーの最大数（延べ参照キー数）により、効率評価を行う。
【０１５７】
まず、特許文献１に記載の方式では、次元数の異なるパラメータ空間を設けるとの概念がないため、７種類のパラメータを描画オブジェクトに対応付けた場合、全てのパラメータで形成される７次元のパラメータ空間について補間演算が行われる。従って、補間演算の対象となるパラメータ空間は１種類であるため、
補間演算の回数：１回
となる。一方、補間演算完了までの延べ参照キー数は、７次元のパラメータ空間であるため、パラメータキーの全ての組み合わせから
延べ参照キー数：２7＝１２８
となる。
【０１５８】
次に、本実施形態のキーフォーム編集アプリケーションでの編集時に用いられる方式では、図１５（ａ）に示されるように１次元から４次元までのパラメータ空間が管理され、その各々について補間演算を行うため、
補間演算の回数：７＋７＋２＋１＝１７回
となる。一方、補間演算完了までの延べ参照キー数は、７種類の１次元のパラメータ空間、７種類の２次元のパラメータ空間、２種類の３次元のパラメータ空間、４種類の４次元のパラメータ空間の各々で参照が行われるため、
延べ参照キー数：２＊７＋２2＊７＋２3＊２＋２4＊１＝７４
となる。
【０１５９】
最後に、本実施形態のランタイム実行時に用いられる方式では、図１５（ｂ）に示されるようにパラメータ空間は統合されるため、
補間演算の回数：３＋１＝４回
となる。一方、補間演算完了までの延べ参照キー数は、３種類の２次元のパラメータ空間、１種類の４次元のパラメータ空間の各々で参照が行われるため、
延べ参照キー数：２2＊３＋２4＊１＝２８
となる。
【０１６０】
従って、状態情報の参照に係るメモリアクセス数の観点で、補間演算に係る演算負荷の低減が実現されている。また、補間演算の回数は増加し得るものの、１回の補間演算において重み付け加算する項の数が、特許文献１に記載の方式では２7個、編集時に用いられる方式では最大で２4個、ランタイム実行時に用いられる方式でも最大で２4個となるため、演算規模を低減することができ、演算にあたり確保すべきメモリ領域を低減することができる。
【０１６１】
以上説明したように、本実施形態の装置によれば、所望の描画表現の調整を容易ならしめつつ、演算負荷を低減させることが可能となる。
【０１６２】
［変形例］
上述した実施形態では、対応付けた複数種類のパラメータについて、任意のパラメータキーセットを選択し、キーフォームの定義が行えるものとして説明したが、本発明の実施はこれに限られるものではない。
【０１６３】
例えば透明度変更やエフェクト等のパラメータは、他のパラメータによる描画オブジェクトの状態遷移によらず、描画オブジェクトの全体に対して共通して適用することが好適であり、敢えてこのようなパラメータのパラメータキーの組み合わせを含んだ多次元のパラメータ空間のキーフォームを定義するメリットが少ない。換言すれば、このようなパラメータとその他のパラメータとの組み合わせを考慮したキーフォーム定義を許容してしまうことで、意図しない状態遷移を定義してしまう可能性もある。
【０１６４】
従って、このようなパラメータについてのキーフォームの定義は、該パラメータについてのみ独立で行えればよく、パラメータの対応付け時に、例えば他のパラメータとの組み合わせを一切排除する、完全排他属性であることを示す情報を該パラメータに関連付ければよい。この場合、該完全排他属性のパラメータが基準値以外のパラメータキーに設定されている際に、他のパラメータが基準値以外のパラメータキーに設定された際には、当該パラメータキーセットについてキーフォームの定義に係る描画オブジェクトの編集操作が不能となるよう制御するものであってもよい。
【０１６５】
また例えばキャラクタの口唇モーションを規定するために、基本的な口の開閉の状態遷移に対して、その開閉形状（丸型、逆三角型等）をさらに調整するパラメータの割り当てが所望される状況も（口の開閉に限らず）ある。一方で、このような基本的な状態遷移に対して上乗せする調整用のパラメータの各々は、到達目標が異なるものであるため、同時的にパラメータ変更する状況が想定しづらく、これら調整用のパラメータのパラメータキーの組み合わせを含んだ多次元のパラメータ空間のキーフォームを定義するメリットが少ない。
【０１６６】
従って、このような調整用途等のパラメータについてのキーフォームの定義は、該パラメータについてのみか、基本的なパラメータとの組み合わせについて可能であればよく、パラメータの対応付け時に、例えば同様に調整用途のパラメータとの組み合わせのみを排除する、一部排他属性であることを示す情報を該パラメータに関連付ければよい。この場合、基準値以外のパラメータキーが設定された一部排他属性のパラメータが複数存在する場合には、当該パラメータキーセットについてのキーフォームの定義に係る描画オブジェクトの編集操作が不能となるよう制御するものであってよい。また、基準値以外のパラメータキーが設定された一部排他属性のパラメータが１つのみ存在する、または存在しない場合には、当該パラメータキーセットについてのキーフォームの定義に係る描画オブジェクトの編集操作が可能となるよう制御するものであってよい。
【０１６７】
このようにすることで、ユーザが複数種類のパラメータキーの組み合わせに係るキーフォーム定義について、使用用途等が確定している場合には、予めパラメータの対応付け時に完全排他属性や一部排他属性を適宜設定することで、不要な多次元のパラメータ空間の定義やキーフォームの定義が行われることを回避しつつ、状態情報の導出に係る演算量を低減することができるよう、キーフォーム編集アプリケーション側の動作を制御することができる。
【０１６８】
［その他の実施形態］
本発明は上記実施の形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。また本発明を実現する装置は、１以上のコンピュータを該装置として機能させるプログラムによっても実現可能である。該プログラムは、コンピュータが読み取り可能な記録媒体に記録されることにより、あるいは電気通信回線を通じて、提供／配布することができる。
【符号の説明】
【０１６９】
１００：ＰＣ、１０１：制御部、１０２：記録媒体、１０３：メモリ、１０４：パラメータ定義部、１０５：状態定義部、１０６：空間決定部、１０７：状態導出部、１０８：描画部、１０９：操作入力部、１１０：出力部、１２０：表示部
【図１】
2018181287.tif 000003
【図２】
2018181287.tif 000004
【図３】
2018181287.tif 000005
【図４】
2018181287.tif 000006
【図５】
2018181287.tif 000007
【図６】
2018181287.tif 000008
【図７】
2018181287.tif 000009
【図８】
2018181287.tif 000010
【図９】
2018181287.tif 000011
【図１０】
2018181287.tif 000012
【図１１】
2018181287.tif 000013
【図１２】
2018181287.tif 000014
【図１３】
2018181287.tif 000015
【図１４】
2018181287.tif 000016
【図１５】
2018181287.tif 000017
【手続補正書】
【提出日】平成29年9月13日(2017.9.13)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
要求された状態の描画オブジェクトを提示するプログラムであって、
前記描画オブジェクトについて設けられた複数種類の属性、及び属性間の関連性の有無を管理する属性テーブルと、状態定義が行われた属性値セット、及び該定義された状態を示す状態情報を管理する状態テーブルと、を記憶した記憶手段を有するコンピュータに、
提示要求がなされた前記描画オブジェクトの状態を識別する属性値で構成された提示属性値セットを取得する処理と、
前記提示要求がなされた状態について、状態情報の補間演算を行う属性空間を、前記提示属性値セット、前記属性テーブル、及び前記状態テーブルに基づいて決定する処理と、
前記決定された属性空間の各々について前記補間演算を行い、前記提示要求がなされた状態の状態情報を導出する処理と、
前記導出された状態情報に基づいて前記描画オブジェクトを提示する処理と、
を実行させ、
前記描画オブジェクトには、前記複数種類の属性値がいずれも基準値であることで識別される基準状態が定められ、
前記複数種類の属性の各々、及び関連性を有する属性群の各々は、個別の属性空間を形成し、
前記状態テーブルは、前記定義された状態の前記基準状態から状態情報の差分を、対応する属性空間に分離して差分情報として管理するものであり、
前記導出する処理において、
前記決定された属性空間ごとに、該属性空間に定義された状態について管理される前記差分情報を用いて前記補間演算が行われ、
前記決定された属性空間の補間演算結果の総和を前記基準状態の状態情報に加算することで、前記提示要求がなされた状態の状態情報が導出される
ことを特徴とするプログラム。
【請求項２】
属性空間は、関連付けられている属性の数に応じた次元数を有するものであり、
前記状態テーブルにおいて、前記定義された状態の前記基準状態からの状態情報の差分は、該状態定義が行われた属性値セットの全ての属性群で形成される第１の属性空間と、該状態定義が行われた属性値セットの一部の属性で形成される、前記第１の属性空間よりも低い次元数の第２の属性空間とに分離して管理される
ことを特徴とする請求項１に記載のプログラム。
【請求項３】
前記定義された状態について前記第１の属性空間で管理される前記差分情報は、該定義された状態について前記第２の属性空間で管理される前記差分情報の総和を、前記基準状態の状態情報に加算して導出される状態情報からの差分であることを特徴とする請求項２に記載のプログラム。
【請求項４】
前記決定する処理において決定される属性空間は、前記提示属性値セットの少なくともいずれかの属性で形成される属性空間であることを特徴とする請求項２または３に記載のプログラム。
【請求項５】
前記導出する処理において、前記決定された属性空間のうちの前記定義された状態が存在しない属性空間については、前記補間演算が行われないことを特徴とする請求項４に記載のプログラム。
【請求項６】
前記複数種類の属性の各々には、基準値を含む、前記状態定義が行われた属性値セットに含まれる属性値について定義点が設けられ、
前記提示要求がなされた状態の状態情報に係る前記補間演算は、前記決定された属性空間に関連付けられている各属性において、前記提示属性値セットの同属性の値を範囲に含む、２つの前記定義点で示される区間を対象として行われる
ことを特徴とする請求項２乃至５のいずれか１項に記載のプログラム。
【請求項７】
前記決定された属性空間ごとに行われる前記補間演算において、属性空間の該補間演算の対象となる、前記定義点の組み合わせで構成される属性値セットに状態定義がなされていない場合、該属性値セットにより識別される状態については、差分がないことを示す前記差分情報が用いられることを特徴とする請求項６に記載のプログラム。
【請求項８】
前記プログラムは、前記描画オブジェクトの状態が編集されたことに応じて、前記状態テーブルを更新する処理を、さらに前記コンピュータに実行させ、
前記更新する処理は、
前記編集された状態を識別する編集属性値セットを取得する処理と、
前記編集された状態の前記基準状態からの状態情報の差分を、前記状態テーブルに登録する処理と、
を含むことを特徴とする請求項２乃至７のいずれか１項に記載のプログラム。
【請求項９】
前記更新する処理は、前記編集属性値セットの全ての属性群で形成される第３の属性空間よりも高い次元数の第４の属性空間に定義された状態であって、前記編集された状態について前記第３の属性空間で管理される前記差分情報を用いて状態情報が導出される状態について、該状態の状態情報が編集前後で変化しないように調整する処理をさらに含む
ことを特徴とする請求項８に記載のプログラム。
【請求項１０】
前記状態テーブルは、低い次元数の属性空間に対してなされた編集に応じて状態情報を変化させるか否かを示す情報を、前記定義された状態の各々についてさらに管理し
前記第４の属性空間に定義された状態について前記編集に応じて状態情報を変化させないことを示す情報が管理されている場合に、前記調整する処理は実行される
ことを特徴とする請求項９に記載のプログラム。
【請求項１１】
前記属性テーブルは、前記複数種類の属性の各々について、他の属性との関連付けを許容するか否かを示す情報をさらに管理し、
前記編集属性値セットが基準値以外の属性値を示す属性を複数含み、かつ該複数の属性に前記他の属性との関連付けが許容されない属性を含む場合に、前記登録する処理は実行されないよう制御される
ことを特徴とする請求項８乃至１０のいずれか１項に記載のプログラム。
【請求項１２】
前記プログラムは、
前記描画オブジェクトについて形成される属性空間を、関連付けられた属性の全てを含み、かつ、より高い次元数を有する属性空間に統合する処理と、
前記統合後の属性空間の各々について、前記統合に用いられた属性空間に定義されていた状態を識別する属性値セットを、該統合後の属性空間に関連付けられた属性群の属性値で構成される属性値セットに変換する処理と、
前記統合後の属性空間の各々について、前記統合に用いられた属性空間で管理されていた前記差分情報に基づいて、該統合後の属性空間に定義された状態の差分情報を生成する処理と、
前記変換された属性値セット、及び該属性値セットに対応する前記生成された差分情報を管理する、新たな状態テーブルを出力する処理と、
をさらに前記コンピュータに実行させ、
前記統合後の属性空間に定義された状態の差分情報は、前記統合前に該状態を定義していた属性空間で管理されていた前記差分情報に、前記統合前に該属性空間よりも低い次元数を有し、かつ前記統合に用いられた属性空間で管理されていた前記差分情報を加算した値である
ことを特徴とする請求項２乃至１１のいずれか１項に記載のプログラム。
【請求項１３】
前記統合前の１つの属性空間について、該１つの属性空間に関連付けられた全ての属性を含み、かつ、より高い次元数を有する属性空間が同一の次元数に複数存在する場合に、前記生成する処理において、前記１つの属性空間で管理されていた前記差分情報を該同一の次元数に存在する属性空間の数で除した値が、前記統合において加算されることを特徴とする請求項１２に記載のプログラム。
【請求項１４】
請求項１乃至１３のいずれか１項に記載のプログラムを記録した、コンピュータが読み取り可能な記録媒体。
【請求項１５】
要求された状態の描画オブジェクトを提示する描画方法であって、
前記描画オブジェクトについて設けられた複数種類の属性、及び属性間の関連性の有無を管理する属性テーブルと、状態定義が行われた属性値セット、及び該定義された状態を示す状態情報を管理する状態テーブルと、を取得する工程と、
提示要求がなされた前記描画オブジェクトの状態を識別する属性値で構成された提示属性値セットを取得する工程と
前記提示要求がなされた状態について、状態情報の補間演算を行う属性空間を、前記提示属性値セット、前記属性テーブル、及び前記状態テーブルに基づいて決定する工程と、
前記決定された属性空間の各々について前記補間演算を行い、前記提示要求がなされた状態の状態情報を導出する工程と、
前記導出された状態情報に基づいて前記描画オブジェクトを提示する工程と、
を有し、
前記描画オブジェクトには、前記複数種類の属性値がいずれも基準値であることで識別される基準状態が定められ、
前記複数種類の属性の各々、及び関連性を有する属性群の各々は、個別の属性空間を形成し、
前記状態テーブルは、前記定義された状態の前記基準状態から状態情報の差分を、対応する属性空間に分離して差分情報として管理するものであり、
前記導出する工程において、
前記決定された属性空間ごとに、該属性空間に定義された状態について管理される前記差分情報を用いて前記補間演算が行われ、
前記決定された属性空間の補間演算結果の総和を前記基準状態の状態情報に加算することで、前記提示要求がなされた状態の状態情報が導出される
ことを特徴とする描画方法。