Rakit perpustakaan aset

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.


Mengumpulkan perpustakaan aset adalah proses impor dan konfigurasi koleksi aset di lokasi pusat dalam pengalaman Anda untuk akses mudah dan penggunaan ulang.Proses ini dapat menghemat waktu Anda signifikan saat Anda bersiap untuk membangun lingkungan Anda, terutama jika Anda mengkonfigurasi nilai setiap aset untuk meningkatkan kinerja dan mengoptimalkan penggunaan memori pada perangkat mid hingga low end.

Menggunakan file Lingkungan Seni - Pengumpulan file sebagai referensi, bagian ini dari kurikulum seni lingkungan menunjukkan cara mengumpulkan perpustakaan aset dari aset polished Anda, termasuk instruksi langkah demi langkah tentang:

  • Membuat materi khusus untuk medan Anda dari teks tileable Anda.
  • Membuat objek SurfaceAppearance untuk lembar pemotong Anda, dan menerapkannya ke meshes terbuka di perpustakaan aset Anda.
  • Mengatur parameter rendering untuk aset Anda untuk memastikan kinerja optimal di semua perangkat.
  • Mengubah aset Anda menjadi paket sehingga Anda dapat memperbarui dan menggunakannya kembali di semua proyek Anda.

Setelah Anda menyelesaikan bagian ini, Anda akan belajar cara menggunakan perpustakaan aset Anda dengan cara kreatif untuk menggantikan atau mengubah lingkungan kotak abu-abu, dan menambahkan sentuhan terakhir yang meningkatkan ruang 3D keseluruhan.

The sample laser tag experience's modular and prop kit.

Buat materi khusus

Studio mewakili bahan khusus sebagai MaterialVariant objek di dalam MaterialService .Objek ini MaterialVariant memiliki empat properti yang menggabungkan empat peta tekstur yang dapat disesuaikan untuk membuat bahan kustom berkualitas tinggi dengan karakteristik fisik:

Setelah Anda memberikan peta tekstur ke properti ini, Anda dapat menerapkan bahan kustom baru ke kedua bagian, meshes, dan medan.Anda dapat menggunakan atau memodifikasi file peta tekstur sampel .png untuk membuat Lumpy Moss, Flowering Lumpy Moss, Lumpy Moss dengan Batu, dan bahan khusus Batu dalam lingkungan tag laser akhir, atau Anda dapat menggunakan milik Anda sendiri yang Anda desain di bagian tutorial sebelumnya.

Untuk membuat objek MaterialVariant untuk teks yang dapat ditile:

  1. Di tab Rumah atau Model di bilah alat, klik tombol Manajer Bahan .Jendela Manajer Bahan terbuka.

  2. Dalam daftar Material , pilih material dasar yang paling sesuai dengan tekstur yang dapat disesuaikan.Sebagai contoh, jika Anda membuat objek MaterialVariant untuk tekstur Lumpy Moss tileable, pilih material dasar default sehingga material mewarisi properti fisiknya.

  3. Di Toolbar , klik ikon .Sebuah baru MaterialVariant ditampilkan di palet dengan ikon di sudut kanan bawah yang menunjukkan bahwa itu adalah bahan khusus.

    New MaterialVariant tile in Material Manager with icon to indicate a custom material
  4. Di dalam Inspektur , navigasikan ke bagian Umum , lalu ganti nama materi untuk sesuai dengan nama tekstur yang dapat disesuaikan.

    The Inspector view with the name of the material highlighted.
  5. Di bagian Peta Teks pada sisi kanan Warna , klik tombol Impor . Sebuah browser file ditampilkan.

    The Texture Maps section of the Inspector view with the Import button highlighted.
  6. Di browser file, pilih peta teksur Albedo untuk teksur terkait, lalu tombol Buka .Pencari file ditutup, dan peta warna baru ditampilkan dengan asetID-nya.

  7. Ulangi proses ini untuk Metalitas , Normal , dan Kasar peta tekstur.Material kustom diperbarui untuk mencerminkan peta tekstur.

    All texture maps for the Moss_Lumpy_A material.
     sphere part with the Moss_Lumpy_A material applied.
  8. Di bagian Penggantian , aktifkan toggle Set as Override untuk memastikan bahwa ketika Anda menerapkan tanah ke terreno Anda, Studio menggunakan bahan khusus ini.

    The Set as Override toggle enabled.
  9. (Opsi) Jika Anda membuat materi khusus yang mewakili materi organik,

    1. Di bagian Ubin , klik dropdown Pola .
    2. Pilih Organik untuk mengacakkan output dan mengurangi tiling yang terlihat.
    The Tiling section of the Inspector view with its settings.
  10. Ulangi proses ini untuk setiap tekstur tileable yang ingin Anda sertakan dalam pengalaman Anda.

