Unityで2Dモデルのアニメーションをさせる方法の備忘録

キャラクターの制御に合わせてモデルをアニメーションさせたい
Unityではその実現にAnimationとAnimatorを使う
また、モデルの作成にはAnima2Dを使用した。

ざっくり言うと

①ペイントツールでモデルを描いて

関節毎とかにバラバラにして保存(1枚のテクスチャにまとめなくてもよい)

②Anima2Dでゲーム上のモデルの骨格とスプライトをリンク付けしながら作成

③Animationでモデルの動きを作成し、 AnimationClipとして保存

④Animatorで作成した色んなAnimationClipを制御し再生する

①ペイントツールでモデルを描く
描いた後に関節とか稼働する場所毎に画像を切り分けます。
パーツ毎にレイヤーを分けて描いちゃえば後が楽。

②Anima2Dでゲーム上のモデルの骨格とスプライトをリンク付けしながら作成
Anima2Dによるボーンの作成は以下の記事を参考にしてください。
Anima2Dでキャラクターアニメーションを作ろう!編 – SEGA TECH Blog

また、上記記事では複数のパーツをTexturePackerやSpriteUVなどを使って、1枚のテクスチャーにパーツを配置していますが(パッキング)。
私はUnityのパッキング機能Sprite Packerを使っています。Sprite Packerを使ったほうが、後々パーツの修正を行いたいとき等に簡単にできますし楽です。多分。
パッキングについては以下の記事を参考に。
【Unity開発】Sprite画像とSprite Packerまとめ【ひよこエッセンス】

③Animationでモデルの動きを作成し、AnimationClipとして保存
Animationの作成は以下の記事が分かりやすかったです。
Anima2D入門〜実践(アニメーション作成)編〜
上記記事のポーズ作成、コントローラの作成は行っていません。
アニメーションさせたいオブジェクトにAnimatorコンポーネントを追加し、
Animator上で新規AnimationClipを作成し、保存しています。

また、上記記事にも書いてありますが、AnimationClipの特定フレームになったとき、対象オブジェクトの持つ関数を呼び出すことができます。(イベント機能)
例えば、走るアニメーションの足が地面に着く瞬間に足音の鳴る関数を読んだり、剣を構えて振り始める瞬間に攻撃判定オブェクトを生成する関数を呼び出したりといった使い方ができます。ただし、注意として呼び出せる関数に制限があります。制限の内容は引数がひとつであるという点です。ふたつ以上も対応して!
イベント機能については以下の記事が分かりやすい。
Unity : AnimationClipに合わせて処理をしたいなら

④Animatorで作成した色んなAnimationClipを制御し再生する
以下の記事を参考にしました。
Unityのアニメーターコントローラーの使い方
Animatorのときもそうでしたが、基本的に2Dでも3Dでもやることは変わりません。

だいたいこんな感じでアニメーションを実装できるかと思います。
URLを貼りまくるだけで仕事した気になれますねぇ!

ドット絵の2Dアクションゲームを作りたくなった

3ヵ月ぶりくらいの投稿

3Dアクションゲームを作っていたが、3Dモデルの作成に腰が引けてしまい
2Dアクションゲーム(ドット絵調)の作成に逃走。
そのうえトロフィー厨としての血が騒いでしまい以下のゲームに没頭してしまっていた。
・The Crew2
・God of War
・The Surge
・No Man’s Sky
・Dead by Daylight
・NieR: Automata
・ペルソナ5

2Dアクションゲームとしては以下のようなものを作成した

以下からダウンロードして遊べます
https://ux.getuploader.com/xnextxnextx/download/1

3Dのアクションゲームを作成したときのノウハウでほとんど作成することができた。
ただし、アニメーション等は今まで触っていなかったので
次回記事にて新要素を備忘録用にまとめていく。

いじょ。