レイヤード衣服を使用すると、ほぼすべてのアバターが他のレイヤード衣服と組み合わせて着用できる3Dの衣類やアクセサリーを作成できます。レイヤード衣服はアバターの体や他のレイヤード衣服のアイテムの上に自然に伸び、クリッピングや破損することなくフィットします。
私たちは、制作しているレイヤード衣服がフィットするベースボディキャラクターを構築することをお勧めします。これを外部のDCCアプリケーションで行い、すべてをStudioで結合して宇宙ステーションから最終的なキャラクターを作成する方法を説明します。
カスタムキャラクターを作成する
私たちは、ユーザーが宇宙ステーションに送られて不穏な出来事を調査する誰かを具現化してほしいと考えました。初めの頃、私たちの実際のキャラクターがどのようなものになるのか、あるいは複数の種類のキャラクターが存在するのかはわかりませんでしたが、彼らに宇宙服を着させたいと思いました。そのため、私たちは衣服を独立したコンポーネントとして作り、デザインに柔軟性を持たせることにしました。
最終的には「訪問者」と名付けたシングルキャラクターデザインに落ち着きましたが、レイヤード衣服により、メインキャラクターを作成すると同時に衣服をマーケットプレイスにモジュラーコンポーネントとしてリリースできました。クリエイターとして、あなたもすぐに同じことを行うことができるので、どのようにそれを行ったかを見ていきましょう。

ベースボディを作る
ベースボディは、基本的にはレイヤード衣服システムの最下層です。これは、私たちのキャラクターの下着姿から魚人、あるいは塊のようなアバターまで、あらゆるもので構成可能です。
レイヤード衣服チェックリスト:
- ボディジオ、ケージパーツ、スケルトンはR15スキーマに準拠している必要があります。
- ボディケージはRobloxから提供されているケージを使用する必要があります。
- ケージはボディジオと同じ部品数で、サフィックス _OuterCage を付ける必要があります。
- LeftUpperArm_Geo (メッシュ)
- LeftUpperArm_OuterCage (ケージ)
- 各部品のポリゴン予算は10,000トライアングルを超えてはいけません。
- キャラクターのサイズは2000×2000×2000ユニットを超えてはいけません。
モデルを作成する
レイヤード衣服を使えば、魚人、岩のゴーレム、人間の宇宙探検者など、ほぼすべてのタイプのボディに衣服をフィットさせることができます。唯一の要件は、二足歩行のヒューマノイドであることです。
キャラクターは中立的で自然なポーズでモデリングするべきです。これにより、アニメーション時に動きがより自由になり、動きには暗示された方向性が与えられます。暗示された方向性とは、キャラクターのスケルトンを構築しているときに、関節が自然に曲がるべき方向を知るための小さな曲がりを持つことを意味します。以下の例は、腕と脚に非常に小さな曲がりを示しており、これを可能にしています。また、体験内でアイテムや装備を保持するために、手は自然なポーズでポージングしています。

キャラクターのシルエット(形状)は、他のプレイヤーが遠くから見る際に区別可能で識別できるものであるべきです。これはマルチプレイヤー体験において重要です。これにより混乱が減り、多くのことが起こっているときにどれが安全か危険かをユーザーが知るのを助けます。


ベースキャラクターについての重要な注意点:これはプレイヤーアバターであり、最終的にボディと衣服をマーケットプレイスでリリースする予定なので、R15スキーマに従う必要があります。これには、ボディが15の部品に分かれていることが含まれます。


部品が連続して見えるようにするために、メッシュコンポーネントのキャッピングを行い、次にアプリケーションを使用してボディパートの「シーム」間で頂点法線を「平均化」することをお勧めします。これにより、ボディパートの両側にある2つの頂点が、表面法線に関して1つとして扱われます。


テクスチャ
キャラクターにテクスチャを施すことで、外見に基づいて彼らに命を吹き込むことができます。宇宙ステーションのために、周囲に近いレベルのリアリズムを持つキャラクターを望み、以下のキャラクターに落ち着きました:

では、テクスチャをStudioに取得し、キャラクターが素晴らしく見え、体験に合うようにします。
テクスチャ前に、キャラクターの関節を動かしてポージングし、モデルがうまく変形するかを確認するために、動作範囲テストを行いました。テクスチャ前の動作範囲テストは常に必要ではありませんが、テクスチャに時間をかける前にモデルの驚きを発見するのに役立ちます。その後、メッシュからリグを分離(バインド解除)してテクスチャ作業に集中しました。キャラクターがリグにバインドされた後は、テクスチャ作業やアニメーション作業を行うのはお勧めできません。

