Rigging
Rig ZEPETO diatur di Maya, dan menggunakan orientasi sendi default Maya. Di Maya, rantai sendi dapat diselaraskan dengan sumbu apa pun, sedangkan di Blender, tulang secara ketat diarahkan sepanjang sumbu Y. Meskipun mungkin terlihat aneh, untuk kompatibilitas dengan avatar ZEPETO, penting untuk tidak mengubah orientasi tulang dari tulang default.
Blender tidak mendukung pengikatan mesh ke armature yang dipose dalam pose non-istirahat armature. Saat mengikat bobot ke armature, gunakan armature yang diterapkan pada pose istirahat yang diinginkan dalam mode pose atau rig duplikat dengan pose A yang diatur sebagai pose istirahat.
Rigging adalah proses menerapkan data untuk membuat item bergerak dengan avatar ZEPETO. Tanpa rigging, item tidak akan bergerak dengan avatar di aplikasi. Melalui proses rigging, kita akan memberi tahu item kita bagaimana mengikuti kerangka avatar. Lebih teknis: Dalam aplikasi 3D, geometri 3D dari karakter sering dikendalikan oleh sendi atau tulang. Sendi atau tulang ini adalah objek 3D khusus yang tidak muncul dalam rendering yang menetapkan aturan untuk bagaimana karakter akan bergerak, sering kali berfungsi sebagai titik pivot. Rigging adalah proses menyimpan data yang memberi tahu vertice mesh seberapa dekat mereka harus mengikuti sendi atau tulang tertentu. Di Blender, jenis data ini disebut "kelompok vertice." Bobot dapat ditetapkan secara numerik atau "dilukis" pada model. Karena melukis pengaruh secara virtual lebih mudah didekati daripada menetapkan angka desimal ke vertice individu, kita akan fokus pada metode melukis bobot ini untuk menghemat waktu dan kewarasan. Sendi dan tulang memiliki tujuan fungsional yang serupa dalam perangkat lunak 3D, dengan sedikit perbedaan yang sesuai dengan terminologi mereka. Sendi mewakili satu titik dalam ruang 3D tanpa arah yang disukai yang didefinisikan oleh perangkat lunak. Maya menggunakan sendi dan umumnya cenderung menyelaraskan sendi dengan sumbu X mereka yang mengarah ke tulang berikutnya dalam rantai. Tulang secara fungsional juga mewakili satu titik dalam ruang, tetapi memiliki arah yang didefinisikan oleh perangkat lunak yang diharapkan diikuti oleh karakter lain. Blender menggunakan tulang, dengan sumbu Y mereka dirancang untuk mengarah ke tulang berikutnya dalam rantai. Perbedaan ini antara tulang dan sendi menciptakan beberapa masalah dalam cara rig ditangani di Blender yang perlu kita atasi.
- Tulang "hips" dan "hips_scale" harus disertakan
- Secara umum, coba cegah masker menembus item Anda saat melukis bobot
- Pastikan tubuh dan item tidak runtuh pada dirinya sendiri saat armature dipindahkan
- Pengaruh bobot kulit maksimum ditetapkan pada 4
- Ini adalah default Blender, tetapi untuk mengatur pengaruh bobot secara manual, masuk ke mode melukis bobot untuk mesh item. Di menu Bobot di viewport 3D, pilih “Batas total.” Perluas menu yang muncul di kiri bawah viewport dan pastikan nilai “Batas” diatur ke 4.
Secara umum, gaun menggunakan tulang bagian atas dan bawah dari rig, sementara item lain memiliki pilihan yang lebih terbatas. Objek masker yang disertakan dengan Creator Base Set memiliki bobot dari avatar ZEPETO. Berguna untuk menggunakan bobot dari objek masker sebagai dasar untuk membobot item. Untuk mentransfer bobot masker ke bobot item, gunakan fungsionalitas Weight Transfer di Blender.
Gunakan objek masker dan armature yang disertakan dalam file creatorBaseSet_zepeto.fbx. Objek-objek ini memiliki serangkaian nama objek, nama tulang, dan orientasi tulang yang telah ditentukan yang akan dicari oleh studio ZEPETO untuk membuat item berfungsi di aplikasi. Penting untuk menjaga nama-nama tersebut tetap serupa agar tidak membingungkan proses konversi nanti di Unity.
Blender menerapkan data pembobotan awalnya ke “pose istirahat” armature. Ini berarti bahwa jika Anda memodelkan item dalam pose A dan mencoba menerapkannya ke armature pose istirahat T-pose, item tersebut mungkin bergeser dari posisi yang benar dalam operasi pengikatan awal. Untuk mengatasi masalah ini, berguna untuk mengikat item ke armature yang pose istirahatnya diatur ke pose yang dimodelkan item. Metode yang berguna untuk memiliki armature pose istirahat non-T-pose adalah dengan membuat duplikat dari armature dan masker asli, menerapkan pose istirahat ke armature yang baru diduplikasi, dan merigging item pakaian berdasarkan pose istirahat. Untuk tujuan organisasi, masker dan rig yang diduplikasi harus diberi nama ulang berdasarkan pose baru mereka. Menempatkan setiap set armature dan masker dalam koleksi mereka sendiri juga dapat membantu dengan organisasi. Menerapkan pose istirahat ke armature relatif sederhana:
- Pose armature dalam pose yang Anda inginkan
- Pilih elemen masker yang terpasang, dan temukan modifikator Armature di tab Modifier Properties a. Di menu dropdown di modifikator Armature, pilih “Apply”
3. Pilih elemen armature dan masuk ke Pose Mode
- Pilih semua tulang dan masuk ke menu Pose di bagian atas viewport
- Masuk ke “Apply,” lalu “Apply Pose as Rest Pose”
4. Kembali ke object mode dan pilih elemen masker
- Di tab Modifiers, tambahkan modifier Armature baru
- Di tempat target Objek, temukan dan pilih armature yang dipose
Sekarang armature memiliki pose istirahat baru yang diterapkan padanya dan elemen masker akan mengikuti pose istirahat baru ini.
📘 ZEPETO memiliki rotasi spesifik untuk A-pose yang muncul pada item template ZEPETO dengan elemen atas
A-pose ZEPETO memiliki rotasi pada 4 tulang total:
- Tulang bahu “shoulder_L” dan “shoulder_R” diputar sebesar -7,5 derajat pada sumbu Z
- Tulang lengan “upperArm_L” dan “upperArm_R”
Akan lebih mudah untuk menerapkan rotasi pada tulang menggunakan rotasi Euler XYZ daripada pengaturan quaternion default Blender. Ubah sumbu rotasi ini di tab preferensi Tulang untuk kemudahan penggunaan.
Gunakan objek masker dan armatur yang termasuk dalam file creatorBaseSet_zepeto.fbx. Objek-objek ini memiliki serangkaian nama objek, nama tulang, dan orientasi tulang yang telah ditentukan yang akan dicari oleh studio ZEPETO untuk membuat item berfungsi di aplikasi. Penting untuk menjaga nama-nama tersebut tetap serupa agar tidak membingungkan proses konversi nanti di Unity.
- Pastikan armatur sesuai dengan item dan diatur dalam pose istirahatnya
- Jika pakaian dimodelkan untuk sesuai dengan pose T, armatur set dasar pencipta yang tidak diubah akan berfungsi secara default a. Jika pakaian dalam pose A ZEPETO, Anda mungkin perlu mengatur armatur agar sesuai dengan pose A
- Pilih item kostum, lalu armatur
- Terapkan orang tua ke armatur dengan bobot kosong
5. Transfer bobot masker ke item
- Pilih masker, lalu item
- Pindah ke mode cat bobot
- Gunakan operasi "Transfer Weights" di Weights > Transfer Weights
- Pastikan operasi Transfer Weights dilakukan "By Name"
6. Putar sendi untuk memeriksa apakah bobot pada item diatur dengan benar
- Edit bobot sendi menggunakan alat kuas bobot. Pastikan bahwa bobot deformer dinormalisasi.
- Ketika koreksi bobot tulang selesai, reset transformasi semua tulang
🚧 Avatar ZEPETO menggunakan tulang skala untuk menyesuaikan avatar dasar ke berbagai ukuran tubuh.
Ketika kerangka memiliki tulang skala dan tulang non-skala, terapkan bobot pada tulang skala dan biarkan tulang non-skala tanpa bobot.
Sistem simetri dan penamaan tulang Blender mencegah rig yang disediakan memiliki grup vertex yang mudah dicerminkan menggunakan alat pencerminan bobot bawaan. Simetri bobot harus diterapkan secara manual atau dicerminkan melalui add-on.
Rigging elemen rok memerlukan perhatian tambahan. Rok lebih menantang untuk dirig di ZEPETO karena perilaku standar dari apa pun dengan elemen kaki. Rok akan mengikuti kaki item seperti set celana yang diperluas. Ini dapat menyebabkan bagian tengah rok meregang ketika kaki dipisahkan. Ini tidak dapat dihindari, tetapi melalui pengecatan bobot yang hati-hati, peregangan dapat dihaluskan.
Ketika pengikatan dan koreksi rigging selesai, rig harus dikembalikan ke T-pose untuk diekspor. Untuk melakukan ini, kita akan mengambil item yang dirigging ke armature A-pose dan memasukkannya ke dalam t-pose, menerapkan item dalam T-pose, dan mengikat ulang item ke kerangka T-pose. Lebih detailnya:
- Pilih armature A-pose dalam mode pose.
- Pindahkan tulang armature kembali ke T-pose a. Untuk ZEPETO A-Pose, ini dapat dengan mudah dilakukan dengan memutar tulang shoulder_L dan shoulder_R sebesar 7,5 derajat pada sumbu Z dan memutar tulang upperArm_L dan upperArm_R sebesar 40 derajat pada sumbu Z
- Pilih item dalam mode objek
- Di tab properti modifier, temukan modifier armature
- Klik menu dropdown dan tekan apply
5. Tambahkan modifier armature ke item
- Arahkan objek armature ke armature T-pose creatorBaseSet asli
6. Lakukan koreksi pada mesh item atau pada bobot item untuk setiap kesalahan yang muncul dari transfer bobot
Karena cara deformasi bekerja, mesh yang dipindahkan kembali ke T-pose kemungkinan akan kehilangan beberapa volume di area bahu/lengan atas saat kembali ke T-pose. Mengedit mesh untuk menambahkan volume kembali adalah perbaikan yang relatif sederhana. Gunakan T-pose Mask sebagai referensi untuk area batas mesh.
Ketika semua bobot telah final dan siap untuk diekspor, hapus set tulang yang tidak berpengaruh pada item. ZEPETO studio membatasi jumlah tulang yang dapat diunggah dengan item hingga 100. Menghapus tulang yang tidak digunakan mencegah masalah jumlah tulang ini, karena eksportir Blender akan mengekspor setiap tulang dalam kerangka, bahkan jika mereka tidak memiliki grup vertex atau bobot. Jika sebuah item membutuhkan banyak tulang tambahan, mungkin perlu untuk menghapus tulang non-skala untuk mengurangi jumlah tulang. Jika diperlukan, hapus tulang non-skala dengan tulang skala yang sesuai, kecuali jika mereka adalah tulang twist atau tulang pinggul. Item akan rusak jika tulang pinggul tidak disertakan.