重心って何だろう?~その2~

INDEX

はじめに

こんにちは。モノリスソフト テクニカルアーティストの本部です。

前回、重心について考える記事を「重心って何だろう?」と題して投稿させていただきました。
今回はその続きとして、もう少し踏み込んだ内容を投稿しようと考えました。

「重心って何だろう?~その2~」と題し、重心の求め方について見ていきたいと思います。

まずは前回の記事のおさらいから始め、簡単な形状のモノ、複雑な形状のモノの重心の求め方について、いくつかの例を交えて考えていきます。
そして記事の最後には、重心を求める公式までたどり着きたいと思います。

おさらい

本ブログの内容に入る前に、前回の記事の内容を少しおさらいしておきます。

重心とは?

重心は物体に対して一つだけ存在し、その位置には以下の特徴がありました。

重心の位置の特徴

  • 物体に対して一点のみ存在する
  • 物体の形状が同じでも、質量の偏りによって重心の位置も変わる
  • 物体の中にあるとは限らない

重心と支持基底面と安定性

物体を支えている面、つまり地面に触れている個所を結んだ点を「支持基底面」と呼ぶのでした。

物体が静止している(立っている)には、重心が「支持基底面」の上に納まっている必要があり、支持基底面から出ると転倒してしまい、
また「重心がズレている」状態とは、「重心が支持基底面からはみ出している」状態であると捉えました。

さらに、重心と支持基底面と安定性について以下のように考えたのでした。

安定性

  • 重心が高い=少しの傾きで、支持基底面からはみ出してしまい転倒しやすい
  • 支持基底面が狭い=少しの重心の動きで、支持基底面からはみ出してしまい転倒しやすい
  • 重心が低く、支持基底面が広い=「安定性が高い」

おさらい終わり

ここまでが前回の内容のおさらいとなります。纏めてみるとこんな感じでしょうか。

重心とは

  • 物体に対して一点のみで位置は様々。物体の中にあるとも限らない
  • 支持基底面との位置関係で安定性が低くなったり、高くなったりする
  • 重心が支持基底面から出ると物体は安定性を失い、転倒する

重心の位置の求め方

ここからは具体的な重心の位置の求め方を見ていきたいと思います。
今回は平面での説明になりますが、立体でも考え方は同じです。

シンプルな物体の重心位置

冒頭で、「重心とは物体をその一点のみで支えることができる点」とおさらいしました。
これは、「重心とはその物体の重量のつり合いが取れている個所」と言い換えることができます。

単純な形状の四角や円などであれば、それらの中心点=重心となります。

tech_36_01.jpg

tech_36_02.jpg

tech_36_03.jpg

複雑な形状⇒シンプルな物体の組み合わせ

複雑な形状も、シンプルな形状が組み合わさったものと考えることで重心を求めることができます。

tech_36_04.jpg

tech_36_05.jpg

重さに偏りがある物体の重心

さて、ここまでは「複雑な物体をシンプルな形状に分割し、重心を求める」というやり方を見てきました。
ですが、今までの例を見返してみると、分割後のシンプルな形状の重さはそれぞれ全て1.0kgでした。

一方現実では、分割した形状ごとの材質の違いなどにより、重さに違いが出てくることも多いはずです。
ここでは、重さに偏りのある形状の重心の求め方を考えてみます。

tech_36_06.jpg

tech_36_07.jpg

式を短く

重さが増えるにつれて、どんどん式が長くなってきました。もし今後、100kgのモノの重心を求める必要が出てきたら・・・と考えるとゾッとします。
ここでは、どうにかして式を短くできないか「重さの違う複雑な形の重心位置 ~その2~」の式をよーく見てみることにします。

tech_36_08.jpg

見てみると、式の中に同じ値のベクトルが何回も登場していることが分かります。
赤い枠内で(1.0,1.0)を3回、青い紫の枠内で(3.0,1.5)を2回足しています。

この部分を掛け算にすることで式を短くできそうです。

tech_36_09.jpg

かなり短くなりました!
これならモノの重さが大きくなっても、掛ける値を大きくするだけで対応することができます。

もう少し式を眺めてみる

さらに式を眺めてみます。
もっと何か分かることはないでしょうか?

tech_36_10.jpg

式をさらに眺めてみたおかげで、重心の求め方についての理解がさらに深まりました!

そして公式へ・・・。

ここまで見てきた、重心の求め方は実は以下の公式と同じです。

\(x_{G} = \frac{m_{1}x_{1}+m_{2}x_{2}}{m_{1}+m_{2}}\)

アルファベットや小さな数字がびっしりで嫌になりますが、大丈夫。分解してみれば全く難しくありません。
まずは、各記号の意味を見ていきましょう。

\( x_{G} \) 求める重心座標
二次元の場合は(1.0, 1.0)
三次元の場合(1.0, 1.0, 1.0)のようにベクトルが返ってきます。
\( m_{1} \) 質量(Math)
\( m_{2}、m_{3}、m_{4} \)のように、物体を構成するシンプルな形状の数だけ増えていきます。
\( x_{1} \) 重心座標
\( x_{2}、x_{3}、x_{4} \)のように、物体を構成するシンプルな形状の数だけ増えていきます。


この公式を言葉に置き直してみると、以下のようになります。

\( 求める重心座標 = \frac{質量_{1}\times重心座標_{1}+質 量_{2}\times重心座標_{2}}{質量_{1}+質量_{2}} \)

先ほどまで見てきた式と、順番は少し違いますが一致します!

\( 重心 = \frac{Aの重心\times Aの重さ+Bの重心\times Bの重さ}{全体 の重さ} \)

シンプルな形状から一歩ずつ考え、見事公式までたどり着くことが出来ました!!

まとめ

いかがでしたでしょうか。

今回はアニメーション制作をする上でよく耳にする、「重心」の求め方について考えました。
アニメーション制作時には感覚で捉えがちな重心ですが、今回の内容を知っていれば、ロジカルに、より正確に、重心をイメージすることができるようになります。

例えばキャラクターが持っている武器の形状や重さによって、キャラクター全体の重心がどう変わるか、より具体的にイメージできるようになるのではないでしょうか。
例えば武器の先端が長く、また重量が先端に偏るほど重心はそちらに寄っていきます。(つまり、剣よりモーニングスターの方が、重心は先端に寄ります)

今回の記事が読んで頂いた方の新しい発見の一助に、少しでもなれば幸いです。

執筆者:本部

アニメーターとしてモノリスソフトへ入社後、現在はテクニカルアーティストを務める。 好きな動物はねこ。

ABOUT

モノリスソフト開発スタッフが日々取り組んでいる技術研究やノウハウをご紹介

RECRUIT採用情報