メッシュのウェイト設定ワークフロー

May 18th, 2020

ウェイトを使うと、メッシュの頂点をボーンにバインドすることができます。個々の頂点に 自由変形 を使う代わりに、バインドしているボーンを移動させることで頂点を移動させることができます。ボーンを使ってメッシュを変形させることで、複雑なメッシュのセットアップを簡単にコントロールでき、変形キーを設定するよりもはるかに効率的です。

以前のブログ記事では、メッシュ作成のヒントメッシュの分類でメッシュ作成の基礎について説明しました。ここでは、メッシュの頂点にウェイトを割り当てるためのワークフローのヒントについて説明します。

1つのメッシュ、複数のアウトプット

同じメッシュでも、異なるボーンやウェイトを使って頂点の位置を操作することで、まったく異なる結果を得ることができます。

例えば、このtipsは正面のボーンの周りを回転するようにウェイトを設定した立方体を示しています:

ここに、同じボーン設定を持つ同じ立方体メッシュがありますが、ウェイトを逆にして、メッシュがキューブの後ろのボーンを中心に回転するようにしています。この反転は、ウェイトとボーンのリストを反転させることで出来ます。

ここに再び同じ立方体メッシュがありますが、左右の角の頂点の間の軸を中心に立方体が回転するようにウェイトを設定しています:

先を見越して計画を立てる

前回のメッシュに関するブログ記事では、メッシュの目的に基づいてメッシュの頂点を配置するための簡単なルールを設定しました。この目的ベースの考え方を、ウェイトの設定にも応用することができます。ありがたいことに、メッシュの構造を決めた時点で、すでにほとんどの計画ができています。

前のセクションでは、メッシュとその頂点をどのボーンの周りにピボットさせるかを検討しました。

ウェイトを設定する際に答えなければならないのは、次の質問です:メッシュの目的を果たすためには、どの頂点をどのボーンで動かすべきか?

人生を楽にするために、私たちは常にシンプルさを追求しなければなりません。ウェイトを設定する際には、メッシュがその目的を果たすために必要な最小限のボーン数で頂点をウェイト付けすることを意味します。メッシュを操作するのに必要なボーンの数が少なければ少ないほど、メッシュをアニメーションさせるのが簡単になります。

ここにもう一つの例を示します: 最初にメッシュ構造を曲げられるように変更し、曲げを簡単に制御できるようにウェイトを設定することで、静的な立方体を曲げやすいゼリー状の立方体に変えることができます。この設定では、下の GIF に示されているように立方体を曲げることしかできないことに注意してください。このように立方体の「目的」を限定することで、セットアップをシンプルにすることができます。

メッシュをボーンにバインドする際には要注意

アニメ化モードでメッシュをバインディングすることで、異なる構成のボーンを使用した別のポーズを追加する高度なセットアップを作成することができます。このプロセスについては、このブログ記事で説明しましたが、同じ翼の2つの異なるポーズを同じボーンのセットにバインドします。

しかし、初心者にとってこの自由度は不注意に使うと危険なものになりかねません。

メッシュは、ボーンにバインドされた時のボーンの位置を記憶しています。初心者によくある間違いは、ボーンを移動させてメッシュをバインドした後、ボーンを元の位置に戻してしまうことです。これを行うと、ウェイトを変更する際に頂点が移動してしまいます。これは、ボーンの位置が頂点をバインドした時の位置と異なるためです。

アニメ化モードでメッシュをバインドしている場合、このようなことが偶発する可能性はさらに高くなります。

そのため、別のポーズを追加するためにアニメ化モードでメッシュをバインドする必要がない限り、ほとんどの場合、設定モードでメッシュをバインドするのがベストです。

幸いなことに、このようなちょっとしたアクシデントが起きても、バインディングをアップデートボタンを押すことで、選択したメッシュに新しいバインドポジションを割り当てることができます。これにより、頂点が「記憶」しているボーンの位置が、以前の位置を破棄して現在のボーンの位置に更新されます。

アニメ化モードでのウェイトの設定とテスト

ウェイトは、メッシュが初めてボーンにバインドされたときに自動的に設定されます。ウェイトの効果を確認するために、設定モードでボーンを移動させたくなるかもしれません。ボーンを移動してウェイトがどのように変形するかを確認してからアンドゥを使用しても構いませんが、前のセクションで説明したように、設定モードでボーンを移動することは、ウェイトが調整されたときに頂点が移動することを意味します。

この処理をより安全に行うにはどうすればいいのでしょうか?アニメ化モードで直接ウェイトを設定すれば良いのです! メッシュを変形させるボーンが動いているテストアニメーションを作成し、結果に満足できるまでウェイトを調整します。

