オブジェクト修正処理装置、方法及びプログラム
【課題】マウスやタブレット等の比較的単純な入力デバイスを用いて、オブジェクトに対する形状、位置、その他の属性の変更を、ユーザに直感的に理解しやすい手法で実行することができる装置、方法及びプログラムを提供する。
【解決手段】固有の属性を持つ複数のサンプルオブジェクトを、表示画面の異なる位置に配置するステップと、ユーザによって指定できるデバイスから指定された表示画面のポイント位置を取得するステップと、ターゲットオブジェクトの属性を変更するステップと、変更された属性に基づいてターゲットオブジェクトに修正を加えるステップを有する方法。
【解決手段】固有の属性を持つ複数のサンプルオブジェクトを、表示画面の異なる位置に配置するステップと、ユーザによって指定できるデバイスから指定された表示画面のポイント位置を取得するステップと、ターゲットオブジェクトの属性を変更するステップと、変更された属性に基づいてターゲットオブジェクトに修正を加えるステップを有する方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、オブジェクトの修正を処理する装置、方法及びプログラムに関する。
【背景技術】
【0002】
コンピュータグラフィックスの分野において、仮想空間上の三次元モデル(オブジェクト)、例えば骨格モデル(スケルトンモデル)を用いて、ディスプレイ上に三次元モデルの意図したポーズ(姿勢、形状等)を表示させる様々な手法が存在する。また、実空間でロボットに所望の姿勢を取らせたり動作させたりするための様々な手法が存在する。
【0003】
仮想空間上あるいは実空間上のオブジェクトに意図したポーズを取らせるためにオペレータが用いるインターフェースとしては、例えば、マウス、二次元タブレット等がある。また、人体に設置したマーカをカメラで撮像することにより、人体の各部位の位置を計測することによって所望の入力値を得る手法も存在する。加えて、グローブ型のマニピュレータからなる入力装置も利用されている。さらに、人体の動きそのものを光あるいは超音波等を利用して非接触で計測し、この計測された値を利用する手法も知られている。
【発明の概要】
【発明が解決しようとする課題】
【0004】
これらの従来の入力インターフェースのうち、マウスや二次元タブレット等のポインティングデバイスは、上述のその他の入力デバイスに比較して廉価な入力デバイスであり、一般に普及している。しかしながら、例えば三次元空間に存在するモデルに対して、オペレータの意図した通りに、所望のポーズを取らせるためには、多様なパラメータを設定あるいは変更する必要があり、煩雑な操作が必要であった。また、オペレータが、多様なパラメータの値の変化とポーズの変化との関係を直感的に把握しにくいという問題があった。
【0005】
これに比較して、人体にマーカを設置してその動きを計測したり、グローブ型のマニピュレータを用いて手の動きを計測したりすることは、ある程度オペレータに直感的に把握できる処理が可能となる。しかしながら、装置が複雑化するとともに、一般にも普及していない等の問題がある。また、操作に不慣れなユーザにとっては、扱いにくいという欠点がある。加えて、これらの入力デバイスは高価である。
【0006】
本発明は、上述の従来技術の問題点に鑑みてなされたものである。マウスやタブレット等の比較的単純な入力デバイスを用いて、オブジェクトに対する形状、位置、その他の属性の変更を、ユーザに直感的に理解しやすい手法で実行することができる装置、方法及びプログラムを提供することを目的とする。
【0007】
なお、本発明の課題及び目的は、上述の記載に限定されるものではない。
【0008】
また、本願明細書では、ディスプレイ上で表示し得る仮想空間上の三次元モデル、特に骨格モデル(スケルトンモデル)を操作対象のオブジェクトとして取り上げて説明を行う。しかしながら、本発明の対象は、上記骨格モデルに限られるものではなく、また、二次元空間のモデルにも適用できるものである。加えて、本発明は、実空間上のオブジェクトに対しても、同様に適用できる。従って、請求項に係る本発明の技術的範囲は、仮想空間及び実空間におけるオブジェクトへの適用に及ぶものである点に留意すべきである。
【課題を解決するための手段】
【0009】
本明細書では、対象とするモデルが複数のパラメータを持つものとし、各パラメータの具体的な値の組を、そのモデルの属性と定義する。
【0010】
本発明は、上記課題を解決するためになされたものであり、その第1の側面は、ターゲットオブジェクトが有する複数のパラメータの値の組である属性を変更することによってターゲットオブジェクトを修正する方法であって、複数のサンプルオブジェクトを、表示画面の異なる位置に配置する、サンプルオブジェクト配置ステップであって、前記複数のサンプルオブジェクトの各々は、固有の属性を持つ、サンプルオブジェクト配置ステップと、前記表示画面の中のポイント位置をユーザによって指定できるデバイスから、指定されたポイント位置を取得するポイント位置取得ステップと、前記複数のサンプルオブジェクトが配置された各々の位置と、前記ポイント位置とに基づいて、前記複数のサンプルオブジェクトの各々の属性の補間値を算出し、前記ターゲットオブジェクトの属性のうち予め選択されたパラメータに関連する属性を前記補間値に置き換えることにより、前記ターゲットオブジェクトの属性を変更する属性変更ステップと、前記変更された属性に基づいて前記ターゲットオブジェクトに修正を加えるターゲットオブジェクト修正ステップと、 を有する方法を提供することである。
【0011】
更に、前記選択は、オペレータからの指示を受け取ることによって決定されてもよい。
【0012】
また、前記サンプルオブジェクトの前記固有の属性は、オペレータからの指示を受け取ることによって、予め定められた複数の属性のうちいずれかに決定されてもよい。
【0013】
更に、前記複数のサンプルオブジェクトは、凸多角形の頂点の位置に配置され、前記凸多角形の内部に存在する前記ポイント位置を用いてもよい。
【0014】
更に、前記複数のサンプルオブジェクトは、凸多面体の頂点の位置に配置され、前記凸多面体の内部に存在する前記ポイント位置を用いてもよい。
【0015】
また、前記パラメータは、骨格モデルにおける関節を中心とした骨の回転量を表してもよい。
【0016】
また、前記回転量は、関節に接続された二つの骨の角度、又は骨の捻り量を表してもよい。
【発明の効果】
【0017】
本発明によれば、ユーザに直感的に分かりやすく簡便な操作で、オブジェクトの属性を変更することができる。例えば、簡便な操作で三次元モデルに所望のポーズを取らせることができる。
【図面の簡単な説明】
【0018】
【図1】本発明のハードウエア構成を例示した図である。
【図2】本発明の実施例において用いられる骨格モデルを示した図である。
【図3】本発明の実施例を示した図である。
【図4】本発明の実施例を示した図である。
【図5】本発明の実施例を示した図である。
【図6】本発明の実施例を示した図である。
【図7】本発明の実施例を示した図である。
【図8】本発明の実施例を示した図である。
【図9】本発明の実施例を示した図である。
【図10】三角形を用いた属性の補間を説明するための図である。
【図11】三角形を用いた属性の補間を説明するための図である。
【図12】三角形を用いた属性の補間を説明するための図である。
【図13】三角錐を用いた属性の補間及びユーザーインターフェースの図である。
【図14】本発明の実施例の方法のフローを示した図である
【図15】本発明の実施例の装置の構成を示した図である。
【発明を実施するための形態】
【0019】
図1は、本発明のハードウエア構成100を示したものである。本発明の装置は、CPU(110)からバス170を介して各種の装置と接続されている。メモリ120は、静的なメモリと動的なメモリとを含み、画像、軌跡、プログラム等の情報が保存される。入力装置130は、ポインタの移動、テキストの入力、コマンドの指示等を行うものであり、例えば、マウス、タブレット、タッチスクリーン、キーボード等が接続される。表示装置140は、画像やユーザーインターフェースの表示等が行える。タブレットやタッチスクリーンは、表示装置140と組み合わせて動作する場合がある。加えて、画像等を印刷するプリンタ160が接続されている。以上の装置構成は例示であり、その他の装置が組み合わされてもよい。更に、実空間におけるロボットを制御する制御装置(図示せず)を有してもよい。
【0020】
図2(a)は、本発明を説明するために用いる手の骨格モデルを示している。CGキャラクタ等を動かしてポーズを設定したりアニメーションを作成したりする際に,複数の骨を関節で繋いだ骨格モデル(スケルトンモデル)(図2(a))が使われる場合がある。このような骨格モデルは、仮想空間ばかりでなく、ロボット制御等の実空間における対象物を制御する場合にも用いられ得る。
【0021】
図2(b)のように関節の両側の骨のうち一方を親骨,他方を子骨と呼ぶ。例えば、関節を中心とした各骨の回転(曲げ,捻り)を多次元のパラメータとする。この多次元のパラメータの値を設定することにより、骨格モデルの属性が決定され、この属性に基づく特定のポーズが決定される。骨の向きを表すために,例えば各々の骨に対して図2(b)のように座標系が定められてもよい。
【0022】
骨格モデルの属性を決定するパラメータとしては、上述した回転の量以外に、任意の対象をパラメータとして、その値を変更することができる。例えば、特定の骨の長さ又は太さをパラメータとしてもよい。また、例えば、骨格モデルを覆う皮膚に適用するテクスチャをパラメータとしてもよい。
【実施例】
【0023】
図3は、本発明の実施例を示す図であり、図2(a)に示された手の骨格モデルが利用されている。ユーザーインターフェースとしての表示画面300が示されている。表示画面300上に、骨格モデルの変更対象であるターゲットオブジェクト301が表示されている。
【0024】
オペレータは、ハンドセットアップウインドウ310内に表示されている複数のコマンドをマウス等のポインティングデバイスで操作することによって、ターゲットオブジェクト301に所望のポーズを取らせることができる。
【0025】
ハンドセットアップウインドウ310内には、三角形350が存在する。三角形350内には、所望の位置をポインティングデバイスによってオペレータが指定可能なポインタ380が示されている。三角形350の各頂点位置には、手刀の形をしたサンプルオブジェクト320、握りこぶしの形をしたサンプルオブジェクト331乃至334、パーの形をしたサンプルオブジェクト340が配置されている。なお、握りこぶしの形は331乃至334の複数のポーズのうちから所望のポーズをユーザが選択できるようになっている。本実施例の場合、331の握りこぶしの形が選択されていることが示されている。なお、他のサンプルオブジェクトについても、複数の選択肢を表示させてもよい。あるいは、ユーザが作成したオブジェクトをサンプルオブジェクトとして採用できるようにしてもよい。
【0026】
ホールド領域361乃至365は、それぞれ、親指、人差し指、中指、薬指及び小指に対応しており、手のイラストレーション390によって、この対応関係がユーザに分かるようになっている。ホールド領域361乃至365のいずれかをユーザがクリックすると、そのクリックに応じた指の制御を行えないようにして、該当する指のポーズを固定することができる。この設定に関しては、後述する。
【0027】
371乃至374は、右手及び左手のいずれか一方又は両方を制御対象とするかを、ユーザが選択できるようにするためのボタンである。なお、「自動」を選択した場合には、予め定められた規則に従って、右手及び左手のいずれか一方又は両方を制御対象とするかが自動的に決定されてもよい。または、デフォルトの設定値に従って決定されてもよい。
【0028】
図3においては、パーのサンプルオブジェクトの位置にポインタ位置が存在するため、ターゲットオブジェクト301の形状はパーの形状となっている。
【0029】
図4は、ポインタ位置380が、手刀のサンプルオブジェクトの位置に存在する場合を示した図である。この場合には、ターゲットオブジェクト401が手刀の形のサンプルオブジェクト320の形状と一致している。
【0030】
図5は、ポインタ位置380が、三角形350の中央やや左よりに存在している例を示している。この場合には、ポインタ位置380の座標と、三角形350の各頂点329、339、及び349のそれぞれの座標に基づいて、各サンプルオブジェクト320、331、340の属性を補間した補間値を有する補間属性を算出し、この補間属性に対応したターゲットオブジェクト501のポーズを生成し、画面に表示させる。補間属性の算出に関しては、後述する。
【0031】
このように、オペレータが三角形350内の位置をポイントすることによってポインタ位置380を決定し、このポインタ位置380に対応する補間属性を算出することによって、ターゲットオブジェクトのポーズを、ユーザの意図したとおりに修正することができる。
【0032】
図6は、一部の属性を修正する例を示した図である。本実施例では、最初にポインタ位置が握りこぶしの位置339に存在していたと仮定する。この場合には、ターゲットオブジェクト601は、握りこぶしの形を有することは、上述の例から明らかである。この状態で、ユーザが、ホールド領域361、364及び365をクリックし、鍵マーク366、367及び368を表示させたと仮定する。これらの鍵マーク366、367及び368が表示されると、対応する親指、薬指および小指の属性は、固定される。ホールド領域362及び363には、鍵マークが設定されていないため、人差し指及び中指の属性が修正対象として選択されることになる。その後オペレータがポインタ位置380を図6に示される位置に移動させると、ターゲットオブジェクトの人差し指及び中指の属性が、算出された補間属性に置き換えられる。その結果として、ターゲットオブジェクトがチョキのポーズに修正され、表示される。
【0033】
なお、図6では、属性を固定する指を鍵マークで設定させているが、属性を修正する指をマウスで指定できるようにさせてもよい。また、上述の実施例では、鍵マークが表示された指の属性を固定させているが、補間の算出の方式を任意の算出方法に変更させてもよい。あるいは、属性を固定させるのではなく、属性をデフォルト値に設定するようにさせてもよい。
【0034】
上述の実施例は、手のオブジェクトのポーズの修正を例示しているが、オブジェクトは、手以外のものであってもよい。また、表示されているターゲットオブジェクトは、仮想空間上のオブジェクトであるが、算出された補間オブジェクトに基づいて、実空間のオブジェクトを制御させてもよい。実空間のオブジェクトの制御方法については、当業者に周知の種々の方法が採用できるため、本明細書では説明しない。
【0035】
また、図7、図8、図9は、ポインタ位置380が、三角形の頂点339に位置している場合において、握りこぶし332、333、334をそれぞれ選択した場合のターゲットオブジェクト701、801、901の形状を示している。
【0036】
[補間の算出の例]
以下に、三角形を使用した線形補間について具体的に説明する。なお、本発明の補間は、線形補間に限定されるものではない点に留意すべきである。また、三角形に限定されるものではなく、多角形に拡張可能である。さらに、三角形のような平面図形に限定されるものでもない。したがって、三次元空間上の多面体を利用した補間に拡張できる。なお、多面体を利用したユーザーインターフェースについては後述する。
【0037】
図10は、P0、P1、P2を頂点とする三角形に点Pが存在している図である。三角形内の点Pが指定されたときに,その位置に応じて頂点の持つ属性を線形補間する例を説明する。
【0038】
頂点P0,P1,P2は,それぞれ属性a0,a1,a2を持っているとする。点Pの属性aは,以下のように3つの値a0,a1,a2を線形補間することによって得られる。
【0039】
図11のように線分P0Pを延長し,辺P1P2との交点をP’とする。図11に示すように、
P2P’:P’P1=α:(1−α) (1)
P’P:PP0=β:(1−β) (2)
であるとする。点P’の属性a’は,P2とP1の間を線形補間して次式のようになる。
a’=αa1+(1−α)a2 (3)
aは,P’とP0の間を線形補間して,次式により得られる。
a=βa0+(1−β)a’ (4)
=βa0+α(1−β)a1+(1−α)(1−β)a2 (5)
また,三角形の面積に着目すると,aは以下のようにして求めることもできる。△P0P1P2の面積をSとし,図12のように,△PP1P2,△PP2P0,△PP0P1の面積をそれぞれS0,S1,S2とする。三角形の面積比に注目すると,次式のようになる。
△P0P’P2:△P0P’P1=α:(1−α) (6)
△P0P’P2:△PP’P2=△P0P’P1:△PP’P1=1:β (7)
よって,次のような面積比が得られる。
S0/S=β
S1/S=α(1−β)
S2/S=(1−α)(1−β) (8)
これを用いると,aは次式で表される。
a=a0S0/S+a1S1/S+a2S2/S (9)
点P0,P1,P2,Pの位置座標をそれぞれv0,v1,v2,vとし,C01,C12,C20,C0,C1,C2を次のように定める
C01≡v0×v1 (10)
C12≡v1×v2 (11)
C20≡v2×v0 (12)
C0≡v×v0 (13)
C1≡v×v1 (14)
C2≡v×v2 (15)
すると,三角形の面積は次のように表される。
S=(v0×v1+v1×v2+v2×v0)/2=(C01+C12+C20)/2 (16)
S0=(v×v1+v1×v2+v2×v)/2=(C1−C2+C12)/2 (17)
S1=(v×v2+v2×v0+v0×v)/2=(C2−C0+C20)/2 (18)
S2=(v×v0+v0×v1+v1×v)/2=(C0−C1+C01)/2 (19)
これを用いると,線形補間の値aは次式で表される。
a=(a0(C1−C2+C12)+a1(C2−C0+C20)+a2(C0−C1+C01))/(C01+C12+C20)
なお、例示した実施例では、補間において内挿を前提としているが、補間は、外挿を含むものであり、本願発明は内挿の補間に限定されるものではない。なお、外挿を用いて補間する場合には、骨格モデルが不自然な形になる場合がある。この場合には、骨格モデルの可動範囲を制限すればよい。骨格モデルの可動範囲の制限に関しては、種々のものが提案されており、当業者に周知であるので、本明細書では説明しない。
【0040】
[三角錐を用いたユーザーインターフェース]
三角形を用いて三つのサンプルオブジェクトの属性を補間した実施例を拡張し、例えば三角錐を用いることにより、四つのサンプルオブジェクトの属性の補間を行うことができる。
【0041】
図13(a)に、三角錐を用いたユーザーインターフェースを示す。頂点P0,P1,P2,P3は,それぞれ属性a0,a1,a2,a3を持っているとする。三角錐に点Pが指定されたときに,その位置に応じて頂点の持つ属性を線形補間する。線形補間の考え方は、上述の三角形を用いた場合の線形補間を拡張すればよい。
【0042】
例えば、ユーザは、点Pをマウスでドラッグすることにより、点Pを含む平面であって、画面に平行な平面に沿ってPを移動させることができるようにしてもよい。また、ユーザは、三角錐の任意の位置をマウスで摘んで回転させることにより、図13(b)のように三角錐の向きを変えることができるようにしてもよい。この状態で、ユーザがマウスで点Pを摘んで移動させることにより、ユーザは、点Pを含む平面であって画面に平行な平面に沿って点Pを移動させることができるようにしてもよい。図13(a)と図13(b)における点Pの移動できる領域は異なったものとなる。したがって、ユーザは、三角錐の回転と点Pの移動を繰り返すことにより、所望の位置に点Pを移動させることができる。上述の点Pの移動は、例示的なものであって、その他の手法により点Pを移動させてもよい。
【0043】
なお、本発明は、上述の三角錐を利用する実施例に限定されるものではなく、任意の多面体の頂点にサンプルオブジェクトを配置するユーザーインターフェースを実現することが可能であることは言うまでもない。
【0044】
[実施例の処理の流れ及び装置構成]
図14は、本発明の実施例に係る方法のフローを示した図である。まず、複数のサンプルオブジェクトを、ユーザーインターフェース画面上に配置し表示させる(S1401)。ユーザが用いるマウス等のポインティングデバイスで、ポイントされたポイント位置の情報を取得する(S1403)。そして、各々のサンプルオブジェクトの位置(三角形の頂点位置)とポイント位置に基づいて、サンプルオブジェクトの属性を補間し、得られた補間属性によってターゲットオブジェクトの属性を変更する(S1405)。そして、変更された属性に基づいて、ターゲットオブジェクトを修正する(S1407)。
【0045】
図15は、本発明の実施例の装置構成を示した図である。本発明は、サンプルオブジェクト配置部1501によって、複数のサンプルオブジェクトを、ユーザーインターフェース画面上に配置し表示させる。ポイント位置取得部1503は、ユーザが用いるマウス等のポインティングデバイスで、ポイントされたポイント位置の情報を取得する。属性変更部1505は、各々のサンプルオブジェクトの位置(三角形の頂点位置)とポイント位置に基づいて、サンプルオブジェクトの属性を補間し、得られた補間属性によってターゲットオブジェクトの属性を変更する。ターゲットオブジェクト修正部1507は、変更された属性に基づいて、ターゲットオブジェクトを修正する。実施例の装置は、その他、記憶部1509、入力部1511、表示部1513、出力部1515を有してもよい。本発明は、図15に示した構成を全て含むことが必要条件ではない。また、他の構成を含んでもよい。
【0046】
なお、請求項に係る方法の発明は、矛盾のない限り、請求項の記載の順番を入れ替えて実行することができる。そして、そのような順番を入れ替えた方法も、当該請求項の技術的範囲に属することは言うまでもない。
【符号の説明】
【0047】
310 ハンドセットアップウインドウ
320 331〜334、340 サンプルオブジェクト
301、401、501、601、701、801、901 ターゲットオブジェクト
【技術分野】
【0001】
本発明は、オブジェクトの修正を処理する装置、方法及びプログラムに関する。
【背景技術】
【0002】
コンピュータグラフィックスの分野において、仮想空間上の三次元モデル(オブジェクト)、例えば骨格モデル(スケルトンモデル)を用いて、ディスプレイ上に三次元モデルの意図したポーズ(姿勢、形状等)を表示させる様々な手法が存在する。また、実空間でロボットに所望の姿勢を取らせたり動作させたりするための様々な手法が存在する。
【0003】
仮想空間上あるいは実空間上のオブジェクトに意図したポーズを取らせるためにオペレータが用いるインターフェースとしては、例えば、マウス、二次元タブレット等がある。また、人体に設置したマーカをカメラで撮像することにより、人体の各部位の位置を計測することによって所望の入力値を得る手法も存在する。加えて、グローブ型のマニピュレータからなる入力装置も利用されている。さらに、人体の動きそのものを光あるいは超音波等を利用して非接触で計測し、この計測された値を利用する手法も知られている。
【発明の概要】
【発明が解決しようとする課題】
【0004】
これらの従来の入力インターフェースのうち、マウスや二次元タブレット等のポインティングデバイスは、上述のその他の入力デバイスに比較して廉価な入力デバイスであり、一般に普及している。しかしながら、例えば三次元空間に存在するモデルに対して、オペレータの意図した通りに、所望のポーズを取らせるためには、多様なパラメータを設定あるいは変更する必要があり、煩雑な操作が必要であった。また、オペレータが、多様なパラメータの値の変化とポーズの変化との関係を直感的に把握しにくいという問題があった。
【0005】
これに比較して、人体にマーカを設置してその動きを計測したり、グローブ型のマニピュレータを用いて手の動きを計測したりすることは、ある程度オペレータに直感的に把握できる処理が可能となる。しかしながら、装置が複雑化するとともに、一般にも普及していない等の問題がある。また、操作に不慣れなユーザにとっては、扱いにくいという欠点がある。加えて、これらの入力デバイスは高価である。
【0006】
本発明は、上述の従来技術の問題点に鑑みてなされたものである。マウスやタブレット等の比較的単純な入力デバイスを用いて、オブジェクトに対する形状、位置、その他の属性の変更を、ユーザに直感的に理解しやすい手法で実行することができる装置、方法及びプログラムを提供することを目的とする。
【0007】
なお、本発明の課題及び目的は、上述の記載に限定されるものではない。
【0008】
また、本願明細書では、ディスプレイ上で表示し得る仮想空間上の三次元モデル、特に骨格モデル(スケルトンモデル)を操作対象のオブジェクトとして取り上げて説明を行う。しかしながら、本発明の対象は、上記骨格モデルに限られるものではなく、また、二次元空間のモデルにも適用できるものである。加えて、本発明は、実空間上のオブジェクトに対しても、同様に適用できる。従って、請求項に係る本発明の技術的範囲は、仮想空間及び実空間におけるオブジェクトへの適用に及ぶものである点に留意すべきである。
【課題を解決するための手段】
【0009】
本明細書では、対象とするモデルが複数のパラメータを持つものとし、各パラメータの具体的な値の組を、そのモデルの属性と定義する。
【0010】
本発明は、上記課題を解決するためになされたものであり、その第1の側面は、ターゲットオブジェクトが有する複数のパラメータの値の組である属性を変更することによってターゲットオブジェクトを修正する方法であって、複数のサンプルオブジェクトを、表示画面の異なる位置に配置する、サンプルオブジェクト配置ステップであって、前記複数のサンプルオブジェクトの各々は、固有の属性を持つ、サンプルオブジェクト配置ステップと、前記表示画面の中のポイント位置をユーザによって指定できるデバイスから、指定されたポイント位置を取得するポイント位置取得ステップと、前記複数のサンプルオブジェクトが配置された各々の位置と、前記ポイント位置とに基づいて、前記複数のサンプルオブジェクトの各々の属性の補間値を算出し、前記ターゲットオブジェクトの属性のうち予め選択されたパラメータに関連する属性を前記補間値に置き換えることにより、前記ターゲットオブジェクトの属性を変更する属性変更ステップと、前記変更された属性に基づいて前記ターゲットオブジェクトに修正を加えるターゲットオブジェクト修正ステップと、 を有する方法を提供することである。
【0011】
更に、前記選択は、オペレータからの指示を受け取ることによって決定されてもよい。
【0012】
また、前記サンプルオブジェクトの前記固有の属性は、オペレータからの指示を受け取ることによって、予め定められた複数の属性のうちいずれかに決定されてもよい。
【0013】
更に、前記複数のサンプルオブジェクトは、凸多角形の頂点の位置に配置され、前記凸多角形の内部に存在する前記ポイント位置を用いてもよい。
【0014】
更に、前記複数のサンプルオブジェクトは、凸多面体の頂点の位置に配置され、前記凸多面体の内部に存在する前記ポイント位置を用いてもよい。
【0015】
また、前記パラメータは、骨格モデルにおける関節を中心とした骨の回転量を表してもよい。
【0016】
また、前記回転量は、関節に接続された二つの骨の角度、又は骨の捻り量を表してもよい。
【発明の効果】
【0017】
本発明によれば、ユーザに直感的に分かりやすく簡便な操作で、オブジェクトの属性を変更することができる。例えば、簡便な操作で三次元モデルに所望のポーズを取らせることができる。
【図面の簡単な説明】
【0018】
【図1】本発明のハードウエア構成を例示した図である。
【図2】本発明の実施例において用いられる骨格モデルを示した図である。
【図3】本発明の実施例を示した図である。
【図4】本発明の実施例を示した図である。
【図5】本発明の実施例を示した図である。
【図6】本発明の実施例を示した図である。
【図7】本発明の実施例を示した図である。
【図8】本発明の実施例を示した図である。
【図9】本発明の実施例を示した図である。
【図10】三角形を用いた属性の補間を説明するための図である。
【図11】三角形を用いた属性の補間を説明するための図である。
【図12】三角形を用いた属性の補間を説明するための図である。
【図13】三角錐を用いた属性の補間及びユーザーインターフェースの図である。
【図14】本発明の実施例の方法のフローを示した図である
【図15】本発明の実施例の装置の構成を示した図である。
【発明を実施するための形態】
【0019】
図1は、本発明のハードウエア構成100を示したものである。本発明の装置は、CPU(110)からバス170を介して各種の装置と接続されている。メモリ120は、静的なメモリと動的なメモリとを含み、画像、軌跡、プログラム等の情報が保存される。入力装置130は、ポインタの移動、テキストの入力、コマンドの指示等を行うものであり、例えば、マウス、タブレット、タッチスクリーン、キーボード等が接続される。表示装置140は、画像やユーザーインターフェースの表示等が行える。タブレットやタッチスクリーンは、表示装置140と組み合わせて動作する場合がある。加えて、画像等を印刷するプリンタ160が接続されている。以上の装置構成は例示であり、その他の装置が組み合わされてもよい。更に、実空間におけるロボットを制御する制御装置(図示せず)を有してもよい。
【0020】
図2(a)は、本発明を説明するために用いる手の骨格モデルを示している。CGキャラクタ等を動かしてポーズを設定したりアニメーションを作成したりする際に,複数の骨を関節で繋いだ骨格モデル(スケルトンモデル)(図2(a))が使われる場合がある。このような骨格モデルは、仮想空間ばかりでなく、ロボット制御等の実空間における対象物を制御する場合にも用いられ得る。
【0021】
図2(b)のように関節の両側の骨のうち一方を親骨,他方を子骨と呼ぶ。例えば、関節を中心とした各骨の回転(曲げ,捻り)を多次元のパラメータとする。この多次元のパラメータの値を設定することにより、骨格モデルの属性が決定され、この属性に基づく特定のポーズが決定される。骨の向きを表すために,例えば各々の骨に対して図2(b)のように座標系が定められてもよい。
【0022】
骨格モデルの属性を決定するパラメータとしては、上述した回転の量以外に、任意の対象をパラメータとして、その値を変更することができる。例えば、特定の骨の長さ又は太さをパラメータとしてもよい。また、例えば、骨格モデルを覆う皮膚に適用するテクスチャをパラメータとしてもよい。
【実施例】
【0023】
図3は、本発明の実施例を示す図であり、図2(a)に示された手の骨格モデルが利用されている。ユーザーインターフェースとしての表示画面300が示されている。表示画面300上に、骨格モデルの変更対象であるターゲットオブジェクト301が表示されている。
【0024】
オペレータは、ハンドセットアップウインドウ310内に表示されている複数のコマンドをマウス等のポインティングデバイスで操作することによって、ターゲットオブジェクト301に所望のポーズを取らせることができる。
【0025】
ハンドセットアップウインドウ310内には、三角形350が存在する。三角形350内には、所望の位置をポインティングデバイスによってオペレータが指定可能なポインタ380が示されている。三角形350の各頂点位置には、手刀の形をしたサンプルオブジェクト320、握りこぶしの形をしたサンプルオブジェクト331乃至334、パーの形をしたサンプルオブジェクト340が配置されている。なお、握りこぶしの形は331乃至334の複数のポーズのうちから所望のポーズをユーザが選択できるようになっている。本実施例の場合、331の握りこぶしの形が選択されていることが示されている。なお、他のサンプルオブジェクトについても、複数の選択肢を表示させてもよい。あるいは、ユーザが作成したオブジェクトをサンプルオブジェクトとして採用できるようにしてもよい。
【0026】
ホールド領域361乃至365は、それぞれ、親指、人差し指、中指、薬指及び小指に対応しており、手のイラストレーション390によって、この対応関係がユーザに分かるようになっている。ホールド領域361乃至365のいずれかをユーザがクリックすると、そのクリックに応じた指の制御を行えないようにして、該当する指のポーズを固定することができる。この設定に関しては、後述する。
【0027】
371乃至374は、右手及び左手のいずれか一方又は両方を制御対象とするかを、ユーザが選択できるようにするためのボタンである。なお、「自動」を選択した場合には、予め定められた規則に従って、右手及び左手のいずれか一方又は両方を制御対象とするかが自動的に決定されてもよい。または、デフォルトの設定値に従って決定されてもよい。
【0028】
図3においては、パーのサンプルオブジェクトの位置にポインタ位置が存在するため、ターゲットオブジェクト301の形状はパーの形状となっている。
【0029】
図4は、ポインタ位置380が、手刀のサンプルオブジェクトの位置に存在する場合を示した図である。この場合には、ターゲットオブジェクト401が手刀の形のサンプルオブジェクト320の形状と一致している。
【0030】
図5は、ポインタ位置380が、三角形350の中央やや左よりに存在している例を示している。この場合には、ポインタ位置380の座標と、三角形350の各頂点329、339、及び349のそれぞれの座標に基づいて、各サンプルオブジェクト320、331、340の属性を補間した補間値を有する補間属性を算出し、この補間属性に対応したターゲットオブジェクト501のポーズを生成し、画面に表示させる。補間属性の算出に関しては、後述する。
【0031】
このように、オペレータが三角形350内の位置をポイントすることによってポインタ位置380を決定し、このポインタ位置380に対応する補間属性を算出することによって、ターゲットオブジェクトのポーズを、ユーザの意図したとおりに修正することができる。
【0032】
図6は、一部の属性を修正する例を示した図である。本実施例では、最初にポインタ位置が握りこぶしの位置339に存在していたと仮定する。この場合には、ターゲットオブジェクト601は、握りこぶしの形を有することは、上述の例から明らかである。この状態で、ユーザが、ホールド領域361、364及び365をクリックし、鍵マーク366、367及び368を表示させたと仮定する。これらの鍵マーク366、367及び368が表示されると、対応する親指、薬指および小指の属性は、固定される。ホールド領域362及び363には、鍵マークが設定されていないため、人差し指及び中指の属性が修正対象として選択されることになる。その後オペレータがポインタ位置380を図6に示される位置に移動させると、ターゲットオブジェクトの人差し指及び中指の属性が、算出された補間属性に置き換えられる。その結果として、ターゲットオブジェクトがチョキのポーズに修正され、表示される。
【0033】
なお、図6では、属性を固定する指を鍵マークで設定させているが、属性を修正する指をマウスで指定できるようにさせてもよい。また、上述の実施例では、鍵マークが表示された指の属性を固定させているが、補間の算出の方式を任意の算出方法に変更させてもよい。あるいは、属性を固定させるのではなく、属性をデフォルト値に設定するようにさせてもよい。
【0034】
上述の実施例は、手のオブジェクトのポーズの修正を例示しているが、オブジェクトは、手以外のものであってもよい。また、表示されているターゲットオブジェクトは、仮想空間上のオブジェクトであるが、算出された補間オブジェクトに基づいて、実空間のオブジェクトを制御させてもよい。実空間のオブジェクトの制御方法については、当業者に周知の種々の方法が採用できるため、本明細書では説明しない。
【0035】
また、図7、図8、図9は、ポインタ位置380が、三角形の頂点339に位置している場合において、握りこぶし332、333、334をそれぞれ選択した場合のターゲットオブジェクト701、801、901の形状を示している。
【0036】
[補間の算出の例]
以下に、三角形を使用した線形補間について具体的に説明する。なお、本発明の補間は、線形補間に限定されるものではない点に留意すべきである。また、三角形に限定されるものではなく、多角形に拡張可能である。さらに、三角形のような平面図形に限定されるものでもない。したがって、三次元空間上の多面体を利用した補間に拡張できる。なお、多面体を利用したユーザーインターフェースについては後述する。
【0037】
図10は、P0、P1、P2を頂点とする三角形に点Pが存在している図である。三角形内の点Pが指定されたときに,その位置に応じて頂点の持つ属性を線形補間する例を説明する。
【0038】
頂点P0,P1,P2は,それぞれ属性a0,a1,a2を持っているとする。点Pの属性aは,以下のように3つの値a0,a1,a2を線形補間することによって得られる。
【0039】
図11のように線分P0Pを延長し,辺P1P2との交点をP’とする。図11に示すように、
P2P’:P’P1=α:(1−α) (1)
P’P:PP0=β:(1−β) (2)
であるとする。点P’の属性a’は,P2とP1の間を線形補間して次式のようになる。
a’=αa1+(1−α)a2 (3)
aは,P’とP0の間を線形補間して,次式により得られる。
a=βa0+(1−β)a’ (4)
=βa0+α(1−β)a1+(1−α)(1−β)a2 (5)
また,三角形の面積に着目すると,aは以下のようにして求めることもできる。△P0P1P2の面積をSとし,図12のように,△PP1P2,△PP2P0,△PP0P1の面積をそれぞれS0,S1,S2とする。三角形の面積比に注目すると,次式のようになる。
△P0P’P2:△P0P’P1=α:(1−α) (6)
△P0P’P2:△PP’P2=△P0P’P1:△PP’P1=1:β (7)
よって,次のような面積比が得られる。
S0/S=β
S1/S=α(1−β)
S2/S=(1−α)(1−β) (8)
これを用いると,aは次式で表される。
a=a0S0/S+a1S1/S+a2S2/S (9)
点P0,P1,P2,Pの位置座標をそれぞれv0,v1,v2,vとし,C01,C12,C20,C0,C1,C2を次のように定める
C01≡v0×v1 (10)
C12≡v1×v2 (11)
C20≡v2×v0 (12)
C0≡v×v0 (13)
C1≡v×v1 (14)
C2≡v×v2 (15)
すると,三角形の面積は次のように表される。
S=(v0×v1+v1×v2+v2×v0)/2=(C01+C12+C20)/2 (16)
S0=(v×v1+v1×v2+v2×v)/2=(C1−C2+C12)/2 (17)
S1=(v×v2+v2×v0+v0×v)/2=(C2−C0+C20)/2 (18)
S2=(v×v0+v0×v1+v1×v)/2=(C0−C1+C01)/2 (19)
これを用いると,線形補間の値aは次式で表される。
a=(a0(C1−C2+C12)+a1(C2−C0+C20)+a2(C0−C1+C01))/(C01+C12+C20)
なお、例示した実施例では、補間において内挿を前提としているが、補間は、外挿を含むものであり、本願発明は内挿の補間に限定されるものではない。なお、外挿を用いて補間する場合には、骨格モデルが不自然な形になる場合がある。この場合には、骨格モデルの可動範囲を制限すればよい。骨格モデルの可動範囲の制限に関しては、種々のものが提案されており、当業者に周知であるので、本明細書では説明しない。
【0040】
[三角錐を用いたユーザーインターフェース]
三角形を用いて三つのサンプルオブジェクトの属性を補間した実施例を拡張し、例えば三角錐を用いることにより、四つのサンプルオブジェクトの属性の補間を行うことができる。
【0041】
図13(a)に、三角錐を用いたユーザーインターフェースを示す。頂点P0,P1,P2,P3は,それぞれ属性a0,a1,a2,a3を持っているとする。三角錐に点Pが指定されたときに,その位置に応じて頂点の持つ属性を線形補間する。線形補間の考え方は、上述の三角形を用いた場合の線形補間を拡張すればよい。
【0042】
例えば、ユーザは、点Pをマウスでドラッグすることにより、点Pを含む平面であって、画面に平行な平面に沿ってPを移動させることができるようにしてもよい。また、ユーザは、三角錐の任意の位置をマウスで摘んで回転させることにより、図13(b)のように三角錐の向きを変えることができるようにしてもよい。この状態で、ユーザがマウスで点Pを摘んで移動させることにより、ユーザは、点Pを含む平面であって画面に平行な平面に沿って点Pを移動させることができるようにしてもよい。図13(a)と図13(b)における点Pの移動できる領域は異なったものとなる。したがって、ユーザは、三角錐の回転と点Pの移動を繰り返すことにより、所望の位置に点Pを移動させることができる。上述の点Pの移動は、例示的なものであって、その他の手法により点Pを移動させてもよい。
【0043】
なお、本発明は、上述の三角錐を利用する実施例に限定されるものではなく、任意の多面体の頂点にサンプルオブジェクトを配置するユーザーインターフェースを実現することが可能であることは言うまでもない。
【0044】
[実施例の処理の流れ及び装置構成]
図14は、本発明の実施例に係る方法のフローを示した図である。まず、複数のサンプルオブジェクトを、ユーザーインターフェース画面上に配置し表示させる(S1401)。ユーザが用いるマウス等のポインティングデバイスで、ポイントされたポイント位置の情報を取得する(S1403)。そして、各々のサンプルオブジェクトの位置(三角形の頂点位置)とポイント位置に基づいて、サンプルオブジェクトの属性を補間し、得られた補間属性によってターゲットオブジェクトの属性を変更する(S1405)。そして、変更された属性に基づいて、ターゲットオブジェクトを修正する(S1407)。
【0045】
図15は、本発明の実施例の装置構成を示した図である。本発明は、サンプルオブジェクト配置部1501によって、複数のサンプルオブジェクトを、ユーザーインターフェース画面上に配置し表示させる。ポイント位置取得部1503は、ユーザが用いるマウス等のポインティングデバイスで、ポイントされたポイント位置の情報を取得する。属性変更部1505は、各々のサンプルオブジェクトの位置(三角形の頂点位置)とポイント位置に基づいて、サンプルオブジェクトの属性を補間し、得られた補間属性によってターゲットオブジェクトの属性を変更する。ターゲットオブジェクト修正部1507は、変更された属性に基づいて、ターゲットオブジェクトを修正する。実施例の装置は、その他、記憶部1509、入力部1511、表示部1513、出力部1515を有してもよい。本発明は、図15に示した構成を全て含むことが必要条件ではない。また、他の構成を含んでもよい。
【0046】
なお、請求項に係る方法の発明は、矛盾のない限り、請求項の記載の順番を入れ替えて実行することができる。そして、そのような順番を入れ替えた方法も、当該請求項の技術的範囲に属することは言うまでもない。
【符号の説明】
【0047】
310 ハンドセットアップウインドウ
320 331〜334、340 サンプルオブジェクト
301、401、501、601、701、801、901 ターゲットオブジェクト
【特許請求の範囲】
【請求項1】
ターゲットオブジェクトが有する複数のパラメータの値の組である属性を変更することによってターゲットオブジェクトを修正する方法であって、
複数のサンプルオブジェクトを、表示画面の異なる位置に配置する、サンプルオブジェクト配置ステップであって、前記複数のサンプルオブジェクトの各々は、固有の属性を持つ、サンプルオブジェクト配置ステップと、
前記表示画面の中のポイント位置をユーザによって指定できるデバイスから、指定されたポイント位置を取得するポイント位置取得ステップと、
前記複数のサンプルオブジェクトが配置された各々の位置と、前記ポイント位置とに基づいて、前記複数のサンプルオブジェクトの各々の属性の補間値を算出し、前記ターゲットオブジェクトの属性のうち予め選択されたパラメータに関連する属性を前記補間値に置き換えることにより、前記ターゲットオブジェクトの属性を変更する属性変更ステップと、
前記変更された属性に基づいて前記ターゲットオブジェクトに修正を加えるターゲットオブジェクト修正ステップと、
を有する方法。
【請求項2】
前記選択は、オペレータからの指示を受け取ることによって決定される、請求項1記載の方法。
【請求項3】
前記サンプルオブジェクトの前記固有の属性は、オペレータからの指示を受け取ることによって、予め定められた複数の属性のうちいずれかに決定される、請求項1又は2記載の方法。
【請求項4】
前記複数のサンプルオブジェクトは、凸多角形の頂点の位置に配置され、前記凸多角形の内部に存在する前記ポイント位置を用いる、請求項1乃至3のうちいずれか1項記載の方法。
【請求項5】
前記複数のサンプルオブジェクトは、凸多面体の頂点の位置に配置され、前記凸多面体の内部に存在する前記ポイント位置を用いる、請求項1乃至3のうちいずれか1項記載の方法。
【請求項6】
前記パラメータは、骨格モデルにおける関節を中心とした骨の回転量を表す、請求項1乃至5のうちいずれか1項記載の方法。
【請求項7】
前記回転量は、関節に接続された二つの骨の角度、又は骨の捻り量を表す、請求項6記載の方法。
【請求項8】
請求項1乃至7のうちいずれか1項記載の方法をコンピュータに実行させる命令を含むプログラム。
【請求項9】
ターゲットオブジェクトが有する複数のパラメータの値の組である属性を変更することによってターゲットオブジェクトを修正する装置であって、
複数のサンプルオブジェクトを、表示画面の異なる位置に配置する、サンプルオブジェクト配置部であって、前記複数のサンプルオブジェクトの各々は、固有の属性を持つ、サンプルオブジェクト配置部と、
前記表示画面の中のポイント位置をユーザによって指定できるデバイスから、指定されたポイント位置を取得するポイント位置取得部と、
前記複数のサンプルオブジェクトが配置された各々の位置と、前記ポイント位置とに基づいて、前記複数のサンプルオブジェクトの各々の属性の補間値を算出し、前記ターゲットオブジェクトの属性のうち予め選択されたパラメータに関連する属性を前記補間値に置き換えることにより、前記ターゲットオブジェクトの属性を変更する属性変更部と、
前記変更された属性に基づいて前記ターゲットオブジェクトに修正を加えるターゲットオブジェクト修正部と、
を有する装置。
【請求項10】
前記選択は、オペレータからの指示を受け取ることによって決定される、請求項9記載の装置。
【請求項11】
前記サンプルオブジェクトの前記固有の属性は、オペレータからの指示を受け取ることによって、予め定められた複数の属性のうちいずれかに決定される、請求項9又は10記載の装置。
【請求項12】
前記ターゲットオブジェクトは、実空間上または仮想空間上のオブジェクトであり、前記サンプルオブジェクトは、仮想空間上のオブジェクトである、請求項9乃至11のうちいずれか1項記載の装置。
【請求項1】
ターゲットオブジェクトが有する複数のパラメータの値の組である属性を変更することによってターゲットオブジェクトを修正する方法であって、
複数のサンプルオブジェクトを、表示画面の異なる位置に配置する、サンプルオブジェクト配置ステップであって、前記複数のサンプルオブジェクトの各々は、固有の属性を持つ、サンプルオブジェクト配置ステップと、
前記表示画面の中のポイント位置をユーザによって指定できるデバイスから、指定されたポイント位置を取得するポイント位置取得ステップと、
前記複数のサンプルオブジェクトが配置された各々の位置と、前記ポイント位置とに基づいて、前記複数のサンプルオブジェクトの各々の属性の補間値を算出し、前記ターゲットオブジェクトの属性のうち予め選択されたパラメータに関連する属性を前記補間値に置き換えることにより、前記ターゲットオブジェクトの属性を変更する属性変更ステップと、
前記変更された属性に基づいて前記ターゲットオブジェクトに修正を加えるターゲットオブジェクト修正ステップと、
を有する方法。
【請求項2】
前記選択は、オペレータからの指示を受け取ることによって決定される、請求項1記載の方法。
【請求項3】
前記サンプルオブジェクトの前記固有の属性は、オペレータからの指示を受け取ることによって、予め定められた複数の属性のうちいずれかに決定される、請求項1又は2記載の方法。
【請求項4】
前記複数のサンプルオブジェクトは、凸多角形の頂点の位置に配置され、前記凸多角形の内部に存在する前記ポイント位置を用いる、請求項1乃至3のうちいずれか1項記載の方法。
【請求項5】
前記複数のサンプルオブジェクトは、凸多面体の頂点の位置に配置され、前記凸多面体の内部に存在する前記ポイント位置を用いる、請求項1乃至3のうちいずれか1項記載の方法。
【請求項6】
前記パラメータは、骨格モデルにおける関節を中心とした骨の回転量を表す、請求項1乃至5のうちいずれか1項記載の方法。
【請求項7】
前記回転量は、関節に接続された二つの骨の角度、又は骨の捻り量を表す、請求項6記載の方法。
【請求項8】
請求項1乃至7のうちいずれか1項記載の方法をコンピュータに実行させる命令を含むプログラム。
【請求項9】
ターゲットオブジェクトが有する複数のパラメータの値の組である属性を変更することによってターゲットオブジェクトを修正する装置であって、
複数のサンプルオブジェクトを、表示画面の異なる位置に配置する、サンプルオブジェクト配置部であって、前記複数のサンプルオブジェクトの各々は、固有の属性を持つ、サンプルオブジェクト配置部と、
前記表示画面の中のポイント位置をユーザによって指定できるデバイスから、指定されたポイント位置を取得するポイント位置取得部と、
前記複数のサンプルオブジェクトが配置された各々の位置と、前記ポイント位置とに基づいて、前記複数のサンプルオブジェクトの各々の属性の補間値を算出し、前記ターゲットオブジェクトの属性のうち予め選択されたパラメータに関連する属性を前記補間値に置き換えることにより、前記ターゲットオブジェクトの属性を変更する属性変更部と、
前記変更された属性に基づいて前記ターゲットオブジェクトに修正を加えるターゲットオブジェクト修正部と、
を有する装置。
【請求項10】
前記選択は、オペレータからの指示を受け取ることによって決定される、請求項9記載の装置。
【請求項11】
前記サンプルオブジェクトの前記固有の属性は、オペレータからの指示を受け取ることによって、予め定められた複数の属性のうちいずれかに決定される、請求項9又は10記載の装置。
【請求項12】
前記ターゲットオブジェクトは、実空間上または仮想空間上のオブジェクトであり、前記サンプルオブジェクトは、仮想空間上のオブジェクトである、請求項9乃至11のうちいずれか1項記載の装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【公開番号】特開2012−164161(P2012−164161A)
【公開日】平成24年8月30日(2012.8.30)
【国際特許分類】
【出願番号】特願2011−24448(P2011−24448)
【出願日】平成23年2月7日(2011.2.7)
【出願人】(596021562)株式会社セルシス (22)
【Fターム(参考)】
【公開日】平成24年8月30日(2012.8.30)
【国際特許分類】
【出願日】平成23年2月7日(2011.2.7)
【出願人】(596021562)株式会社セルシス (22)
【Fターム(参考)】
[ Back to top ]