Buat paket Penampilan Permukaan

Studio menggunakan lembar potong dalam SurfaceAppearance objek yang dapat Anda berikan kepada MeshParts yang berisi data UV.Mirip dengan materi khusus, SurfaceAppearance objek memiliki empat properti yang menggabungkan empat peta tekstur lembar pemotong untuk membuat perlakuan permukaan visual 3D berkualitas tinggi:

SurfaceAppearance.ColorMap – Mewakili peta tekstur albedo.SurfaceAppearance.MetalnessMap—Mewakili peta tekstur metalitas.SurfaceAppearance.NormalMap – Mewakili peta tekstur normal.SurfaceAppearance.RoughnessMap – Mewakili peta tekstur kasar.

Setelah Anda menyediakan peta tekstur ke properti ini, Anda dapat membuat objek SurfaceAppearance menjadi anak dari MeshPart dengan data uv yang mengirim ke lembar pangkas Anda, dan data uv secara otomatis berlaku untuk mesh orang tua.Karena alasan inilah berguna untuk menjadikan objek SurfaceAppearance sebagai paket sehingga Anda dapat menggunakan kembali objek yang sama SurfaceAppearance di semua aset modular dan prop Anda.Sebagai contoh, berikut adalah meshes berikut semuanya memiliki data uv yang mengkode ke layout potongan yang sama yang diwakili dalam satu paket objek SurfaceAppearance tunggal.

Anda dapat menggunakan atau memodifikasi file peta tekstur sampel .png untuk membuat objek SurfaceAppearance yang menghormati data uv untuk aset modular sampel dan prop di dalam lingkungan tag laser akhir, atau Anda dapat menggunakan milik Anda sendiri yang Anda desain di bagian tutorial sebelumnya yang berlaku untuk aset modular dan prop milik Anda sendiri.

Untuk membuat SurfaceAppearance paket yang dapat Anda anakkan ke kit modular dan prop:

  1. Masukkan objek Penampilan Permukaan ke dalam Workspace .

  2. Pilih objek Penampilan Permukaan , lalu di jendela Properti , pilih properti Peta Warna . Pop-up ditampilkan.

  3. Klik tombol Tambahkan Gambar… . File browser ditampilkan.

    The ColorMap pop-up with the Add Image button highlighted.
  4. Pilih peta teksur Albedo untuk teksur yang sesuai, lalu tombol Buka .Pencari file ditutup, dan properti Peta Warna diperbarui dengan ID aset baru.

  5. Ulangi proses ini untuk MetalnessMap , NormalMap , dan RoughnessMap properti, memilih peta teksur masing-masing dari browser file.

  6. Di jendela Explorer , klik kanan pada objek Penampilan Permukaan , lalu pilih Konversi ke Paket dari menu konteks.Dialog Konversi ke Paket tampil.

  7. Isi bidang Judul dan Deskripsi , atur kepemilikan kepada diri sendiri atau grup, lalu klik tombol Kirim .Setelah selesai, simbol tautan rantai ditampilkan di atas ikon objek SurfaceAppearance untuk mengidentifikasinya sebagai paket.

    The Surface Appearance icon with a chain link symbol.
  8. (Opsi) Pilih objek anak Penampilan Permukaan dari objek Tautan Paket , kemudian di jendela Properti , aktifkan Pembaruan Otomatis untuk secara otomatis memperbarui paket jika Anda membuat modifikasi apa pun pada objek Penampilan Permukaan .

Impor aset modular dan prop

Studio mewakili aset modular dan prop yang Anda impor sebagai objek Model dengan anak MeshParts untuk setiap komponen aset.Sebagai contoh, jika Anda mengimpor bagian dinding dengan pangkas atas, pangkas bawah, dan komponen dinding, Studio mewakili file atau sebagai Bagian Dinding dengan anak terpisah Top_Trim , Bottom_Trim , dan Wall .

