おーみんブログ

C#, ASP.NET Core, Unityが大好きです。

【Unity】RPG戦闘シーンにおける攻撃のアニメーションの作り方!

f:id:bookreadkun:20190423084847p:plain

おはようございます。おーみんです。

 

RPG戦闘シーンの攻撃のアニメーション

 

今回の記事では以下のツイートに掲載した動画のようなRPG戦闘シーンにおける攻撃のアニメーションを作っていこうと思います。

 

 

見てもらうと分かるかと思いますが、この動画には「プレイヤーによる通常攻撃」「プレイヤーによる魔法攻撃」「敵の攻撃」の3種類があります。

これらは全てTimelineという機能でアニメーションを制作しています。

 

※Timelineが分からない方は以下の記事へどうぞ!

【Unity】CinemachineとTimelineでムービーを作る! - おーみんだよ。

 

このようなアニメーションを作るのは割と大変な気がしますが、実はTimelineを利用すると簡単に作れてしまうのです。

 

早速Timelineの中身を見ていきましょう。

 

プレイヤーによる通常攻撃のアニメーション

f:id:bookreadkun:20190423112528p:plain

 

各項目は以下のようになっています。

 

1番目→プレイヤーのアニメーション設定

2番目→プレイヤーの位置の設定

3番目→エフェクト設定(相手を斬りつけたときに出ているもの)

4番目→敵のアニメーション設定

5番目→ダメージUIの出現

6番目→ダメージUIの動き設定(UI表示の後に少し上にスライドさせるため)

6番目→敵を斬りつけた際に出る効果音

 

プレイヤーによる魔法攻撃のアニメーション

f:id:bookreadkun:20190423112945p:plain

 

各項目は以下のようになっています。

 

1番目→カメラの位置設定(カメラはCinemachineを使用)

2番目→プレイヤーのアニメーション

3番目→魔法攻撃のエフェクト設定(ファイア)

4番目→敵のアニメーション設定

5番目→ダメージUIの出現

6番目→魔法を唱える際のエフェクト

7番目→魔法を唱える際と、ファイアの効果音

 

敵による攻撃のアニメーション

f:id:bookreadkun:20190423113233p:plain

 

各項目は以下のようになっています。

 

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を利用すると簡単にアニメーションが作成できるので楽しいですよ~。

まだ使ったことのない方はぜひ使ってみてくださいね!