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

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

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

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

Q&A

解決済

1回答

3173閲覧

キャラクターにアニメーションを付けたい

退会済みユーザー

退会済みユーザー

総合スコア0

Unity

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

0グッド

0クリップ

投稿2017/02/09 02:39

MMDのモデルを変換してUnityで使えるようにしました
しかしうまくアニメーションを付けることができません。(キャラのアニメーションデータはあります)

上下左右を押すと歩くモーション
スペースを押すとジャンプ
敵に当たったとき倒れるアニメーション

このアニメーションをキャラクターにつけたいのですがどうやればつけれるでしょうか?

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

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

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

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

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

guest

回答1

0

ベストアンサー

このチュートリアル動画を見て勉強することをお勧めします。
The Animator Component - Unity Official Tutorials

投稿2017/02/09 03:02

turbgraphics200

総合スコア4267

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

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

退会済みユーザー

退会済みユーザー

2017/02/09 07:54

おかげさまで歩くアニメーションを実装する事ができましたがどうしてもジャンプのアニメーションがつけられません スペースでジャンプはするのですがアニメーションが動きません。 以下スクリプト using System.Collections; using System.Collections.Generic; using UnityEngine; public class Script : MonoBehaviour { // 前進速度 public float forwardSpeed = 10F; // 後退速度 public float backwardSpeed = 2F; // 旋回速度 public float rotateSpeed = 2F; // ジャンプ力 public float jumpSpeed = 12F; // 重力 public float gravity = 20F; // キャラクターコントローラー CharacterController character; // 移動量 Vector3 velocity; Animator anim; int jumpHash = Animator.StringToHash("Jump"); int runStateHash = Animator.StringToHash("Base Layer.Walk"); // Use this for initialization void Start () { anim = GetComponent<Animator>(); character = GetComponent<CharacterController>(); } // Update is called once per frame void Update () { float v = Input.GetAxis("Vertical"); anim.SetFloat("Speed", v); float h = Input.GetAxis("Horizontal"); // 左右のキー入力 if (character.isGrounded) { // キャラクターが地面に着地しているか velocity = new Vector3(0, 0, v); // 上下のキー入力からZ軸方向の移動量を取得 // キャラクターのローカル空間での方向に変換 velocity = transform.TransformDirection(velocity); if (v > 0) { velocity *= forwardSpeed; // 移動速度を掛ける } else if (v < 0) { velocity *= backwardSpeed; // 移動速度を掛ける } AnimatorStateInfo stateInfo = anim.GetCurrentAnimatorStateInfo(0); if (Input.GetKey(KeyCode.Space) && stateInfo.nameHash == runStateHash) { // スペースキーを入力したら anim.SetTrigger(jumpHash); velocity.y = jumpSpeed; // 移動量のY軸方向にジャンプ力をセット } } velocity.y -= gravity * Time.deltaTime; // 移動量に重力を加える // キャラクターコントローラーを移動させる CollisionFlags flag = character.Move(velocity * Time.deltaTime); if (flag == CollisionFlags.None) { // 何も衝突していない } if ((flag & CollisionFlags.Above) == CollisionFlags.Above) { // キャラクターの上部に衝突した } if ((flag & CollisionFlags.Sides) == CollisionFlags.Sides) { // キャラクターの側面に衝突した } if ((flag & CollisionFlags.Below) == CollisionFlags.Below) { // キャラクターの下部に衝突した } // 左右のキー入力でキャラクタをY軸で旋回させる transform.Rotate(0, h * rotateSpeed, 0); } }
turbgraphics200

2017/02/09 08:01

GetKey()ではなくGetKeyDown()に変えるとどうなります?
退会済みユーザー

退会済みユーザー

2017/02/09 08:13 編集

変えてみましたがやはりうまく行きません... あと1つ訂正でジャンプのステートには行くのですがジャンプを押したときにアニメーションが再生されないずJumpTriggerがOnになりっぱなしでジャンプしてないときにアニメーションが再生されてしまうということです
turbgraphics200

2017/02/09 08:12

コードからでは対処方法が見当たりません。AnimatorのApply root motionにチェックを入れるなどAnimator側の設定をいじってみてください。
退会済みユーザー

退会済みユーザー

2017/02/09 13:54

問題解決しました!非常に単純な問題でTriggerではなく間違ってBoolにしてしまっていたため正しく動かなかったようです。ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問