マーケットプレイス用の肌の色調コントロールを可能にするために、シャツ、ショーツ、手袋、ブーツなどのエリアを完全に不透明にしました。しかし、露出した肌のエリアには部分的な透明度を使用して肌色の詳細を追加できるようにしましたが、それを完全に覆い隠すことはありませんでした。これにより、Studioの現在のライティングでできる以上の解剖学的特徴を強調することができました。

以下の画像は、色(アルベド)、金属度、粗さ、法線マップを示しています。




そして以下の画像は、Studioでの肌色の透明度の効果を示しており、透明度のある同じカラーマップと肌色が適用されています。




ケージ
ベースボディを確立した後、レイヤード衣服がフィットするようにケージを作成する必要がありました。ケージは衣服と体がどのように相互作用するかを示します。体と衣服は同じケージを持ち、ユーザーによって変形させて衣服のフィット感を定義します。ボディケージは、キャラクターの形を細かなメッシュの詳細なしに衣服に伝えます。衣服の内部ケージは、衣服のフィット感のどのトightlynessを定義します。
現在、ケージの最初の適合を外部のDCCアプリケーション内で行う必要があります。最初にRobloxから提供されているケージを使用して始めることができます。
ボディのケージは衣服のケージとほぼ同じですが、最終結果は15の部品からなるケージです(それぞれがボディパートのメッシュに対応しています)。以下は、「編集可能な」ケージで、1つのメッシュ、編集された「編集可能な」ケージによって変形されたケージパーツ、メッシュ自体について示しています。

最初にケージを始めたとき、キャラクターに一致しない可能性が高いので、「編集可能な」ケージまたはパーツを直接調整してボディメッシュの外形にフィットさせる必要があります。衣服のように、外ケージは常にボディメッシュの外側にフィットする必要があります。これにより、衣服はボディ自体の形状を認識します。衣服には「ツイン」ケージが使用されており、基本的にこの外ケージに衣服をスナップします(これについては後ほど詳しく説明します)。

私たちは、外ケージを肌を覆う形にしたいと決めましたが、手袋とブーツは覆わないようにしました。それ以外のエリアでは、ケージが可能な限りボディの外側にフィットしていることがわかります。顔ケージも顔の特徴の距離と形状に合うように作られています。




スキン
キャラクターにスキニングを施すことは、Custom Charactersと同様に、環境を移動するときの有機的な曲がりや捩れを作り出します。キャラクターメッシュがStudioに正しくインポートされるための以下のガイドラインが有用だと感じました。
個々の関節と骨には一意の名前を付ける必要があります。
メッシュはスキニング/バインディングの前にトランスフォームがないようにする必要があります。言い換えれば、トランスフォームは0で、スケールは1であるべきです。
メッシュの法線は外向きを向いているべきです(モデルが内側に向いてはいけません)。
スケルトンにスケールファクターを持たせてはいけません。すべての関節は[1, 1, 1]である必要があります。
このキャラクターにスキニングを行うのは、関節数の制限から少し難しかったですが、私たちが行った作業からのいくつかのメモは以下のとおりです:
解剖学的に明確な人間をスキニングする場合、腕を上下に動かしたときなど、筋肉が伸びたり圧縮されたりするように見えるようにウェイトをペイントするのが最適です。


人間のスキニングでは、スキニングデフォルトが「滑らかすぎる」ことも一般的な問題です。つまり、肘や膝のような領域で影響が過度に分配されることがよくあります。圧縮しないように、よりタイトにペイントするのが最適です。


最後に、モデルが15のパーツに分割されているため、パーツ間のシームでのウェイティングが1:1になるようにする必要があります。ほとんどのアプリケーションでは、1つの頂点から別の頂点に影響をコピーして、正確に同じウェイティングを持つことができるようにします。


手袋とブーツ
ベースボディからわかるように、私たちは手袋とブーツを含めることを決めました。これは、以下の理由から一時的に行うこともあるでしょう:
手袋はレイヤード衣服のスーツの一部にしたかったのですが、現在のレイヤード衣服機能では手袋がサポートされていないため、最初のモデルの手を手袋のあるものに置き換えました。
靴の金属リングを硬くて足や脚にフィットしないようにしたかったため、最初のモデルの足をブーツのあるものに置き換えました。

レイヤード衣服がブーツや手袋の周りにフィットしようとしないように、意図的にその内部にケージを保持しました。これにより、宇宙服の上部と下部が手と足に合わせて変形することができます。

