自動スキニング転送では、レイヤー付きの衣服や顔のアクセサリーが、それに付随するキャラクターモデルに沿って正確に変形することができます。アクセサリー自体をスキニングする必要はありません。3Dモデリングソフトウェアでモデルを手動でリギングおよびスキニングするという複雑な作業をする代わりに、この機能を使用して、アクセサリーへのスキニングデータを転送または生成できます。自動スキニング転送を使用する際、Robloxエンジンは実行時にスキニングを作成し適用します。
自動スキニング転送を使用するには、アクセサリーのジオメトリをスキニングする必要はありません。実際、オートスキンされたアクセサリーは、ジョイントやボーンの数が異なるキャラクターに対しても問題なく機能し、異なる種類のスキニングを使用していても、アクセサリーはキャラクターがアニメーションする際に正確に動きます。

スキニングはキャラクター作成において依然として重要な概念であり、カスタムキャラクターを作成する場合は、モデルにスキニングデータを適用して、より自然なポーズやアニメーションを持つキャラクターを作成することを検討するかもしれません。メッシュのスキニング方法については、ヒューマノイドモデルをスキニングするの情報をご覧ください。
自動スキニング転送を有効にする
自動スキニング転送プロセスを有効にするには、自動スキニングしたいレイヤー付きAccessoryのWrapLayerインスタンス内でAutoSkinプロパティを有効にし、次のいずれかの値を設定する必要があります。
- Disabled: 自動スキニング転送プロセスを無効にします。これがデフォルト値です。
- EnabledOverride: 自動スキニング転送プロセスを有効にし、実行時にアクセサリーで見つかった既存のスキニング情報を上書きできます。
- EnabledPreserve: 自動スキニング転送プロセスを有効にしますが、実行時にアクセサリーで見つかった既存のスキニング情報を上書きできません。維持するスキニングがない場合、自動スキニング転送プロセスが新しいスキニングデータを自動的に作成します。
アクセサリーにスキニングデータがない場合、またはアクセサリーに関連する既存のスキニングデータを上書きすることを選択した場合、Robloxエンジンはキャラクターのジオメトリとケージからスキニングデータを計算し、新しいスキニングデータとアクセサリーに関連するリグがアクセサリーの変形や動きをソースジオメトリ自体に同期させて駆動します。
ベストプラクティス
自動スキニング転送は手動のスキニングよりも優れた結果を示すことが多いですが、アクセサースキニングの予期しない動作を減少させるためのいくつかのベストプラクティスがあります。すべてのモデリングプロセスと同様に、異なるアバタータイプでレイヤー付き衣服や顔のアクセサリーを常にテストし、望む結果を得るようにしてください。
特別なスキニング転送ジョイント
自動スキニング転送は、まつげや眉毛のような特定の詳細なアクセサリータイプにはうまく機能しない場合があります。よりコントロールされたスキニング転送結果を得るために、アクセサリーのジオメトリを特別に名前付けされた2つのジョイント、RBX_LeaderおよびRBX_Followerのいずれかにスキニングするオプションがあります。
RBX_Leaderにスキニングされた任意の頂点は、現在存在するスキニング転送プロセスを経ます。しかし、RBX_Followerにスキニングされた頂点は、実際には最寄りのリーダー頂点に基づいて転送されます。これにより、まつげの先端が通常は眉の領域のどこかに転送されるのではなく、まつげの基部に従って動くよりも、より良い結果を得られます。
まつげの場合、RBX_Leaderの良い候補は、キャラクターのまぶたの上に位置することを意図しているものです。残りの頂点はRBX_Followerにスキニングできます。


眉毛の場合、RBX_Leaderの良い候補は、眉のラインに沿っている辺の頂点です。


Blenderでは、オブジェクトデータプロパティ > 頂点グループを使用して、頂点グループの割り当てを管理および表示できます。

