今回は、3連続コンボ攻撃がアニメーションを使って
使えるようにする方法を紹介していきます。
※動画での説明が好きな方は下記動画を参考にしてください。youtu.be
ブログ記事が好きな方はそのまま読み進めてください。
今日もみなさんこんばんは!
ゆうきやんです。
僕毎日自分でつけた名前をブログで
書くたびにネーミングセンスなさすぎるわ。
って落ち込んでます!笑笑
病んでます笑笑
どうでもいい話は置いといて
本題に入っていきましょう!
3連続攻撃アニメーションで設定する方法。

今回の記事ですが簡単に説明していきたいので、
アニメーションで3連続攻撃をしてIdle(止まっているアニメーション)
の状態に遷移する形で作っています。
と言うのも全て繋げる方法を画像で紹介しても
分かりづらいと思ったからです。
移動やジャンプなどのアニメーションは
繋いでいないので、参考にして
攻撃を3連続でできるように実装してみてください。
※移動やジャンプ、ローリングのアニメーションを作成したい人は
下記記事を参考にして連続攻撃ができるように追加してみてください。
www.unityprogram.info
①の自分で用意したキャラクターにInspector内の一番下にある
Add Componentから②Character Controllerと、
③Animatorを追加してください。
Character Controllerの値はキャラクターに上手く
覆いかぶせる形で設定してください。
次に、Project内の自分が分かりやすい所で、
右クリック⇨Create⇨④Animator Controllerを選択して
作成します。
今回名前はLocomotionとします。
④のLocomotionをクリックするとAnimator画面が開かれます。
最終的に⑤のような形で作っていきます。
※Animatorの作り方が分か理づらい人は上記にある記事を参考に。

Animator画面で右クリックをして、Create State⇨Emptyをクリックすると
⑤の画面のように黄色いボックスが表示されます。

Inspectorから名前をIdleに変更してMotionに自分が好きなアニメーションを設定します。

同じように、右クリック⇨Create State⇨EmptyからAttack1,Attack2,Attack3と
⑤のように配置していきます。

今度は矢印を繋いでいきます。
Idleの上で右クリック⇨Make Transitionをクリックすると、
矢印が伸びていくので⑤の画像のようにそれぞれから
矢印を繋いで行ってください。

次に、⑥のParametersをクリックしてParameters画面に変更します。
Parameters内にある+をクリック⇨Boolを選択して
名前をAttackにして⑦のように作ってください。
Make Transitionで繋いだ矢印をクリックしてInspector内での変更をしていきます。
それぞれの矢印の設定内容を書いていきます。
②Attack1⇨IdleはHas Exit Timeのチェックを入れたまま、Attack,falseにします。
③Attack1⇨Attack2はチェックを入れたまま、Attack,true。
④Attack2⇨Idleはチェックを入れたまま、Attack,false。
⑤Attack2⇨Attack3はチェックを入れたまま、Attack,true。
⑥Attack3⇨Idleはチェックを入れたまま、Attack,false。
同じような手順で繋いでいけばいくらでもコンボや
アニメーションを繋いでいくことが出来ます。
Project内の好きな所で右クリック⇨Create⇨C#Scriptを選択して
スクリプトの作成をしていきます。
名前をAttackComboにしましょう。
次のコードをコピー&ペーストするか同じような記述にしてください。
using System.Collections; using System.Collections.Generic; using UnityEngine; //アニメーションのStateを管理できるStateMachinBehaviourを使うよ! public class AttackCombo: StateMachineBehaviour { //始めの状態はAttackをfalseにして使えないようにします。 override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { animator.SetBool("Attack", false); } //もしマウスの左クリックが押されたらAttackをtrueにしてアニメーションを使えるようにするよ! override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { if (Input.GetMouseButtonDown(0)) { animator.SetBool("Attack", true); } } //それ以外の状態ではAttackのアニメーションはfalseにします。 override public void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { animator.SetBool("Attack", false); } }
次にAnimator画面の②のAttack1をクリックして、
Inspector内にある③のAdd Behaviourをクリック。
④のAttackComboスクリプトを追加してください。
⑤と⑥のAttack2とAttack3にも同じように追加していきましょう。
次にProject内の好きな所で右クリック⇨Create⇨C# Scriptを選択して
スクリプトを作成していきます。
名前をLocomotionにします。
今回記述するのは、アニメーションを動かす事と右クリックで
攻撃アニメーションを出来るようにするコードだけ書いてあります。
次のコードをコピー&ペーストするか同じような記述にしてください。
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Locomotion : MonoBehaviour { //Animatoe型を変数animで宣言します。 private Animator anim; void Start() { //GetComponentでAnimatorを取得して変数animで参照します。 anim = GetComponent<Animator>(); } void Update() { //もしInputされている0(マウスの左クリック)が押された時の処理。 if (Input.GetMouseButtonDown(0)) { //Boolで設定したAttackをtrueにして再生します。 anim.SetBool("Attack", true); } } }
完成したら②のキャラクターに①のスクリプトを
ドラッグ&ドロップしてアタッチしてください。
それでは再生してみましょう!
結構タイミングよく押すか連打しないとIdle状態に戻ってしまいます。
そんな感じもゲーム感があっていいですね!!
ご視聴ありがとうございました!
※3Dゲーム作りに関する記事は下記カテゴリを参考にしてください。
www.unityprogram.info
※Unity学習していきたい色んなテクを知りたい方は下記カテゴリをご覧ください。
www.unityprogram.info
※初心者様が最初につまづきそうな所や簡単な記事のカテゴリは下記より。
www.unityprogram.info
※オススメのアセットの紹介のカテゴリは下記を参考にしてください。
www.unityprogram.info