Menggunakan Importer 3D, Anda dapat men导入 sampel modular kit dan prop ke Studio untuk digunakan di perpustakaan aset Anda, atau Anda dapat men导入 aset apa pun yang Anda desain di bagian tutorial sebelumnya.Untuk informasi lebih lanjut tentang fungsi alat ini, lihat Importer 3D.

Untuk menge导入 modular aset dan prop ke dalam pengalaman:

  1. Di tab Rumah atau Avatar di bilah alat, klik tombol Impor 3D . Sebuah browser file ditampilkan.

  2. Pilih file .fbx untuk aset modular atau prop.

  3. Verifikasikan pratinjau objek dan periksa apakah pengaturan impor benar untuk objek Anda.

  4. Verifikasikan setiap pesan peringatan atau kesalahan.

  5. Klik Impor . Aset ditampilkan di jendela Explorer dan di jendela pandang.

  6. Ulangi proses ini untuk setiap aset modular dan prop.

  7. Pindahkan semua aset Anda ke satu area pengalaman Anda dekat geometri kotak abu-abu Anda. Zona ini adalah perpustakaan aset Anda.

Terapkan Data Penampilan Permukaan

Ketika Anda melalui proses pembukaan UV dari mesh dalam perangkat lunak pemodelan pihak ketiga, perangkat lunak menyimpan data UV di dalam file .fbx atau .obj mesh.Ketika Anda menge导入 mesh itu ke Studio, objek hasilnya MeshPart menyimpan data itu, tetapi Anda masih perlu menerapkan objek SurfaceAppearance dengan properti peta tekstur dari lembar pangkas Anda untuk menampilkan teks jari Anda di aset.

Untuk menerapkan data peta teksur SurfaceAppearance ke meshes terbuka di perpustakaan aset Anda:

  1. Di jendela Explorer , klik paket Penampilan Permukaan Anda, lalu tekan CtrlD ( D ) untuk menyalinnya.
  2. Anak duplikat Tampilan Permukaan paket ke aset modular atau prop.Aset menerapkan data UV ke peta tekstur dan menampilkan perlakuan visualnya.
  3. Ulangi proses ini untuk setiap aset modular dan prop.

Tetapkan parameter fisika dan rendering

Sekarang Anda memiliki aset di dalam Studio, penting untuk mengatur parameter fisika dan rendering yang memungkinkan aset mempertahankan kualitas visual tertinggi di perangkat dengan batasan memori dan GPU.Secara umum, semakin dekat Anda mematuhi panduan di bagian ini, semakin baik pengalaman Anda.Namun, penting untuk mempertimbangkan dengan hati-hati konteks di mana Anda berencana untuk menempatkan setiap aset dalam lingkungan keseluruhan untuk memastikan Anda mempertahankan tujuan estetika dan persyaratan gameplay Anda.

Tertahan

Properti BasePart.Anchored menentukan apakah sistem fisika Roblox Engine mempengaruhi posisi objek.Ketika Anda mengaktifkan properti ini untuk Part atau MeshPart , itu menghapus objek dari perhitungan fisik simulasi dinamis yang selalu berjalan di pengalaman, artinya objek tidak akan pernah berubah posisi karena gravitasi atau tabrakan dari objek lain.

Objek yang tidak menyimulasikan respons fisika lebih murah untuk disajikan karena tidak mengambil GPU yang diperlukan untuk perhitungan fisika tersebut.Ketika Anda membebaskan GPU, Anda meningkatkan kinerja untuk pengalaman Anda, terutama pada perangkat kelas rendah yang perlu menyimpan GPU untuk gameplay berkecepatan tinggi.Karena alasan ini bahwa setiap aset selain pintu dalam lingkungan tag laser akhir disandingkan.

Bisakah Terjadi Tabrakan

Properti BasePart.CanCollide menentukan apakah objek dapat berinteraksi secara fisik dengan objek lain.Ketika Anda mengaktifkan properti ini untuk Part atau MeshPart , objeknya tidak dapat ditembus, dan akun Roblox Engine menghitungnya dalam perhitungan fisika.Perhitungan ini dapat mempengaruhi kinerja pengalaman Anda ketika ada banyak objek yang harus dipertimbangkan mesin dalam perhitungan fisikanya.

