Unityでもネイティブの機能で2Dのキャラクターにボーンを入れられるようになりました。
このボーンにDynamic Boneを設定しても動かなかったときの対処法です。
症状
ボーンも正常に入っていて、Dynamic Boneも正しく設定できている。なのに、「ゲーム」でプレビューするとピクリとも動かない。
Dynamic Boneが正しく設定できているかは、以下の手順でチェックします。
(1)「▷」を押してプレビューする。
(2)画面が「ゲーム」に切り替わったら「シーン」に切り替え直す。
(3)ヒエラルキーから、対象のゲームオブジェクトを選択することで、ボーンの動きが表示される。
上図のように、ボーンは適切に動いているのに、画像がそれに追随できていないことがわかります。(本来、ブルーの横棒もボーンに沿って動く予定)
対処法
(1)編集>プロジェクト設定...>スクリプト実行順序(Script Execution Order)を開く。
(2)右下の「+」をクリックして「DynamicBone」を追加する。
(3)追加された「DynamicBone」を「UnityEngine.U2D.CinemachinePixelPerfect」の上にドラッグ&ドロップする。(右の方の「-50」はUnityの方でいい感じの数字にしてくれるので触る必要なし)
目論見通り、ブルーの画像も動いてくれるようになりました。
補足
ネットを検索すると、3Dアニメーションやspineだと、「デフォルトより下(プラス側)」にするように書かれていますが、Unity 2D Animation だと、デフォルトより上にする必要があるようです。