アニメーションでオブジェクトを動かそう(その1)
今日はアニメーションを使って
オブジェクトを動かすぞ!
オブジェクトを動かすぞ!
ゲームでよくある動き!
オブジェクトを動かす方法は色々あるが、スクリプトを使わず、アニメーションを使って動かす方法を紹介していこう。この方法はいくつか問題もある(後述)けど、簡単に実装できて応用が効く。なお、オブジェクトを動かすといってもプレイヤーやAIで動く敵を自由に動かすのではなく、上のGIF動画のようにオブジェクトに一定の動きをさせる……というものだと思ってほしい。
オブジェクトにアニメーションを実装する
まずは3Dオブジェクトのキューブを作成。ここでは玉転がしゲームのDangerWall(障害物)を複製して作り変えている位置と拡大/縮小を上のように入力
ウィンドウ→アニメーション→アニメーション を選択。すると下のようなアニメーションウィンドウが開く
オブジェクトを選択した状態で 作成 を選択
初めてアニメーションをつくる場合は、この時点でフォルダーを作っておくといいでしょう
ここでつくったフォルダーはUnityエディター内のプロジェクトブラウザにも自動的に反映される(同じところを参照している)
プロパティーを作成→トランスフォーム→位置 を選択
位置アニメーションの編集ができるようになった。デフォルトでは総フレームは60に設定されている
60フレーム目のX座標を3に
設定してみよう
設定してみよう
なるほど!
言葉でなく心で理解できたっす!
言葉でなく心で理解できたっす!
総フレームを240にして
60フレームごとの位置を
設定してみるぞ!
60フレームごとの位置を
設定してみるぞ!
ゲームでよくある動き!
いいっすねぇ~~~
いいっすねぇ~~~
これがアニメーションだ!
ここでは玉転がしゲームのDangerWall(障害物)を流用しているので、プレイヤーが接触するとシーンがリセットされるスクリプトが入っている。これで動くDangerWallができた!
よっしゃーーー
じゃあこれをたくさん複製しよっと!
じゃあこれをたくさん複製しよっと!
あれ……
再生すると1個になっちゃう……?
再生すると1個になっちゃう……?
いや、これはオブジェクトが4個すべて
同じ座標に移動しちゃってるね
(次回につづく) 同じ座標に移動しちゃってるね