スーツを作成する
プロセスの初期に、スーツは複数のキャラクターにフィットするようにし、他の人が衣服を楽しむためにアセットをマーケットプレイスにリリースしたいと決定しました。レイヤード衣服に加えて、キャラクターにはヘルメットやバックパックといった「ハードポイント」アイテムが必要でした。以下の画像は、さまざまなキャラクターにスーツがどのように見えるかを示しています。

レイヤード衣服を構築する際に役立つガイドラインは以下の通りです:
- DCCアプリケーションからエクスポートされた .fbx ファイルには、衣服メッシュ、内部ケージ、外部ケージ、および スケルトン が含まれている必要があります。
- 衣服の名前付けは任意ですが、両方のケージはこの命名フォーマットを必要とします:
- [衣服の名前]_InnerCage
- [衣服の名前]_OuterCage
- 衣服はR15のスケルトンに最大4の影響でスキニングする必要があります。
- R15のスケルトンはこの命名スキーマに従う必要があります。
これらのガイドラインを考慮し、宇宙スーツを作成する手順は以下の通りです:
Robloxのレイヤード衣服ケージテンプレートを使用し、衣服をフィットさせるためのベースフレームとして使用します。衣服のフレームとの距離に応じて、タイトフィットまたはルーズフィットの衣服を持つことができます。
フレームに衣服をモデリングし、外部のDCCアプリケーションでハイポリモデルをスカルプトします。
ハイポリモデルのゲーム用として準備されたローポリバージョンを再構築します。このプロセスについてもっと情報が欲しい場合、高ポリからゲーム用モデルに関する多くのチュートリアルがオンラインにあります。衣服はカバーしている体の部分に対応する部品に分割する必要はなく、単一のメッシュであることができます。


テクスチャを確定させる前に、他のキャラクターで動きとフィット感をテストします。
「外ケージ」または衣服アイテムの外形を定義します。これは、追加のレイヤーが宇宙服の上部にどれだけタイトにフィットするかを指示します。

ケージ作成後、テンプレートファイルのスケルトンに衣服を一時的にスキニングすることで、動作範囲テストを行うことができます。リグをさまざまなポジションにポージングすることで、テクスチャ作業を確定させる前に、変形がうまくいくかを確認できます。これを行う場合は、テクスチャに進む前にバインド解除を確実に行ってください!

テクスチャ
衣服のスキニングが完了し、思い通りに動いていたら、テクスチャ作業に移ります。
リアリズムを目指したため、美しいPBRマテリアルのためにサーフェスアピアランスを使用しました。これをテクスチャリングアプリケーションに持ち込み、アルベド、金属度、粗さ、法線マップを作成しました。これにより、衣服の一部が金属的に見え、他の部分が粗いキャンバスのように見えるようにしました。





さらに進む前に、モデルやテクスチャをStudioに持ち込み、宇宙ステーション内で正しいライティングでマテリアルをテストしました。これにより、腕と胴体のバンドの金属度を調整する必要が生じました。

衣服のテクスチャリングを行う際には、以下の点に留意してください:
- サーフェスアピアランスには、色(アルベド)、金属度、粗さ、法線マップを含めるようにしてください。
- 金属度がないと、サーフェスアピアランスはデフォルトで金属度0となり、プラスチックのような表面になります。
- 粗さがないと、サーフェスアピアランスはデフォルトで粗さ0となり、滑らかな表面になります。
スキン
衣服にスキニングを施すことで、ベースボディに対して適切に曲がるようになります。スキニングすることで、アニメーションに対し、衣服がどのように曲がるべきか、どの部分が剛性を持ち、どの部分がキャラクターと一緒に動くべきかを示しています。

幸いなことに、ベースボディとは異なり、衣服を分割する必要はないため、スーツ上部は単一のメッシュとしてスキニングできます。時間を節約するために、ほとんどのアプリケーションでは、メッシュを特定の関節にのみスキンすることができます。スーツ上部に影響を与えたい関節は、上半身、下半身、上腕、下腕、頭部のみにしました。全体のボディにはバインドしないことで、不要なウェイティングを除去する時間を節約できました。

体と同様に、素材に応じて自然に曲がるようにスキニングする必要があります。つまり、中間のプラスチックセクションでは、上半身に対して堅実なウェイティングを持たせました。
手袋が剛性を持つ予定であり、スーツの上部が手首の上端で止まっているため、手と一緒に曲がる必要はないと感じました。

