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

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


眉の場合、RBX_Leader の良い候補は眉のラインに沿ったエッジの頂点です。


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

この方法を支援するために、スタジオでの追加作業は必要ありません。アクセサリが 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 |