アニメーションでオブジェクトを動かそう(その1)

今日はアニメーションを使って
オブジェクトを動かすぞ!
ゲームでよくある動き!


オブジェクトを動かす方法は色々あるが、スクリプトを使わず、アニメーションを使って動かす方法を紹介していこう。この方法はいくつか問題もある(後述)けど、簡単に実装できて応用が効く。なお、オブジェクトを動かすといってもプレイヤーやAIで動く敵を自由に動かすのではなく、上のGIF動画のようにオブジェクトに一定の動きをさせる……というものだと思ってほしい。

オブジェクトにアニメーションを実装する

まずは3Dオブジェクトのキューブを作成。ここでは玉転がしゲームのDangerWall(障害物)を複製して作り変えている



位置と拡大/縮小を上のように入力



ウィンドウ→アニメーション→アニメーション を選択。すると下のようなアニメーションウィンドウが開く



オブジェクトを選択した状態で 作成 を選択



初めてアニメーションをつくる場合は、この時点でフォルダーを作っておくといいでしょう



ここでつくったフォルダーはUnityエディター内のプロジェクトブラウザにも自動的に反映される(同じところを参照している)



プロパティーを作成→トランスフォーム→位置 を選択



位置アニメーションの編集ができるようになった。デフォルトでは総フレームは60に設定されている



60フレーム目のX座標を3に
設定してみよう
なるほど!
言葉でなく心で理解できたっす!
総フレームを240にして
60フレームごとの位置を
設定してみるぞ!




ゲームでよくある動き!
いいっすねぇ~~~
これがアニメーションだ!




ここでは玉転がしゲームのDangerWall(障害物)を流用しているので、プレイヤーが接触するとシーンがリセットされるスクリプトが入っている。これで動くDangerWallができた!



よっしゃーーー
じゃあこれをたくさん複製しよっと!
あれ……
再生すると1個になっちゃう……?
いや、これはオブジェクトが4個すべて
同じ座標に移動しちゃってるね
(次回につづく)