この方法をサポートするためにStudioで追加の作業は必要ありません。アクセサリーがClass.WrapLayer.AutoSkin.EnabledOverrideに設定され、これらのジョイントが頂点に割り当てられている場合、このスキニング転送のバリエーションが適用されます。
このジョイントをUGCアイテムとして使用するアクセサリーをアップロードしたい場合、以下のルールに注意する必要があります。
- 頂点はこれらのジョイントに部分的にウェイトを持つことができません。これらを使用したい場合、頂点をジョイントに1.0のウェイトでスキニングする必要があります。
- これらのジョイントがメッシュ内に存在する場合、アクセサリーはWrapLayerAutoSkin.EnabledOverrideに設定する必要があります。
- これらのジョイントを含むボディパートメッシュは、検証により拒否されます。
- 眉毛やまつげのアクセサリータイプは、特別なスキニングジョイントを持つことが求められ、WrapLayerAutoSkin.EnabledOverrideに設定される必要があります。
キャラクターケージの修正
キャラクターアクセサリーが期待されるキャラクターのサーフェスに正確に変形するように、自動スキニング転送を使用してキャラクターケージを修正できます。たとえば、自動スキニングは、アクセサリーとその内側ケージの間の最短距離に基づいて変形が発生するため、レイヤー付き衣服が不適切なボディパートに基づいて変形する可能性があります。以下の例では、ひげアクセサリーがブロック状の全身ケージを使用してモデリングされています。これにより、ひげが不適切に変形し、ひげの部分の一部がキャラクターケージの上部胸部に近いため、顎の部分ではなくなります。

レイヤー付きアクセサリーがキャラクターのジオメトリの望ましくない領域からスキニングデータを使用しないようにするには、異なるキャラクターマネキンケージの上にアセットをモデリングできます。たとえば、ブロック状のキャラクターは胴体にスキニングされたひげに苦しむ可能性がありますが、ヒューマノイドのような実際の首を持つキャラクターはこの問題を抱えません。
あるいは、レイヤー付きアクセサリーがスキニングされるべきでない外部ケージの部分を削除することもできます。この方法は、マーケットプレイス向けのアセットには有効ではありませんが、経験内のアセットやその他の用途のアセットには使用できます。たとえば、次の画像は外部ケージが修正され、頭のジオメトリのみが含まれるようにされたことを示しています。この外部ケージの改善により、自動的にスキニングデータが転送されると、ひげと部分的なケージが頭部のジオメトリからのみ適切にスキニングを転送するようになります。

前の例の変形問題は異なるケージを使用することでも解決できます。たとえば、胸部と顎の間により多くのスペースを持つよりヒューマノイドのケージを使用すれば、ひげは顎に近くなり、胸や首に近づかなくなります。このため、自動スキニング転送はそれらの領域からスキニングデータを転送しません。

キャラクターのケージの異なる領域を修正することで、レイヤー付き衣服や顔のアクセサリーが体または頭の正しい領域に関連して変形することを保証できます。たとえば、キャラクターモデルの腕を修正することで、ドレスがキャラクターが走っている間に誤ってその腕に取り付けられないようにしたり、足に誤ってマッピングされたズボンを修正することができます。以下の動画は、ジャケットの襟が頭とともに誤って動くことを示しています。この場合、レイヤー付き衣服が襟の領域に変形しており、これはケージの頭部部分に最も近いです。これを解決するために、ケージの頭部部分を削除し、ジャケットが頭に関連して誤って変形しないようにすることができます。この場合、ジャケットは肩の領域に関連して変形し、これはこの衣服により適切です。

異なるアクセサリーカテゴリ
自動スキニング転送は、帽子や眼鏡タイプのアクセサリーのような特定のアクセサリーカテゴリではうまく機能しない場合があります。たとえば、帽子や眼鏡のアクセサリーは、通常は剛性であるべき領域で変形を引き起こす可能性があります。一般に、それらのアクセサリーは剛性のままであり、スキニングデータを関連付けるべきではありません。
異なるアクセサリーカテゴリに対する推奨されるWrapLayer.AutoSkinパラメーターの要約は、以下の表に示しています。
| アクセサリーカテゴリ | 推奨パラメーター |
|---|---|
| ひげ | EnabledOverride |
| 眉毛 | EnabledOverride |
| まつげ | EnabledOverride |
| 髪 | Disabled |
| 帽子 | Disabled |
| 眼鏡 | Disabled |
| シャツ | EnabledOverride または EnabledPreserve |
| ズボン | EnabledOverride または EnabledPreserve |
| 靴 | EnabledOverride または EnabledPreserve |