JP5602043B2 - 骨格モデルの関節角度の曲がりにくさの制御装置,方法,及びプログラム - Google Patents

骨格モデルの関節角度の曲がりにくさの制御装置,方法,及びプログラム Download PDF

Info

Publication number
JP5602043B2
JP5602043B2 JP2011025361A JP2011025361A JP5602043B2 JP 5602043 B2 JP5602043 B2 JP 5602043B2 JP 2011025361 A JP2011025361 A JP 2011025361A JP 2011025361 A JP2011025361 A JP 2011025361A JP 5602043 B2 JP5602043 B2 JP 5602043B2
Authority
JP
Japan
Prior art keywords
angle
joint
bending
theta
joints
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.)
Active
Application number
JP2011025361A
Other languages
English (en)
Other versions
JP2012164221A (ja
Inventor
陽介 川上
智憲 佐藤
大輔 樋口
兼太郎 山口
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.)
Celsys Inc
Original Assignee
Celsys 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 Celsys Inc filed Critical Celsys Inc
Priority to JP2011025361A priority Critical patent/JP5602043B2/ja
Publication of JP2012164221A publication Critical patent/JP2012164221A/ja
Application granted granted Critical
Publication of JP5602043B2 publication Critical patent/JP5602043B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は,骨格モデルにおける各々の関節角度(曲げ,捻り)の曲がりにくさの制御に関する。
CGキャラクタ等を動かしてポーズやアニメーションを作る際に,複数の骨を関節で繋いだ骨格モデル(スケルトンモデル)(図1(a))が使われる場合がある。このような骨格モデルは,仮想空間ばかりでなく,ロボット制御等の実空間における対象物を制御する場合にも用いられ得る。
本願明細書では,図1(b)のように関節の両側の骨のうち一方を親骨,他方を子骨と呼ぶことにする。関節の回転(曲げ,捻り)の状態は,親骨を基準とした子骨の向きで表すことができる。骨の向きを表すために,各々の骨に対して図1(b)のように座標系が定められる。図1(b)の座標系では,x軸回転が捻り,y軸回転とz軸回転が曲げとなる。子骨の捻りの状態は,y軸(又はz軸)の向きで定義できる。
三次元仮想空間又は実空間で人体モデル,動物,構造物等の姿勢(ポーズ,動き等)を制御する際に用いられるこのような骨格モデルにおいては,図1(a)に示す各々の骨および関節の位置,角度,回転(曲げ,捻り)等を意図したとおりに制御することが必要となる。図1(a)に示される骨格モデルでは,各々の骨は関節で結合されており,各々の骨の動きが他の骨の動きに影響を与える。従来から,骨格をモデル化し,骨格モデルを制御する手法として,種々のものが提案されている。
骨格モデルを制御する手法の一例として,逆運動学(Inverse Kinematics)のうちのCCD(Cyclic−Coordinate−Descent)法を説明する。なお,本発明はこの手法への適用に限定されるものではない。
[CCD(Cyclic−Coordinate−Descent)法]
図2に示すように,複数の関節J乃至Jと複数の骨B乃至Bを有する骨格モデルを例にして説明する。関節Jの位置が固定されている場合において,骨格モデルの骨Bの点Aを目標点である点Dに移動させる場合のCCD法の操作を以下に示す。CCD法は,1回の計算ステップで1つの関節(J)の角度のみを動かして,点Aと点Dとの距離を最小化し,順次この操作を全ての関節(J乃至J)について計算する。この操作によって,順次点Aと点Dとの距離が小さくなる。この計算を繰り返す。具体的な計算方法を以下に示す。
(1)図2(b)に示すように,まず,関節Jの回転角度だけを操作して点Aと点Dとの距離が最短になるようにする。このためには,関節Jを中心として骨Bを角度θだけ回転させ,関節Jと目標Dとを結んだ直線h上に,点Aを移動させる。これによって,点Aは,直線h上に位置するため,点Aと点Dとの距離が最短になる。
(2)図2(c)に示すように,次に関節Jの回転角度だけを操作して点Aと点Dとの距離が最短になるようにする。このためには,関節Jを中心として骨Bを角度θだけ回転させ,関節Jと目標Dとを結んだ直線h上に,点Aを移動させる。これによって,点Aと点Dとの距離が最短になる。
(3)図2(d)に示すように,次に関節Jの回転角度だけを操作して点Aと点Dとの距離が最短になるようにする。このためには,関節Jを中心として骨Bを角度θだけ回転させ,関節Jと目標Dとを結んだ直線h上に,点Aを移動させる。これによって,点Aと点Dとの距離が最短になる。
(4)同じ操作を上記(1)から再度繰り返す。
点Aと点Dの距離が閾値e以下になること,及び反復回数が上限回数を超えたこと,の少なくともいずれか一方が満たされたときに計算を打ち切ることとしてもよい。
上記の例では,点Aは,端点であったが,一般には,骨格の関節である場合もある。以下の説明では,骨格モデルにおける動かす点Aをエフェクタと呼ぶ。
上述のCCD法では,骨格モデルを実世界の対象により近づけるために,各々の関節部分の関節角度(曲げ,捻り)の曲がりにくさを設定することができる。なお,関節角度の曲がりにくさを設定するには,例えば以下のように抵抗値を設定すればよい。例えば,図2において,関節Jを他の関節(J及びJ)よりも曲がりにくく設定する場合を想定する。この場合には,図2(c)において関節Jの本来の曲がるべき角度θと抵抗値としてW(0<=W<=1)を用いて,実際に曲がるべき角度θ22を,下式により計算する。
θ22=θ×W
となり,
θ22<=θ
となる。すなわち,関節Jに抵抗値Wを適用し,実際の曲がりの角度をθに代えてθ22だけ関節Jを曲げることとすればよい。この抵抗値の設定を各々の関節に適宜適用することによって,骨格モデルの中の任意の関節角度の曲がりにくさを設定することができる。このため,点Aは,関節Jと点Dとを結んだ線h上に存在しなくなるが,そのまま,上述の繰り返し演算を実行すればよい。この設定によって,関節Jは他の関節よりも曲がりにくくなる。
図3は,人間の骨格モデルを用いた場合の曲がりにくさの影響を示すための図である。図3(a)に示す姿勢を初期状態とし,両足首C,Dを固定して,点Aから点Bに頭を引き上げる操作を行った場合を想定する。
図3(b)は,全ての関節に均一な曲がりにくさを設定した場合の例を示している。膝や腰が曲がった状態から伸びる際の抵抗も,背骨が真っすぐな状態から曲がる際の抵抗も,同程度の抵抗であるため,点Aから点Bに頭を引き上げる操作を行った際に,膝や腰が伸びると同時に背骨も曲がって(反って)しまい,不自然な姿勢となっている。
本発明は,上述の欠点を克服することを目的とする。すなわち,関節角度(曲げ,捻り)の曲がりにくさを設定した場合に,曲げるときの抵抗と伸ばすときの抵抗が同じであるために,不自然なポーズとなってしまうことを改善し,図3(c)に示すような自然な姿勢が得られる骨格モデルの制御方法,装置,及びプログラムを提供することを目的とする。なお,本発明の目的は,上述の記載に限られるものではない。
本発明は,複数の骨が1つ以上の関節によって連結されている骨格モデルにおいて,前記1つ以上の関節の関節角度を制御する方法であって,前記関節角度には,関節の曲げ及び捻りのうち少なくとも一つを含み,関節角度の状態は角度パラメータで表される。角度パラメータとは,通常の角度をも含む広い概念であって,関節の回転(曲げ,捻り等)の状態を表すパラメータである。具体的には,オイラー角,四元数(クォータニオン),マトリクス等が挙げられる。更に,前記方法は,関節の現在の角度パラメータθを取得する現在角度取得ステップと,前記関節に前記関節角度の曲がりにくさ係数wが設定されていない状態で,前記関節角度の未補正角度パラメータθを算出する未補正角度算出ステップと,前記現在の角度パラメータθと前記未補正角度パラメータθとに基づいて,予め定められた規則を適用して前記曲がりにくさ係数wを決定し,前記曲がりにくさ係数wを前記関節に適用した場合の,補正された角度パラメータθを決定する補正済角度決定ステップと,を有する。
また,本発明は,前記θが,θ=θ+w(θ−θ)によって与えられてもよい。
加えて,本発明は,上記発明を実現するプログラム又は装置によって提供されてもよい。
本発明により,骨格モデルを用いてポーズを作成する際に,より自然なポーズを作成しやすくなる。また,キャラクタを動かした際に,自然な動きが得られる。
骨格モデル,親骨,子骨,及び座標系を示す図。 CCD法による骨格モデルの制御方法を示す図。 人間の骨格モデルを用いた場合の曲がりにくさの影響を示すための図。 本発明の実施例を示す図。 本発明の実施例の処理の流れを示す図。 本発明のハードウエア構成を示す図。 本発明の装置構成を示す図。
上述の関節角度の曲がりにくさを一般的に記述すれば,以下の通りである。
IKで骨格モデルを動かした際に,骨格上のn個の関節が動いた(角度が変化した)とする。このn個の関節をA〜Aとする。関節ごとに予め動きやすさを表す係数が設定されており,関節Aに設定されている係数をWとする(0<W)。Wが大きいほど動きやすい。本明細書で「動く」とは移動のことではなく,関節角度(曲げ,捻り)の変化のことである。
〜Wの中の最大値をWmaxとする。IKで動かしたことによる関節角度変化量に対してW/Wmaxを掛ける。その結果,n個の関節のうち動きやすさ係数が最も大きいもの以外は,係数の値に応じて角度変化が抑えられる。このように関節ごとの動きやすさを設定したうえで,更に以下のように個々の関節の曲がりにくさを設定する。
図4に示すように,個々の関節角度の曲がりにくさを以下のように設定する。
図4(b)に示すように,骨B及びBが関節Aで連結されている。図4(b)の矢印の方向に骨Bが動く場合を想定する。この場合,関節Aの角度は,抵抗が無い場合θからθに変化する。すなわち,IKで動かす前の関節角度パラメータをθとし,動かした後の値をθとする。以下のように,θ,θの値に応じて図4(a)のグラフを使って,係数wを決める。
図5に処理フローを示す。具体的な処理は以下の通りである。
(1)θ<aの場合(S501が「はい」):
θ<θの場合(S503が「はい」):グラフの横軸値θに対応する縦軸値をwとする(S505)。
それ以外の場合:w=1.0とする(S507)。
(2)θ>aの場合(S509が「はい」):
θ>θの場合(S511が「はい」):グラフの横軸値θに対応する縦軸値をwとする(S513)。
それ以外の場合:w=1.0とする(S515)。
(3)上記(1)及び(2)以外の場合:w=1.0(S517)とする
以上の手順によって得られたwを使って,補正された関節角度パラメータθを以下の式によって求める。
θ=θ+w(θ−θ) (1)(S519)
以上の処理を行うことによって,より自然な骨格モデルの挙動が得られる。
なお,上記実施例においては,関節角度の曲げを用いたが,角度を把握できる様々な座標系を用いてもよいことは言うまでもない。
図6は,本願発明の実施例の装置構成を示す図である。コンピュータ600には,キーボード605,マウス606,ペン608を含むタブレット607,ディスプレイ601が接続されている。ディスプレイ601上には,キャンバス602が表示され,キャンバス602上に図形が描画されている(603)。
図7は,本発明の機能構成を示した図である。現在角度取得部701は,関節角度の現在の角度パラメータθを取得する。未補正角度算出部703は,前記関節角度の曲がりにくさが設定されていないとして,前記関節角度が曲がるべき未補正角度パラメータθを算出する。補正済角度決定部705は,前記現在の角度パラメータθと前記未補正角度パラメータθとに基づいて,予め定められた規則を適用して前記関節角度の曲がりにくさwを決定し,前記曲がりにくさwを前記関節に適用した場合の,前記関節角度の補正された角度パラメータθを決定する。この補正された角度パラメータθを用いて,骨格モデルを表示手段711に表示してもよい。また,メモリ707及び入力手段709を有してもよい。
[骨の捻りにくさへの適用]
上述の実施例では,主に関節角度の曲げにくさを制御する例を示した。なお,本発明は,関節角度の曲げにくさだけを対象とするものではない。上述の関節角度の曲げにくさの制御は,捻りにくさの制御にそのまま適用できるものである。
以上,本発明の実施例を説明したが,各実施例は,排他的なものではなく,必要に応じて組み合わせて実施できることは言うまでもない。また,請求項に係る本発明は,上述の実施例に限定されるものでない点に留意すべきである。

