top of page
  • 執筆者の写真BTA(Kelorin Jo)

Final IKの普通な使い方まとめ

何にでもIKを仕込めるアセット、Fina lIK



私はパペマスの記事ばかり書いてFinalIKはまだ導入してないのですが、一般的にはこっちのほうが導入が簡単で実用的でしょう。

(同じ開発者なのでパペマスと合わせて併用も可能だし、それを想定してるはずですが)


歴史のあるアセットですが、比較的新しく実装されたVRIKが超手軽かつインパクトある機能で、VRコンテンツ作りには超強いし楽しそうですが…

解説記事の例:

ふつうの3Dゲームにこれを使うにはちょっと用途が限られるかなと思うので、これの説明は省き

それ以外の機能をざっとまとめますと


・手足末端と言わず全身、指先までIKを仕込める

・小道具、両手武器、ドアノブ、イス、車のハンドルとペダルなどにモーションを使わずつかめる

・視線を動かしてものを見る時に、上半身全体を回転させる

・一つの歩行モーションをオフセットして、老人や酔っぱらいの歩き方に補正する

・カスタムIKで非人形モデルの関節に可動域を設定して、少ないターゲットハンドルで制御できる

・ルート座標を動かすだけで自動で歩いてくれる足関節を実現する

・TPSキャラクターコントローラでの足の完璧な接地、足の限界角度を超えたら足の位置を自動で直そうとする


私が過去に投稿した紹介動画


Blenderなどで自分でモーションを作ったらわかりますが、Unityの仕様ではモーションだけですべてのアクションを表現することは不可能です。

ただ歩くだけでも、足の動きとルート座標の移動は結構ずれます。完璧に接地する歩きモーションは(不思議なことに)一定速度で動けない、実にギクシャクした動きになます。

手でなにか拾う、腕を組む、手を頭や腰に当てるといった何かに触る動作も、体格が違えば位置がずれまくります。

両手で持つアイテム―大きめの箱やライフルや槍なども、プロップの形状が変われば持つ位置、関節の角度もずらさないと正しく持てないです。

またモーションはそこそこサイズが大きいデータなので、モーションの数でズレを補うには限度があります。


それらの補正にはIKを使えば簡単です。IKを使えば狙った場所に手足の末端をガッチリ固定できます。用途次第では、モーション無しでIKだけでも結構な表現が可能です。


FinalIKは手足と言わずあらゆる関節にIkを仕込むことができます。

基本これを使います。


・全身IKのセットアップ手順

1.キャラモデルのAnimatorControllerのあるオブジェクトにFullBody Biped IKをアタッチ

自動でセットアップされます。※肘・膝がちゃんとしてないモデルは話は別



2.適当な空オブジェクトを作って、手足などのTargetに設定 

基本はこれだけです。



あとはターゲット対象を割り当て、ウェイトスライダーを上げると自然にターゲットに追従=掴んだり離したりさせられます。

効いてない状態がこうで↓

球の表面に配置した空オブジェクトを左手のターゲットにして、ターゲットのウェイトを上げると

こう↓


ターゲットの距離が遠かったら、全身のボーンを連動させてがんばって手を伸ばします。

この全身連動というのが、人力でモーション作ったり標準のIKでやろうとしたらとても難しいか不可能な表現です。


※ちなみにパペマスを併用してます。この状態でコライダーをぶつけて転ばすとどうなるかは後述


全身連動して動くので、キャラでなくターゲットを動かすことでも、結構複雑な動きが実現できます。

そしてかなり安直に使えます。

サンプルシーンのコードを丸パクリするだけで大抵の表現は足りるでしょう。



だいたいこのFullBodyBipedIK(FBBIK)の実装が前提で、様々な応用スクリプトがそろってます。


ボタンを押すなどの使い方をするには、キャラとの位置や角度といった適用範囲を設定するInterractionTriggerや、InterractionSystemがあります。

シーン上に配置したギミックにトリガーコライダーと一緒にアタッチして、ターゲットになる空オブジェクトを設定して配置すると、

ギミックに近づいたキャラのFullBodyIKにアクセスしてターゲットを自動で設定し、ウェイトスライダーをほどよく動かして戻すとかを、ほぼ自動でやってくれます。(まあトリガー発動の部分は要コーディングですが)

これを使えば持つ・拾う・座るといった繊細なアクションが、モーションを使わず実装できるでしょう。


アイテムインタラクション実装のチュートリアル動画



FPSのライフル用には、それ専用のコンポーネントArm IKが用意されてます。

参考記事


VRIKなどについてるLocomotionは、足の完璧な接地、体勢が苦しかったら自動で足の位置を変えたり歩行する、などの繊細で複雑な挙動を実現します。




Effector OffsetやAmplfierは、IKで手足体を引っ張ることで姿勢・モーションに補正をかけられます。


