Summer!の16日目の記事です。1.7FinalIKについてFinalIKは、IKに関する挙動を自然に制御できる、とても便利なアセットなのです。Entry.jphttps://entry.cgworld.jp/terms/IK.htmlキャラクターなどの3DCGモデルを動かすためのスケルトン構造を制御する方法の1つ。IKでは、最初にスケルトンの末端にあるジョイントの位置を設定し、そこに至るジョイントの角度を自動的に計算する。Kinematics)がある。表現したい動きに...IK制御がとてもラクにおこなえるFinalIK。特徴的な機能のひとつにVRIKというものがあります。昨今のVtuber界隈においては多くの開発者の方が利用しているようです。IKまとめ概要FinalIKは、様々なシチュエーションに対応した高品質のIKシステムを扱う事ができるアセットです。モバイルでも十分軽快に動作し、VTuber向けの開発でも大活躍するなど非の打ち所がありません。IKを使った基本と応用について解説いたします。IKFinalIKをAssetStoreからダウンロードし、インポートします。STEP.2インポート直後はこのようになっています。Pluginsディレクトリの下にインポートされます。Plugins内が既に他のアセットでごちゃごちゃしてたりすると、FinalIKのデータがどこにあるのか分かりづらくなるので、注意して下さい。サンプルモデル以外のモデルデータを使うFinalIKにはデモ用としてサンプルモデルが内包されています。今回は応用する方の為に、それらのキャラモデルは使わない方向で進めていきたいと思います。使用するモデルはこちら(Freeで使えます)ネコさんこのモデル、どこか見覚えがある気がするんですが。無性に、ショッピング意欲を刺激してくるデザインだね。IKはFinalIKの基本IKの一つです。Limbは「脚」を意味し、「ふともも」「ふくらはぎ」「足の甲/かかと」までを範囲として扱うIKです。該当する骨(またはIK全体)が受け持つ、影響力や効力の強さ。向きに関する制御が関係するものはPoleという名前が付きます。この名前が付くオブジェクトが基本、開発者側で移動操作する対象となります。Effecterという名前だったりする事もあります。IKを使ってみるSTEP.1オブジェクトの設置キャラクターをHierarchy(シーン内)に配置しましょう。次に、適当にSphereを2つ、Createしましょう。Goal」と名付けました。キャラのかかとあたりに。Goalは、ひざ正面から前に押し出した位置に設置しましょう。IK」を選んでアタッチしましょう。IKの中の未設定項目を埋めていきます。3にはFoot(足の甲/かかと)を設定します。Targetには、黄色いSphere「Target」を設定しましょう。Goal」を設定します。STEP.4再生して確認このまま再生をすると、かかとの向きがおかしな方向に向いた状態になってしまいます。Targetの持つ向きの情報を修正しましょう。z:90)に変更しました。これで、シーンを再生してもキャラクターの足が変な方向に向かなくなります。IKの機能が付きました。このIKを使うと例えば、「キャラをスクワットさせる」「動く台座でバランスゲーム」などの動きが付けられるようになります。スクワットといえば、自宅でできる運動の代名詞だよね。ネコさんは、家で何か運動するの?なかけんネコさん最近はもっぱら、ファミリートレーナーで走ってますね。IKはFinalIKの中でもっともゲーム向けな機能となります。A」を向かせる為の機能です。IKの時と同様に、新しくシーンを作ってから再びキャラクターをHierarchy(シーン内)に配置しましょう。今度はSphereを3つ、Createしましょう。Target」と名付けました。IKをつけても、その効果が視覚的に分かりにくいかもしれません。IKを使ってる事がわかりやすい、手持ちアイテムを追加しようと思う。なかけんネコさんはあ、アイテムですか。階層に、「MP-40」というPrefabがあります。これをシーン内に、ドラッグ&ドロップしましょう。MP-40をキャラクターの右手に持たせましょう。キャラクターの右手はR_Handですので、キャラクターの階層を潜ってR_Handに該当するボーンを探します。Hand」というボーンを見つけたので、MP-40をその下に移動します。この時、MP-40が持つローカルなPositionとRotationの値を調整しましょう。0)あたりがちょうど良いと思います。ネコさん顔と手に持っている物とで、ミスマッチ感がすごいですね...やさしい殺し屋さんって感じだね。IK」を選んでアタッチします。Controller」を選んでアタッチします。Controllerの未設定項目を埋めていきます。Controller側で制御するので)。Target」に緑色のSphereのPoleTargetを設定します。Transform」には、チャカであるMP-40の階層下(子)に存在する「AimTransform」を設定しましょう。「Weight」は0のままで大丈夫です。Weight」は1にしておきましょう。いくつか飛ばして、「Bones」の設定です。「+」ボタンを全部で3回クリックして、スロットを3つに増やしましょう。Clavicle」を指定するようにしましょう。それぞれのWeightも上と真ん中が「0.5」、一番下が「1」となるようにしてください。Controllerです。IKコンポーネントをドラッグして指定するのがわかりやすい)「Weight」は1にします。「Target」を黄色いSphereのTarget01に指定します。残りは初期設定のままで大丈夫です。STEP.4再生して確認エディターを再生すると、キャラクターが指定したターゲットにチャカを向けているのがわかります。IKで単純にTargetを変える場合。例として、ターゲットを”A”→”B”に変えた場合だと、ターゲットの変更途中のアニメーション動作が、たった1フレームで完了してしまいます。これだと、なんだか味気ないですよね。Controllerなら、Targetを動的に変更した場合でも、間の動きを補完してくれます。Time」を調節することで、ターゲット変更時の切り替え速度をコントロールすることができます。ターゲット対象が素早く動いたときに照準を合わせるまでのラグなんかは、この機能を使って再現することができます。まとめFinalIKを使うと、ゲームの状況に応じてキャラクターに動的かつ自然な振舞いをさせる事が出来るようになります。スケルトン規格(仕様)がバラバラであっても、FinalIKは柔軟に仕様に合わせることが出来、問題解決できる仕組みがしっかり用意されています。この柔軟性の高さがFinalIKの強味なのです。ダイナミックで新しい面白さを追求したい方に是非、FinalIKをおすすめしたいです。Packのキャラクター、やっぱりどこかで見た覚えがあるんですが...そうだね。確かに見覚えがあるかもしれないけど、どうしても思い出せない。なかけんネコさんうーん。謎は、深まるばかりですね。SQLつかってみたり」です。Editorは重用しているので、とても楽しみです。:Unityこの記事を書いた人なかけんUnity/Blender(3D制作)/アニメーション/UIが得意なテクニカルアーティスト。プログラムとデザイン全般やる便利屋さん。2018/08/03管理人ネコさんこのサイトの管理ネコ。ゲームとチャーハンをこよなく愛している。Unityを使って何かを作るのが趣味。