Untuk meringankan beberapa dampak ini pada pelaksanaan, nonaktifkan properti ini untuk objek yang tidak akan pernah berinteraksi dengan pengguna.Sebagai contoh, lingkungan tag laser sampel akhir menonaktifkan properti ini untuk semua daun.

Bisa Menyentuh

Properti BasePart.CanTouch menentukan apakah Touched dan TouchEnded peristiwa terbakar pada objek.Ketika Anda mengaktifkan properti ini untuk Part atau MeshPart , Roblox Engine memeriksa status peristiwa sentuhan objek untuk melihat apakah perlu menyebabkan atau menghentikan peristiwa.

Proses ini terjadi untuk setiap frame tunggal, yang dapat mengambil sejumlah besar memori jika mesin perlu memeriksa status peristiwa sentuhan untuk banyak objek sekaligus.Untuk meringankan beberapa dampak ini pada memori, hanya aktifkan properti ini untuk objek yang harus memicu peristiwa.

DapatKueri

Properti BasePart.CanQuery menentukan apakah Mesin Roblox mempertimbangkan objek selama operasi pencarian spasial, seperti raycasting.Studio mengaktifkan properti ini untuk setiap Part atau MeshPart secara default, yang berarti bahwa mesin memeriksa untuk melihat apakah setiap objek perlu memanggil operasi pencarian spasial.Proses ini terjadi untuk setiap frame tunggal, yang dapat mengambil sejumlah besar memori ketika mesin perlu melakukan pemeriksaan ini untuk banyak objek sekaligus.

Untuk alasan ini, disarankan untuk menonaktifkan properti ini untuk objek yang tidak perlu dipertimbangkan oleh Roblox Engine untuk operasi pencarian spasial.Saat membuat keputusan tentang di mana menonaktifkan properti ini, pertimbangkan bagaimana setiap aset mempengaruhi gameplay.Sebagai contoh, lingkungan tag laser akhir tetap mengaktifkan properti ini untuk setiap dinding di gedung karena mesin perlu menghitung permukaan ini saat pengguna menembak laser dari pistol tag laser mereka.Jika mesin tidak mempertimbangkan aset ini, maka laser akan menembak langsung melalui bangunan seolah-olah tidak ada sama semua.

CastShadow

Properti BasePart.CastShadow menentukan apakah objek melemparkan bayangan.Ketika Anda mengaktifkan properti ini untuk Part atau MeshPart , Roblox Engine menghitung setiap lokasi vertex objek saat runtime, kemudian menarik raycast dari matahari ke salah satu objek tetangganya sampai bertabrakan dengan objek lain untuk membuat bayangan.

Perhitungan ini bisa datang dengan biaya kinerja, terutama ketika Anda memiliki banyak objek kompleksitas geometris.Ini karena objek dengan kompleksitas geometris memiliki lebih banyak poligon daripada objek yang sederhana secara geometris, yang berarti mereka memiliki lebih banyak vertikal yang perlu dihitung oleh mesin untuk bayangan objek.Semakin sedikit poligon dalam objek, semakin cepat operasi dan lebih murah bayangannya.

A wall section with few polygons, and a plant with many polygons casting shadows on a white wall.

Bayangan dapat memberikan rasa realisme yang besar ke objek dengan kedalaman geometris 3D, jadi ketika Anda memutuskan di mana menonaktifkan properti ini, pertimbangkan di mana objek memberikan peningkatan visual yang signifikan ke lingkungan, dan di mana pengguna akan melihat bayangan yang hilang.Sebagai contoh, bayangan rumit daun bisa memberikan perasaan besar imersi di ruang terbuka di mana pengguna kemungkinan akan melihatnya, tetapi imersi yang sama tidak diperlukan untuk daun yang puncak melalui langit-langit yang tidak akan pernah berinteraksi dengan pengguna.

Foliage casting shadows.
BasePart.CastShadow = Diaktifkan
Foliage not casting shadows.
BasePart.CastShadow = Dinonaktifkan

Sisi Ganda