これは、奥行きをシミュレートしたり、複雑なメッシュを扱う場合に特に便利です。動きのあるウェイトを見ることで、静止したポーズを見ながらウェイトを設定するのに比べて、とても簡単に調整することができます。

Ctrl (MacではCmd) を押すとアニメーションが一時停止するので、ウェイトのダイレクトツールでの頂点の選択が容易になります。

極端なところから始める

メッシュに割り当てられたウェイトの有効性をテストするときは、常に両極端から始めます。つまり、最も反対の2つの値または位置から始めます。このプロセスをウェイトと同様にボーンの位置にも適用すると、2つの異なるワークフローが得られます。

メッシュにウェイトを設定する最も簡単な方法は、メッシュが必要とする動きの対極的な端にある頂点に 100% という値を割り当てることから始めることです。次に、メッシュの計画された動きに沿った量のウェイトのミックスのバランスをとるために、その間にある頂点を取得する作業を行います。これは、代わりに連結されたシンプルメッシュ以外のほぼすべてのメッシュに適用されます。

例えば、奥行きをシミュレートしているメッシュの場合、見ている人から最も離れている頂点から始め、それらを制御するボーンに 100% の初期ウェイトを割り当てます。次に、最も近くにあるべき頂点を特定し、それらを制御するボーンに 100% の影響力を割り当てます。最後に、テストアニメーションを再生しながら、その間にある頂点のウェイトを調整して、奥行き効果を実現します。

極端なところから始めるもう一つの方法は、メッシュをコントロールするボーンを、アニメーションの際に実際に必要とされる以上の位置やポーズに移動させることです。脚が曲がる場合は、可能な角度を少し超えたところに移動させて、少し崩してみましょう。顔が空間で回転する場合は、極限まで追い込んでみましょう(これは時にコミカルに見えることもあります)。

その理由は、このように極限の場合には、補正が必要なウェイトが目立つため、ウェイトの微調整が容易になるからです。また、より広い可動範囲をサポートすることで、アニメーターに自由度を与えることができます。

多くの場合、複数回の試行が必要になります。ある方向や極端な位置ですべてがうまくいった後、対極の位置をテストして、うまくいかないウェイトを修正します。次に、前のポーズにボーンを配置して、他の方向を修正したときに何かがずれていないかどうかを確認します。

すべてのものがすべての限界点でうまく見えたなら、ポーズの中間は、おそらくすでに素晴らしい状態になっています。

グループウェイト

ウェイトを割り当てるプロセスを簡単にするもう一つの方法は、すべて同じウェイトを持つことができる、またはそれに近いウェイトのグループを見つけることです。

サイドビューだけで曲がるメッシュであれば、この作業は非常に簡単です。例えば、腕の上部の形状を保持したい場合、少なくとも4つの頂点を選択して、それらすべてを上腕のボーンにウェイト付けする必要があります。次に、腕の下の部分についても同様の処理を繰り返します。これで、腕が曲がる肘の頂点のウェイトを考えるのは簡単になりました。メッシュが筒状の場合、これらの頂点は2つの頂点のペアで選択することもできます。

奥行きをシミュレートするメッシュは少し厄介です。メッシュをいくつかのスライスに分割することを想像してみてください。このスライスは、メッシュの中で最も遠くにある部分から、見ている人に最も近い部分に向かって一定の間隔で配置することができます。これらのスライスのそれぞれは、見ている人から同じ深度にあるので、同じウェイトを持つ頂点のグループです。

最終的には全く同じウェイトにならないとしても、一般的な近似値を持っていることは、まだ完全に正しいとは言えないウェイトを微調整する前に非常に有用です。

この原理は パララックス に似ていて、画像のグループが異なる速度で移動して奥行きをシミュレートしています。

親から始める

メッシュが2つ以上のボーンにバインドされている場合は、ツリー階層で最も上部のボーンからメッシュのウェイト付けを開始し、1つのボーンを一度に下降させるのが良い方法です。ボーンが独立している場合、つまり片方のボーンがもう片方のボーンの親になっていない場合は、メッシュの片側から開始し、もう片方のボーンに向かって進行するように選択することができます。

親ボーンから開始すると、最初に全体的な動きを定義することができます。その後、子ボーンに移動して、親ボーンのウェイトに依存するメッシュセクションに詳細を追加することができます。

例えば、ゼリーキューブを再現するには、最初にきれいに曲がるようにウェイトを設定します。次に、立方体の上部をコントロールする3番目の子ボーンのウェイトを足します。

Spineが計算してくれる

頂点が徐々にボーンの影響を受けるように手動でウェイトを設定するのは面倒です。柔らかく曲がるメッシュを作る最も手っ取り早い方法は、頂点の半分の 100% を一方のボーンに、もう半分をもう一方のボーンにウェイトをつけて、真ん中のウェイトをボックス選択して、結果に満足するまで スムーズ ボタンを押すことです。