スーツ上部のスキニングが完了したら、同じ手順をパンツにも繰り返してStudioに持ち込み、エンジン内で準備します!
Studioにインポート
衣服がDCCアプリケーションやStudioでうまく見えたら、Studioにインポートし、アクセサリーツールを使用する準備が整いました。これは、衣服のケージを最適なフィット感を得るために調整するのに役立つ今後のリリースです。このツールは、衣服をアクセサリーとしてエクスポートすることもでき、キャラクターに衣服を追加することができます。
Studioでは、レイヤード衣服アイテムにLC_プレフィックスを付けて命名し、従来のスタイルのアクセサリ(ヘルメットやバックパックのパーツ)と区別しました。

ヘルメットを作成する
ヘルメットはスーツの重要な要素です。ユーザーがキャラクターの顔を見ることができるようにし、ヘルメットのガラス表面の光沢を映し出したいと考えました。

頭にフィットさせるために変形を望まないアクセサリーは、現在マーケットプレイスで見つけることができる「ハードポイント」アクセサリーとして作成するのが最適です。ヘルメットとマーケットプレイスにあるものとの主な違いは、SurfaceAppearanceを使用しており、これにより説得力のあるプラスチックや金属の見た目が得られ、ヘルメットのバイザーには透明性があります。
モデルを作成する
ヘルメットモデルを作成するために:
ヘルメットをキャラクターの頭に置いたときに、良いシルエットを確立しました。

ステーションのテクスチャ量を最小限に抑えるため、トリムマップを再利用しました。ヘルメットは、UVマップを最も効果的にテクスチャマップに配置できるように、十分な独立したセクションでモデリングしました。

その後、ステーションの多くのエリアで使用したのと同じトリムマップを使用しました。




Studioにインポート
私たちがヘルメットを大体フィットさせ、DCCアプリケーション内に配置したら、希望する効果を持つ状態でStudioにインポートしました。
最初にアセットマネージャを使用してヘルメットをインポートしましたが、単一のメッシュであるため、MeshPartを任意の場所にドロップし、プロパティウィンドウでMeshIdを指定することも可能です。

次に、メッシュパーツにSurfaceAppearanceオブジェクトを介してテクスチャマップを追加しました。このプロセスでは、ヘルメット越しに見ることができるように、アルファを理想的に調整するのに時間がかかりましたが、完全に透明でないようにしました。

一部のスーツをクリーンに保ち、他のスーツを汚くするために複数のテクスチャを使用せずに、この効果を作り出すために、同じオブジェクトにデカールを追加しました。デカールは、各表面に平面投影することで機能します。

ヘルメットの向きや暗い部屋での方向を示すために、ユーザーが向いている方向を示す光のビームやライトを追加することが望まれました。これを行うために、アタッチメントを使用しました。アタッチメントは任意の量を追加でき、部分ではないため、アクセサリーとして有効です。アタッチメントは以下の例のように、パーティクルエフェクト、ビーム、またはライトに使用できます。

アクセサリーツールの導入
多くのコンポーネントが平行して構築されているため、アセットが正確にフィットしているか、望むように見えるかを知るのが少し難しくなります。しかし、今後のアクセサリーツールを使用することで、衣服のフィッティングと調整がはるかに簡単になります。このツールを使用して、キャラクターの上半身と下半身、およびハードポイントのヘルメットとバックパックアクセサリーをセットアップしました。

レイヤード衣服のためのアクセサリーツールの使用概要は以下の通りです:
スーツの上部をキャラクターにフィットさせました。幸運なことに、フィット感は素晴らしく、内部ケージがボディにうまく合いました。外部ケージを他の衣服アイテムでテストしました。フィットに満足したら、このツールを使用してマーケットプレイス用の適切なアクセサリーを生成しました。

スーツの下半身については、Studio内でフィット感を調整したかったのですが、初めは少し大きすぎました。ポイントエディタを使用して位置に調整しました。スーツの上部と同様に、アクセサリーにしました。

ヘルメットとバックパックについては、ケージがないため、スケーリング、回転、移動を行うことで調整しました。

ヘルメットがスーツの他の部分なしでどのようにフィットするかを見るのは難しいため、アクセサリーツールを使用してスーツの上半身と下半身を視覚化しました。これによりフィット感がスーツの上部に整合することが確認できました。

ヘルメット、バックパック、上半身、下半身が完成したところで、このキャラクターが宇宙ステーション内でどのように見えるかを確認する準備が整いました。アクセサリーをキャラクターにコピーして貼り付け、フィット具合を確認しました。その後、キャラクターを私たちのプレイスファイルに配置し、すべてのマテリアル、ライティング、その他の効果が望む通りであることを確認しました。
