Unity 2DAnimationのボーンでグルグルひまわりを作る4/6

前回は、Unity の Skinning Editor でスケルタルアニメーションのためにひまわりの画像に設定したボーンを、シーンのゲームオブジェクトに自動的に追加する手順を紹介しました。
連結したボーンたちをなめらかに動かすための Solver と呼ばれるコンポーネントについても紹介しました。

前回の記事:Unity 2DAnimationのボーンでグルグルひまわりを作る3/6 | Compota-Soft-Press

Unity ボーン設定済み画像のゲームオブジェクトを選択して、Sprite Skin コンポーネントを追加します.

今回は、シーン上に追加された連結されたボーンのゲームオブジェクト群と、それらをなめらかに動かす Solver を用いて、指定した位置になめらかな曲がり方でひまわりの画像を変形させる手順を紹介します。

Effector ゲームオブジェクトの追加

前回、ひまわりのボーンたちをなめらかに動かすために、Chain(CCD) Solver コンポーネントを持つゲームオブジェクトを追加しました。

Unity IK Manager 2D で Chain(CCD) を追加すると、ゲームオブジェクトの下位にそれが追加&追加されます.

Solver を用いてボーンたちをなめらかに動かすには、 Inspector ウィンドウの Effector フィールドで、どのボーン(またはボーンの下位のゲームオブジェクトの Transform)を中心に動かすかを指定する必要があります。
Effector で指定した Bone または Bone の下位の Transform が、Target で指定された座標に近づくように Resolver は連結したボーンたちを動かします。

今回はひまわりの花の真ん中を Effector で指定したいので、花全体を縦断しているボーンではなく、そのボーンの下位にゲームオブジェクトを作成して、花の真ん中に配置した Transform を Effector に設定します。

上下関係で連結したボーンたちの動きの先端になるボーンの下位に空のゲームオブジェクトを追加して Effector にリネーム(リネームしなくても良いです)します。

Unity CCD Solver 2D コンポーネントの Effector フィールドに指定するゲームオブジェクトをボーンの下位に作成します.

Effctor ゲームオブジェクトの位置を花の中心に移動します。

Unity CCD Solver 2D の Effector の位置を表す Transform の位置を調整します.

位置を設定したボーンの下位の Effector ゲームオブジェクトを New CCDSolver2D ゲームオブジェクトの CCD Solver 2D コンポーネントの Effector フィールドに Hierarchy ウィンドウからドラッグ&ドロップして設定します。

Unity CCD Solver 2D の Effector フィールドに、ボーンの下位に追加した Transform を設定します.

これで動きの先端部分となる Effector が設定できました。

Effector のボーンから連動するボーンの個数の設定

Effector に指定したボーン(ゲームオブジェクトを指定した場合は一番近い上位のボーン)と連結している上位のボーンたち何個分を Chain(CCD) Solver で動かすかを指定します。

CCD Solver 2D コンポーネントの Chain Length の値を増やすことで指定でき、シーン上でも連動するボーンとして選択されているかどうかをグラフィカルに確認できます。

Chain Length の数に応じて、ひまわり画像の花の部分のボーンから根のほうのボーンに向けて、灰色の丸が黄色になって連動する範囲を表しています。

Unity CCD Solver 2D の Chain Length でエフェクターのボーンより上位のボーンいくつまで連動させて動かすかを指定します。

これで、Effector のボーンからいくつ上の階層のボーンまで連動させるかを指定します。

Target ゲームオブジェクトの自動作成

CCD Solver 2D コンポーネントの Effector と Chain Length を指定すると、 Create Target ボタンが活性するので押して、自動的に Target ゲームオブジェクトを作成し、 Target フィールドに設定します。

Target フィールドは Effector の目指す位置を指定するもので、ボーンの制約の範囲内で Effector と連動するボーンは Target の位置に近づこうとして変形します。

Unity CCD Solver 2D の ChainLenght を指定すると活性する CreateTarget ボタンを押すと Target ゲームオブジェクトが作成されて Target フィールドに設定されます.

シーン上でのテスト

Target ゲームオブジェクトを選択して、移動ツールを使ってシーン上で動かすと、それに向かって Effector が近づき、 Effector に連動したボーンたちがなめらかに動くようになりました。

Unity CCD Solver 2D の適用前後

今回はここまで

今回は、Unity の Chain(CCD) Solver のコンポーネントで、動かす中心のボーン(またはその下位のゲームオブジェクト)と、連動するボーンの数を指定して、指定された座標に向けてボーンたちが変形するために Effector, Chain Length, Target の設定を行い、シーン上で Target を移動させることで、なめらかにボーンたちが連動して動くことを確認しました。

ンプルのひまわりは、1日でゲームを作るオンラインの大会、第41回あほげー(お題:ひまわり)で作成したものです。

参照サイト Thank You!

記事一覧 → Compota-Soft-Press

コメント

Ads Blocker Image Powered by Code Help Pro

お願い - Ads Blocker Detected

このサイトは広告を掲載して運営しています。

ポップアップを閉じて閲覧できますが、よろしければ

このサイト内の広告を非表示にする拡張機能をオフにしていただけませんか?

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

タイトルとURLをコピーしました