Properti MeshPart.DoubleSided menentukan apakah akan menampilkan kedua wajah atau poligon di mesh.Ketika Anda mengaktifkan properti ini untuk planar MeshPart , seperti daun, rambut, atau kartu kain, Mesin Roblox menampilkan kedua wajah atau poligon dalam mesh untuk memungkinkan pengguna melihat kesempurnaan objek tidak peduli sudut apa yang mereka lihat pada objek.Sebagai contoh, daun pohon berikut adalah meshes datar satu sisi, dan ketika Anda mengaktifkan properti ini, salah satu daun yang menghadap jauh dari kamera menjadi terlihat bagi pengguna.

A tree with less leaves because all planar meshes facing away from the camera are disabled.
MeshPart.DoubleSided = Dinonaktifkan

Properti ini berguna untuk menambahkan realisme ke lingkungan Anda, tetapi datang dengan biaya kinerja karena mesin perlu menyajikan poligon objek dua kali: sekali untuk arah yang menghadap kamera pengguna, dan sekali lagi untuk meshes apa pun yang berada jauh dari kamera pengguna.Untuk meringankan beberapa dampak ini pada pelaksanaan, lingkungan tag laser akhir hanya mengaktifkan properti ini untuk daun karena memiliki dampak visual yang kuat untuk realisme di ruang 3D.

Keandalan Tabrakan

Properti MeshPart.CollisionFidelity menentukan seberapa dekat hitbox fisik dari mesh atau union cocok dengan representasi visualnya.Secara default, pengaturan ini menghasilkan hitbox yang kira-kira sama dengan bentuk poligonal dari mesh, sehingga di mana pengguna bertabrakan dengan objek mirip dengan geometri aktual dari mesh.Sebagai contoh, meshes kastil dalam gambar berikut memiliki hitbox default yang hampir cocok dengan bentuk geometrinya.

A grey castle mesh.
Mesh Asli
The same castle mesh with a colorful hitbox that shows where users can collide with the castle.
Standar

Anda dapat mengatur properti ini ke nilai yang berbeda untuk mengurangi ketepatan hitbox meshes.Sebagai contoh, ketika Anda mengatur properti ini ke Hull , Roblox Engine secara signifikan mengurangi vertex hitbox meshes, dan ketika Anda mengatur properti ini ke Kotak , mesin mengurangi hitbox meshes ke kubus yang mengelilingi meshes.Selain itu, jika Anda ingin meningkatkan ketepatan hitbox meshes, Anda dapat mengatur properti ini ke PreciseConvexDecomposition untuk meningkatkan jumlah vertikal di hitbox.

The same castle mesh with cube hitbox that shows where users can collide with the castle.
Kotak
The same castle mesh with a cylindrical hitbox that shows where users can collide with the castle.
Hull
The same castle mesh with a colorful hitbox that shows where users can collide with the castle. This version shows more colorful faces than the default hitbox.
Pemecahan Konveks Akurat

Mirip dengan BasePart.CastShadow , semakin banyak vertiks yang dibutuhkan oleh Mesin Roblox untuk menampilkan, semakin tinggi biaya kinerja.Untuk alasan ini, penting untuk mempertimbangkan bagaimana Anda ingin pengguna berinteraksi dengan setiap meshes untuk melihat apakah Anda dapat mengurangi jumlah vertex yang dibutuhkan mesin untuk menampilkan hitbox meshes.Dalam kasus di mana tidak perlu bagi hitbox untuk menjadi tepat, atur properti ini ke Kotak atau Hull .

Untuk menunjukkan konsep ini, referensikan gambar berikut yang menampilkan hitbox dari setiap meshes model dinding yang menyediakan peningkatan ketinggian antara lantai pertama dan kedua dari tag laser akhir lingkungan.Hitbox default untuk dinding utama memiliki banyak geometri yang tidak perlu saat hanya perlu memberikan permukaan untuk mencegah pengguna bergerak ke arah itu.Jika Anda mengatur properti ke Kotak untuk mesh ini, Anda dapat menghapus geometri redundan ini sambil menjaga tujuan hitbox tetap utuh.

A wall model that provides a rise in elevation.
Mesh Asli
The same wall model with a colorful hitbox that shows where users can collide with the wall.
Standar
The same wall model with a colorful hitbox for the trim, but only a box hitbox for the wall mesh.
Kotak

