Unity 2Dゲーム作成 備忘録

Unity(2019.4.15f1 → 2020.3.11f1)でつまづいたところをメモしていきます。

Dynamic Boneが動かないときの対処法(2Dアニメーション)

Unityでもネイティブの機能で2Dのキャラクターにボーンを入れられるようになりました。
このボーンにDynamic Boneを設定しても動かなかったときの対処法です。

 

 

症状

ボーンも正常に入っていて、Dynamic Boneも正しく設定できている。なのに、「ゲーム」でプレビューするとピクリとも動かない。

f:id:ooo_washi:20210109190157g:plain

Dynamic Boneが正しく設定できているかは、以下の手順でチェックします。

(1)「▷」を押してプレビューする。
(2)画面が「ゲーム」に切り替わったら「シーン」に切り替え直す。
(3)ヒエラルキーから、対象のゲームオブジェクトを選択することで、ボーンの動きが表示される。

上図のように、ボーンは適切に動いているのに、画像がそれに追随できていないことがわかります。(本来、ブルーの横棒もボーンに沿って動く予定)

 

対処法

(1)編集>プロジェクト設定...>スクリプト実行順序(Script Execution Order)を開く。

(2)右下の「+」をクリックして「DynamicBone」を追加する。

f:id:ooo_washi:20210109162419p:plain

(3)追加された「DynamicBone」を「UnityEngine.U2D.CinemachinePixelPerfect」の上にドラッグ&ドロップする。(右の方の「-50」はUnityの方でいい感じの数字にしてくれるので触る必要なし)
f:id:ooo_washi:20210109162609p:plain

 

目論見通り、ブルーの画像も動いてくれるようになりました。

f:id:ooo_washi:20210109200114g:plain

 

補足

ネットを検索すると、3Dアニメーションやspineだと、「デフォルトより下(プラス側)」にするように書かれていますが、Unity 2D Animation だと、デフォルトより上にする必要があるようです。