UGC検証システムは、アバターアセットがプラットフォームの仕様を満たしているかどうかを確認するRobloxの技術的メカニズムです。このプロセスは、アバターのボディ、コスメティック、衣服、アクセサリーが、プラットフォーム全体で一貫して動作することを保証します。
UGC検証システムは、以下のいずれかの操作を行うたびに実行されます:
- スタジオを通じてアバターアセットをマーケットプレイスにアップロードしようとする。
- ゲーム内でのアバターアセット作成のために、AvatarCreationService APIを呼び出す。
このプロセス中に、UGC検証システムはアセットを確認し、そのアセットタイプに特有の検証カテゴリの要件を満たしているかを確認します。これらの要件の包括的なリストについては、ボディ仕様、ダイナミックヘッド仕様、メイクアップ仕様、剛体アクセサリー仕様、およびレイヤードアクセサリー仕様を参照してください。
アバターアセットが検証に合格すると、アップロード料金を支払い、アセットをモデレーションに提出し、マーケットプレイスで販売することで、スタジオのアップロードプロセスを続行できます。または、プレイヤーは体験内で作成したアバターアセットを購入することができます。

アバターアセットが検証に失敗した場合、あなたまたはプレイヤーは、なぜアバターアセットが検証に合格しなかったかに関する情報を含むエラーメッセージを受け取ります。トラブルシューティングの支援については、UGC検証にはアセット固有の視覚ガイドを提供するチェック付きの視覚化ツールがあり、アセットが検証に合格できるように修正または改善するための方法を示しています。

検証カテゴリ
UGC検証システムは、検証をいくつかの高レベルカテゴリに整理します。これらのカテゴリとそれぞれが検証する領域についての情報は、次の表を参照してください。
| カテゴリ | 検証内容 |
|---|---|
| スキーマ |
|
| メッシュ幾何学 |
|
| テクスチャ / マテリアル |
|
| リギング / スキニング |
|
| 内外ケージ |
|
| アタッチメント |
|
| ダイナミックヘッド |
|
| セキュリティ / モデレーション |
|
可視化チェック
UGC検証システムには、マーケットプレイスにまだ準備が整っていないアバターアセットを特定、理解、診断、および修正するためのチェック付きのオプションの視覚化ツールが含まれています。アクティブにすると、視覚化チェックは、非準拠のアセットに関する検証エラーの情報と、改善が可能な準拠のアセットに対する品質評価を提供します。


UGC検証システムの視覚化ツールにアクセスするには、まずベータ機能を有効にする必要があります。オプションの視覚化チェックを有効にして使用するには:
スタジオで、ファイル > ベータ機能に移動します。
UGC検証の視覚化を有効にします。
スタジオを再起動し、次にメザニンでカスタムタブを追加するためのプラスアイコンをクリックします。新しいタブが表示されます。

カスタムタブで、ツールを追加ボタンをクリックします。ツールを追加のポップアップウィンドウが表示されます。

UGC検証を有効にしてツールバーに追加し、ウィンドウを閉じます。
カスタムタブに戻り、UGC検証ボタンを選択してプラグインを実行します。UGC検証ウィンドウが表示されます。
エクスプローラーウィンドウでキャラクターボディ、ダイナミックヘッド、剛体アクセサリー、またはレイヤードアクセサリーを選択し、次にUGC検証ウィンドウに戻り、検証を実行ボタンをクリックします。ポップアップウィンドウが表示されます。
ポップアップウィンドウで:
選択したアバターアセットのアセットタイプを確認します。例えば、Enum.AccessoryType.Pantsレイヤードアクセサリーを選択した場合は、ドロップダウンメニューからPantsAccessoryを選択します。