Saat Anda membuat keputusan ini, penting untuk mempertimbangkan bagaimana mengubah nilai default dapat mempengaruhi negatif pengguna saat mereka menavigasi lingkungan Anda.Sebagai contoh, jika Anda mengatur properti ke Kotak untuk meshes pemotong model dinding, pengguna akan bertabrakan dengan hitbox jika mereka mencoba melompat dekat dinding.Sebagai gantinya, atur meshes ini ke Hull sehingga Anda mengurangi jumlah vertexnya sambil menjaga hitbox lebih dekat dengan bentuk geometri meshes.

A wall model with a box hitbox for the top trip. Because the box sticks out, users can unintentionally collide with the top trim.
Kotak
The same wall model with a hull hitbox for the top trip. Because hull hitbox conforms much closer to the top of the model, allowing users to avoid colliding with the trim.
Hull

Perhatikan bahwa penting untuk memiliki hitbox yang sesuai dengan bentuk mesh Anda, terutama ketika Anda perlu mengontrol persis bagaimana pengguna bertabrakan dengan bentuknya.Sebagai contoh, di lingkungan tag laser sampel akhir, penting bahwa pengguna hanya bertabrakan dengan ujung pintu masuk dan bukan pintu masuk itu sendiri, sebaliknya mereka tidak akan pernah bisa masuk atau keluar dari saku pertempuran.

A doorway model with optimized hitbox meshes.

Ketepatan Render

Properti MeshPart.RenderFidelity menentukan tingkat rincian mesh yang ditampilkan kepada pengguna.Ketika Anda mengatur properti ini ke Enum.RenderFidelity.Automatic , Mesin Roblox mengurangi ketepatan mesh semakin jauh pengguna dari mesh, dan ketika Anda mengatur properti ini ke Enum.RenderFidelity.Precise , setiap vertex dari mesh Anda ditampilkan persis seperti yang Anda rencanakan tidak peduli jarak di antara mereka.

Semakin banyak objek yang harus ditampilkan dengan tepat kepada pengguna dari jarak mana pun, terutama jika mereka memiliki hitungan vertex tinggi, biaya kinerja akan lebih tinggi.Untuk meringankan beberapa dampak ini pada pelaksanaan, atur properti ini menjadi Enum.RenderFidelity.Performance untuk objek dengan kompleksitas geometris, seperti daun di perpustakaan aset sampel, karena mereka tidak perlu ditampilkan secara keseluruhan dari jarak untuk persyaratan permainan apa pun.Ini mengurangi jumlah poligon pengalaman Anda tanpa menghasilkan kualitas visual keseluruhan.

Mengubah aset menjadi paket

Sekarang semua aset modular Anda ada di Studio dengan parameter rendering yang disiapkan untuk menyimpan kualitas visual tinggi untuk semua pengguna, saatnya untuk mengubahnya menjadi paket.Penting untuk mengubah aset Anda menjadi paket karena memungkinkan Anda untuk menggunakannya berulang kali selama pengalaman dan proyek saat ini dan lainnya.Selain itu, Anda dapat dengan mudah melakukan perubahan pada paket yang langsung diisi ke semua instansinya, menghemat banyak waktu dalam proses iterasi.

Karena objek SurfaceAppearance Anda sudah menjadi paket, ketika Anda mengubah objek Model Anda menjadi paket, mereka menjadi paket terkait.Paket terlarang memungkinkan Anda untuk memelihara hierarki kompleks objek anak yang dapat Anda modifikasi independen dari paket objek Model.Ini memungkinkan Anda kontrol lebih besar atas komponen individu dari aset Anda.

Untuk mengonversi aset modular dan prop ke dalam paket:

  1. Di jendela Explorer , klik kanan aset modular atau prop, lalu pilih Konversi ke Paket dari menu konteks.Dialog Konversi ke Paket ditampilkan.

  2. Isi bidang Judul dan Deskripsi , atur kepemilikan kepada diri sendiri atau grup, lalu klik tombol Kirim .Selesai, simbol tautan rantai ditampilkan di atas ikon model untuk mengidentifikasinya sebagai paket.

    The Model icon with a chain link symbol.
  3. Ulangi proses ini untuk setiap aset modular dan prop.

Setelah Anda puas dengan tata letak keseluruhan perpustakaan aset Anda, Anda dapat beralih ke dekorasi lingkungan dengan aset yang baru dipoles, dan mengkonfigurasi elemen tambahan dari ruang 3D untuk membawa dunia Anda ke kehidupan.