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

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

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

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

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

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

Q&A

解決済

1回答

2241閲覧

Animationをゆっくり切り替えする為、Crossfadeを使ったが一瞬で切り替わる

退会済みユーザー

退会済みユーザー

総合スコア0

C#

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

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

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

0グッド

0クリップ

投稿2017/11/22 03:06

編集2017/11/23 03:27

###やっていること
キャラクターの足についている3つのAnimation (Walk, Idle, Fly)を、地面についていたらIdle,地面についている状態で移動したらWalk,空中にいるときはFly,
に変えています

###起きた問題
変える時にCrossfadeを使っているのですが、IdleからFly, FlyからIdleに変わるときは正常にゆっくり切り替わりますが、Walkに変わる、Walkから変わる時は一瞬で変わってしまいます。

何が原因なのでしょうか?

足についているスクリプト

C#

1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class ReverseLegScript : MonoBehaviour { 6 7 public float animationspeed = 100; 8 9 10 public GameObject leftleg1; 11 public GameObject leftleg2; 12 public GameObject leftleg3; 13 public GameObject leftleg4; 14 public GameObject leftpos3; 15 public GameObject leftpos4; 16 17 public GameObject rightleg1; 18 public GameObject rightleg2; 19 public GameObject rightleg3; 20 public GameObject rightleg4; 21 public GameObject rightpos3; 22 public GameObject rightpos4; 23 24 public Animation anim; 25 26 private GameObject player; 27 private PlayerControll playercontroll; 28 private GameObject playerforward; 29 30 void Start () 31 { 32 player = GameObject.Find("Player"); 33 anim = GetComponent<Animation>(); 34 playercontroll = player.GetComponent<PlayerControll>(); 35 playerforward = GameObject.Find("GameSystems/PlayerForward"); 36 } 37 38 void Update () 39 { 40 leftleg3.transform.position = leftpos3.transform.position; 41 leftleg4.transform.position = leftpos4.transform.position; 42 43 rightleg3.transform.position = rightpos3.transform.position; 44 rightleg4.transform.position = rightpos4.transform.position; 45 46 var hor = Input.GetButton("Horizontal"); 47 var ver = Input.GetButton("Vertical"); 48 49 transform.rotation = playerforward.transform.rotation; 50 51 //地面についているとき 52 if(playercontroll.grounded == true) 53 { 54 //horかverを押したら 55 if (hor || ver) 56 { 57 playerforward.transform.rotation = Quaternion.RotateTowards(playerforward.transform.rotation, player.transform.rotation, animationspeed * 4 * Time.deltaTime); 58 59 //walkにする 60 anim.CrossFade("Walk", 0.3f); 61 } 62 else //押してなかったら 63 { 64 //idleにする 65 anim.CrossFade("Idle", 0.2f); 66 } 67 } 68 else //地面についていないとき 69 { 70 //flyにする 71 anim.CrossFade("Fly", 0.2f); 72 } 73 } 74}

足のコンポーネントの画像
イメージ説明

Walk, Idle, Flyの画像
Walk
イメージ説明
Idle
イメージ説明
Fly
イメージ説明

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

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

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

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

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

guest

回答1

0

ベストアンサー

スクリプトで動かしてアニメーションさせることにしました

投稿2017/11/23 06:36

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問