【Unity】攻撃を受けた部位によってダメージを変化させる
前の記事で敵の体のコライダーが付けたボーンにスクリプトを付けて、部位ごとに敵が受けるダメージを変えられるようにします。 using System.Collections; using System.Collections… 続きを読む »
前の記事で敵の体のコライダーが付けたボーンにスクリプトを付けて、部位ごとに敵が受けるダメージを変えられるようにします。 using System.Collections; using System.Collections… 続きを読む »
飛び道具などの衝突判定をコライダーでやると、敵の胴に当たった後に手などに当たることで2回当たったことになってしまうようなことがあるようです。転がっている武器に当たって敵が倒れることも避けたいので、同じオブジェクトは一回だ… 続きを読む »
攻撃の当たり判定をコライダーで作ってみました。まず敵と武器にコライダーを付けます。 刀にはタグとレイヤーを設定し、Rigidbodyも追加します。 レイヤーを使って、武器がプレイヤーと衝突できないように設定しました。 こ… 続きを読む »
今までは生成した直後のラグドールのポーズがデフォルトのままなので、敵がラグドールに置き換わった時に、敵の姿勢が急に伸びたように見えていました。 そこで、生成したラグドールの各ボーンの位置・角度を破壊する直前の敵の各ボーン… 続きを読む »
前の記事でラグドールが伸びたりする問題はなくなりましたが、まだ倒れ方が不自然なので、ジョイントの動きに制限をつけてみます。 Character Jointを使うと、3つの軸に沿った回転を制限できます。コンポーネントのAx… 続きを読む »
HPが0以下になった敵をラグドールに切り替えます。 まず敵のラグドールを作るために敵を複製して、アニメーターやナビメッシュエージェントなどのコンポーネントを削除して、オーディオソースコンポーネントだけを残しました。 これ… 続きを読む »
複数の敵の全てからレイを飛ばすとき、敵のリストを持つクラスのUpdate()で、1フレームにつき数体ずつ実行してみます。 [SerializeField] int cap = 3; // 一度に処理する敵の数 // –… 続きを読む »
VFXグラフを使ってスモークグレネードを作ってみます。 まず、Blenderでスモークグレネードを作って、前の記事の手榴弾と同様にFPSキャラが投げれるようにしました。 そして、前の記事の煙のエフェクトの色やサイズを変え… 続きを読む »
FPSコントローラーで手榴弾を投げてみます。 まずBlenderで手榴弾を作って前の記事の方法で手に持たせ、アニメーションを作りました。 手榴弾は右の手のひらのボーンの子オブジェクトになっています。ピンは手榴弾の子オブジ… 続きを読む »
ハンドルを回して開閉するゲートに重力を加えます。前の記事では、マウスドラッグによってハンドルとゲートを両方動かしていましたが、今回はゲートだけを動かして、ゲートの速度を使ってハンドルを回転させてみました。 using S… 続きを読む »
ゲートの移動範囲がずれないように修正しました。 前の記事ではハンドルの回転だけを制限していましたが、ジョイントやコライダーの衝突を使ってゲートの動きを制限して、ゲートが制限まで達したときにハンドルを固定するようにします。… 続きを読む »
マウスドラッグでハンドルを回転させて、ゲートを開閉してみます。 前の記事のバルブを回す処理をバルブにつけるスクリプトで行います。 using System.Collections; using System.Collec… 続きを読む »
レバーを使って機械をオンオフしてみます。 まずレバーを作ってHingeジョイントを付けます。レバーの根本で、レバーの回転に垂直な方向に軸を設定しました。レバーが元の位置に戻るようにSpringを使います。また、Limit… 続きを読む »
マウスカーソルをくるくると円形にドラッグして、バルブのオブジェクトを回してみます。 まずバルブにコライダーとリジッドボディ、ヒンジジョイントを付けます。リジッドボディのAngular Dragで抵抗を設定します。 ヒンジ… 続きを読む »
Rigidbodyとジョイントを付けた机の引き出しや扉にLODグループコンポーネントを設定してみました。 頂点数の違う机を用意して、LODグループで近くでは詳細な机を、遠くでは二段階でシンプルな机を表示し、最後は机が表示… 続きを読む »
一人称視点で机の引き出しや扉を動かしてみます。 まず、Blenderで机を作って、UnityでコライダーやRigidbodyを追加します。引き出しにはConfigurable Jointを、扉にはヒンジジョイントを付けま… 続きを読む »
ドアをスムーズに開閉させてみます。ドアを掴んでいる間はプレイヤーのカメラをロックして、マウスドラッグでドアを開閉しています。 x = CrossPlatformInputManager.GetAxis(“Mouse X”… 続きを読む »
走っている時に引き戸を素早く開けられるようにします。 if (CrossPlatformInputManager.GetButtonDown(“Fire1”) && hit.collider.tag == “Slidin… 続きを読む »
摩擦を設定して、引き戸の動きをもう少しリアルにしてみます。 Configurable Jointを付けて移動制限をして、両側に壁を置いただけでは、勢い良く閉めたときのバウンドの大きさが気になります。 また、少し引き戸を動… 続きを読む »
Configurable Jointを使って引き戸を作ってみます。 Configurable Jointでは、移動や回転に制限を付けられます。X MotionをLimitedにし、他を全てLockedにすると、この方向に… 続きを読む »