Sistem validasi UGC adalah mekanisme teknis Roblox yang memeriksa apakah aset avatar memenuhi spesifikasi platform sebelum Anda dapat mengupload dan menerbitkannya ke Marketplace. Proses ini memastikan bahwa tubuh avatar, kosmetik, pakaian, dan aksesori berfungsi secara konsisten di seluruh platform.
Sistem validasi UGC dijalankan setiap kali Anda:
- Mencoba mengupload aset avatar ke Marketplace melalui Studio.
- Memanggil API AvatarCreationService untuk pembuatan aset avatar dalam pengalaman.
Selama proses ini, sistem validasi UGC melihat aset Anda untuk memastikan bahwa ia memenuhi persyaratan dalam kategori validasi yang spesifik untuk jenis asetnya. Untuk daftar lengkap persyaratan ini, lihat Spesifikasi tubuh, Spesifikasi kepala dinamis, Spesifikasi makeup, Spesifikasi aksesori kaku, dan Spesifikasi aksesori berlapis.
Ketika aset avatar lolos validasi, Anda dapat melanjutkan proses upload Studio dengan membayar biaya upload, mengirimkan aset untuk moderasi, dan menjualnya di Marketplace, atau pemain dapat melanjutkan untuk membeli aset avatar yang mereka buat dalam pengalaman.

Ketika aset avatar gagal validasi, Anda atau pemain menerima pesan kesalahan dengan informasi tentang mengapa aset avatar tidak lolos validasi. Untuk bantuan pemecahan masalah, validasi UGC memiliki alat visualisasi dengan pemeriksaan yang memberikan panduan visual spesifik aset tentang cara memperbaiki atau meningkatkan aset Anda sehingga dapat lolos validasi.

Kategori validasi
Sistem validasi UGC mengorganisir validasi ke dalam beberapa kategori tingkat tinggi. Untuk informasi tentang kategori ini dan beberapa area yang mereka validasi, tinjau tabel berikut.
| Kategori | Apa yang divalidasi |
|---|---|
| Skema |
|
| Geometri mesh |
|
| Tekstur / material |
|
| Rigging / skinning |
|
| Kandang dalam dan luar |
|
| Pemasangan |
|
| Kepala dinamis |
|
| Keamanan / moderasi |
|
Pemeriksaan visualisasi
Sistem validasi UGC termasuk alat visualisasi opsional dengan pemeriksaan untuk membantu Anda mengidentifikasi, memahami, mendiagnosis, dan memperbaiki aset avatar yang belum siap menjadi Marketplace. Saat aktif, pemeriksaan visualisasi memberikan informasi tentang kesalahan validasi untuk aset yang tidak mematuhi, dan penilaian kualitas untuk aset yang mematuhi tetapi bisa menggunakan perbaikan.


Untuk mengakses alat visualisasi sistem validasi UGC, Anda harus terlebih dahulu mengaktifkan fitur beta. Untuk mengaktifkan dan menggunakan pemeriksaan visualisasi opsional:
Di Studio, navigasikan ke File > Beta Features.
Aktifkan Visualizing UGC Validation.
Mulai ulang Studio, kemudian di mezzanine, klik ikon plus untuk menambahkan tab kustom. Tab baru ditampilkan.

Di tab kustom Anda, klik tombol Add tools. Jendela pop-up Add Tools ditampilkan.

Aktifkan UGC Validation untuk menambahkannya ke toolbar Anda, lalu tutup jendela.
Kembali ke tab kustom Anda dan pilih tombol UGC Validation untuk menjalankan plugin. Jendela UGC Validation ditampilkan.
Di jendela Explorer, pilih tubuh karakter, kepala dinamis, aksesori kaku, atau aksesori berlapis, kemudian kembali ke jendela UGC Validation dan klik tombol Run validation. Jendela pop-up ditampilkan.
Di jendela pop-up:
Konfirmasi jenis aset dari aset avatar yang Anda pilih. Misalnya, jika Anda memilih aksesori berlapis Enum.AccessoryType.Pants, gunakan menu dropdown untuk memilih PantsAccessory.

