3DCGアニメーションで役立つ!IKの基礎知識

3DCGアニメーション制作で知っておきたいIKの知識を解説

3DCGアニメーションで役立つ、IKの基礎知識

こんなことが知りたい

IKとは?

3DCGキャラクターの骨格の仕組みが知りたい!

ここでは、アニメーション初心者の方に向けて、 「IKとは何なのか?」と 「IKアニメーションに役立つ基本的な知識」を解説します。

「IKで姿勢を作る仕組みは?」 「IKに適切なスケルトンとは?」 「3Dキャラクターの構造はどうなっている?」 と、アニメーション作成で初心者が疑問に思うことをピックアップして 説明しています。

あなたのアニメーション学習のお手伝いができれば幸いです。

この記事を書いた人

自分
さくら

  • 3DCADサポートエンジニア
  • サポート歴7年
  • Autodeskとダッソー製品のカスタマーサポートに従事

詳しい紹介はこちら 「自己紹介」

目次

IKとは?

まず初めに、「IKとは、何なのか」について解説していきます。

3DCGアニメーション作成においてIKとは、 「キャラクターの特定の関節をマウス操作で動かすことにより、 キャラクターの姿勢を推定すること」です。

例えば、 下の画像のように、 手首の関節をマウスでドラッグすることにより、 肘、肩、腰、膝など他の関節位置や角度を推定することができます。

手首をマウスで動かすだけで、 手首の位置と角度だけではなく、 それに見合った肘や肩の位置と角度、そして、 ほかの関節の姿勢もそれらしい位置と角度で推定されます。 これがIKの特長です。

IK

また、IKで動かせるのは手首のような末端の関節だけではなく、 頭や肩、肘、腰、膝、足首といった主要な関節を選択して マウスドラッグすることで姿勢を推定できます。

その場合は、選択して動かしている関節より、 体幹側の関節の姿勢がダイナミックに変化します。 例えば、肘をマウスで動かしてIKすると、 手首の姿勢はあまり変わりませんが、肩や鎖骨が大きく変化します。

IKで肘を動かす場合と手首を動かす場合

このように直感的にキャラクターの姿勢を作れるのもIKの特長です。 さて、姿勢はこのように作っていきますが、 これをアニメーションにするためには、 時系列でキャラクターの姿勢を作っていく必要があります。

アニメーション作成では、 キーフレームごとにIKを使って姿勢を作っていきます。 例えば、キャラクターがお辞儀をするまでに、 5つの姿勢を作ることで、アニメーションが表現されます。 このように、前のフレームの姿勢を考えながら、 IKで次のフレームの姿勢を作ることでアニメーションができあがっていきます。

お辞儀動作のキーフレーム

ここまでは、IKを中心に説明をしてきましたが、 アニメーション作成では、 IKだけではなく、FKも使って姿勢を作っていきます。

FKについては、 別のページで詳しく説明していますので、 興味があれば、こちらも合わせてご覧ください。

IKとFKの違いってなに?アニメーション初心者向け

さて、もう少しIKについて説明していきます。 IKを使うにあたって、 「拘束条件」を設定して姿勢を推定することもできます。

3DCGソフトによって機能は異なりますが、 IKでキャラクターを動かす際に、 関節ごとに「拘束」をかけることができます。

例えば、 下の図のように 右手首、両足首の位置を固定するような「拘束」を設定して、 左手首を動かすと、それに見合った姿勢を推定してくれます。

IKのピンドラッグ

拘束条件は、関節の位置だけではなく、 角度にも適用できます。 例えば、両足の位置は固定したいが、角度は固定したくない場合もあります。 逆に位置は動かしてもいいが、角度はそのままの状態で拘束することもあります。

このように、 IKで姿勢を作るときには、拘束をかけながら調整することが一般的です。

さて、 このように一部の関節を引っ張るだけで、 ほかの関節の姿勢も推定できたり、 拘束をかけられたりするのは、 キャラクターが構造化されているためです。

キャラクターには「スケルトン」と呼ばれる 関節とセグメントを階層状に設定することが必須です。 このあとの章で詳しく解説しますが、 3DCGでは、 キャラクターをいくつかのセグメントに分割して、 それを点でつなぐような構造になっています。

また、関節がどの程度動くか、 関節がどの程度曲がるか、 といった条件を付けることで、 より人間に近い動きを推定できるようになります。

