Meiryo’s blog

やってみて詰まったことを備忘録として残すブログ

【Unity】Jointを繋げて作ったチェーンが伸びる問題の解決のために行ったこと

結論

  • 色々試したけどJointが伸びる解決はできなかった
  • 重りとなっている箇所のMassの値を
    小さくする(軽くする)ことで少し改善された

Jointを繋げてチェーンを作った話

この間unityroomの企画unity1weekで
ボールをハンマー投げのように回して
投げるゲームを作りました。
(作ったゲームはこちら)

このゲームの持ち手と
ボールの間のチェーンをHinge Jointで
繋げていたのですがチェーンが伸びる問題に
直面しました。

これについて調べたことと改善するために
行ったことを書いていきたいと思います。
(ちなみに最終的にJointでチェーンを作るのは
諦めたのでこのゲームのようには行きません)

伸びる問題を解決しようとして調べた結果

最初は伸びる問題を解決しようと
色々試したり調べたりしたのですが
このForumで長い時間かけたけど
解決できなかったって言ってる人を見つけたので
諦めて、
できるだけ伸びないようにする方法を
みつけることにしました。

改善するために行ったこと

ボールの部分を重くしていたのですが
軽くすることで少し改善されました。
やり方はRigidBodyのMass(質量)の値を
小さくするだけです。

少し改善されたとはいえ激しく動かすと
結構伸びたのでJointでチェーンを作るのであれば
激しく動かさず重すぎるものをぶら下げないように
したほうがいいかもしれません。

もしかして2DでJointを使って鎖を作るのは無理?

3DのHinge Jointのマニュアルには
鎖を作れることが複数回書かれているのですが
2DのHinge Jointのマニュアルには
書かれていないので
もしかして2DのHinge Jointで
鎖を作るのは向いていないのかも?

そんなことはなさそうですが
もし2Dで激しく動かさなくても伸びたり
挙動がおかしかったりしたら
だめなのかもしれません。