質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

1回答

2166閲覧

キャラクターの歩行アニメーションを追加したい

sena14

総合スコア109

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2018/05/28 15:14

編集2018/05/28 15:16

2Dのキャラクターに歩行アニメーションを追加したいです。
スーパーファミコンぐらいのドラゴンクエストのようなイメージです。
上下左右で向きに応じたアニメーションをさせたいのですが、上手くいかずに困っています。
下記のようにトリガーを使ってみたのですがある方向に動かすと今行っているアニメーションが終了したのち動かした方向のアニメーションが再生されてしまいます。
移動する方向を入力したらすぐさまその方向のアニメーションを再生させたいです。

どこを変更すれば期待通りの動きになるのか、またもしすでにより良いテンプレートのような方法があるなら教えていただきたいです。

よろしくお願いします。

using System.Collections; using System.Collections.Generic; using UnityEngine; public class PlayerController : MonoBehaviour{ Animator animator; // 速度 public Vector2 SPEED = new Vector2(0.05f, 0.05f); // Use this for initialization void Start() { this.animator = GetComponent<Animator>(); } // Update is called once per frame void Update() { // 移動処理 Move(); } // 移動関数 void Move() { // 現在位置をPositionに代入 Vector2 Position = transform.position; // 左キーを押し続けていたら if (Input.GetKey("left")) { this.animator.SetTrigger("LeftTrriger"); // 代入したPositionに対して加算減算を行う Position.x -= SPEED.x; } else if (Input.GetKey("right")) { // 右キーを押し続けていたら this.animator.SetTrigger("RightTrriger"); // 代入したPositionに対して加算減算を行う Position.x += SPEED.x; } else if (Input.GetKey("up")) { // 上キーを押し続けていたら this.animator.SetTrigger("BackTrriger"); // 代入したPositionに対して加算減算を行う Position.y += SPEED.y; } else if (Input.GetKey("down")) { // 下キーを押し続けていたら this.animator.SetTrigger("FrontTrriger"); // 代入したPositionに対して加算減算を行う Position.y -= SPEED.y; } // 現在の位置に加算減算を行ったPositionを代入する transform.position = Position; } }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

これは、デフォルトでアニメーション遷移にブレンドする時間が設定されているからです。2Dアニメにおいては邪魔になるので切ってしまえばOKです。

まず該当のAnimatorをエディターで開きます。アニメーションとアニメーションをつなぐ矢印(Transition)を選択してInspectorを開き、SettingsからTransition Durationを0に設定し、Has Exit Timeをオフにします。
これを全Transitionに行えばOKです。

投稿2018/05/28 22:42

編集2018/05/28 22:44
ruccho

総合スコア285

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sena14

2018/05/29 04:12

無事できました。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問