【Unity】RigidbodyのMass(質量)を変えた時の変化について

【Unity】RigidbodyのMass(質量)を変えた時の変化について

RigidbodyといえばUnityで物理演算を使うのに必要なコンポーネントです。

Rigidbodyでは物理的な特性を設定することができますが、今回はMass(質量)を変化させた時の動きを確認します。

運動にどんな影響が出るのか、ちょっとずつMassの値を変えて試してみました。

 

環境

macOS 10.13 High Sierra

Unity2018.1.0f2

4月末にUnity2018が出てたので早速使ってみました。

Rigidbodyについて

Rigidbodyのアタッチ方法や各設定項目の説明は、以下の記事で解説しています。

ざっくり言うと、Unityで物理演算を使うために必要なコンポーネントです。

今回はその中でもMass(質量)に注目。

Rigidbodyのパラメータ
Rigidbodyのパラメータ

Massについて

日本語訳すれば質量。物体の運動を考える上で、質量の存在は欠かせません。

運動量、運動エネルギー、運動方程式など、物理的な挙動には質量が付いて回ります。

Unityにおける物理演算でも例外はなく、力を加えて位置を変化させる場合には、その計算に質量が使われます。

Rigidbodyではその質量を設定することができます。

転がしてみる

質量の異なるボールを転がしてみます。

用意したボールは以下の6種類。

  • mass : 0.01
  • mass : 0.5
  • mass : 1
  • mass : 2
  • mass : 5
  • mass : 10

質量以外の値はRigidbodyをアタッチした時のデフォルトのものになっています。

ボタンを押すと全てのボールに同じ力が加わり、運動を開始するシーンを作って比較してみました。

ForceModeはImpulseとし、加えた力の大きさは画面左上に表示しています。

質量の異なるボールを転がす
質量の異なるボールを転がす

 

massが0.01のボールは力を加えた瞬間に、ものすごい勢いで遥か彼方へと旅立ちました。

逆にmassが10だとほとんど転がりませんね。

質量の大きさによって運動のしやすさが変わっている様子が分かります。

 

斜方投射してみる

同じボールを使って、力を加える向きを変え、斜方投射してみます。

ForceModeは上と同じくImpulseとし、加えた力の大きさは画面左上に表示しています。

質量の異なるボールを斜方投射
質量の異なるボールを斜方投射

 

こちらもmassが0.01だと遥か彼方へ。0.5でもあっという間に画面外に行っちゃいます。

massが1くらいになると現実的な動きになってくるかな。

massが10まで行くと、この力の大きさでは飛びそうもないですね。

重力に逆らった運動をする際には質量の大きさがあからさまに影響します。

自由落下させてみる

今度は自由落下させてみます。

RigidbodyのDrag(抵抗)の値は全て初期値の0にしているので、空気抵抗の差異はありません。

物体の落下時は重力のみ加えられている状態とします。

……と、この条件を示した段階で、物理に触れたことのある方は実験結果が予測できちゃうかも。

質量の異なるボールが自由落下
質量の異なるボールが自由落下

 

まあ、そうなるな。

空気抵抗がない場合には、落下時の加速度は質量によらないため、軽い物体も重い物体も同時に落ちます。

日常生活の範囲内だと重いものが早く落ちそうな気がしますが、空気抵抗の差異が大事なんです。

Unity側では物体の大きさに応じて空気抵抗を変えたりはしないので、空気抵抗を設定したい場合は自分でDragの値を変える必要があります。

衝突させてみる

多分massを使うときに一番意識するのは衝突関連じゃないかな。

ざっくりいえば吹っ飛びやすさですものね。

上で使ったボールをそのまま使って転がし、massが1のボールに衝突させてみます。

なお、衝突相手のボール(ピンク)には、同じ大きさの力を逆向きに加えます。

質量の異なるボールの衝突実験
質量の異なるボールの衝突実験

 

質量によって衝突までの時間が変わるのがアレですが、期待通りの結果になりました。

質量が軽ければmass : 0.01のように吹っ飛びやすくなりますし、質量が重ければmass : 10のように衝突後もあまり加速しません。

なんとなく運動量も保存されてるっぽい動きですね。

なお、mass : 0.01はCollisionDetectionの設定を『ContinuousDynamic』にしないとピンクのボールをすり抜けます。

まとめ

質量の差異によって、物体の運動にどのような影響が出るのかを実験してみました。

自由落下では影響がありませんが、転がったり、投げたり、ぶつかったりといった時には質量の大きさで運動の様子が変わります。

特に衝突時は、衝突相手に与える影響がmassから算出されるので、その比率を何パターンか試した方がいいかも。あまりに現実離れした動きになると違和感が出ますもんね。

     

ゲーム開発の攻略チャートを作りました!

CTA-IMAGE

「ゲームを作ってみたいけど、何から手を付けていいか分からない!」


そんなお悩みをお持ちの方向けに、todoがアプリをリリースした経験を中心に、ゲーム作りの手順や考慮すべき点をまとめたe-bookを作成しました。ゲーム作りはそれ自体がゲームのように楽しいプロセスなので、「攻略チャート」と名付けています。


ゲームを作り始めた時にぶつかる壁である「何をしたら良いのか分からない」という悩みを吹き飛ばしましょう!