「unity」transformを利用したオブジェクトアニメーション
ゲーム内の、ふわふわと浮くクリスタル、プレイヤーのオプションなど、「オブジェクトの反復運動」「決まった動きをさせたい」とき、使えるプログラムです。緩急も自由自在なので、ぜひ使ってみてください。
ダウンロード
以下のダウンロードを押すと、「ユニティパッケージ」の状態でダウンロードされます。
下準備
ダウンロード後、解凍したらunityを開きます。(2D3Dどちらでも)
開いたら、ファイルの中身の「unitypackage(MyTool_ObjAnimation)」をドラッグアンドドロップし、インポートします。

適当なオブジェクトを生成、どんなオブジェクトでも大丈夫です。(UI系は取り扱いが面倒ですが、使えます)今回は「3D」の「Cube(キューブ)」を使ってます。

作った「Cube(キューブ)」に「AnimationObject」のスクリプトをアタッチします。

今回はキューブですが、どんなオブジェクトでも、基本設定は同じです。
使い方
それでは動きを作っていきましょう!
今回は、自動再生でループする上下に往復しながら回転するアニメーションにします。アニメーションの時間は「2秒」です。
以下の画像のように、設定してみましょう。

チェックボックスの仕様
- 「is Loop」再生し終わったら、自動で再生しなおす
- 「is Auto」開始後、自動で再生する
- 「is ○○ Move」以下のアニメーションカーブを適用する
移動させる
画像通りに変更したら「Anima Pos Y」のアニメーションカーブを変更します。
0秒と2秒で1の高さ、1秒の時-1の高さになるようにします。点をドラッグすると動かせ、線の上でダブルクリックすれば点を増やせます。
グラフは横(時間)縦(移動量)となっています。

できたら再生してみましょう、上下に動きだしたら成功です。
動かない場合
- アニメーションカーブの点の座標(カーブの形が同じでも、実際の値は異なることがある)
- 「is Loop」「is Auto」「is Pos Move」のチェックボックス
- 時間設定(EndTime)が2秒か
回転を加える
「Anima Rotate X」「Anima Rotate Z」を変更してみましょう。
回転は0秒の時高さ0、2秒の時360の高さにします。

以下のように動けば、完成です。このプログラムを応用すれば、動く床、神秘的なクリスタルの上下運動など、往復の移動が簡単にできます。