10日で学ぶUnity5 2Dゲーム入門(2)

Unity

4日目 プレイヤーキャラ・アニメーション

プレイヤーキャラをアニメーションさせるために、Unityへ複数の画像をドラッグ&ドロップします。
それらの画像をまとめてプレイヤーキャラクターに紐付け(アタッチ)ると「アニメーションクリップ」と「アニメーターコントローラー」という必要ファイルが自動で生成されます。

この時点でテストプレイにてアニメーションを確認することが可能。

お次は、プレイヤーキャラの操作に連動させてアニメーションさせるためのスクリプトを作成します。
Visual Studio」の見た目を変更しつつ教科書通りに記述していきます。
例では「マウスボタンが押されたら右側に移動する」という動きを命令しました。

Visual Studio のUnity用入力補助が強力で、ほぼミスなく都度単語を確定させて命令文を記述していくイメージで進められることに驚きます。

非アクティブの先読み記述もあるので、求めているものと同じならば確定するのみ!

本書での、スクリプト記述で命令違いが発生している部分あり。

アニメーションの再生位置を0に戻すための命令文が
GetComponent<Animator> () .SetTime (0);
となっているのですが、バージョン違いでの変更があったのか、ここでエラーが起きてしまいます。

GetComponent<Animator> () .Play (0);
とすることでエラーが回避され正しく動作しました。

アニメーションの速度は「Animationウィンドウ」で変更可能です。
他でよくみるアニメーションウィンドウなので「タイムライン」やら「キーフレーム」やら、その他の機能もほぼ同じと思って良さそうです。
ちなみにスピードの反映はテストプレイ時のみ?っぽいです。

複数画像を登録する以外にも、オブジェクトの移動や回転などのプロパティでのアニメも可能

アニメーションは、適用したいオブジェクトに対しアニメーションクリップやプロパティでの設定によって行うことができるようです。
プレイヤー操作(クリックしたら・ボタンを押したらなどなど)に関連付けるためには、専用のスクリプトを記述して指定のオブジェクトにアタッチしましょう。

5日目 敵キャラ・アニメーション

敵キャラである「魚」を追加していきます。

  • 泳いでいるアニメーション
  • 海で漂う動きのスクリプト
  • 魚がプレイヤーを食べるアニメーション

ここでの注目行程は「魚がプレイヤーを食べる」状態が起こるということ。

  • 「泳ぐ」と「食べる」のアニメーションの切替
  • プレイヤーと敵の当たり判定
  • 当たり判定時の「プレイヤー」と「敵」それぞれの挙動

アクションゲームの基本である「当たり判定」や「アニメ切替」がついにやってきました。

アニメーションの切替設定は「メカニム」というツールを使用します。
条件を指定して、泳いだとき・ジャンプしたとき・食べられたときなどにアニメを切替えることが可能になります。

切替後に再びアニメーションを戻すことなども、矢印の行き来の中に設定していきます。

当たり判定」は「コライダー」という設定(コンポーネント)をオブジェクトに追加することで可能となります。

コライダー同士が衝突した場合、「そのまますり抜ける」「ぶつかって反応する」という判定のオンオフを設定して各挙動を決めます。
どう動かすかはスクリプトで制御する形になります。

  • プレイヤーと魚が衝突した場合、泳いでいる魚アニメを食べるアニメに切替える。(メカニム
  • その時にプレイヤーの画像を消滅させる。(スクリプト
  • プレイヤーと魚が衝突した場合、魚同士が衝突した場合などの別条件も追記しておく。(スクリプト
  • 敵である魚設定を簡単に量産するために「プレハブ」機能を使って複製していく。(ドラッグ&ドロップ

アニメーション設定は「メカニム」、衝突判定は「コライダー」を使用していく。

衝突判定である「コライダー」はプレビュー上で緑枠として表示されます。
プレビュー上で大きさをマウスドラッグでも変更できるのが便利です。
テストプレイ時にコライダーを表示させる機能はないみたいでした。

コメント