Klik tombol Run validation.
Layanan validasi akan berjalan di latar belakang dan melaporkan hasil di jendela UGC Validation sebagai kombinasi kesalahan dan/atau peringatan tergantung pada keadaan aset Anda. Untuk informasi tentang setiap pemeriksaan validasi visual, tinjau subsection berikut.
Measure_Cage_Distance_Head
Measure_Cage_Distance_Head adalah pemeriksaan validasi yang menilai seberapa dekat kandang luar kepala avatar dengan mesh kepala, memeriksa bahwa kandang tidak terlalu jauh dari mesh atau tenggelam di dalamnya.
| Kode kesalahan | Severity |
|---|---|
| Skor kualitas tidak dapat dihitung dengan tepat karena data input tidak benar atau tidak lengkap. Silakan periksa model Anda atau ajukan laporan bug. | Memblokir validasi |
| Kandang kepala berpotongan dengan mesh kepala. {negativeSDFPercent}% dari vertex kandang kepala berada di dalam mesh kepala. | Memblokir validasi |
| Kandang kepala terlalu jauh dari mesh kepala. Jarak maksimum antara kandang kepala dan mesh adalah {max_sdf}, yang melebihi ambang batas yang diizinkan {max_sdf_threshold} | Memblokir validasi |
| Peringatan kualitas aset: Skor jarak kandang kepala adalah {score}. Jarak maksimum antara kandang kepala dan mesh adalah {max_distance}, {negative_sdf_percent}% dari vertex kandang kepala berada di dalam mesh kepala. | Peringatan |
Measure_Cage_Mesh_Distance
Measure_Cage_Mesh_Distance adalah pemeriksaan validasi yang menilai seberapa dekat kandang luar pakaian berlapis mengikuti mesh render, menandai ketika kandang terlalu jauh atau terbenam di dalam mesh.
| Kode kesalahan | Severity |
|---|---|
| Skor kualitas tidak dapat dihitung dengan tepat karena data input tidak benar atau tidak lengkap. Silakan periksa model Anda atau ajukan laporan bug. | Memblokir validasi |
| Kandang luar berpotongan dengan mesh render. {negativeSDFPercent}% dari vertex kandang luar berada di dalam mesh render. | Memblokir validasi |
| Kandang luar terlalu jauh dari mesh render. Jarak maksimum antara kandang luar dan mesh adalah {max_sdf}, yang melebihi ambang batas yang diizinkan {max_sdf_threshold}. | Memblokir validasi |
| Peringatan kualitas aset: Skor jarak kandang-ke-mesh adalah {score}. Jarak maksimum antara kandang luar dan mesh adalah {max_distance}, {negative_sdf_percent}% dari vertex kandang luar berada di dalam mesh render. | Peringatan |
Measure_Cage_Mesh_Distance_Avatar
Measure_Cage_Mesh_Distance_Avatar adalah pemeriksaan validasi yang menilai seberapa dekat kandang luar tubuh penuh mengikuti mesh tubuh, menandai ketika kandang mengapung terlalu jauh dari permukaan atau berpotongan dengannya.
| Kode kesalahan | Severity |
|---|---|
| Skor kualitas tidak dapat dihitung dengan tepat karena data input tidak benar atau tidak lengkap. Silakan periksa model Anda atau ajukan laporan bug. | Memblokir validasi |
| Kandang tubuh berpotongan dengan mesh tubuh. {negativeSDFPercent}% dari vertex kandang tubuh berada di dalam mesh tubuh. | Memblokir validasi |
| Kandang tubuh terlalu jauh dari mesh tubuh. Jarak maksimum antara kandang tubuh dan mesh adalah {max_sdf}, yang melebihi ambang batas yang diizinkan {max_sdf_threshold}. | Memblokir validasi |
| Peringatan kualitas aset: Skor jarak kandang tubuh adalah {score}. Jarak maksimum antara kandang tubuh dan mesh adalah {max_distance}, {negative_sdf_percent}% dari vertex kandang tubuh berada di dalam mesh tubuh. | Peringatan |
Measure_Cage_Relevancy
Measure_Cage_Relevancy adalah pemeriksaan validasi yang menilai seberapa banyak dari kandang luar yang Anda geser sebenarnya berada di atas aksesori, sehingga pengeditan kandang tetap di tempat yang diperlukan oleh pakaian.
| Kode kesalahan | Severity |
|---|---|
| Skor kualitas tidak dapat dihitung dengan tepat karena data input tidak benar atau tidak lengkap. Silakan periksa model Anda atau ajukan laporan bug. | Memblokir validasi |
| {outer_cage_face_irrelevant_percent}% dari vertex kandang luar yang dimodifikasi tidak menutupi aksesori. Pastikan Anda hanya menggeser kandang luar di tempat yang diperlukan. | Memblokir validasi |
| Peringatan kualitas aset: Skor relevansi kandang adalah {score}. {irrelevant_percent}% dari vertex kandang luar yang dimodifikasi tidak menutupi aksesori. | Peringatan |
Measure_Cage_UV
Measure_Cage_UV adalah pemeriksaan validasi yang memeriksa apakah UV kandang dalam dan luar sesuai dengan template pakaian berlapis; UV yang tidak sesuai dengan template pakaian berlapis akan merusak bagaimana aset membungkus tubuh.
| Kode kesalahan | Severity |
|---|---|
| Skor kualitas tidak dapat dihitung dengan tepat karena data input tidak benar atau tidak lengkap. Silakan periksa model Anda atau ajukan laporan bug. | Memblokir validasi |
| Ada {incorrect_uv_count} nilai UV di kandang {cage_name} yang tidak benar atau tidak sesuai dengan template. Harap perbaiki UV kandang. | Memblokir validasi |
| Peringatan kualitas aset: Skor UV kandang adalah {score} untuk {cage_name}. Jumlah UV yang tidak benar: {incorrect_uv_count}. | Peringatan |
Measure_Cage_UV_Avatar
Measure_Cage_UV_Avatar adalah pemeriksaan validasi yang memeriksa setiap bagian tubuh memiliki kandang yang menjaga UV-nya sesuai dengan template standar; UV kandang yang salah akan merusak cara pakaian berlapis membungkus tubuh.
| Kode kesalahan | Severity |
|---|---|
| Skor kualitas tidak dapat dihitung dengan tepat karena data input tidak benar atau tidak lengkap. Silakan periksa model Anda atau ajukan laporan bug. | Memblokir validasi |
| Ada {incorrect_uv_count} nilai UV di kandang {cage_name} yang tidak benar atau tidak sesuai dengan template. Harap perbaiki UV kandang. | Memblokir validasi |
| Peringatan kualitas aset: Skor UV kandang adalah {score} untuk {cage_name}. Jumlah UV yang tidak benar: {incorrect_uv_count}. | Peringatan |
Measure_Degen_Triangles
Measure_Degen_Triangles adalah pemeriksaan validasi yang menilai setiap bagian mesh untuk segitiga degenerasi (wajah dengan area nol atau hampir nol); segitiga degenerasi tidak menambah permukaan dan dapat merusak rendering.
| Kode kesalahan | Severity |
|---|---|
| Kualitas aset: {partName} memiliki {degenerate_triangle_percent}% segitiga degenerasi (score: {score}). | Peringatan |
| Skor kualitas aset untuk {measureName} tidak dapat dihitung karena data input tidak lengkap atau tidak valid. Ini tidak memblokir upload Anda. | Peringatan |
Measure_Dynamic_Head
Measure_Dynamic_Head adalah pemeriksaan validasi yang memverifikasi apakah kepala dinamis dapat dianimasikan. Kepala dinamis yang dapat dianimasikan memiliki kandang kepala, data FACS, landmark yang selaras, dan dapat menutup mata, membuka mulut, dan mengekspresikan emosi.
| Kode kesalahan | Severity |
|---|---|
| Skor kualitas tidak dapat dihitung dengan tepat karena data input tidak benar atau tidak lengkap. Silakan periksa model Anda atau ajukan laporan bug. | Memblokir validasi |
| Kepala dinamis di Marketplace harus memiliki kandang dengan baik sehingga vertex mata dan mulut di kandang sejajar dengan vertex mesh. Harap perbaiki kandang Anda dan kesesuaiannya dengan mesh. | Memblokir validasi |
| Gagal mendeteksi ekspresi senyuman untuk kepala dinamis. Harap sesuaikan landmark kandang untuk mulut agar sesuai dengan posisi mulut di kepala dan pastikan dapat menunjukkan ekspresi senyuman. | Memblokir validasi |
| Gagal mendeteksi ekspresi menutup mata kiri untuk kepala dinamis. Harap sesuaikan landmark kandang untuk mata kiri agar sesuai dengan posisi mata kiri di kepala dan pastikan dapat ditutup. | Memblokir validasi |
| Kepala dinamis di Marketplace tidak memiliki kandang kepala. Harap buat kandang kepala untuk kepala dinamis tersebut. | Memblokir validasi |
| Gagal mendeteksi ekspresi membuka mulut untuk kepala dinamis. Harap sesuaikan landmark kandang untuk mulut agar sesuai dengan posisi mulut di kepala dan pastikan dapat dibuka. | Memblokir validasi |
| Kepala dinamis di Marketplace harus dapat dianimasikan, tetapi kepala ini tidak memiliki data FACS. | Memblokir validasi |
| Gagal mendeteksi ekspresi menutup mata kanan untuk kepala dinamis. Harap sesuaikan landmark kandang untuk mata kanan agar sesuai dengan posisi mata kanan di kepala dan pastikan dapat ditutup. | Memblokir validasi |
| Gagal mendeteksi ekspresi cemberut untuk kepala dinamis. Harap sesuaikan landmark kandang untuk mulut agar sesuai dengan posisi mulut di kepala dan pastikan dapat menunjukkan ekspresi cemberut. | Memblokir validasi |
| Peringatan kualitas aset: skor ekspresi kepala dinamis adalah {score}. | Peringatan |
Measure_Joint_Number
Measure_Joint_Number adalah pemeriksaan validasi yang menilai pengaturan sendi pada rig tubuh dibandingkan dengan konfigurasi yang diharapkan. Pengaturan sendi rig tubuh mencakup jumlah sendi di tangan kiri dan kanan untuk rig fidelity lebih tinggi.
| Kode kesalahan | Severity |
|---|---|
| Kualitas aset: konfigurasi sendi dinilai {score} (sendi: {joint_number}, tangan kiri: {left_hand_joint_number}, tangan kanan: {right_hand_joint_number}). | Peringatan |
| Skor kualitas aset untuk {measureName} tidak dapat dihitung karena data input tidak lengkap atau tidak valid. Ini tidak memblokir upload Anda. | Peringatan |
Measure_Mesh_Manifold
Measure_Mesh_Manifold adalah pemeriksaan validasi yang menilai setiap bagian mesh untuk integritas manifold, menangkap lubang, tepi non-manifold, dan masalah topologi serupa dalam geometri.
| Kode kesalahan | Severity |
|---|---|
| Kualitas aset: {partName} memiliki masalah manifold mesh (score: {score}). | Peringatan |
| Skor kualitas aset untuk {measureName} tidak dapat dihitung karena data input tidak lengkap atau tidak valid. Ini tidak memblokir upload Anda. | Peringatan |
Measure_Mesh_Outside_OuterCage
Measure_Mesh_Outside_OuterCage adalah pemeriksaan validasi yang menilai seberapa banyak dari mesh render aksesori berada di antara kandangnya; mesh yang melampaui kandang luar akan mengalami deformasi yang buruk saat dikenakan.
| Kode kesalahan | Severity |
|---|---|
| Skor kualitas tidak dapat dihitung dengan tepat karena data input tidak benar atau tidak lengkap. Silakan periksa model Anda atau ajukan laporan bug. | Memblokir validasi |
| {mesh_outside_outer_cage_percent}% dari vertex mesh untuk aksesori berada di luar kandang luarnya. Lakukan penyesuaian agar lebih banyak dari aksesori ditempatkan di antara kandang. | Memblokir validasi |
| Peringatan kualitas aset: Skor pengendalian mesh adalah {score}. {mesh_outside_outer_cage_percent}% dari vertex mesh berada di luar kandang luar. | Peringatan |
Measure_Texture_Complexity
Measure_Texture_Complexity adalah pemeriksaan validasi yang menilai setiap tekstur untuk kompleksitas visual, menandai tekstur datar atau hampir kosong yang menambahkan sedikit detail pada aset.
| Kode kesalahan | Severity |
|---|---|
| Skor kualitas aset untuk {measureName} tidak dapat dihitung karena data input tidak lengkap atau tidak valid. Ini tidak memblokir upload Anda. | Peringatan |
| Kualitas aset: tekstur {textureName} memiliki kompleksitas rendah (score: {score}). | Peringatan |
Measure_Texture_Resolution
Measure_Texture_Resolution adalah pemeriksaan validasi yang menilai setiap tekstur berdasarkan dimensi pikselnya, memberikan penghargaan untuk resolusi tinggi yang cukup untuk menjaga kejelasan aset di tubuh.
| Kode kesalahan | Severity |
|---|---|
| Skor kualitas aset untuk {measureName} tidak dapat dihitung karena data input tidak lengkap atau tidak valid. Ini tidak memblokir upload Anda. | Peringatan |
| Kualitas aset: tekstur {textureName} memiliki resolusi {texture_width}x{texture_height} (score: {score}). | Peringatan |
Measure_Triangle_Intersection
Measure_Triangle_Intersection adalah pemeriksaan validasi yang menilai setiap bagian mesh untuk segitiga yang saling berpotongan di mana wajah melewati satu sama lain dan menciptakan geometri yang rumit dan tumpang tindih.
| Kode kesalahan | Severity |
|---|---|
| Skor kualitas aset untuk {measureName} tidak dapat dihitung karena data input tidak lengkap atau tidak valid. Ini tidak memblokir upload Anda. | Peringatan |
| Kualitas aset: {partName} memiliki {intersecting_tri_face_percent}% wajah segitiga yang saling berpotongan (score: {score}). | Peringatan |
Measure_UV_Bound
Measure_UV_Bound adalah pemeriksaan validasi yang mengukur seberapa banyak dari vertex UV mesh jatuh di luar ruang tekstur 0-1; ini melaporkan skor tetapi tidak pernah memblokir upload.
| Kode kesalahan | Severity |
|---|---|
| Skor kualitas aset untuk {measureName} tidak dapat dihitung karena data input tidak lengkap atau tidak valid. Ini tidak memblokir upload Anda. | Peringatan |
| Kualitas aset: {partName} memiliki {uv_outside_bound_vert_percent}% vertex UV di luar batas (score: {score}). | Peringatan |
Measure_Vertex_Similarity
Measure_Vertex_Similarity adalah pemeriksaan validasi yang mengukur sejauh mana vertex hampir duplikat dalam mesh; ini melaporkan skor tetapi tidak pernah memblokir upload.
| Kode kesalahan | Severity |
|---|---|
| Skor kualitas aset untuk {measureName} tidak dapat dihitung karena data input tidak lengkap atau tidak valid. Ini tidak memblokir upload Anda. | Peringatan |
| Kualitas aset: {partName} memiliki {similar_vertex_percent}% vertex yang mirip (score: {score}). | Peringatan |