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

スポンサーリンク
Unity
スポンサーリンク
↑管理人が個人でUnity+Live2Dで作成しているスマホゲームです

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

まず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をいじる事で見え方を微調整するという強引なやり方で実装しています。
もっとマシなやり方があったらどなたか教えてください(汗

スポンサーリンク

参考サイト

Unity でスプライトアニメーションを作る - Qiita
Unityでスプライトアニメーションを作る際の手順をまとめました。・ アニメーションさせる絵を縦横同じサイズのマスに並べたpngを用意する2パターン以上のアニメー…
1 Star2 Stars3 Stars4 Stars5 Stars (まだ投票されていません)
読み込み中...

コメント

広告ブロッカーを無効にしてください。

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