【Unity】RPG戦闘シーンにおける攻撃のアニメーションの作り方!
おはようございます。おーみんです。
RPG戦闘シーンの攻撃のアニメーション
今回の記事では以下のツイートに掲載した動画のようなRPG戦闘シーンにおける攻撃のアニメーションを作っていこうと思います。
#Unity でFFの戦闘シーン(もどき)制作チャレンジ3日目。
— 超おーみん3@Unity民族 (@Ooooooomin_365) 2019年4月20日
今日行ったのは
「相手の攻撃、エフェクト」
「プレイヤーの魔法攻撃、コマンド選択表示(今はファイアのみw)」
などなど。
良い感じです。明日以降プレイヤーのHP等にもダメージが反映するようにしていきます。#unity3d #gamedev #RPG pic.twitter.com/Xh0mUf6Mkx
見てもらうと分かるかと思いますが、この動画には「プレイヤーによる通常攻撃」「プレイヤーによる魔法攻撃」「敵の攻撃」の3種類があります。
これらは全てTimelineという機能でアニメーションを制作しています。
※Timelineが分からない方は以下の記事へどうぞ!
【Unity】CinemachineとTimelineでムービーを作る! - おーみんだよ。
このようなアニメーションを作るのは割と大変な気がしますが、実はTimelineを利用すると簡単に作れてしまうのです。
早速Timelineの中身を見ていきましょう。
プレイヤーによる通常攻撃のアニメーション
各項目は以下のようになっています。
1番目→プレイヤーのアニメーション設定
2番目→プレイヤーの位置の設定
3番目→エフェクト設定(相手を斬りつけたときに出ているもの)
4番目→敵のアニメーション設定
5番目→ダメージUIの出現
6番目→ダメージUIの動き設定(UI表示の後に少し上にスライドさせるため)
6番目→敵を斬りつけた際に出る効果音
プレイヤーによる魔法攻撃のアニメーション
各項目は以下のようになっています。
1番目→カメラの位置設定(カメラはCinemachineを使用)
2番目→プレイヤーのアニメーション
3番目→魔法攻撃のエフェクト設定(ファイア)
4番目→敵のアニメーション設定
5番目→ダメージUIの出現
6番目→魔法を唱える際のエフェクト
7番目→魔法を唱える際と、ファイアの効果音
敵による攻撃のアニメーション
各項目は以下のようになっています。
1番目→敵のアニメーション設定
2番目→敵の位置の設定
3番目→敵の攻撃のエフェクト設定
4番目→プレイヤーのアニメーション設定
5番目→ダメージUIの出現
6番目→ダメージUIの動き設定(UI表示の後に少し上にスライドさせるため)
7番目→魔法を唱える際と、ファイアの効果音
スクリプトからTimelineを動かす
Timelineの設定が終わった後は、スクリプトでTimelineの再生タイミングを設定します。
再生の仕方は以下のスクリプトになります。
----------
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Playables; //タイムライン再生に必須なので忘れずに!
public class Practice : MonoBehaviour{
public PlayableDirector playableDirector; //タイムライン定義
void Update(){
playableDirector.Play(); //タイムライン再生
}
}
----------
上のスクリプトはあくまで例としてUpdate関数に書いていますが、ご自身で利用する際は再生したいタイミング箇所に「playableDirector.Play();」を書いてください。
最後に
Timelineを利用すると簡単にアニメーションが作成できるので楽しいですよ~。