自動スキニング転送は、レイヤー付き衣服や顔のアクセサリをキャラクターモデルと一緒に正確に変形させることができ、アクセサリ自体をスキンする必要がありません。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では、オブジェクトデータプロパティ > 頂点グループを使用して、頂点グループの割り当てを管理および表示します。

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