teratail header banner
teratail header banner
質問するログイン新規登録

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

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

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

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

Q&A

解決済

1回答

997閲覧

unity ジャンプ中に移動・回転したいです

myanmy

総合スコア13

Unity

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

0グッド

0クリップ

投稿2022/05/01 07:52

0

0

こんにちは、質問失礼致します。
unity2020を使用しています。

アニメーションの途中でだけキャラクターを動かしたいのですが、なかなかうまくいきません。
現在はアニメーション中に移動・回転のアニメーションをブレンドする事で試行錯誤しています。
根本の考え方から間違っている気がするのでご教授頂けたら幸いです。

・やりたい事
ジャンプで空中にいる時だけ移動・回転をしたい。
ジョイスティックからの入力で、倒し方よって回転の値や移動距離を増減させたい。

使用するジャンプアニメーション
<予備動作→ジャンプ空中→着地動作>
ジャンプ空中の時だけジョイスティックからの入力を受け付けて回転・移動させたいです。

どうぞよろしくお願い致します。

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

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

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

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

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

bboydaisuke

2022/05/01 11:30 編集

質問だけではやりたい事の説明としては不足な点がありますが、ジャンプを含む移動は全部スクリプトで制御し、回転は「向いている方向」だけスクリプトで指定して、回転はアニメーションで操作するのがよいでしょう。もちろんルートモーションは使いません。 つまり、最初からキャラクターモデルに対して作るのではなく、ジャンプ処理まではカプセルか何かで作り、その後にキャラクターモデルに差し替えるのがよいでしょう。 初心者はいきなりキャラクターモデルを操作しようとして大抵この辺が理解できず挫折します。
myanmy

2022/05/02 07:55

修正依頼ありがとうございます! 説明不足で申し訳ありません、今回物理を利用しているのでRigidbodyを使う動きについて質問させていただいています。ジャンプのアニメーションには上下の移動が含まれているので、前進に rb.AddForce(transform.forward * 2, ForceMode.Impulse); を使用しました。 実行のタイミングにアニメーションイベントを使いたかったのですが、いかがでしょうか? 回転も瞬間的に力を加えるようにしたいのですが、トルクでうまくいかず行き詰まっております…。 適用しているのは親オブジェクトで、キャラクターモデルはその子にしてあります。 よろしかったらご助言いただけると助かります!よろしくお願い致します。
myanmy

2022/05/02 11:10

追記・トルクの問題は解決しました!
bboydaisuke

2022/05/02 12:30 編集

> ジャンプのアニメーションには上下の移動が含まれている この時点で「そのアニメーション」がないとなんとも言えないですね。ルートモーションを使っているとややこしいです。
bboydaisuke

2022/05/02 12:31

あと、この質問の記述からは、「こうなって欲しい」という動きをたぶん誰も想像できないと思います。
myanmy

2022/05/02 12:48 編集

修正依頼ありがとうございます! Rigidbodyを使用しているのでルートモーションは使っていないです😄 クリアになった問題を取り除くと、「アニメーションの途中でだけキャラクターを動かしたい」です。 手法としてアニメーションイベントの使用が適しているかどうかを追記しました。 質問の内容が多すぎるようなので、「ジョイスティックからの入力で、倒し方よって回転の値や移動距離を増減させたい。」に関しては今後自己解決を目指します。 どうぞよろしくお願い致します。
myanmy

2022/05/02 15:18

もしかして誤解があるかもしれませんので追記させていただきます。 キャラクターをジャンプさせたい!→キャラクターコントロールをつけてアニメーターを作成したり、スクリプトを作成する ではなく、 キャラクターがジャンプアニメーションを再生する→中間地点から一定の間でのみ、キーコントロールを受け付け、移動・回転をさせたいになります。スクリプトで書く場合、物理なのでvoid FixedUpdate()以下になります。 「こうなって欲しい」が伝わると良いのですが…。
guest

回答1

0

自己解決

せっかく修正依頼をいただいたのに大変申し訳ないのですが、アニメーションイベントを使用する事で目標の動きが再現できました!質問スペースありがとうございました。

投稿2022/05/03 22:15

myanmy

総合スコア13

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.30%

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

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

質問する

関連した質問