Anda dapat mengimpor meshes khusus untuk membuat segalanya dari NPC ke pakaian animasi kapal layar. Kami menggunakan pengaturan khusus Avatar Importer (sekarang 3D Importer ) untuk membawa lebih banyak karakter khusus, seperti makhluk lubang hitam misterius dan droid layanan yang ramah, jika tidak sadar.
Bagian berikut menjelajahi cara kami menggunakan rigging dan skinning , PBR (penampilanpermukaan) , dan VFX untuk membangun salah satu karakter kami yang paling kompleks yang kami sebut "Creature." Kami inginnya bersinar, mengeluarkan beberapa cahaya, memiliki jejak partikel asap, dan gerakan cair yang melibatkan penggabungan
Peralatan
Ketika kami menyiapkan Karakter, kami menemukan bahwa lebih baik untuk menggunakan posisi karakter dalam posisi netral, karena posisi itu lebih cocok untuk membungkuk dalam beberapa arah. Jika kami menyiapkan Karakter dengan tentakelnya yang sudah dikurung, itu akan mengakibatkan menyiapkan jika kami animasi tentakel untuk membungkuk dalam arah yang berlawanan. Berikut ad
Dari posisi netral, kami menambahkan persyaratan bersama secara ekonomis, fokus pada daerah yang memerlukan banyak gerakan. Semakin sedikit persyaratan bersama yang Anda miliki, semakin baik, karena Anda harus mengelolanya saat menykinasi karakter Anda, dan Anda akan memiliki lebih sedikit untuk dikendalikan saat Anda menganimasi mereka. Dalam screenshot sebelumnya, Creature tampak
Sebagian besar dari joint lainnya berada di arah tentakel dan mandibel. Dengan tentakel, kami ingin banyak gerakan sekunder, atau gerakan yang disusun, untuk menciptakan efek yang menyakinkan bahwa mereka semua bergerak memiliki. Namun, massa tengah tentakel sangat dekat bersama-sama sehingga merasa sia-s
Kami menemukan panduan berikut berguna, sehingga jaringan karakter Anda导入 dengan benar ke Studio:
- Gerakan dan tulang individu harus memiliki nama yang unik.
- Meshes tidak boleh memiliki nama yang sama dengan join dan tulang.
- Meshes seharusnya tidak memiliki transformasi sebelum skinning / binding; dengan kata lain, transformasi harus 0 dan skala harus 1.
- Normal mesh harus menghadapi ke luar (model tidak boleh tampak ke dalam).
- Skeleton seharusnya tidak memiliki faktor skala; semua join harus [1, 1, 1].
Kulit
Ketika kami selesai dengan skeleton Kreatur, langkah berikutnya adalah menykinisasi meshes. Skinning dapat menjadi tugas yang memakan waktu, jadi untuk membuat hal ini lebih mudah, adalah baiknya Anda familiar dengan berbagai pengaturan awal skinning dari aplikasi DCC Anda untuk menemukan yang Anda
Kami menemukan panduan berikut yang menghasilkan hasil terbaik untuk skinning:
- Pengaruh skinnning (berarti mereka mempengaruhi bagian dari model saat digerakkan) harus menjadi maksimum 4 pengaruh per vé.
- Nama bersama dan meshes harus unik, baik dalam satu sama lain maupun antara satu sama lain.
- Setiap persyaratan bersama yang ingin Anda impor ke Studio harus memiliki beberapa pengaruh pada kulit model, jika tidak, mesin tidak akan mengimpornya. Setiap kali mungkin, kulit model Anda dalam posisi asli atau "ikat".
Mengimpor Mesh ke Studio
Mengimpor karakter khusus Anda ke Studio adalah salah satu bagian paling menarik dari proses ini, karena Anda dapat melihat kreasi Anda dalam pengalaman yang Anda membangun kota!
Untuk mengimpor meshes ke Studio:
Ekspor karakter dari aplikasi DCC dan pastikan mengikuti:
- Semua normal, skala, dan nama benar.
- Karakter memiliki semua tingkatan dan tulang bersama dan semua meshes.
- Meshes semuanya di bawah 10.000 segi untuk setiap bagian dari meshes.
- Ukuran total Mesh tidak lebih dari 2000 unit di sumbu mana pun.
- Lihat Persyaratan Mesh untuk daftar spesifikasi model lengkap.
Dalam Importer 3D, impor file .fbx atau .obj yang disesuaikan.
Membuat Creature Glow
Setelah model Creature stabil dan tidak memerlukan ekspor langsung ke Studio, kami mulai menggabungkan objek SurfaceAppearance, lampu, dan efek visual. Kami melakukan ini untuk memastikan bahwa kualitas model itu cukup baik sebelum melanjutkan untuk menempatkan dan mengedit aspek apa pun dari itu.
Kami tahu kami ingin Creature menjadi gelap, dan fokus poin untuk menjadi mata dan tentakelnya. Tinggi poin kontras cenderung menarik perhatian, jadi memiliki beberapa yang kuat menjamin pengunjung tahu apa yang harus fokus. Studio mendukung bahan neon yang bersinar, jadi di awal kami mengpisahkan mata keluar sehingga mereka bis
Bahan neon tidak mengeluarkan cahaya nyata, jadi setelah beberapa tes, kami menambahkan bagian terpisah untuk mengontrol posisi dan arah sinar emisi. Ini memastikan bahwa penerangan itu diarahkan dengan cara untuk meningkatkan cahaya mata dan juga proyeksikan sumber cahaya mereka sendiri.
Perhatikan bahwa SpotLights menambahkan visual flare ke Kreatur dekat dengan permukaan lain atau seorang pemain.
Selain itu, kami ingin tentakel Creature menghasilkan beberapa partikel, jadi itu akan meninggalkan jejak asap saat bergerak. Karena tentakel sangat panjang, menambahkan ParticleEmitter ke seluruh tentakel akan membuat partikel bermunculan dari seluruh tentakel bukan dari ujung. Untuk melawan ini, kami
Membuat VFX Ikuti Karakter
Posisi malah karakter berkilau tidak diperbarui ketika animasi Creature, jadi kami memerlukan metode untuk memastikan bahwa VFX, SFX, dan lampu semuanya mengikuti Creature dengan benar. Untuk melakukan ini, kami menciptakan script kontrol VFX dan menggunakan CollectionService untuk menginformasikan bagian yang berisi VFX di mana tulang kreatur dan untuk mengikuti mereka.
Kami menempatkan LocalScript di StarterPlayer → StarterPlayerScripts . Ini pada dasarnya mengeksekusi fungsi pembaruan VFX.
Skrip Lokal-- Tambahkan snippet ini ke skrip lokal yang sudah ada yang membuat PreSimulation-- koneksilocal RunService = game:GetService("RunService")local vfx = require(workspace.VfxUpdateModule)RunService.PreSimulation:Connect(vfx.updateVfx)Skrip Modul-- Modul ini menambahkan bagian ke animasi sehingga mereka diperbarui sebagai-- animasi bermain. Ini adalah workaround untuk keterbatasan saat ini-- dengan Joints dan Tulang dan tidak akan selalu diperlukan.---- Prerequisites:-- Untuk dimasukkan, model memerlukan label "AnimatedVfxModel" dan direktori-- dari semua bagian yang ingin Anda sinkronisasi dengan animasi. Setiap bagian memerlukan-- 属性 bernama "AttachedBoneName" yang mengacu pada nama-- tulang yang ingin Anda lampirkan. Bagian juga harus sudah ada di dalam-- posisi yang benar relatif terhadap tulang yang diinginkan.---- Untuk Menggunakan:-- LocalScript harus mengharuskan modul ini, lalu hubungkan-- VfxUpdateModule.updateVfx ke acara RunService.PreSimulation.local VfxUpdateModule = {}local CollectionService = game:GetService("CollectionService")-- SETUP - ini seharusnya dijalankan setiap klien.-- Kumpulkan semua model dengan labellocal vfxModels = CollectionService:GetTagged("AnimatedVfxModel")local vfxTable = {} -- di mana kami akan menyimpan semua bagian danoffset-- Akan menetapkan tabel untuk setiap model yang akan menampung semua bagian vfx danOffsetfor _, model in vfxModels dovfxTable[model] = {}local vfxParts = model:FindFirstChild("VFX"):GetChildren() -- Temukan folder VFX-- Temukan tulang melalui属性 dan hitungOffset untuk setiap bagian.for _,part in vfxParts dolocal name = part:GetAttribute("AttachedBoneName")local bone = model:FindFirstChild(name, true)if bone thenlocal offset = (bone.TransformedWorldCFrame:inverse() * part.CFrame)vfxTable[model][part] = {bone, offset}elsewarn("Vfx part refers to bone that could not be found.")endendendprint(vfxTable)-- UPDATE - Ini seharusnya dihubungkan dengan RunService setiap klien.-- Pergi melalui semua model, lalu update semua bagian pada model untuk mencocokkan bonecframe.function VfxUpdateModule.updateVfx()for model, vfxParts in vfxTable dofor part, bone in vfxParts dopart.CFrame = bone[1].TransformedWorldCFrame * bone[2]endendendreturn VfxUpdateModuleKami menciptakan VFXUpdateModule ModuleScript untuk memberi tahu setiap objek yang ditandai dengan benar dengan AnimatedVfxModel untuk diperbarui pada acara bermain.
Kami menandai kumpulan model yang diperlukan dengan AnimatedVfxModel menggunakan Editor Tag , yang dapat diakses dari tab Tampilan. Menggunakan tag memungkinkan 1> VFXUpdateModule1> untuk mengetahui objek mana yang harus dicari sebagai anak pertama VFX dan menerapkan update.
Akhirnya, kami menambahkan AttachedBoneName 属性 khusus ke bagian yang kami inginkan untuk dianimasi dan menambahkan nama yang tepat dari joint yang kami inginkan untuk diikuti.
Menguraikan Kreatur
Selanjutnya, kami menyiapkan peta tekstur PBR (Physically Base Rendered). Bitmap ini kuat memberikan kecahayaan dan perbedaan permukaan yang beragam untuk membuatnya terlihat seperti memiliki banyak goresan dan kesalahan kecil. Efek visual ini membantu menjual penampilan Kreatur saat ia lebih dekat dengan pemain.
Inilah cara kami membuat peta tekstur kesan permukaan:
Peta tekstur untuk karakter ini semuanya ada di satu "lembar" per peta. Ini membuat makhluk lebih efisien dan berarti kita harus berurusan dengan lebih sedikit peta tekstur atau SurfaceAppearance objek.
Untuk area yang perlu bersinar atau terilluminasi sendiri, seperti "tentakel grabby," kami juga menggunakan transparansi di SurfaceAppearance untuk bercampur dengan bagian tersebut.
Kami menemukan berguna untuk mengikuti panduan ini saat membuat peta tekstur permukaan:
- Pastikan peta Anda tidak lebih besar dari 1024×1024.
- Saluran hijau Anda mungkin perlu dibalik tergantung pada aplikasi yang Anda kerjakan.
Meng Animasi Mahluk
Animasi sangat subjektif dan memiliki gaya pribadi. Opsi termasuk ambilgerakan, "key frame" animasi tangan di aplikasi DCC Anda, atau menggunakan Editor Animasi Studio yang kuat.
Seperti yang kami sebutkan sebelumnya, kami ingin memastikan kami memiliki cukup joint untuk gerakan cair serta cukup banyak limb, jadi animasi makhluk ini merasa alami dan "berbentuk." Layering, juga dikenal sebagai gerakan sekunder, adalah sesuatu yang Anda lihat dalam kehidupan sehari-hari - ketika Anda melempar lengan Anda keluar, setiap joint reaksi
Kami menggunakan teknik ini untuk meng Animasi Kreatur seperti limbik reaksi terhadap gerakan yang dipengaruhi oleh tubuhnya seperti yang ditunjukkan di sini:
Jika menggunakan aplikasi DCC eksternal untuk animasi, kami menemukan panduan berikut bekerja lebih baik:
- Tetapkan tingkat frame setidaknya 30 FPS.
- Buat animasi Anda dengan karakter yang sama yang Anda terapkan.
- Ekspor data animasi Anda sebagai file .fbx terpisah.
Karena kami menganimasikan karakter di luar Studio, kami perlu menggunakan Editor Animasi untuk mengimpor file animasi .fbx . Editor memungkinkan Anda untuk memilih avatar dengan join atau motor, dan menyetelnya melalui poin dalam waktu pemotretan.
Untuk mengimpor animasi:
Di tab Plugin, pilih Editor Animasi.
Pilih karakter yang diperlambat yang ingin Anda animasikan di Roblox. Karakter ini harus sama dengan karakter yang Anda animasikan di aplikasi DCC eksternal Anda.
Klik tombol di bagian atas kiri dari jendela editor, pilih Importer dari Animasi FBX, dan temukan file ekspor .fbx Anda.
Ketika Anda senang dengan animasi Anda, Anda dapat mengekspornya untuk menemukan ID animasi, yang dapat Anda gunakan kemudian dalam naskah Roblox untuk mengeksekusinya. Misalnya, Anda dapat menambahkan Script ke grup model karakter yang diimpor dan menggunakan kode berikut untuk mengeksekusinya:
local animationId = "YOUR_ANIMATION_ID"local char = script.Parentlocal animController = char:FindFirstChildWhichIsA("Humanoid") or char:FindFirstChildOfClass("AnimationController")local animation = Instance.new("Animation")animation.AnimationId = "rbxassetid://" .. tostring(animationId)local animTrack = animController:LoadAnimation(animation)animTrack:Play(0, 1, 1)
Hasil akhir
Setelah beberapa penyesuaian warna, kecerahan cahaya, dan beberapa efek partikel lainnya untuk memberikan efek halo yang lebih kuat di depan jendela, inilah hasil akhir di stasiun ruang angkasa!