質問: 0) { anim.SetBool("Run", false); Debug.Log("移動してないよ"); } //攻撃アニメ if (Input.GetKeyDown(KeyCode.Space) ) { anim.SetBool("Attack", true); Debug.Log("攻撃したよ"); } else { anim.SetBool("Attack", false); Debug.Log("攻撃終わったよ"); } //Jump if (Input.GetKeyDown(KeyCode.UpArrow)) { Debug.Log("じゃんぷしたよ"); anim.SetBool("Jump", true); } else { anim.SetBool("Jump", false); Debug.Log("じゃんぷ終わったよ"); } } ``` 攻撃はうまくできるのですが、Jumpの入力をした際、 アニメーションが一瞬で終わってしまい、ひざがカクってするだけです。 もう少しモーションの発生時間を長くできれば状況が改善すると思うのですが、 どのようにすれば良いのでしょうか? よろしくおねがいします。 **以下追記 ![メカニム](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/20040a54ae3ee161a748fc28d9d08af0.png) メカニムの設定を無理やりいじったら多少改善しました。 何故かジャンプがスローモーションになりますが・・・
回答: このノリで作っていったら、すごく面倒な事になりそうなので、格闘ゲームなどのプレイヤーの作り方を書きます。 あくまで、僕のやり方ですが。 プレイヤーキャラの基本姿勢に必ず戻るような処理を書く。 格闘ゲームなら、フットワークのようなモーションが基本姿勢だと思うのですが、 移動、攻撃、防御、何をしても基本的にフットワークに戻る。 フットワークの処理の場所でいろいろ判断して処理させます。 パッと見た感じ、ジャンプした瞬間、ほかの処理に邪魔されて戻っているだけだと思います。 ただ、if で分岐していては、どんだけややこしくなるか...。 この程度の不具合で「?」となっている状態では、この先破たんするのは目に見えている気がしませんか?