Blenderでは、メッシュのトポロジー形状で肘や膝の動きが決まる!

2021年1月10日

今回の記事では、トポロジーがローポリモデルの動きに与える影響について確認していきたいと思います。

 

 

肘や膝の動きは、トポロジーの形状で決まる!

Blenderでキャラクター等を作って動かす際に、ほぼ毎回躓いてしまうのが関節の稼働だと思います。

特にこだわりがなかったり、関節の動作について熟知していれば、そのまま次の工程に移れるでしょう。

 

※イメージ

 

しかし、多くの人はこの工程で少なからず立ち止まるはずです。

肘や膝の動きには、メッシュのトポロジーの形状が大きく影響していきます。

ウェイトをいくら頑張っても、トポロージーがおかしれればいつまで頑張っても理想の動き方を演出することができないかもしれません。

 


3つの例で比較してみる

以下には、トポロジーの形状の違いが動きにどのように影響を与えるのかを比較するための、モデル例を載せておきます。

すべてのモデルは同じ体積で、ボーン数も2本です。

 

異なる点としては、始点から終点に至るまでの間の形状。

中学生の数学の図形問題のように、まずは図で説明してみます。

<1>
<2>
<3>

●<1>は中点に辺MNが1週分あります。

●<2>は<1>の中点をベベルし、結果として始点から終点に至るまでに辺が2週分あります。

●<3>は<2>のモデルの下面を結合。下面側のみ中点ができています。

<1>と<2>を混ぜたような形状です。

 

 

それぞれを動かしてみる

それぞれ<1><2><3>のモデルを動かしてみます。

なお、ウェイトに関しては、僕が最良であると思った塗り方を採用しています。

 

<1>辺MNが真ん中にある場合

まずは<1>のモデル。

中点MとNを結んだ辺があるモデルです。

どうでしょう。

まぁ問題なく曲がってはいますね。

 

ただし、これを実際の肘だと仮定したとしたら、僕はちょっと気になってしまいます。

と言うのも、関節部分である辺MNが、曲がることで細く潰れるように動いているからです。

人間の関節は、曲げたからといって細くなるような動きはしません。

このようになってしまうのはBlenderの仕組み上、動いた頂点の最短ルートで面が貼られることが原因です。

 

 

<2>辺MNにベベルをかけた場合

今の<1>の動き方をするメッシュに、一工夫を施したものが<2>のモデル。

動きを見てみましょう。

さっきよりは自然になったように思います。こちらはウェイトのかけ方を少し工夫しおりまして、外肘側の2つの頂点Nと頂点Pを全てボーンAで管轄するようにしています。内肘側の2つの頂点Mと頂点Oは、それぞれ元側がボーンA、先側がボーンBで制御しています。ウェイトの図としては、斜めに領域が分かれるようなイメージですね。

 

 

<3>内側と外側で頂点数が違う場合

そして最後にもう一つ、<3>のパターンです。

外肘側の2つの頂点を結合し、点N(結果的に点BCの中点)が出来上がりました。

中点を設定した状態だと、<2>のモデルと比較するとちょっと肘部分(頂点N)が潰れているように思います。

このため、頂点Nを少しだけ先端の方に移動させてみます。


本当に、ほんのちょっとだけ中点Nを頂点Cよりに移動させました。

すると、以下のように動きます。

このように綺麗な動きをするようになりました。

同じモデルで、頂点の数も同じだったとしても、頂点とボーンの位置関係によって動かしたときの様子が変わるのです。

 

 

関節を調整する場合の注意点

これらのモデルの動きより、関節を調整する場合には主に以下の2つの注意点が挙げられるように思いました。

 

 

関節は少しずらすべし

このように、関節をモデリングするときには、必ずしも中点を作っておく必要がないことが分かりました。

中点を作るより、むしろ少しずらしておいた方が自然な曲がりを演出させることができます。

 

そもそも人間の腕関節なども、曲がる箇所は中点ではありません。

人の場合は前腕の骨の方が長く、曲げることで尺骨という前腕の骨が、肘として突き出てきます。

このため、自然の摂理に則り、Blenderで関節を作るのであれば、同様に位置をずらしてあげるようにしましょう。

 

 

凹み過ぎる場合は頂点を減らす

今回の例では再現されませんでしたが、もしも肘を曲げたときに内肘が凹み過ぎてしまったら・・・。

そんな時は頂点を減らすようにしてみましょう。

 

そもそも曲げたときになぜ凹みが生じるのかというと、そこに適さぬ頂点があるから。

この適さぬ頂点を何らかの形で対処しなければ、不必要な凹みを解消することはできません。

頂点を削除することがてっとり早いと思うので、そうなったときには頂点を減らしてみてください。

 

<2>のモデルの更に真ん中をループカットして、同じ動きをさせて検証。

真ん中が必要以上に凹んでしまっていることが確認できると思います。

 


応用的な操作

トポロジーの位置によって、ボーンで動かしたときの動きが変わってくることは、以上の通りです。

トポロージーの位置の調整が基本にはなってくるわけですが、それにプラスする形で応用的な考え方もあります。

 

 

補助ボーン

補助ボーンとは、メッシュの破綻を防ぐためだけに用いられるボーンの事です。

モデルの直接的な動きにはそこまで関与しません。

 

例えば上で一度紹介をした<1>のモデル。

肘を曲げると、辺MNが縮み、モデルとして破綻してしまいます。

これを防ぐために、肘の箇所に補助ボーンを用いて、ウェイトを置きます。

 

するとこうなります。

肘側の潰れだけを、軽減させることに成功いたしました。

この補助ボーン、肘以外にも、腿の付け根、お尻等に用いられていることが多いように思います。

 

 

コネクト解除

コネクト解除とは、簡単に言えば親と子のボーンのつながり(接続)を断ち切ることです。

接続が切れているだけで、データとしては親子関係は保持されたままです。

 

親子関係の接続が切れると、子ボーンをGキーで好きに移動させることができます。

この習性を使って、親ボーンのテールと子ボーンのヘッドを別の場所に置くことができます。

あくまでデータ上は断ち切れてはいませんので、この状態で親ボーンを回転させると、子ボーンも連動して回ります。

 

この例も、同じように<1>のモデルを使って確認してみたいと思います。

この構造は、実際の腕関節の骨格と最も近いものとなります。

なので、いろいろと人体に忠実にモデリングしていく場合であれば、もっとも採用の価値があるものだと言えるでしょう。

ただし、複雑な人体の構造を再現するわけですから、様々な補助ボーンなどを総合的に取り入れる必要があるようにも思います。