はじめてのUnity 【第8回 Unityのアニメーション 基礎編】


はじめてのUnity 【第8回 Unityのアニメーション 基礎編】

Unityのアニメーション

今回はアニメーションについて見ていきたいと思います。
アニメーションを設定することで、ゲームオブジェクトが動きを持つことができます。


アニメーション

ひとことでアニメーションと言っても、Unity には様々なタイプのアニメーションがあります。
ただのキューブを回転させるのも、アニメーションです。
キャラクターを走ったり、ジャンプさせたりするのもアニメーションです。
これらは同じアニメーションでも、後者はより複雑な設定が必要となります。

今回は基礎編ということで、ただのオブジェクトを回転させるだけのアニメーションをご紹介します。


アニメーションクリップ

アニメーションクリップというのは、アニメーションの動きを設定したデータのことです。
動き自体を設定したデータを独立したものとして用意することで、汎用性が高くなります。

「10秒で縦に1回転する」というアニメーションクリップ
「10秒で横に2回転する」というアニメーションクリップ

など、それぞれのクリップを用意しておくことで、使いまわしができ、非常に便利です。


アニメーションコンポーネント

アニメーションコンポーネントに関しては、今まで使ってきたコンポーネントと同じです。
ゲームオブジェクトに追加することで、アニメーション機能が有効となり、細かな設定が可能となります。

実際にモデルを動かす際には、そのモデルにアニメーションコンポーネントを追加し、どのアニメーションクリップを使うかを選択する形で設定します。


アニメーションクリップの作成

では、実際にアニメーションクリップを作成して、キューブを回転させてみましょう。
まずキューブをひとつ作成しておきます。
インスペクタにアニメーションコンポーネントも追加しておきましょう。

WS000041
Add Component > Miscellaneous > Animation

アニメーションクリップの編集は、<Animation> ビューで行いますので、編集画面を呼び出します。

WS000035
アニメーションウインドウの追加

アニメーションビューが開いたら、左上にある録画ボタン(マーク)を押します。
作成するクリップに名前を付ける必要がありますので、ここでは rotation.anim としておきます。

WS000037
アニメーションクリップの作成

表示をCurves モードして、Add Curve を押します。
今回は回転するアニメーションを作りたいので、Transform > Rotation を追加します。

WS000038
Curve の追加

Rotation.x Rotation.y Rotation.z は、どの座標を回転軸にするかの選択です。
今回はRotation.x を選択して、進めてみましょう。

WS000039
Rotation.x 初期画面

Rotation.x は、紫色のひし形マークで表示されます。
右側のグラフには、「0:00」と「1:00」の二か所に、ひし形マークが表示されています。
「0:00」は0秒時点ということで、アニメーションのスタート時点での回転角度となります。
「1:00」は1秒後の回転角度です。ここを変更することで、1秒後にどれくらい回っているかを決定できます。

では、1秒後に時計回りにちょうど1回転するような設定をしてみましょう。

「0:00」のひし形マークを選択して、Rotation.x の値を0にします。
「1:00」のひし形マークを選択して、Rotation.x の値を360にします。

WS000040
Rotation.x 1秒後に360°回転

数値の設定が終わったら、もう一度録画ボタンを押して、設定終了です。
これで、1秒間で時計回りに1回転するアニメーションクリップが作成できました。

試しにアニメーションウインドウの再生ボタンを押してみましょう。(録画ボタンの右の▶マーク)
ちゃんと1秒で1回転すれば成功です。


アニメーションクリップの適用

今までの作業でアニメーションクリップを作成することはできましたが、まだキューブに適用はできていません。
適用はアニメーションコンポーネントから行うので、キューブのインスペクタの Animation の右の◎マークをクリックして、
先ほど作成したrotation のクリップを選択しましょう。

WS000042
アニメーションクリップの選択

インスペクタに登録できたらすべて完了です。
試しに再生ボタンを押してみましょう。ゲームビューでもちゃんと回転していれば成功です。


アニメーションコンポーネントのプロパティ

アニメーションコンポーネントにある項目について見ておきましょう。

Animation

使用するアニメーションクリップを選択します。
デフォルトのアニメーションとして、Play Automatically がONの際に、自動で再生されます。

Animations

スクリプトからアクセス可能なアニメーションのリストです。

Play Automatically

チェックを入れると、ゲーム開始時に自動でアニメーションを再生します。

Animate Physics

チェックを入れると、物理エンジンと連動します。

Culling Type

アニメーションを行わない場合に設定します。

Always Animate常にアニメーションを行います。
Based on Renderers基本の表示状態のときだけ、アニメーションを行います。


アニメーションクリップのプロパティ

アニメーションクリップのインスペクタついて見ておきましょう。

WS000043
アニメーションクリップのインスペクタ

アニメーションクリップのインスペクタには、Wrap Mode という項目しかありません。
ここでは、アニメーションの繰り返しに関する設定ができます。

Wrap Mode

Defaultデフォルトの動作です。これに設定すると動きません。
Once1回だけ実行します。終了後、タイマーが0になります。
Loop繰り返し実行し続けます。タイマーも回り続けます。
Ping Pong再生と逆再生を繰り返します。タイマーは回り続けます。
Clamp Forever実行後、最終フレームの状態が維持されます。タイマーは回り続けます。

タイマーについて記述してありますが、これはスクリプトで制御する場合に必要となる情報です。


まとめ

今回紹介したアニメーションは、シンプルなオブジェクトに用いられる、ごくごく単純なものです。
アバターをもつキャラクターが行うような複雑なアニメーションは、今回作成したアニメーションクリップを様々なバリエーションで用意して、アニメーションコントローラーで管理することで可能となります。
アニメーションコントローラーに関してはまた次の機会にご紹介しようと思います。

今回は、回転という1アクションだけでしたが、アニメーションクリップの項目に、位置やサイズを追加すれば、
「移動しながら大きくなる」などのアニメーションも簡単に作ることができます。

実際にいろいろと試してみながら感覚をつかんでみてください。


最後までお読みいただきありがとうございます。
← Unityの記事一覧にもどる

  • このエントリーをはてなブックマークに追加

PAGE TOP