Unityでスプライトアニメーション

「ココのコイン落とし」でコインを取得した時にコインが回転するスプライトアニメーションを追加した時のメモです。

まずUnityでスプライトのアニメーションパターンが読み取れるように、左上から右下に向かって画像がアニメーションしているような感じで、アニメーションパターンを一枚の画像に配置します。

厳密な配置の仕方を知らないのでざっくりです

Unityに画像を読み込んだらInspectorでTextureTypeをSpriteに、SpriteModeをMultipleにします。Applyを押した後、今度はSpriteEditorボタンを押します。

SpriteEditorウィンドウが出てくるので、Sliceボタンを押してTypeをGridByCellSizeにし、1つの枠あたりの分割サイズを指定します。これで等間隔に分割してくれます。今回は必要ありませんが、操作キャラに関する絵であるならPivotも調整必要だと想います。
Applyを押すとProjectViewの画像の階層下にパターンがずらっと並んで出てきます。

次にこれをアニメーションして表示させる為にアニメーションコントローラとアニメーションを作成します。
ずらっと出てきたアニメーションパターンを全部選択肢、シーンにD&Dします。
するとAnimationファイルの保存ダイアログが出てくるのでそのまま保存します。
HierarchyViewにGameObject、ProjectViewにAnimatorControllerが作成されるので、それぞれ適当なファイル名に変更します。
AnimatorControllerを見てみるとAnimationがステートとして追加されてればOKです。HierarchyのGameObjectをプレハブ化して完了です。

ちなみにココのコイン落としでは、このコイン回転アニメーションを、コインがコイン取得エリアに落ちた時に、その3D空間座標に取得コイン数のテキストも添えた上で表示したいと思います。
しかし、これをそのまま3D空間上に表示してしまうとなると、テキストも3Dテキストにしなくてはなりませんし、画像やテキストにパースが付いてしまい、妙な見た目になってしまいます。
なのでコインが落ちた場所の3D空間座標を取得し、その場所にコインアニメーションをInstantiate()した上で、SetParent(canvas.transform,true)でCanvasの子にしてしまい、さらにlocalPositionやlocalScale,localRotationをいじる事で見え方を微調整するという強引なやり方で実装しています。
もっとマシなやり方があったらどなたか教えてください(汗

参考サイト

https://qiita.com/ELIXIR/items/e58fa48680e0ebbde0ea

1 Star2 Stars3 Stars4 Stars5 Stars (まだ投票されていません)
Loading...

    コメント