そのほか、IKは人型のキャラクターだけに適用するものではなく、 3DCGでよく出てくる「道具」や「髪の毛」「洋服」などにも スケルトンを入れることでIKが適用できます。

髪の毛や洋服は、 3DCGソフトのなかでシミュレーションで動きを推定するものがほとんどですが、 IKを使って手動で動きを修正することもできます。

IKは基本的に、ロボット工学や精密工学で機械制御をするための技術で、 例えば、ロボットアームの姿勢制御に使われています。 そのため、人の姿勢を推定するための技術ではなく、 モノの姿勢も推定できます。

この推定技術をチューニングして、 「人間の動き」により近いものに仕上げたのが3DCGソフトです。 3DCGソフトのMaya、MotionBuilderでは、 HumanIKと呼ばれる機能を使って、 より人間らしい動きを推定できるようにIK機能を仕上げています。

IKは、基本的に数式を用いて最適解を出しています。 この数式には、さまざまなパラメーターがあります。 そのパラメーターを調整することで、 人らしい動きを作りやすくしたり、 四足歩行のキャラクターの動きを作りやすくしたりしています。

これらIKのパラメーターについては、 下の章で解説しますが、 このパラメーターのチューニングが各3DCGソフトによって違うため、 姿勢推定の精度がソフトごとで違います。

ここまで概要を説明した 「キャラクターの構造」 「スケルトン」 「IKパラメーター」について、 このあともう少し詳しく説明していきます。

3Dキャラクターと人の構造

まずは、人間の構造とキャラクターの構造の関係について解説します。

3Dキャラクターの構造は、 人間の構造を簡略化したものと言えます。 例えば、人間の骨と関節は靭帯などの内部組織でつながっていますが、 3Dキャラクターでは、簡略化した「点」でつながっています。

そして、人間の身体の構成は、いくつかの部位にわけられています。 例えば、頭、体幹、上腕、前腕、手首、大腿、下腿、足の部位になっています。 3DCGキャラクターもこれと同じように、 各部位を「セグメント」として定義しています。

そして、 セグメントと関節の要素である点を関係づけることで 3DCGキャラクターの骨格を形成しています。 この構造を作ることでIKで姿勢を推定できるようになります。

これを考慮すると、 人間の構造をより深く理解することで、 IKでキャラクターの姿勢を作りやすくなっていきます。 例えば 「どこの関節を引っ張れば、どのような姿勢になるか」が想像しやすくなるためです。 つまり、姿勢のアタリがつけやすくなるのです。

さて、そのような構造を理解するためには、 以下の3つのことを知っておく必要があります。

  • 骨格のチェーン構造
  • 関節の自由度
  • 関節の可動域

それぞれの項目について説明していきます。

骨格のチェーン構造

まずは、骨格のチェーン構造についてです。

人間の構造としては、骨と骨が関節でつながっています。 じっさいには靭帯や軟骨でつながっていますが、 簡略化して考えると「関節」が骨と骨の接続部分になっています。 この関節は「点」であることが多く、 よく「ピンジョイント」と呼ばれています。

そして、骨と関節は無数につながっています。 つまり、骨が関節によってチェーンのように連鎖しています。

そのチェーンの一番最初の部分が人間の場合、 「骨盤」になります。

例えば、下の図のように、 骨盤を起点にして、 四肢や頭に向けたチェーン構造になっています。

チェーン構造

このチェーン構造は、 基本的に親子関係の階層構造になっています。

骨盤が起点ということは、骨盤はすべての親になります。 親子関係の例えでいうと、「骨盤」→「大腿骨」→「脛骨」→「足根骨」 の順番で階層になっています。

具体的な親子関係は、「骨盤が親で大腿骨が子」、「大腿骨が親で脛骨が子」、 「脛骨が親で足根骨が子」という階層構造です。

IKは子を引っ張ることで、チェーン構造になっている 親たちが動く仕組みです。

末端の手を引っ張ることで、 チェーンでつながっているすべての部分が動くわけです。

IKのピンドラッグ

「IKはチェーンでつながっているから動く」ということを、 頭に入れておくことで、 「ここ引っ張られると、他の関節は、このように動くはず」と、 想像しやすくなります。

関節の自由度