Claims (6)

  1. 複数の骨が1つ以上の関節によって連結されている骨格モデルにおいて,前記1つ以上の関節の関節角度をコンピュータが制御する方法であって,前記関節角度には,関節の曲げ及び捻りのうち少なくとも一つを含み,
    前記方法は,
    関節の現在の角度パラメータθを取得する現在角度取得ステップと,
    前記関節に前記関節角度の曲がりにくさ係数wが設定されていない状態で,前記関節角度の補正されていない角度パラメータθを算出する未補正角度算出ステップと,
    前記現在の角度パラメータθと前記補正されていない角度パラメータθとに基づいて,予め定められた規則を適用して前記曲がりにくさ係数wを決定し,前記曲がりにくさ係数wを前記関節に適用した場合の,補正された角度パラメータθを決定する補正済角度決定ステップと,
    を有し,
    前記予め定められた規則は,
    前記θ の値,及び/又は前記θ とθ との大小関係に基づいて,前記wの値を変更する規則である,方法。
  2. 前記θが,
    θ=θ+w(θ−θ
    によって与えられる,請求項1記載の方法。
  3. 前記wは,前記θ ,及び/又は(θ −θ )の関数である,請求項2記載の方法。
  4. 請求項1乃至3のうちいずれか1項記載の方法をコンピュータに実行させる命令を有するプログラム。
  5. 複数の骨が1つ以上の関節によって連結されている骨格モデルにおいて,前記1つ以上の関節の関節角度を制御する装置であって,前記関節角度には,関節の曲げ及び捻りのうち少なくとも一つを含み,
    前記装置は,
    関節の現在の角度パラメータθを取得する現在角度取得部と,
    前記関節に前記関節角度の曲がりにくさ係数wが設定されていない状態で,前記関節角度の補正されていない角度パラメータθを算出する未補正角度算出部と,
    前記現在の角度パラメータθと前記補正されていない角度パラメータθとに基づいて,予め定められた規則を適用して前記曲がりにくさ係数wを決定し,前記曲がりにくさ係数wを前記関節に適用した場合の,補正された角度パラメータθを決定する補正済角度決定部と,
    を有し,
    前記予め定められた規則は,
    前記θ の値,及び/又は前記θ とθ との大小関係に基づいて,前記wの値を変更する規則である,装置。
  6. 前記θが,
    θ=θ+w(θ−θ
    によって与えられる,請求項記載の装置。
JP2011025361A 2011-02-08 2011-02-08 骨格モデルの関節角度の曲がりにくさの制御装置,方法,及びプログラム Active JP5602043B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011025361A JP5602043B2 (ja) 2011-02-08 2011-02-08 骨格モデルの関節角度の曲がりにくさの制御装置,方法,及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011025361A JP5602043B2 (ja) 2011-02-08 2011-02-08 骨格モデルの関節角度の曲がりにくさの制御装置,方法,及びプログラム

Publications (2)

Publication Number Publication Date
JP2012164221A JP2012164221A (ja) 2012-08-30
JP5602043B2 true JP5602043B2 (ja) 2014-10-08

Family

ID=46843537

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011025361A Active JP5602043B2 (ja) 2011-02-08 2011-02-08 骨格モデルの関節角度の曲がりにくさの制御装置,方法,及びプログラム

Country Status (1)

Country Link
JP (1) JP5602043B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5490080B2 (ja) 2011-12-06 2014-05-14 株式会社セルシス スケルトンモデルの姿勢制御方法,及びプログラム
JP6267295B1 (ja) * 2016-08-18 2018-01-24 株式会社カプコン ゲームプログラムおよびゲームシステム
EP3324365A1 (en) * 2016-11-22 2018-05-23 Dassault Systèmes Computer-implemented method for simulating a body taking a posture, in particular to look at a target
EP3324366A1 (en) * 2016-11-22 2018-05-23 Dassault Systèmes Computer-implemented method for simulating a body taking a posture

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3241310B2 (ja) * 1996-11-19 2001-12-25 株式会社ナムコ スケルトンモデルの形状変形方法、画像合成装置及び情報記憶媒体
JP4301471B2 (ja) * 1999-08-25 2009-07-22 株式会社バンダイナムコゲームス 画像生成システム及び情報記憶媒体
JP5234809B2 (ja) * 2009-06-24 2013-07-10 任天堂株式会社 情報処理プログラムおよび情報処理装置

Also Published As

Publication number Publication date
JP2012164221A (ja) 2012-08-30

Similar Documents

Publication Publication Date Title
CN108762495B (zh) 基于手臂动作捕捉的虚拟现实驱动方法及虚拟现实系统
US10297066B2 (en) Animating a virtual object in a virtual world
US9449416B2 (en) Animation processing of linked object parts
Aristidou et al. Inverse kinematics: a review of existing techniques and introduction of a new fast iterative solver
JP5490080B2 (ja) スケルトンモデルの姿勢制御方法,及びプログラム
JP5118220B2 (ja) 動作モデリング装置及び方法、並びにプログラム
JP5602043B2 (ja) 骨格モデルの関節角度の曲がりにくさの制御装置,方法,及びプログラム
EP2363794B1 (en) Systems and methods for simulations utilizing a virtual coupling
Wang et al. A real-time human imitation system
JP2003058907A (ja) 木構造リンク系のポーズ及び動作を生成する方法
CN108290293B (zh) 链路序列映射装置,链路序列映射方法和程序
US10482647B2 (en) Computer-implemented method for simulating a body taking a posture
JP4283752B2 (ja) 多関節物体の連接要素間の内部衝突を回避しながらの仮想環境における仮想多関節物体の動き
JP2015102913A (ja) 姿勢推定装置及び姿勢推定方法
Erleben et al. Solving inverse kinematics using exact Hessian matrices
CN107038430B (zh) 一种构造人体姿态数据样本的方法及其装置
GB2546815B (en) Animating a virtual object in a virtual world
Huang et al. An efficient energy transfer inverse kinematics solution
Yoshiyasu et al. Forward dynamics simulation of human figures on assistive devices using geometric skin deformation model
JP6862849B2 (ja) 演算装置、演算方法、演算プログラムおよびロボットシステム
JP2007011460A (ja) 物体の変位シミュレーション方法及び物体の変位シミュレーション装置、並びに力覚提示装置
KR101782269B1 (ko) 플러그인 프로그램을 사용하여 넙스 및 폴리클을 생성 및 적용하는 방법
JPH10208072A (ja) スケルトンモデルの形状変形方法、画像合成装置及び情報記憶媒体
CN112428263B (zh) 机械臂控制方法、装置及聚类模型训练方法
JP7081284B2 (ja) 演算装置、演算方法、および演算プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130403

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140217

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140225

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140422

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: 20140722

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140819

R150 Certificate of patent or registration of utility model

Ref document number: 5602043

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250