Unityのアニメーターを簡単に作成する方法まとめ
19/02/03 15:43:46 19/02/17 20:03:09
アニメーターはUnityのなかでも核となるツールの一つです。ゲーム開発においてはもちろんシナリオ作成や戦闘や謎解きなどのゲーム性が重要です。しかし、その他のシステム開発にはないポイントとしてはアニメーターが挙げられます。
自分のゲーム内でアニメーションがスムーズに動くことは、他のシステム開発にはない喜びに変わるでしょう。自分の作ったゲームが思い通りに動く楽しさを覚え、ゲーム開発にハマっていきます。
そこで、このページではUnityのコアなツールであるアニメーターについて解説していきます。
簡単なものから作成する
もともとデザインやコンピューターグラフィックのセンスがあって、パソコンでアニメーションを作るのに慣れている方はUnityでもいきなり高度なアニメーターにチャレンジして良いかもしれません。
アニメーターの作り方自体はUnity以外のツールでもUnityでもそこまで大きく乖離するわけではないので、少しUnityに慣れれば応用が利くかと思います。しかし、アニメーション作成自体に慣れていない方はいきなり高度なアニメーターで練習すると挫折します。
好きなアニメキャラクター等を作ってみたい気持ちを抑え、簡単な円柱や直方体などから始めましょう。これらの図形を自由自在に操れないうちは、当然思い通りのキャラクターを作ることは不可能です。
手の角度をずらそうと思ったら思っていたのと違う方向に動いた、顔のパーツの細部の作りこみなど到底不可能、といった状況になるでしょう。逆に言えば、図形を自由自在に操ることができればフリーハンドに近い形でアニメーターを作るよりも簡単です。
複雑なアニメーターでもUnityで作れば図形を重ねたり動かしたりするだけの作業なので、普通に絵がうまくなる過程とは異なります。ノウハウさえつかめば手先の器用さなどはそこまで求められないため、ぜひ正しい手順でスキルアップしていきましょう。
アニメーター作成準備
よくある練習法としては、まず画面上に三色のキューブを用意します。方法としては、プロジェクトの新規作成かシーンの新規作成で何もない画面を用意し、以下の手順を行います。
「作成」メニューの「3Dオブジェクト/キューブ」を3回実行する。
これで3個のキューブが作成されますが、この段階ではまだ3個のキューブが重なった状態です。次に1つのキューブを選択し、インスペクターで名前を付けます。たとえば、「Red Cube」などで良いでしょう。
そして、位置zを-2に設定します。次に別のキューブを選択し、名前を「Green Cube」などと設定します。2番目のキューブは中心に置くため、位置はそのまま変更なしです。次に3番目のキューブを選択し、「Blue Cube」などに名前を変更します。位置zを2に変更します。
そうすると、3つのキューブがz軸上に並ぶことになります。ここまでできたらプロジェクトのAssetを選択し、「Create」メニューから「マテリアル」を作成します。名前は最初のキューブに合わせて「Red」等とします。
作成したマテリアルを選択し、インスペクターでアルベドの四角をクリックして赤色にします。ちなみに、色は見やすいようにつけているだけなので何色でもOKです。この設定したマテリアルをRed Cubeの上にドラッグ&ドロップすると、キューブの色が赤色に変わります。
同様の流れで、GreenとBlueの設定も行います。そうすると、三色のキューブが並んだ状態が出来上がります。
アニメーターの作成
上記の準備が完了したら、いよいよアニメーターを作成します。まず、プロジェクトでAssetを選択し、作成メニューから「アニメーション」を新規作成します。名前は何でも良いですが、「Green Animation」としておきます。
次に、「シーン」タブを右クリックして「アニメーション」タブを追加します。そしてオブジェクトを選択し、インスペクターからオブジェクトの設定をしていきます。
アニメーターの設定
次にアニメーターの内容を定義していきます。最初の操作としては、アニメーション設定の画面で「プロパティーを追加」を押します。そして、アイコンの+を押すとアイコンを追加できます。
ここまで来たら、後は直感的に適当にいじってみても良いかと思います。ほとんど直感的に操作できるようになっているので、適当にやってみて、よくわからない部分のみ検索するのが効率的かと思います。
イベントの設定
上記の通りインスペクターを使用すれば、アニメーションの設定自体はできます。たとえば、キャラクターが走る、剣を振る、といった動作はインスペクターからGUIのみで設定できるということです。
しかし、そのタイミングについてはプログラミングで実装する必要があります。ゲームで考えるとすぐにわかりますが、プレイヤーが何もしていないのにキャラクターが走っている、勝手に剣を振っている、といった状況は基本的にありません。
敵キャラであってもプレイヤーの入力に合わせて動いてくる場合があるので、その際はプログラミングが必要です。そこでイベント受取り用のスクリプトが必要になるのですが、サンプルコードは以下のようになります。
using UnityEngine;
using System.Collections;
public class ReceiveEvent : MonoBehaviour {
public Collider col; // 剣のコライダ
public AudioSource audioSource; // AudioSource
public AudioClip[] se; // 効果音の配列
// 足が地面に付いた時のイベント
void Step() {
Debug.Log ("Step");
audioSource.PlayOneShot (se[0]);
}
// 剣を振りおろす時のイベント
void AttackStart() {
audioSource.PlayOneShot (se[1]);
col.enabled = true;
}
// 剣を振り終わった時のイベント
void AttackEnd() {
col.enabled = false;
}
}
上記の例では、キャラクターが動作した際の音を設定しています。アニメーションイベント単体だとGUIで設定できますが、ユーザー入力との紐付けや、イベントとイベントの紐付けなどはプログラミングで実装していきます。
他にも、攻撃判定等もプログラミングで実装していきます。
void AttackStart() {
swordFlag = true;
}
void AttackStart() {
swordFlag = false;
}
public bool IsSwordFlag() {
return swordFlag;
}
各オブジェクトの動きはGUIで設定できますが、イベント同様、オブジェクトとオブジェクトが当たっているかの判定もGUIでは実現できません。なので、上記のコードのように手書きします。フラグがtrueならHPを減らしたり、敵キャラが消えるようなイメージです。
今回紹介した内容はアニメーター作成の一部ですが、GUIで作りこむ部分とプログラミングする部分の切り分けのイメージをまずはつかんでいただければ良いかと思います。
何をどうすれば良いかわからず混乱することさえなければ、案外ものすごく複雑な設定やコードが必要なわけではありません。Unity内のツールやクラスでほぼカバーしてくれているので、それをいかに使いこなすかの勝負になります。
【Unity関連記事】
▼Unityの基礎編
・ 【unityのフリーランス求人・案件情報】エンジニア需要や開発単価、未経験でもいける?
・ 【unity入門】ゲーム開発だけじゃない、Unityで出来ること
▼Unityの外部アセット、リソース編
・ UnityでMMDモデルを自由自在に動かしてみよう!
・ Unity adsを使って簡単に広告を導入しよう
・ Unityのアセットストアの上手な使い方
・ Unityで作られているARアプリをまとめてみました
▼Unityのコンポーネント編
・ Unityのrigidbodyを使って物理演算を導入してみよう
・ コードを使わずにUnityでキャラ追従のカメラを作る方法
・ Unityで簡単にアニメーションを作成する方法をまとめました
・ Unityでオブジェクトを回転させる方法をわかりやすくまとめました
・ Unityのtransformを使ってオブジェクトの座標や回転を操作する
・ (この記事)Unityのアニメーターを簡単に作成する方法まとめ
・ UnityのShaderの解説と使い方まとめました
・ Unityで「当たり判定」(衝突判定)を付ける方法
・ Unityのgetcomponentの上手な使い方と使用時の注意点まとめ
・ Unityでキャラの移動を制御する方法まとめ
・ Unityのraycastを使って出来ることをまとめました
▼Unityのデフォルト機能、ゲーム製作編
・ blenderで作ったオブジェクトをUnityで組み込んでみよう
・ Unityのコルーチンとは?使い方をまとめました
・ Unityで作られているRPGゲームを作るための6つのステップ
・ Unityのパーティクルを使って演出できるエフェクト例
・ UnityでのUIデザインの基礎をまとめてみました
・ Unityのcloud buildの便利な点をまとめました
・ Unityを使って半日でFPSゲームを作ってみよう
人気記事