意外と簡単?2Dアニメーションの基本について知ろう!

まずは2Dのアニメーションを理解しよう!

突然ですが、アニメーションと聞いて連想するのは何でしょうか?

もしかするとゲームでよく見かける3Dのアニメーションを連想する方もいらっしゃるかもしれませんが、今回は違います!

もちろんunity では3Dのアニメーションを扱うことも出来るのですが、それはもう少し先の話です!

今回は、unityにおけるアニメーションの基本的な仕組みを理解するために2Dのアニメーションに限定して話を進めていきましょう。

イメージはパラパラ漫画

今回学ぶのは、ズバリパラパラ漫画です

人間には連続した静止画を高速で切り替えるとまるで動いてるかのように見えるという、「残像現象」という特性があります。この特性を利用したものが、パラパラ漫画というものです。

今回は、そんなパラパラ漫画をイメージしながら読み進めていってください。

スクリプトで動かす方法とMecanimを使う方法がある

unity では2Dゲームで登場するオブジェクトなどをスプライトと呼びました。

なので、今回扱う2Dのアニメーションはスプライトアニメーションと呼ばれます。

スプライトアニメーションでは、スクリプトを使って1枚ずつスプライトを変更して動きをつける方法と、Mecanim(メカニム)というunity独自の仕組みを使う方法が存在します。

ここでは、後者のMecanimという仕組みを使っていきます。

Mecanimについて学ぼう!

先ほどMecanimを用いることで、状態から状態への遷移が簡単に行えるようになると言いました。

ここでは、Mecanimの仕組みについてより詳しく見ていきましょう。

Mecanimのメリットは

先ほどスクリプトアニメーションはスクリプトで作ることも出来ると言いました。
1つのアニメーションであれば多少手間がかかりますが、それでも問題ないでしょう。

ですが、立っている状態から走ったり、ジャンプしたり様々な動きをするキャラクターを操作する場合にはどうでしょうか?

立っている状態から走ってたら元の状態に戻すスクリプトを書いて…などと条件が非常に複雑になります。

ですが、Mecanimを用いることで「状態」から「状態」への遷移(場面が変化すること)を簡単に行えるようになります

Mecanimには4つの要素が存在する

Mecanimには以下の4つの要素が存在します。

  1. スプライト
  2. Animation Clip
  3. Animator Controller
  4. Animator コンポーネント

似たような名前が並んでいるので、それぞれの違いとお互いの関係を理解しましょう。

スプライトとAnimation Clipの関係

スプライトとAnimation Clipの関係を理解する前にまずは、ゲームの主人公をイメージしてみてください。例えば、スーパーマリオで説明していきましょう。

ここでイメージするのは2Dの横スクロール型のマリオです。ゲームの中のマリオはただ立っているだけではなく、走ったりジャンプしたりします。

先ほど2Dゲームに登場するオブジェクトはスプライトと呼ばれると言いましたが、「走る」「ジャンプする」といったそれぞれのアニメーションのことをAnimation Clipと呼びます

ゲームの主人公が、ジャンプしたり、走ったり、海に飛び込んだりする場合、様々なAnimation Clipを持つことになります

アニメーションを切り替えるAnimator Controller

続いて、Animator Controllerについて説明していきます。

先ほど言ったように、キャラクターの持つそれぞれの動きをAnimation Clipと呼びます。

Animator Controllerとは、どのタイミングでどのAnimation Clipを呼び出すかを再生する指定してくれる仕組みです。

Animator Controller上では、キャラクターのAnimation Clipの遷移を指定できるので、静止する→走る→ジャンプする→静止するといった、動きの変化をスクリプトで操作するよりも簡単にすることができます。

Animatorコンポーネントとは?

はじめに、オブジェクトに設定する様々な要素をコンポーネントと呼びました。

オブジェクトに物理的な動きをつけるRigidbodyや当たり判定に使うColliderだけではなく、スクリプトもコンポーネントの1つです。

Animatorコンポーネントも特別なものではなく、オブジェクトにアニメーションをつけるのに必要な要素なのだと考えてください。

最後にAnimatorコンポーネントの中に、Animator Controllerをセットすることでそのオブジェクトにアニメーションをつけることができるようになります。

まとめ

いかがでしたでしょうか?

今回は2Dアニメーションに用いるMecanimの基本的な仕組みについて説明しました。

特にスプライト、Animation Clip、Animator Controller、Animatorコンポーネントは今後unityのアニメーションを理解していく上で大切な要素になるので、それぞれの関係を押さえておきましょう。