【Unity】AnimatorStateInfoの使い方 #1
前の記事で攻撃可能ステートから攻撃中のステートへ遷移している間はまだ攻撃可能ステートに留まっていると思ったのですが、遷移中はその後の攻撃中のステートも有効になるようです。 攻撃ステートが有効でマウス左クリックすると攻撃す… 続きを読む »
前の記事で攻撃可能ステートから攻撃中のステートへ遷移している間はまだ攻撃可能ステートに留まっていると思ったのですが、遷移中はその後の攻撃中のステートも有効になるようです。 攻撃ステートが有効でマウス左クリックすると攻撃す… 続きを読む »
攻撃して敵が倒れた時に、その攻撃の力でラグドールが吹き飛ぶようにします。 敵を複製してラグドールを作ったので、敵とラグドールは全く同じボーンを持っています。敵の攻撃を受けたボーンの名前はわかるので、敵とラグドールの各ボー… 続きを読む »
マウスを連打しても、一度のアニメーションで弾が一発ずつ発射されるようにします。 そのためにStateMachineBehaviourで攻撃可能かどうかを切り替えます。 using System.Collections; … 続きを読む »
発射した弾がどこかに当たるたびに、その後敵に当たったときのダメージを小さくしてみます。 敵の体のボーンに付けたスクリプトで、インスペクタで設定したダメージと弾の威力をかけて、実際に敵が受けるダメージを計算します。跳ねるた… 続きを読む »
前の記事で敵の体のコライダーが付けたボーンにスクリプトを付けて、部位ごとに敵が受けるダメージを変えられるようにします。 using System.Collections; using System.Collections… 続きを読む »
飛び道具などの衝突判定をコライダーでやると、敵の胴に当たった後に手などに当たることで2回当たったことになってしまうようなことがあるようです。転がっている武器に当たって敵が倒れることも避けたいので、同じオブジェクトは一回だ… 続きを読む »
攻撃の当たり判定をコライダーで作ってみました。まず敵と武器にコライダーを付けます。 刀にはタグとレイヤーを設定し、Rigidbodyも追加します。 レイヤーを使って、武器がプレイヤーと衝突できないように設定しました。 こ… 続きを読む »
前の記事では、保存した経路を再設定したときに正常に経路にたどり着けるときと、その場に立ち止まってしまうときがありました。このときの経路のNavMeshPathStatusの値を調べてみました。 text.text = a… 続きを読む »
ナビメッシュの経路を保存しておいて、別の目的地を設定した後に再設定してみます。 経路は目的地を設定してから数フレーム後に利用可能になるようです。まだ一度も目的地を設定していないときは、今いる場所が目的地になっていて、経路… 続きを読む »
前の記事でナビメッシュエージェントをワープさせるときに、ナビメッシュエージェントが消えて少し時間を開けてから出現するようにしてみます。 // Update() // 数秒ごとに second = 0f; if (num … 続きを読む »
ナビメッシュエージェントが目的地に向かう時に小刻みにワープさせてみました。 まず、目的地を設定した後に、前の記事の方法で経路上の位置を等間隔に取得します。オレンジ色の球を置いたときにVector3のリストに球の位置を追加… 続きを読む »
ナビメッシュエージェントが目的地へ向かう経路上に等間隔にオブジェクトを配置してみます。前の記事で取得した経路上のコーナーを使います。上のGIF画像ではコーナーに緑色の球が置かれています。 if (Input.GetKey… 続きを読む »
振り向いている時に敵からプレイヤーが見えたら再度歩きのステートに遷移させる処理をStateMachineBehaviourで行います。 まず、敵のアニメーターコントローラーのBaseレイヤーのインスペクタでAdd Beh… 続きを読む »
前の記事の方法で敵が残像を残すようにしてみます。 まず敵を複製してコンポーネントをすべて削除した残像用のオブジェクトにスクリプトをつけます。 using System.Collections; using System.… 続きを読む »
今までは生成した直後のラグドールのポーズがデフォルトのままなので、敵がラグドールに置き換わった時に、敵の姿勢が急に伸びたように見えていました。 そこで、生成したラグドールの各ボーンの位置・角度を破壊する直前の敵の各ボーン… 続きを読む »
HPが0以下になった敵をラグドールに切り替えます。 まず敵のラグドールを作るために敵を複製して、アニメーターやナビメッシュエージェントなどのコンポーネントを削除して、オーディオソースコンポーネントだけを残しました。 これ… 続きを読む »
敵を近接攻撃すると敵が怯むアニメーションをして唸り声を上げるようにします。 まずBlenderで怯むアニメーションを作りました。 アニメーターコントローラーに新しいステートを作ってこれを設定します。新しいトリガーパラメー… 続きを読む »
前の記事と同様にプレイヤーも敵を近接攻撃できるようにしてみました。敵のHPゲージも作って攻撃が当たると減らします。 // プレイヤーにつけたスクリプト // 刀で攻撃中 else if (animator.GetCurr… 続きを読む »
攻撃モーション中に敵が滑るように動くと不自然なので、攻撃中はナビメッシュエージェントが移動しないようにしてみます。 前の記事の敵のスクリプトを少し修正します。 using System.Collections; usin… 続きを読む »
敵キャラから攻撃を受けたときにHPを減らします。 まずBlenderで敵キャラのモデルとアニメーションを作りました。 これにナビメッシュエージェントとAudioSourceとスクリプトのコンポーネントを追加します。 us… 続きを読む »