【Blender】人の歩く向きをパスに沿って変える

パスアニメーションで人のキャラをパスに沿って移動させて、向きも自動で変えます。まずキャラに足踏みするだけのアニメーションをさせて、ボーンをパスに追従させます。パスはカーブと同様に作成編集ができます。詳細 パスに追従させる… 続きを読む »

【Unity】距離で影の解像度を変える

リアルタイムのディレクショナルライトによる影の解像度を距離によって変えてみました。HDRPではScene Settingsをヒエラルキーに新規作成してインスペクタで設定できます。 これは、一つの画像を斜めから見た時に、画… 続きを読む »

【Unity】テレインレイヤーによって足音を変える

テレインレイヤーによって足音を変えてみました。前の記事の方法でアルファマップを取得して、一番割合の多いテレインレイヤーを調べます。 float[] slatmap = new float[0]; // — // Fi… 続きを読む »

【Unity】テレインのプレイヤーがいる場所のアルファマップを取得する

テレインのプレイヤーが立っている場所にどのテレインレイヤーがどのくらい塗られているかを調べてみます。 FirstPersonControllerクラスのFixedUpdate()で地面に向かって球体のレイを飛ばすので、そ… 続きを読む »

【Unity】非同期でシーンを読み込んでキャンセルする

シーンの開始と共にメインのゲームのシーンを非同期で読み込んで、スタートボタンが押されたら遷移し、キャンセルが押されるとスタートメニューなどの別のシーンに遷移してみました。 using System.Collections… 続きを読む »

【Unity】タイムラインでランダムに音声クリップを変更して再生する

タイムラインのオーディオトラックを使えば、ドラッグアンドドロップしたオーディオクリップを時間に沿って順に再生できますが、シグナルトラックを使って、決められたタイミングでランダムに選んだ音声を再生できるようにしてみました。… 続きを読む »

【Unity】爆発のダメージ判定をする

前の記事ではグレネードが爆発すると敵は毎回同じダメージを受けていましたが、転がったグレネードからの距離に応じてダメージ判定をして、敵の受けるダメージを変えてみます。 まずグレネードのスクリプトで敵との距離を調べてダメージ… 続きを読む »

【Unity】グレネードの爆発で敵を吹き飛ばす【物理】

グレネードを投げると数秒後に爆発して、敵やアイテムを吹き飛ばすようにします。 まず敵のスクリプトにパブリックなメソッドを作ります。 public void Explode(Vector3 center) { // 体力を… 続きを読む »

【Unity】VFXグラフでマズルフラッシュを作る

UnityのVFXグラフでマズルフラッシュを作ってみました。 パーティクルが一つずつ出るようにする 銃弾を発射するときにPlay()を呼んでエフェクトを再生します。この時に一つずつパーティクルが出るようにしたいので、Si… 続きを読む »

【Unity】アニメーターコントローラーで銃のリロードを制御

リロードのアニメーションを作ってアニメーターコントローラーに設定してみました。 まずBlenderで作ったアニメーションをインポートして、アニメーターコントローラーの新しいステートにアタッチしました。アニメーションはブレ… 続きを読む »

【Unity】連射の間隔を変える

マウスを押している間は弾を連射するようにして、その間隔を調節してみます。 弾を連射するには前の記事のスクリプトのInput.GetMouseButtonDownをInput.GetMouseButtonに変えるだけです。… 続きを読む »

【Unity】AnimatorStateInfoの使い方 #1

前の記事で攻撃可能ステートから攻撃中のステートへ遷移している間はまだ攻撃可能ステートに留まっていると思ったのですが、遷移中はその後の攻撃中のステートも有効になるようです。 攻撃ステートが有効でマウス左クリックすると攻撃す… 続きを読む »