少ない頂点でメッシュにウェイトを付け、その後メッシュにさらに多くの頂点を追加することで、同様の結果を得ることができます。Spineは、周囲の頂点に基づいて自動的にウェイトを計算します。

三角形の重なり合い

メッシュがそれ自身と重なっている場合、後ろにあるはずの画像の一部が上に描かれてしまうことがあります。このような場合は、三角形の表示順を変更することで修正することができます。

メッシュがバインドされているボーンをソートして、最も遠いボーンをリストの最下位に、最も近いボーンをリストの先頭にすることが有効です。重なりの問題を解決するために、描画順序をより良い状態にするボーンに、頂点のウェイトをより多く割り当てます。

ウェイトと同様に、メッシュのウェイトビューのボーンの順番は、アニメーション中ではキーにすることができません。これは、三角形の順番を調整した場合、すべてのアニメーションに反映されることを意味します。

メッシュのクリーンさ

ウェイトを自動的に計算したり、スムージングを行ったり、メッシュにウェイトをペイントしたりした後に、メッシュに不要なウェイトが存在する場合があります。削減はパフォーマンスを向上させ、ファイルサイズを小さくし、ウェイトをより管理しやすくします。

また、完璧なウェイトを設定した後に、いくつかの頂点がすべて同じウェイトを持っていることが判明することもあります。メッシュを編集してこれらの余分な頂点を削除することも、パフォーマンスを向上させ、ウェイトの調整を容易にするための素晴らしい方法です。

変形キーは悪魔

この投稿は全体的にウェイトについて取り上げていますが、変形キーについてはどうでしょうか?Spineを初めて使う人の多くは、変形キーを使ってメッシュを変形させたいと思っています。変形キーは強力であり、それなりの役割がありますが、多くの場合、いくつかの理由からウェイトを使用する方が優れています。

まず、メッシュの変形をキーにすると、すべての頂点をまとめてキーにします。例えば、頭部のメッシュで、耳がはためく様子をアニメーションさせるために変形キーを使用した場合、耳をアニメーションさせるためのすべてのキーが鼻の頂点をキーにしているため、その後に戻って鼻を動かすアニメーションを作成することはできません。耳と鼻を一緒にアニメーションさせるには、ストレートアヘッドワークフローを使用する必要があります。最初の試行でこれを正しく実行するのは難しいですし、後で戻って既存のキーを調整するのも難しいです。この問題は、目や口など、同じメッシュ内でアニメーションさせたい要素が増えるほど悪化します。

ウェイトを使用する場合、耳と鼻の頂点を異なるボーンに割り当てられます。そして、メッシュ全体にキーを設定するのではなく、ボーンに個別にキーを設定できます。

変形キーの使用を避けるもう一つの理由は、各変形キーには、その頂点がウェイト付けされているボーンごとに頂点の位置が格納されているからです。40個の変形キーと100個の頂点があり、各頂点が4つのボーンにウェイト付けされている場合、これらのキーには 40 * 100 * 4 = 16,000 個の頂点位置が格納されていることになります。これは、メッシュや変形キーを追加するとますます悪化し、結果としてスケルトンデータが必要以上に大きくなってしまいます。

ウェイトを使用する場合は、ボーンのキーを打つだけですし、それらのキーが持つのは小さな情報だけで済みます。

変形キー間の補間時の動きは常に直線上にありますが、ウェイトを使用すると、ボーンの回転を使用したり、頂点を複数のボーンにバインドしたりすることで、頂点をよりダイナミックに動かすことができます。

最後に、実行時には、変形キーを適用するよりもボーンをアニメーションさせる方が少し効率的です。どちらの場合も、頂点はボーンによって変換されますが、変形キーの間を補間する必要があります。

では、どのような場合に変形キーを使うべきなのでしょうか?滅多に使用せず、控え目に!ただ各頂点を個別に移動させる必要があり、ウェイトを使って移動させるには多くのボーンが必要になってしまう場合には有効です。変形キーはメッシュウェイトと組み合わせることができることを覚えておいてください。ウェイトでほとんどの変形が出来るけれど、特定のポーズでは必要な変形ができないという場合があります。そのような場合には、変形キーを使用してメッシュを要求通りに振る舞うようにするのがふさわしい場合があります。

結論

これらのヒントで、ウェイトやメッシュ全般に、より自信を持って取り組めるようになることを願っています。まだの方は、以前の2つのブログ記事メッシュ作成のヒントメッシュの分類を忘れずにチェックしてください。次は何を学びたいですか?ぜひ、Spineフォーラムで感想を聞かせてください。