きっポグ

- kitposition's weblog -

3Dキャラクターモーション作成ツールの新星「akeytsu」に(ちょっと)迫る ~その2:UI編Part2

f:id:kitposition:20160215233539p:plain

 前回はakeytsuの紹介記事の途中なのについUE4に浮気してしまいました。今回は気を取り直して?UI編の続きです。

ポージングのストレスを軽減させる「メッシュ選択」

 一般にアニメーションする3Dキャラクターモデルは、ボーン(骨組み)とそれを覆うメッシュ(外形)で構成されています。3Dツールでキャラクターにポーズをつける際には、通常はボーンをマウスクリックで選択し、前回の記事に登場したマニピュレーター等で操作します。しかし、ボーンはメッシュの内側にあるので、なかなかうまく選択できない場合があります。

 そこでakeytsuでは、「akeytsu mesh controls selection」というなかなか仰々しいネーミングの操作方法が採用されています。まずは次の動画をご覧ください。

 ワイヤーフレームで表現されているのがメッシュ、その中にある緑色の細い骨組みがボーンです。この動画では、「足のひざ下を選択して曲げる」という操作をしているのですが、作業開始時にマウスでクリックしたのは、ひざ下のボーンそのものではなく、半ズボンのすそのあたりです。要は、適当にメッシュのそれっぽいところをクリックすれば対応するボーン*1が選択されて操作可能になる訳です。

 前回のスピナーに比べると地味ながら、作業上のストレスを大きく減らしてくれます。

機能はシンプルだが簡単操作の「IK」

 3Dモデルの、特に手足のポージングの際には、「FK(Forward Kinematics)」と「IK(Inverse Kinematics)」の2通りの方法があります。
 説明しだすと結構奥深いのですが、正確さを追求せずにごく大雑把に言うと、下の1番目の動画がFK、2番目の動画がIKです。

 

 FKとは、動かしたい部分の根元の関節から先端の関節に向けて順番に動かすことで(動画の例では肩→ひじ)望みのポーズをとらせる方法です。
 FKでは全ての関節をユーザー(ポーズ作成者)の希望の位置に動かすため、正確なポージングが可能ですが、反面「木になっているリンゴをつかむ」というポーズをさせたい場合、この方法で手をぴったりとリンゴの位置まで持っていくのはかなり面倒な作業になることは想像できるかと思います。

 対するIKは2番目の動画のように、動かしたい部分の先端を希望の位置(目標)に向けて動かすと、根元までの関節は勝手に計算されて動くというしくみです(動画の例では手首をつかんで動かした)。
 IKはある意味ポーズがコンピューター任せになるので、必ずしもイメージ通りにならないケースもあるのですが、先ほどのリンゴの例のように「細かいことはいいから、とにかくリンゴ(目標)をつかませたい」という時にはとても有効です。

 …と、ここまでは3Dツールの基本で、ほぼ全てのツールがFKとIKの両方の操作をサポートしています*2。大抵の場合はFKを基本モードとし、必要に応じてユーザーが設定を施すことでIK操作が可能になります。ここでの設定で最も重要なのは、「根元というのはどこで、先端というのはどこか」を決めることです。
 実は、多くのツールでは、この設定自体が(私の主観ですが)面倒だったり、操作の際にFKモードとIKモードの切り替えが必要だったりします。

  akeytsuでは、IKの設定が極めて簡単で、モードの切替もありません。先ほどのIK動作の動画(2番目の方)で、手首にリングのようなものがはまっているのがわかりますが?実は先ほど「手首をつかんで」と書きましたが、正確に言うとこのリングをつかんで動かしていたのです。
 ではこのリングをはめる方法ですが、

  1. 根元にしたい部分(例えば左肩)を左クリックで選択

    f:id:kitposition:20160215233751p:plain

  2. 先端にしたい部分(例えば左手首)を同時選択(Ctrl+左クリック)

    f:id:kitposition:20160215233806p:plain

  3. Add IKボタンをクリック!

    f:id:kitposition:20160215233819p:plain

  4. リング出現!

    f:id:kitposition:20160215233833p:plain

 これで終わりです。簡単ですね。他のツールのIK操作に詳しい訳ではないのですが、多分akeytsuはかなり簡単な方だと思います。

 また、IKにはもう一つ、「身体がどう動いても、先端部分を極力目標の位置に固定する」という機能があります。この操作もakeytsuでは簡単で、先ほどのリングを右クリックして赤くするだけです。
 下の動画は実際の例で、モデルの体の中心となるルートボーンを上下に動かしています。

 動画の前半では足のリングが固定されていないので、体全体の位置が上下に動く状態ですが、後半では両足のリングを固定しているため、足首が地面に固定され、「しゃがむ」ポーズが簡単に作れています

 このように、akeytsuのIKは極めて簡単な方法で操作が可能*3ですが、反面機能も実にシンプルで、どうもあまり高度なことはできないようです*4。とはいえ、私のような初心者にはこれくらいの方が覚えやすいしちょうどいいと感じます。

UI編まとめ

  前回、今回とakeytsuのUIの一部をご紹介しました。実はakeytsuの操作画面には他にも紹介できていない独創的なUIがいくつもあるのですが、私自身がまだ触りはじめて日が浅く、機能を把握していないのでとりあえずUI編は一旦ここまでにします。
 ただ、akeytsuのUIの最大の特徴が「既存の機能を他のツールよりも簡単かつ直感的に操作できる」ことがなんとなく伝わっていれば嬉しいです。

 もちろん、目新しいUI以外にもakeytsuにはユニークな機能がいくつも備わっています。いつになるかわかりませんが(まだやるのかw)次回は機能編として、それらをご紹介したいと思います。

*1:当然ながら、メッシュとボーンの対応関係(どのボーンを動かすとメッシュのどの範囲がどれくらい動くのか)は事前に設定しておく必要があります。これを「ウェイトをつける」といい、市販のキャラクターモデルでは大抵あらかじめ設定されていますが、自作モデルでは自分で設定しなければなりません。akeytsuにはモデルを作成する機能はありませんが、モデルにボーンを設定してウェイトをつけることが可能です。

*2:akeytsuは決まったポーズやアニメーションを作成するツールですが、Unityのようなゲームエンジンでは、キャラクターがプレイヤーの操作や状況に応じて様々な動作を行うため、いわゆる動的なIK(言葉は勝手に作りました)を実装できます。例えば「武器を構えて敵を狙う」動作の場合、敵とキャラクターの位置関係が異なれば動作も変わるはずです。その全てのモーションを用意しておくことは不可能ですが、IKの考え方を用いれば基本となる動作を作っておくだけで、ゲームプレイ時の敵の位置に応じて腕の動作が自動的に補正されます。また、足先に応用すれば、単一の歩くモーションを作っておくだけで、でこぼこ道や坂道でも地面(目標)をしっかり踏んだ自然な歩行動作になります。

*3:実際には関節の曲がる方向の設定など他にもいくつかやることはありますが、それらの操作もさほど難しくはありません。

*4:ここでいう「高度なこと」は私もよくわかっていないし説明しだすとキリがないので省略しますが、例えばMayaのHumanIKなどは一部を動かすだけで全身にわたる自然な動作がなされるようです。