前提
先端部が持ち上がる蛇型のロボットをUnityの物理特性を使って再現したいと考えてます。
・各ボールにAddTorqueを使って
・先端濃い青色部分が可動部
・後端側の薄青色部分はジョイント連結部分(可動しない)
・ゲームコントローラ(DS4)のアナログスティックで先端部の曲げを操作
・ボール直径はΦ1m。(当初Φ6mmでやろうとしたが壁に接触できなかった。)
ここまで試してわかったこと
先端を地面側に曲げて、持ち上がるように試みました。各ボールのトルク値を大きくしたり、質量を軽くしたりなど試みましたがうまく持ち上がらなかったため、先端の各ボールの重心を後ろに大きくずらしました。結果、持ち上がり状態が再現できました。
###課題~実現したいこと
・AddTorqueを用いて、曲げ操作をいれているため、慣性が働き、ピタッと止まらない。ブラブラと動いてしまう。
⇒ConfigurableJointのスラープや回転軸ロックなど色々と試してみましたが、うまくいきませんでした。
・ゲームコントローラの入力がないとき、曲げ動作がピタッと止まること(慣性をなくす)
該当のソースコード
各先端のボールの曲げ操作のスクリプト
C#
1private Rigidbody AngRb ; 2float HorizontalInput;//ゲームコントローラ入力用 3public float MovTorque; 4public float MaxSpeed ;入力値調整用 5public float SubPower;入力値調整用 6public float SubSpeed ;入力値調整用 7 8void FixedUpdate(){ 9 10 RotVector.y = MovTorque*HorizontalInput;//Y軸を使って回転 11 if( 12 (HorizontalInput > 2E-1 || HorizontalInput <-2E-1)//アナログスティックの入力値が-0.2~0.2以外のとき 13 &&(AngRb.angularVelocity.magnitude < (SubSpeed*MaxSpeed))//ボールに速度が乗っていないとき 14 ) 15 { 16 AngRb.AddRelativeTorque(SubPower*RotVector,ForceMode.Force); 17 } 18 }
お手数をおかけいたしますが、どなたかアドバイスいただけると幸いです。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。