続いて、「関節自由度」についてです。

じっさいの人間の関節は、6自由度で動いています。 移動の3軸と回転の3軸です。

6DOF

人間の関節は「固定点」ではないので、微妙に動いています。 「上下、左右、前後」に動くイメージです。 腕や足が曲がる方向も「上下、左右、回旋」があります。

しかし、アニメーションで使う3Dモデルにおいては、 各関節の自由度を減らして作成します。 上で説明したようにピンジョイントの場合が多いため、 移動の3軸はありません。

例えば、肘の関節は固定点にして、 肘の曲がる方向も上下と回旋だけにすることも多いです。 これは2自由度になります。

肘の自由度

さて、では、なぜ自由度を減らす必要があるのでしょうか。

その理由は、自由度を減らすことで、IKの精度が上がり、 姿勢を作りやすくなるためです。

この自由度を減らす作業は、 人間の関節について知識がないとなかなか当たりがつけづらいのです。

「本当の人間であれば肘は左右に曲がるけど、 アニメーションではそこまで精密にしなくてもいいから自由度を減らそう」 というような考え方ができるようになります。

この知識は、 スケルトンの自由度の設定のときに役立ってきます。 適切な設定をすることでIKの姿勢推定の精度が上がるわけです。

関節の可動域

最後に「関節可動域」についてです。 関節可動域は、関節の自由度と深く関係してきます。

「人間の関節の可動域がどれくらいの範囲なのか」を知ることで、 IKをしたときの姿勢が想像しやすくなります。 また、キャラクターの自由度を減らすための指標になり、 よりIKがしやすいキャラクター構造を作りやすくなります

例えば、人間の肘が左右に曲がる範囲は角度で言うと5~20度くらいです。 しかも、大きな力がかかったときくらいにしか、 左右方向に曲がりません。

肘の内外反可動域

この知識があれば、 キャラクター構造を作るときに、 「IK精度を上げるには、この肘の左右に曲がる自由度がない方がいいのでは?」 と考えられるわけです。

このように、関節可動域の知識は「自由度の選定」に役立ちます。

そしてもう一つ、「人間ではありえない姿勢にしない」ことにも役立ちます。 つまり、曲がらない方向に曲げないようにすることです。

例えば、膝がありえない方向に曲がらないように、 可動範囲を決めることで、 IKの精度を上げることができるわけです。

膝の過伸展

可動範囲を決めることで、より人間らしい姿勢を取れるような 3Dモデルができるわけです。

人間の関節可動域を理解することで、 IKでより人間に近い姿勢を推定できるようになるのです。

スケルトンとIK

IKで重要な「スケルトン」について解説していきます。

3DCGモデルにおける「スケルトン」とは、 骨格構造全体のことを指します。 例えば、人型のキャラクターであれば、 前腕、上腕、手首、体幹といったセグメントと、 それをつなぐ関節、そして、どのような階層になっているか、 のすべての構造のことをいいます。

このスケルトンは、 3DCGキャラクターごとに違っていて、 標準的なスケルトンというものはありません。 そのため、スケルトンが複雑なものもあれば、 簡略化されたものもあります。

さて、IKをするうえで扱いやすいスケルトンとは何か? ですが、 基本的になるべく簡略化されたスケルトンがIK精度が高くなり、 姿勢をつくりやすくなります。

「人間の骨格構造に近いスケルトンの方が、 IKで人間らしい姿勢になるのではないか?」と、 思いがちですが、じっさいそうではありません。

上の「関節の自由度」のところでも説明しましたが、 自由度が多いと推定計算が複雑になり、 IK精度が落ちてしまいます。

つまり、スケルトンの数を減らすことで全体の自由度を減らすことができて、 IKの精度も上がるというわけです。

例えば、 下の図のように、 背骨や肋骨のスケルトンを作成することがあると思いますが、 IKを考えるならば、 できれば背骨の数を減らして、肋骨は無い方がいいことがあります。

スケルトン削減

スケルトンの数を減らすことで IKで人間らしい姿勢を推定しやすく、 アニメーション作成の効率が上がるのです。

ただ、高品質なアニメーションでスキンのめり込みを無くすために、 背骨の数を増やす場合もあります。 その場合は、背骨一つ一つに細かな設定をしていきますので、 手間と労力がかかります。