加えて、それらのIKやラグドールを効かせた状態の動きをモーションとして書き出せるBakerがおまけで同梱されてます。

※これはパペマスにもついてます

つまり、モーション作成ツールとしても使えます。

例えば腰の曲がったホームレスの老人が左手でワンカップあおりながら傘で殴るモーションとかほしくてもまずアセットストアに売ってないでしょうが、これで作れます。


VRIKでモーショントラックした状態でもモーションを作れるとしたら、上半身限定でかなりいいモーションキャプチャーが実現しそうですが…



・併用はできるのか

FullBodyBipedIKとLookAtIKを併用すると、回転した上半身ボーンすべての角度が加算されて、LookAtIKはターゲットの方を正しく向けませんでした。

しかしAimIKはFBBIKと併用できるようです。組み合わせ次第のようです…


パペマスとFinalIKは併用することができます。


ターゲットをつかもうとしてコライダーを持つメッシュに当たるとパペマスの力で腕が押し返されます。それが物理で動くものだったら延々押しつ押されつ時々勢いついてぶつかって転ぶようなおもしろ挙動が実現できます。

(インディーゲームで時々ある酔っぱらいの動きのアクションゲームみたいな感じ)

ただ、転んでる最中はボーンの角度が考えなしに加算された状態で、ターゲットの方向を正しく向きませんでした。ダウン中はターゲットのウェイトを0にするなどの工夫がいるでしょう。


あと、殴られて怯むとか手足を固定されたまま宙吊りでアクションするとか機能がかぶってるスクリプトが、パペマスとFinalIKそれぞれにあります。同時に使ったら競合しそうなやつで、どちらが使い勝手良いかは検証が必要でしょう。



・で、結局使えるのか

キャラの手が浮かずめり込まずお触りするといったデリケートな表現を実装する必要があるプロジェクト(3Dギャルゲーとか)には問答無用で必須でしょう。

Humanoidモーションが使えない関節、つまりロボやメカやクリーチャーをスムーズに動かすのにも活躍するでしょう。

TPS・FPSでも銃を両手で持たせ時々首を動かし手を離すとかするのはそこそこ大変なので必要でしょう。(ただ両手両足に使うだけなら、安いIKアセットがいくつかあるでしょうけど)


ではそれ以外、

手軽なインディーゲーで、手間に見合う結果が出せるか?という観点で考えると…


3Dキャラアクションでは、モーションとアニメータコントローラを使わずにキャラにアクションを追加できるというのが大きなメリットとなりえます。

移動とジャンプだけですでにぐっちゃぐちゃにトランジョンがいりくんだアニメータコントローラに新たな動作を追加するのは、かなり怖い話です。

スクリプトだけでも各機能が干渉しないように共存させるのはプロジェクトバックアップと覚悟を要する難易度なので、アニコンまで絡むのは脳がパンクしそうです。

スクリプト一つアタッチするだけで自在につけて外せて、アニコンはせいぜいどこにも繋がないモーションをD&Dする程度で済ませられるなら、それに越したことはありません。


モーションを使わずにお手軽に実現できそうなアクションが必要なプロジェクトは導入する価値があると言えます。

目安としては、

・物を持つ、ボタンを押す、ドアを開ける

・椅子に座り机の上に手を乗せてデスクワークする

・どんなイスにも必ず尻と足を接地させて座らせる

・物を掴んだりハシスプーンで食べる

・車を運転する

・銃を持ち全方向に振り回す

・キャラが顔だけ動かして見てくる

・両手で抱える

・両手武器を持たせる

・他のキャラの手を握って歩く

・触手や多関節モデルの腕を動かす

・非人形のロボや、足がたくさんついてるキャラがある

・キャラを自由にポーズをとらせる


上記で該当するアクションがゲーム内容に深く関り、かつキャラエディットでプレイヤーキャラやNPCの体格が大きく変動するフィーチャーがあるなら、導入するべきでしょう。

簡単な手間で、複雑なモーションを苦労して調達して制御することなく、これらのアクションが実現できるでしょう。




でも、すでに別の手段で実装していたなら、代替えする甲斐があるかは判断が悩ましくなります。

例えば、物を拾うにしても、ノーモーションでアイテムを拾って手にワープしてもインディーゲームではそう気になることではないだろうし、

ドアを開くなら余計な動作させるより、近づいたら自動で開くほうがゲームのテンポは良くなると思うし。

両手持ち武器も、すでにモーションを持ってるならそれで足りるだろうし。

細かい見た目の品質を上げてもゲームの面白さには直結しないのです。

インディーゲームはアセットはアイデアの実現に不可欠なものでない限り、より早くゲームを完成させる用途にアセットを選ぶべきだと私は思います。


それとは別に、後発で安いまたは無料のIKアセットもいくつか出てます。高い=高性能とは限らないので、そちらを試してみるのもいいかも。



閲覧数:11,684回0件のコメント

最新記事

すべて表示
bottom of page