メタバースやVRゲームでは、3Dキャラクターが歩いたり手を振ったりする際、間接に服や皮膚のポリゴンがくっついて、自然に動いて見える。これは当たり前のようで、3Dモデラ―達がきちんと設定しているからなのです。
実はその背景には、キャラクターの「骨格」と「皮膚」を結びつける「スキニング」という重要な仕組みが働いています。この技術により、3Dモデルが人間のように滑らかで自然な動きを表現することが可能になります。
仕事や趣味で3Dモデリングをしている方には当たり前の技術ですが、改めてスキニング技術の基本について分かりやすく解説します。
(引用元:AREA JAPAN)
スキニング技術とは、3Dキャラクターの骨格(ボーン)の動きに合わせて、キャラクターの表面(メッシュ)がどのように変形するかを制御する技術です。「スキン(皮膚)」という名前の通り、骨の動きに対して皮膚や筋肉がどう反応するかをデジタルで再現します。
3Dモデルは通常、数千から数万の小さな三角形(ポリゴン)で構成されています。スキニング技術は、これらのポリゴンの各頂点が、どの骨にどれだけ影響を受けるかを設定することで、骨格の動きに合わせた自然な変形を実現します。
適切なスキニング設定がされていない3Dモデルは、関節部分での不自然な折れ曲がりや、皮膚が骨から離れてしまう現象が起こります。一方、精密なスキニングが施されたモデルは、人間の動きに近い滑らかで自然な表現が可能になります。
(引用元:MechaStudio)
スキニング技術の核心は「ウェイト(重み)」の概念にあります。3Dモデルの各頂点に対して、複数の骨がどの程度影響を与えるかを数値で設定します。
例えば、肘の関節部分を考えてみましょう。上腕の骨が動いたとき、肘に近い皮膚の頂点は上腕の骨に強く影響され、前腕の骨にも少し影響されます。この影響度を「上腕の骨:70%、前腕の骨:30%」のように数値で表現するのがウェイト設定です。
すべてのウェイト値の合計は100%になるように調整され、これにより上腕の骨が動くと70%、前腕の骨が動くと30%だけ、その頂点が動くことになります。
スキニング技術では、ウェイト設定を行う際の基準となる姿勢が必要になります。この基準となるのが「バインドポーズ」と呼ばれる、キャラクターの基本姿勢です。通常はTポーズ(両腕を水平に広げた姿勢)や自然立位の状態で設定されます。
このバインドポーズを基準として、キャラクターがポーズを変えた際の変形が計算されます。骨格が動いた際、各頂点は設定されたウェイトに基づいて新しい位置が計算されます。この計算により、骨の回転や移動に合わせて3Dモデルの表面が滑らかに変形します。
現在使用されている代表的なスキニング技術には、以下の2つの手法があります。
最も基本的で広く使用されている手法です。各頂点の最終位置を、影響を与える骨の変換行列をウェイトで重み付けした線形結合で計算します。
計算が高速で実装が簡単なため、リアルタイムアプリケーションで多用されています。ただし、関節を大きく曲げた際に「キャンディラッパー効果」と呼ばれる不自然なくびれが発生することがあります。
リニアブレンドスキニングの問題を解決するために開発された手法です。回転の表現にクォータニオンという数学的手法を使用し、より自然な変形を実現します。
関節の大きな回転でも体積の保持ができ、より人間らしい動きを表現できます。ただし、計算負荷がやや高くなります。
スキニング技術では、動きの自然さ(表現品質)と処理速度のバランスが重要な課題となっています。
メタバースやVRアプリケーションでは、1秒間に数十回の描画更新が必要なため、スキニング計算も高速である必要があります。このため、品質と速度のトレードオフを慎重に検討する必要があります。
一方で、GPU(グラフィックス処理装置)の並列処理能力を活用することで、従来よりも高品質なスキニングをリアルタイムで実現する研究も進んでいます。
最近では、機械学習を活用したスキニング技術の研究も活発になっています。大量の動作データから自動的に最適なウェイト設定を学習したり、従来の手法では困難だった複雑な変形パターンをAIで予測したりする手法が開発されています。
スキニング技術は、3Dモデルに生命感を与える重要な技術です。適切なスキニングにより、メタバースでのアバター表現やゲームキャラクターの動きがより自然で魅力的なものになります。
技術の進歩により、今後はより簡単に高品質なスキニングが実現できるようになるでしょう。メタバースビジネスや3Dコンテンツ制作に関わる際は、このスキニング技術の品質が、ユーザー体験を大きく左右する要素の一つであることを理解しておくことが重要です。