検証を実行ボタンをクリックします。
バリデーションサービスはバックグラウンドで実行され、アセットの状態に応じたエラーや警告の組み合わせとしてUGC検証ウィンドウに結果を報告します。各視覚的検証チェックに関する情報は、以下の小見出しを参照してください。
Measure_Cage_Distance_Head
Measure_Cage_Distance_Headは、アバターの頭部の外側のケージが頭部のメッシュにどの程度密着しているかを評価する検証チェックです。ケージがメッシュから浮きすぎたり、メッシュの内側に沈みすぎたりしないかを確認します。
| エラーコード | 重大度 |
|---|---|
| 入力データが不正または不完全なため、クオリティスコアを正しく計算できません。モデルを確認するか、バグレポートを提出してください。 | 検証をブロック |
| 頭部のケージが頭部のメッシュと交差しています。{negativeSDFPercent}%の頭部のケージの頂点が頭部のメッシュの内側にあります。 | 検証をブロック |
| 頭部のケージが頭部のメッシュから遠すぎます。頭部のケージとメッシュの最大距離は{max_sdf}であり、許可されたしきい値{max_sdf_threshold}を超えています。 | 検証をブロック |
| アセット品質警告:頭部のケージ距離スコアは{score}です。頭部のケージとメッシュの最大距離は{max_distance}であり、{negative_sdf_percent}%の頭部のケージの頂点が頭部のメッシュの内側にあります。 | 警告 |
Measure_Cage_Mesh_Distance
Measure_Cage_Mesh_Distanceは、レイヤード衣服の外側のケージがレンダーメッシュをどの程度追跡しているかを評価する検証チェックです。ケージが離れすぎたり、メッシュの内側に押し込まれている場合にフラグを立てます。
| エラーコード | 重大度 |
|---|---|
| 入力データが不正または不完全なため、クオリティスコアを正しく計算できません。モデルを確認するか、バグレポートを提出してください。 | 検証をブロック |
| 外側のケージがレンダーメッシュと交差しています。{negativeSDFPercent}%の外側のケージの頂点がレンダーメッシュの内側にあります。 | 検証をブロック |
| 外側のケージがレンダーメッシュから遠すぎます。外側のケージとメッシュの最大距離は{max_sdf}であり、許可されたしきい値{max_sdf_threshold}を超えています。 | 検証をブロック |
| アセット品質警告:ケージとメッシュの距離スコアは{score}です。外側のケージとメッシュの最大距離は{max_distance}であり、{negative_sdf_percent}%の外側のケージの頂点がレンダーメッシュの内側にあります。 | 警告 |
Measure_Cage_Mesh_Distance_Avatar
Measure_Cage_Mesh_Distance_Avatarは、フルボディの外側のケージがボディメッシュにどの程度密着しているかを評価する検証チェックです。ケージが表面から離れすぎたり、交差したりする場合にフラグを立てます。
| エラーコード | 重大度 |
|---|---|
| 入力データが不正または不完全なため、クオリティスコアを正しく計算できません。モデルを確認するか、バグレポートを提出してください。 | 検証をブロック |
| ボディのケージがボディのメッシュと交差しています。{negativeSDFPercent}%のボディのケージの頂点がボディのメッシュの内側にあります。 | 検証をブロック |
| ボディのケージがボディのメッシュから遠すぎます。ボディのケージとメッシュの最大距離は{max_sdf}であり、許可されたしきい値{max_sdf_threshold}を超えています。 | 検証をブロック |
| アセット品質警告:ボディのケージ距離スコアは{score}です。ボディのケージとメッシュの最大距離は{max_distance}であり、{negative_sdf_percent}%のボディのケージの頂点がボディのメッシュの内側にあります。 | 警告 |
Measure_Cage_Relevancy
Measure_Cage_Relevancyは、外側のケージを移動した際にどれだけの部分が実際にアクセサリーの上にあるかを評価する検証チェックです。これにより、ケージの編集が衣服が必要とする場所に留まります。
| エラーコード | 重大度 |
|---|---|
| 入力データが不正または不完全なため、クオリティスコアを正しく計算できません。モデルを確認するか、バグレポートを提出してください。 | 検証をブロック |
| {outer_cage_face_irrelevant_percent}%の修正された外側のケージの頂点がアクセサリーを覆っていません。必要な場所だけ外側のケージを移動していることを確認してください。 | 検証をブロック |
| アセット品質警告:ケージの関連性スコアは{score}です。{irrelevant_percent}%の修正された外側のケージの頂点がアクセサリーを覆っていません。 | 警告 |
Measure_Cage_UV
Measure_Cage_UVは、内側のケージおよび外側のケージのUVがレイヤード衣服のテンプレートと一致しているかを確認する検証チェックです。テンプレートと一致しないUVは、アセットが体にどのようにラップされるかを壊します。
| エラーコード | 重大度 |
|---|---|
| 入力データが不正または不完全なため、クオリティスコアを正しく計算できません。モデルを確認するか、バグレポートを提出してください。 | 検証をブロック |
| ケージ{cage_name}に{incorrect_uv_count}の不正なUV値があります。ケージUVを修正してください。 | 検証をブロック |
| アセット品質警告:ケージUVスコアは{score}で、{cage_name}の不正なUV数は{incorrect_uv_count}です。 | 警告 |
Measure_Cage_UV_Avatar
Measure_Cage_UV_Avatarは、各ボディパーツにケージがあり、そのUVが標準テンプレートの上に保たれているかを確認する検証チェックです。誤ったケージUVは、レイヤード衣服が体にどのようにラップされるかを歪めます。
| エラーコード | 重大度 |
|---|---|
| 入力データが不正または不完全なため、クオリティスコアを正しく計算できません。モデルを確認するか、バグレポートを提出してください。 | 検証をブロック |
| ケージ{cage_name}に{incorrect_uv_count}の不正なUV値があります。ケージUVを修正してください。 | 検証をブロック |
| アセット品質警告:ケージUVスコアは{score}で、{cage_name}の不正なUV数は{incorrect_uv_count}です。 | 警告 |
Measure_Degen_Triangles
Measure_Degen_Trianglesは、各メッシュパーツについて退化三角形(面積がゼロまたはほぼゼロの面)を評価する検証チェックです。退化三角形は面を追加せず、レンダリングを壊す可能性があります。
| エラーコード | 重大度 |
|---|---|
| アセットの品質:{partName}には{degenerate_triangle_percent}%の退化三角形があります(スコア: {score})。 | 警告 |
| {measureName}のアセット品質スコアを計算できませんでした。入力データが不完全または無効です。これによりアップロードがブロックされることはありません。 | 警告 |
Measure_Dynamic_Head
Measure_Dynamic_Headは、ダイナミックヘッドがアニメーション可能であるかを検証するチェックです。アニメーション可能なダイナミックヘッドは、ヘッドケージ、FACSデータ、揃ったランドマークがあり、目を閉じたり、口を開けたり、感情を表現することができます。
| エラーコード | 重大度 |
|---|---|
| 入力データが不正または不完全なため、クオリティスコアを正しく計算できません。モデルを確認するか、バグレポートを提出してください。 | 検証をブロック |
| マーケットプレイスのダイナミックヘッドは、目と口の頂点がメッシュの頂点と一致するように正しくケージされている必要があります。ケージの改善とメッシュとの整合性を確保してください。 | 検証をブロック |
| ダイナミックヘッドのために微笑み表情を検出できません。口のケージランドマークを頭の口の位置に合わせるよう調整し、微笑み表情を示せるようにしてください。 | 検証をブロック |
| ダイナミックヘッドのために左目を閉じる表情を検出できません。左目のケージランドマークを頭の左目の位置に合わせるよう調整し、閉じることができることを確認してください。 | 検証をブロック |
| マーケットプレイスのダイナミックヘッドにはヘッドケージがありません。ダイナミックヘッドのためのヘッドケージを作成してください。 | 検証をブロック |
| ダイナミックヘッドのために口を開ける表情を検出できません。口のケージランドマークを頭の口の位置に合わせるよう調整し、開けることができることを確認してください。 | 検証をブロック |
| マーケットプレイスのダイナミックヘッドはアニメーション化されている必要がありますが、このヘッドにはFACSデータがありません。 | 検証をブロック |
| ダイナミックヘッドのために右目を閉じる表情を検出できません。右目のケージランドマークを頭の右目の位置に合わせるよう調整し、閉じることができることを確認してください。 | 検証をブロック |
| ダイナミックヘッドのためにしかめ面を検出できません。口のケージランドマークを頭の口の位置に合わせるよう調整し、しかめ面を示せるようにしてください。 | 検証をブロック |
| アセット品質警告:ダイナミックヘッドの表情スコアは{score}です。 | 警告 |
Measure_Joint_Number
Measure_Joint_Numberは、ボディリグのジョイント設定を期待される構成に対して評価する検証チェックです。ボディリグのジョイント設定には、高忠実度リグの左手と右手のジョイント数が含まれます。
| エラーコード | 重大度 |
|---|---|
| アセット品質:ジョイント設定は{score} (ジョイント: {joint_number}, 左手: {left_hand_joint_number}, 右手: {right_hand_joint_number})です。 | 警告 |
| アセット品質スコアは{measureName}について計算できませんでした。入力データが不完全または無効です。これによりアップロードがブロックされることはありません。 | 警告 |
Measure_Mesh_Manifold
Measure_Mesh_Manifoldは、メッシュパーツのマニフォールド整合性を評価し、穴、非マニフォールドエッジ、幾何学における類似のトポロジーの問題をキャッチする検証チェックです。
| エラーコード | 重大度 |
|---|---|
| アセット品質:{partName}にはメッシュのマニフォールド問題があります(スコア: {score})。 | 警告 |
| アセット品質スコアは{measureName}について計算できませんでした。入力データが不完全または無効です。これによりアップロードがブロックされることはありません。 | 警告 |
Measure_Mesh_Outside_OuterCage
Measure_Mesh_Outside_OuterCageは、アクセサリーのレンダーメッシュのどの部分がそのケージの間にとどまっているかを評価する検証チェックです。外側のケージの外に突き出たメッシュは、着用したときに悪く変形します。
| エラーコード | 重大度 |
|---|---|
| 入力データが不正または不完全なため、クオリティスコアを正しく計算できません。モデルを確認するか、バグレポートを提出してください。 | 検証をブロック |
| {mesh_outside_outer_cage_percent}%のメッシュ頂点がアクセサリーの外側のケージの外にあります。より多くのアクセサリーをケージの間に配置できるように調整してください。 | 検証をブロック |
| アセット品質警告:メッシュの包含スコアは{score}です。{mesh_outside_outer_cage_percent}%のメッシュ頂点が外側のケージの外にあります。 | 警告 |
Measure_Texture_Complexity
Measure_Texture_Complexityは、各テクスチャの視覚的な複雑さを評価し、アセットにわずかな詳細しか追加しない平坦またはほぼ空に近いテクスチャをフラグします。
| エラーコード | 重大度 |
|---|---|
| アセット品質スコアは{measureName}について計算できませんでした。入力データが不完全または無効です。これによりアップロードがブロックされることはありません。 | 警告 |
| アセット品質:テクスチャ{textureName}は低い複雑さを持っています(スコア: {score})。 | 警告 |
Measure_Texture_Resolution
Measure_Texture_Resolutionは、各テクスチャのピクセル寸法によって評価し、アセットが体にシャープに見えるために十分な解像度を保証します。
| エラーコード | 重大度 |
|---|---|
| アセット品質スコアは{measureName}について計算できませんでした。入力データが不完全または無効です。これによりアップロードがブロックされることはありません。 | 警告 |
| アセット品質:テクスチャ{textureName}は解像度{texture_width}x{texture_height} (スコア: {score})です。 | 警告 |
Measure_Triangle_Intersection
Measure_Triangle_Intersectionは、自己交差する三角形を評価し、面が互いを通過して混乱した重なり合う幾何を生成するメッシュパーツを評価する検証チェックです。
| エラーコード | 重大度 |
|---|---|
| アセット品質スコアは{measureName}について計算できませんでした。入力データが不完全または無効です。これによりアップロードがブロックされることはありません。 | 警告 |
| アセット品質:{partName}には{intersecting_tri_face_percent}%の交差する三角形の面があります(スコア: {score})。 | 警告 |
Measure_UV_Bound
Measure_UV_Boundは、メッシュのUV頂点がどれだけ0-1テクスチャスペースの外にあるかを測定する検証チェックです。スコアを報告しますが、アップロードはブロックされません。
| エラーコード | 重大度 |
|---|---|
| アセット品質スコアは{measureName}について計算できませんでした。入力データが不完全または無効です。これによりアップロードがブロックされることはありません。 | 警告 |
| アセット品質:{partName}には{uv_outside_bound_vert_percent}%のUV頂点が境界の外にあります(スコア: {score})。 | 警告 |
Measure_Vertex_Similarity
Measure_Vertex_Similarityは、メッシュ内の近似重複頂点のシェアを測定する検証チェックです。スコアを報告しますが、アップロードはブロックされません。
| エラーコード | 重大度 |
|---|---|
| アセット品質スコアは{measureName}について計算できませんでした。入力データが不完全または無効です。これによりアップロードがブロックされることはありません。 | 警告 |
| アセット品質:{partName}には{similar_vertex_percent}%の類似頂点があります(スコア: {score})。 | 警告 |