この記事の3行まとめ
- モノリスソフト、「メッシュの形状から自動でジョイントを生成してみよう」と題した記事を公開
- メッシュ表面の「頂点情報」あるいは「UV値」を読み取ることで、ジョイントを自動生成する手法を解説
- 取得した座標をもとにジョイントを生成する手順や、人型モデルでジョイントを生成した事例なども紹介
モノリスソフトは2025年3月4日(火)、「メッシュの形状から自動でジョイントを生成してみよう」と題した記事を、自社の技術ブログで公開しました。
同記事では3DCGツール「Maya」を用いて、メッシュの形状や大きさの情報を読み取りジョイントを自動生成する手法を解説。頂点情報・UV座標を用いた2パターンの手法を紹介しています。
【TECH BLOG】
ブログ記事「メッシュの形状から自動でジョイントを生成してみよう」を公開しました。
効率よくジョイントを作成する方法を、2種類ご紹介しています。リギングにご興味のある方は、ぜひご覧ください。https://t.co/c76TGSprfx pic.twitter.com/GZ8nYc57vT
— 株式会社モノリスソフト (@MONOLITHSOFT) March 4, 2025
【TECH BLOG】
ブログ記事「メッシュの形状から自動でジョイントを生成してみよう」を公開しました。
効率よくジョイントを作成する方法を、2種類ご紹介しています。リギングにご興味のある方は、ぜひご覧ください。https://t.co/c76TGSprfx pic.twitter.com/GZ8nYc57vT
— 株式会社モノリスソフト (@MONOLITHSOFT) March 4, 2025
3Dモデルのリギングにおけるジョイント配置について、ハードウェアスペックの向上に伴うジョイント数の増加や人員不足といった要因から、手動でジョイントを配置するのはコストが高くボトルネックになりやすいといいます。
同記事では効率的にジョイントを生成する手法として、メッシュの表面から「頂点情報」あるいは「UV値」を取得することで座標を生成し、ジョイントを自動で配置する方法を紹介しています。
(画像はブログ記事より引用)
頂点座標をもとにした手法
頂点番号を渡すことでその頂点の座標を返す「pointPosition」の関数を使用し、複数の頂点座標をもとにジョイントを生成します。
頂点座標を用いた手法のメリットとして、ジョイント生成のために使用したローモデルをスキニング作業のケージモデルとして流用できることなどが挙げられています。一方で、形状合わせが手間であることなどをデメリットとしています。
選択している頂点から、視認しやすいようロケーターを生成するスクリプト(画像はブログ記事よりスクリーンショットで引用)
UV座標をもとにした手法
ポリゴン上のポイントコンストレイントを作成する「pointOnPolyConstraint」の機能を活用した手法です。pointOnPolyConstraintでロケーターの位置合わせを行い、そのロケーターからワールド座標を取得してジョイントに設定します。
頂点番号に制限のない自由なトポロジーやポリゴン数で生成できるメリットがある一方、1メッシュ内で重なったUVを利用できないことなどがデメリットとして語られています。
上記画像においては、UVエディタのU(横)を0.5、V(縦)を1にすることで、画像の①の部分にロケーター位置を合わせている(画像はブログ記事より引用)
選択した複数の頂点からジョイントを生成する手順についても解説。
記事中では完成モデルの頂点を用いた事例を紹介していますが、モデルの使い回しなどを考慮する場合、ポリゴン数が少ないモデルでの生成を推奨しています。
複数選択した頂点からジョイントを生成するスクリプト(画像はブログ記事よりスクリーンショットで引用)
人型モデルでジョイントを生成したモデルのサンプルとして、肘・ひざ・腰・太ももの4か所における画像が紹介されています。
太もも周辺におけるジョイント生成のサンプル画像。股関節の境目にあるエッジループに沿って複数の頂点を選択(画像の赤丸部分)することで、足の付け根の中心部分にジョイントが生成されている(画像はブログ記事より引用)
ジョイント生成後の様子(画像はブログ記事より引用)
そのほか、より厳密にジョイントの生成位置を調整する方法や、ジョイントの分割数を自由に変更できる構造の作成方法などについても言及しています。
詳細はモノリスソフトの技術ブログをご確認ください。
モノリスソフト TECH BLOG『メッシュの形状から自動でジョイントを生成してみよう』