🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Unity3D

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

Q&A

解決済

1回答

1383閲覧

意図しない方向に回転が働いてしまう

Tanutanu_FOX

総合スコア5

Unity3D

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

0グッド

0クリップ

投稿2019/10/27 06:40

編集2019/10/27 06:51

意図しない方向に回転が働いてしまう

現在Unityにてゲーム開発を行っているものです。
ガトリングのように回転する銃身をRigidbodyRelativeAddTorqueを使って実装しようとしているのですが、ガトリング砲と接続しているコックピット部を動かすと下図のように回転が意図しない方向に働く用になってしまいました。

発生している問題・エラーメッセージ

イメージ説明

比較:銃身を回転させていないとき

イメージ説明

原因はおそらくガトリング砲のX軸にrigidbodyで回転を加えているため、銃身自体を直角に右に向けたときに元の角度ではガトリングの銃身右に回すために働いていた力が銃身を別方向に回転する力にかわってしまっていることだと思われます。
しかし銃身の回転数が一定になってから弾を発射するスクリプトを組んだり、射撃ボタンを離してから少しの間空転する仕様をつくる際に楽をしたいため、自分はできる限りRigidbodyでこの処理を行いたいのですが…

加えた後の力の方向を親のオブジェクトの回転に対応して変更させるなど、対策をご存知の方はいらっしゃるでしょうか…
Rigidbodyで処理するのはあきらめてTransformの回転で処理すべきでしょうか?

該当のソースコード

C#

1 void FixedUpdate () { 2 3 Rigidbody rigidbody = cycleGat.transform.GetComponent < Rigidbody >(); 4 rigidbody.AddRelativeTorque(Vector3.right * count); 5 6 if (Input.GetMouseButton(0)){ 7 while(count <= max) { 8 count = count + 10; 9 } 10 } 11 12 if (Input.GetMouseButtonUp(0)) 13 { 14 count = 0; 15 } 16 }

補足情報

unity 2018 2.14f1

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

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

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

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

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

KanazawaKureha

2019/10/27 09:26

重心はヒエラルキー上でどの位置にあるでしょうか? つまりコックピットの子オブジェクトとして設定されているか、それぞれ独立しているのかどちらでしょうか?
Tanutanu_FOX

2019/10/27 09:45 編集

見ていただきありがとうございます。 コクピットの子オブジェクトとして設定しています。
guest

回答1

0

ベストアンサー

意図していないかもしれませんが、その挙動は非常に正確です。

ジャイロの法則と言うのをご存知でしょうか?

回転体は自身の回転軸の方向を保とうとする性質があるので、コマの様になっているのです。

これはさらに言い換えるとコックピットを方向転換する時も実は抵抗が働いているので、より正確な挙動をさせたいならこの性質は利用できると思いますが、、

とはいえこの性質が邪魔ならば、ある意味** 物理法則に反した行動をすると言う事**なのでRigidBody単体ではどうにもなりません。

#####スクリプトで強制的に回転軸の方向をリセットするのが最適です。

投稿2019/10/27 09:45

KanazawaKureha

総合スコア368

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

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

Tanutanu_FOX

2019/10/28 09:16

ありがとうございます。 Transform.Rotateを使って回転軸を修正できないかやってみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問