【Unity】アニメーションのスピードをスクリプトで変更する
スクリプトでステートごとにアニメーションのスピードを変更してみました。 まずFloat型のパラメーターを作って、スピードを変えたいステートを選択してインスペクタを見ます。 Speed Multiplierの右端のチェック… 続きを読む »
スクリプトでステートごとにアニメーションのスピードを変更してみました。 まずFloat型のパラメーターを作って、スピードを変えたいステートを選択してインスペクタを見ます。 Speed Multiplierの右端のチェック… 続きを読む »
アニメーションをしているキャラクターの頭のボーンをスクリプトで動かして、プレイヤーの方を常に向かせてみました。 まず、キャラクターに付けたスクリプトのStartメソッドで、頭のボーンのトランスフォームを探します。 usi… 続きを読む »
見えないところから視界に入ってくるようなアニメーションがカメラに映らないときの対処をしてみました。 デフォルトではカメラに映っていない時にアニメーションが再生されないので、横からキャラクターが視界に入り込んで来るようなと… 続きを読む »
Unityで簡単に雷を作ってみました。Planeに画像を表示してアニメーションさせました。 まず適当に雷の画像を作りました。 これをGIMP2で開いて、白いレイヤーを追加して、そのレイヤーマスクにこの画像をコピペします。… 続きを読む »
Blenderで複数のオブジェクトにアニメーションを付けて、Unityの一つのアニメーターコントローラーで再生してみました。 まずバットをキャラクターの子にして、それぞれに別々のアクションを作りました。 子オブジェクトで… 続きを読む »
目のボーンを制御するボーンで目を動かしてみました。 ヒエラルキーで左目のボーンを選択して、インスペクタでLook At Constraintコンポーネントをつけました。Sourcesの+ボタンで空欄を作り、そこに左目の制… 続きを読む »
一つのアニメーションで各引き出しを動かしてみました。 枠と3つの引き出しの4つが空のオブジェクトの子になっています。 ルートの空オブジェクトを選択して、AnimationウィンドウでCreateして、アニメーターコンポー… 続きを読む »
NPCに追加したスクリプトを、NPCのアニメーターコントローラーのStateMachineBehaviourのフィールドに入れて、NPCを非アクティブにすると、インスペクタの変数の欄にNoneと表示されてしまいます。 S… 続きを読む »
バケツを左クリックすると中に入って隠れます。隠れている間、蓋を少し開けて隙間から外を見れるようにします。 一人称視点でロッカーの中に入って隠れるのと同じ方法で、バケツの方を向くようにFPSコントローラーを移動させて、蓋を… 続きを読む »
ロッカーを左クリックすると開いて、FPSコントローラーで動かすプレイヤーが中に入ります。もう一度左クリックするとロッカーから出ます。 まず一人称のカメラからレイを飛ばして手が届く位置にロッカーがあるかどうかを調べます。 … 続きを読む »
キャラクターコントローラーで動かす一人称視点のプレイヤーをアニメーションで動かしてみます。直接Animaorコンポーネントをつけると問題があったので、アニメーションを付けた別のゲームオブジェクトに乗せて動かします。 まず… 続きを読む »
アニメーターコントローラーで次のステートに遷移するときに、「または」を使った条件を設定します。 まず2つのトリガーパラメーターと、2つのステートを行き来する遷移を作ります。 右側の矢印をクリックしてインスペクタのCond… 続きを読む »
たくさんのキャラの足音を鳴らすと、足音のタイミングでBGMや長い効果音が小さくなったりして不安定になったので、プレイヤーから遠いキャラの足音は鳴らさないようにしてみました。 void Footsteps() { if (… 続きを読む »
アニメーションイベントを使ってNPCの足音を鳴らしてみます。まずキャラクターのFBXファイルのインポート設定のAnimationタブで歩くアニメーションを選択して、下の方のEventsを見てみます。 Eventsの横の三… 続きを読む »
グレネードを投げると数秒後に爆発して、敵やアイテムを吹き飛ばすようにします。 まず敵のスクリプトにパブリックなメソッドを作ります。 public void Explode(Vector3 center) { // 体力を… 続きを読む »
リロードのアニメーションを作ってアニメーターコントローラーに設定してみました。 まずBlenderで作ったアニメーションをインポートして、アニメーターコントローラーの新しいステートにアタッチしました。アニメーションはブレ… 続きを読む »
弾数を制限して、弾を発射するたびに一つ減らしていき、0になったら撃てなくします。前の記事のスクリプトに少し加えるだけでできます。 using System.Collections; using System.Collec… 続きを読む »
マウスを押している間は弾を連射するようにして、その間隔を調節してみます。 弾を連射するには前の記事のスクリプトのInput.GetMouseButtonDownをInput.GetMouseButtonに変えるだけです。… 続きを読む »
前の記事で攻撃可能ステートから攻撃中のステートへ遷移している間はまだ攻撃可能ステートに留まっていると思ったのですが、遷移中はその後の攻撃中のステートも有効になるようです。 攻撃ステートが有効でマウス左クリックすると攻撃す… 続きを読む »
マウスを連打しても、一度のアニメーションで弾が一発ずつ発射されるようにします。 そのためにStateMachineBehaviourで攻撃可能かどうかを切り替えます。 using System.Collections; … 続きを読む »