そして、IKで姿勢を作るときに予期せぬ姿勢になる確率も増えます。 そうなったときは、崩れた姿勢をFKで修正していくわけです。

私の個人的なおすすめとしては、 アニメーションの作業工数を減らしたいのであれば、 できるだけスケルトンの数を減らすことをおすすめします。 IKで精度が上がるため、作業工数が減るためです。

このような簡略化されたスケルトンの使用例として多いのが、 VTuberの3Dキャラクターです。 簡略化されたスケルトンは、 リアルタイム性が求められる「VTuber」で需要が多いのです。

スケルトンが複雑だと計算時間もかかりますし、 なにより姿勢の精度が下がるため、 見た目にもよくなく、コンテンツの質も下がってしまいます。

それを改善するために、 なるべくスケルトンを簡素化して、 「それらしい姿勢」を高速に表示することがVTuberには求められています。

VTuberの仕組みについて 「3DモデルVTuberのダンス動作の仕組みを解説」 で解説していますので、 もし興味があれば、合わせてご覧ください。

逆に、高品質なアニメーションが必要な場合は、 人間に近いスケルトンを意識することがおすすめです。 スキンのめり込みなどが無くなり、よりリアリティのあるアニメーションになるためです。 その代わり、FKでの修正が増えます。

複雑なスケルトンは、 アニメやCM、映画といった3Dアニメーション制作で用いられます。

IKの計算パラメーター

IKを効率よく使うための 「パラメーター」についても説明していきます。

IKパラメーターは、 じっさいのアニメーション作成では、 ほとんど触ることがないと思います。 ただ、知識として知っておくことで、 あなたにスキルがついたとき、 IKのチューニングができるようになるので、知っておいて損はありません。

さて、 IKはいくつかのパラメーターをもとに計算します。 特に、「姿勢推定の精度」で重要なのが この3つのパラメーターです。

  • 反復回数
  • 目標値
  • 曲がりにくさ

ここからは、各項目について説明していきます。

反復回数

反復回数とは、マウスで関節を動かしたときに、 関節の位置と角度を推定計算する回数です。

じつは、IKは手を掴んでマウスを動かすたびに、 毎回10回~50回程度計算しています。 1mmでもマウスを動かすとその都度10~50回反復して姿勢を計算します。

IKのイテレーション回数

この反復計算の回数を増やすほど精度は高くなりますが、 計算スピードが遅くなります。

高性能でクロック数の高いCPUがあれば反復回数を増やして 精度を上げることができます。 しかし、その必要がない場合がほとんどです。

その理由は、ある程度の回数で、計算が収束するためです。 例えば、反復回数を50回に設定していても、 30回くらいで計算が収束して、残りの20回はほぼ同じ結果を出しています。

反復回数の度合いは、モデルの複雑さで変わってきますので、 何回かIKを試してみて、落としどころの回数を決めるのがいいでしょう。

目標値

IKの目標値とは 「マウスでつかんだ関節の位置とマウスカーソルの位置の近さ」 のことを言います。

IK目標値

マウスカーソルを動かすたびに目標の位置が変わり、 その目標値に対して姿勢を推定計算します。

具体的な3DCGソフトとして、 3ds Maxでは「位置しきい値」「回転しきい値」がそれに近いかと思います。 Mayaでは「許容値(Tolerance)」とかがそれに近いかと思います。

IK 精度を制御(HD ソルバ)・Autodesk 3ds Max公式サイト

IK ソルバ(IK solver)ノード・Autodesk Maya公式サイト

目標値を小さくすることで、 IKはより精度よく姿勢を推定してくれますが、計算スピードが遅くなります。 これは、目標値に近づくまで反復計算をし続けるためです。

目標値も反復回数と同じように、 トライ&エラーで試してみて、落としどころを決めるのがいいでしょう。

曲がりにくさ

IKの曲がりにくさとは、 関節の角度計算に重みづけをすることで、 簡単に曲がらないようにするためのパラメーターです。

IKのアニメーション作成で、 意外に重要なのがこの曲がりにくさのパラメーターです。 人間らしい姿勢を推定するためには 関節の特性によって重みづけを変える必要があります。

例えば、肘や膝を曲がりにくいような設定にすることで より精度よく人間らしい姿勢を推定してくれます。

肩については、逆に曲がりやすくすることで より精度よく姿勢を推定してくれることが多いです。

私の経験では、 自由度が少なくて可動域が狭い関節は曲がりにくくして、 自由度が多くて可動域が広い関節は曲がりやすくすることで IKの精度が上がることが多かったです。

すべてに当てはまるわけではありませんので、 あくまで私の個人的な感覚です。 目安として認識していただければと思います。

具体的にMayaだと「ダンピングと固さ」が、 曲がりにくさのパラメーターに近いかと思います。

ジョイントのアトリビュートについて理解する・Autodesk Maya公式サイト

IKが使えるアニメーションソフト

主要なアニメーションソフトであれば、 IKによる姿勢推定の機能が実装されています。

具体的には、以下のソフトでIKが使えます。 もちろん、FKも使えて、アニメーション作成ができます。

  • Maya
  • 3dsMax
  • MotionBuilder
  • Cinema4D
  • Shade3D
  • Blender

これら3DCGアニメーション作成ソフトも、 どれを選ぶべきなのか、 迷ってしまうことも少なくないでしょう。

特に初心者の場合は、 その違いも分かりづらいため、困ってしまうこともあります。

そこで、初心者におすすめのアニメーション作成ソフトについても、 別のページで解説しています。 興味があれば、ぜひ、合わせてご覧ください。

初心者向け!おすすめ3Dアニメーション作成ソフト

まとめ

「3DCGアニメーションで役立つ!IKの基礎知識」 についてのまとめです。

次の3つの知識があると、 IKアニメーションに役立つ。 「人体構造」「スケルトンの数」「IKの計算パラメーター」

人間の骨格は関節をまたいでチェーン構造になっている。 親子関係にあり、腰から四肢にわたって階層構造になっている。

IKは、その一部を引っ張ることでチェーンでつながっている 他の部分も動く仕組み。

関節の自由度はなるべく減らすと IKで精度よく人間らしい姿勢推定につながる。

人間の関節可動域を理解することで、 曲がらない方向を設定したり、 必要ない自由度を削除したりすることができる。

IKで精度をあげるためには、 スケルトンの数はなるべく少ない方が有利。

IKは反復計算により姿勢推定している。 回数を増やせば精度は上がるが、処理時間が遅くなる。 トレードオフなので落としどころを見つけるのがいい。

目標値は操作性にかかわる部分。 マウスカーソルを持っていったところに、 しっかり姿勢計算ができるかどうかのパラメーター。

曲がりにくさは、IKのときに 人間らしい姿勢を保つために必要な重みづけ。

関節の特性に合わせて重みづけを変えると、 IKしたときに人間らしい姿勢になる。

関連記事

厳選!おすすめ3DCGパソコン10選

BlenderをMacで使うときの推奨スペックはコレ!

Blender推奨スペックのおすすめノートパソコン3選

Blenderがフリーズする原因は?確認したい3つのこと

Blenderのインストール方法と基本操作

初心者向け!失敗しないBlenderパソコンの選び方

社会人向け!3DCGオンラインスクールの選び方

Mayaの推奨スペックはコレ!失敗しないパソコンの選び方

3dsMaxの推奨スペックと失敗しないパソコンの選び方

Blender推奨スペックはコレ!おすすめパソコン10選

Blenderは独学で習得できる!おすすめの学習の順番

3DモデリングのPCスペック解説!失敗しないパソコン選び

AutodeskAlias推奨スペック解説!パソコン選び方

初心者向け!MayaのVR機能で3Dモデリングする方法

IKとFKの違いってなに?アニメーション初心者向け

3DCGパソコンでMacが選ばれない3つの理由

ゲーミングPCは3DCG用パソコンとして使える?

3DCADと3DCGソフトの違いはコレ!3つのポイント

Mayaを独学する3つのメリットデメリット

初心者向け!Mayaの独学に必要なものはコレ

3ds Maxで建築パースの独学に必要な4つのアイテム

初心者向け!3DCG独学におすすめの本

3DCGソフト一覧・就職に有利なのはコレ!

30代社会人から独学で3DCGデザイナーになるのに必要な3つのこと

3DCG独学を成功させる3つのポイント

おすすめ3DCG用モニター5選!失敗しないモニター選び方

Copyright (C) 3DCADパソコンのスペックガイド. All Rights Reserved.