MENAMBAHKAN MUSUH DAN MENGEMBANGKAN GRAFIS GAME 3D
4.10 APA ITU SKYBOX?
Gambar 4.44 di bawah ini Pilih bahan untuk melihatnya di Inspector, lalu tarik tekstur ke properti material.
Anda sekarang akan melihat gambar batu dan bata muncul di permukaan objek lantai dan dinding, tetapi gambar terlihat agak melebar dan buram. Apa yang terjadi adalah gambar tunggal sedang direntangkan untuk menutupi seluruh lantai. Yang Anda inginkan adalah agar gambar berulang beberapa kali di atas permukaan lantai. Anda dapat mengatur ini menggunakan properti Tiling dari material; pilih material di Project dan kemudian ubah nomor Tiling di Inspector (dengan nilai X dan Y terpisah untuk ubin di setiap arah). Pastikan Anda mengatur ubin peta utama dan bukan peta sekunder (materi ini mendukung peta tekstur sekunder untuk efek lanjutan). Ubin default adalah 1 (itu bukan ubin, dengan gambar direntangkan ke seluruh permukaan); ubah nomornya menjadi sekitar 8 dan lihat apa yang terjadi di scene. Ubah angka di kedua bahan menjadi ubin yang terlihat bagus. Bagus, sekarang scene memiliki tekstur yang diterapkan ke lantai dan dinding! Anda juga dapat menerapkan tekstur ke langit scene; mari kita lihat proses itu.
Menghasilkan visual langit menggunakan gambar tekstur
Tekstur batu bata dan batu memberikan tampilan yang jauh lebih alami pada dinding dan lantai. Namun langit saat ini kosong dan tidak alami; kami juga menginginkan tampilan langit yang realistis. Pendekatan paling umum untuk tugas ini adalah jenis tekstur khusus menggunakan gambar langit.
Gambar 4.45 Diagram sebuah skybox
Scene baru sebenarnya datang dengan skybox yang sangat sederhana yang sudah ditetapkan. Inilah sebabnya mengapa langit memiliki gradien dari biru muda ke biru tua, bukannya biru tua datar. Jika Anda membuka jendela pencahayaan (Window > Lighting) pengaturan pertama adalah Skybox dan slot untuk pengaturan itu mengatakan Default.
Pengaturan ini ada di panel Pencahayaan Lingkungan; jendela ini memiliki sejumlah panel pengaturan yang terkait dengan sistem pencahayaan canggih di Unity, tetapi untuk saat ini kami hanya peduli dengan pengaturan pertama.
Sama seperti tekstur bata tadi, gambar skybox bisa didapatkan dari berbagai website.
Cari tekstur skybox; misalnya, saya memperoleh beberapa skybox hebat dari www.93i.de, termasuk set TropicalSunnyDay. Setelah skybox ini diterapkan ke scene, Anda akan melihat sesuatu seperti gambar dibawah ini.
Gambar 4.46 Scene dengan gambar latar langit
Membuat materi skybox baru
Pertama, buat materi baru (seperti biasa, klik kanan dan Buat, atau pilih Buat dari menu Aset) dan pilih untuk melihat pengaturan di Inspector. Selanjutnya Anda perlu mengubah shader yang digunakan oleh bahan ini. Bagian atas pengaturan material memiliki menu ShaderDi bagian 4.3 kami cukup mengabaikan menu ini karena default berfungsi dengan baik untuk sebagian besar tekstur standar, tetapi skybox memerlukan shader khusus.
Gambar 4.47 Menu tarik-turun dari shader yang tersedia
Definisi Shader adalah program singkat yang menguraikan instruksi tentang cara menggambar permukaan, termasuk apakah akan menggunakan tekstur apa pun. Komputer menggunakan instruksi ini untuk menghitung piksel saat merender gambar. Shader yang paling umum mengambil warna material dan menggelapkannya sesuai dengan cahaya, tetapi shader juga dapat digunakan untuk semua jenis efek visual. Setiap bahan memiliki shader yang mengontrolnya (Anda bisa menganggap bahan sebagai contoh shader). Material baru diatur ke Standard shader secara default. Shader ini menampilkan warna material (termasuk tekstur) sambil menerapkan warna dasar gelap dan terang di seluruh permukaan.
Untuk skybox ada shader yang berbeda. Klik menu untuk melihat daftar dropdown dari semua shader yang tersedia. Pindah ke bagian Skybox dan pilih 6 Sided di submenu. Dengan shader aktif ini, material sekarang memiliki enam slot tekstur besar (bukan hanya slot tekstur Albedo kecil yang dimiliki shader standar). Keenam slot tekstur ini sesuai dengan enam sisi kubus, jadi gambar-gambar ini harus cocok di tepinya agar tampak mulus.
Gambar 4.48 Enam sisi skybox—gambar untuk atas, bawah, depan, belakang, kiri, dan kanan Impor gambar skybox ke Unity dengan cara yang sama seperti Anda membawa tekstur bata: drag file ke tampilan Proyek atau klik kanan di Proyek dan pilih Impor Aset Baru. Ada satu pengaturan impor halus untuk diubah; klik tekstur yang diimpor untuk melihat propertinya di Inspector, dan ubah pengaturan Wrap Mode (ditunjukkan pada gambar 4.13) dari Repeat to Clamp (jangan lupa klik Apply setelah selesai). Biasanya tekstur dapat diberi ubin berulang kali di atas permukaan; agar ini tampak mulus, tepi gambar yang berlawanan menyatu. Namun perpaduan tepi ini dapat membuat garis samar di langit tempat gambar bertemu, jadi pengaturan Clamp (mirip dengan fungsi Clamp() di bab 2) akan membatasi batas tekstur dan menghilangkan pencampuran ini.
Gambar 4.49 Perbaiki garis tepi yang samar dengan menyesuaikan mode Bungkus.
Sekarang Anda dapat menyeret gambar-gambar ini ke slot tekstur material skybox.
Nama gambar sesuai dengan slot tekstur yang akan ditetapkan (seperti kiri atau depan).
Setelah keenam tekstur terhubung, Anda dapat menggunakan material baru ini sebagai skybox untuk scene. Buka jendela pencahayaan lagi dan atur materi baru ini ke slot Skybox;
drag materi ke slot itu, atau klik ikon lingkaran kecil untuk membuka pemilih file.
Tip Secara default, Unity akan menampilkan skybox (atau setidaknya warna utamanya) dalam tampilan Scene editor. Anda mungkin menemukan warna ini mengganggu saat mengedit objek, sehingga Anda dapat mengaktifkan atau menonaktifkan skybox. Di bagian atas panel tampilan Scene adalah tombol yang mengontrol apa yang terlihat; cari tombol Efek untuk mengaktifkan atau menonaktifkan skybox.
Bekerja dengan model 3D khusus
Pada bagian sebelumnya kita telah melihat penerapan tekstur pada dinding datar besar dan lantai pada tingkat tersebut. Tapi bagaimana dengan objek yang lebih detail?
Bagaimana jika kita ingin, katakanlah, furnitur menarik di dalam ruangan? Kita dapat melakukannya dengan membangun model 3D di aplikasi seni 3D eksternal. Ingat definisi dari pengantar bab ini: Model 3D adalah objek mesh dalam game (yaitu, bentuk tiga dimensi). Nah, kita akan mengimpor mesh 3D dari bangku sederhana.
Aplikasi yang banyak digunakan untuk memodelkan objek 3D termasuk Maya Autodesk dan 3ds Max. Keduanya adalah alat komersial yang mahal, jadi contoh untuk bab ini menggunakan aplikasi open source Blender. Unduhan sampel menyertakan file .blend yang dapat Anda gunakan; gambar 4.14 menggambarkan model bangku di Blender. Jika Anda tertarik untuk mempelajari cara memodelkan objek Anda sendiri, Anda akan menemukan latihan di lampiran C tentang memodelkan bangku ini di Blender.
Gambar 4.50 Bench Model di Blender
Selain model yang dibuat khusus yang dibuat oleh Anda sendiri atau seniman yang bekerja sama dengan Anda, banyak model 3D tersedia untuk diunduh dari situs web game art.
Salah satu sumber daya yang bagus untuk model 3D adalah Unity's Asset Store di sini:
https://www.assetstore.unity3d.com Format file mana yang harus dipilih?
Sekarang setelah Anda membuat model di Blender, Anda perlu mengekspor aset dari software itu. Sama seperti gambar 2D, sejumlah format file berbeda tersedia untuk Anda gunakan saat mengekspor model 3D, dan jenis file ini memiliki berbagai kelebihan dan kekurangan. Tabel dibawah ini mencantumkan format file 3D yang didukung Unity.
Memilih di antara opsi-opsi ini bermuara pada apakah file tersebut mendukung animasi atau tidak. Karena Collada dan FBX adalah satu-satunya dua opsi yang menyertakan data animasi, itu adalah dua opsi yang harus dipilih. Kapan pun tersedia (tidak semua alat 3D memilikinya sebagai opsi ekspor), ekspor FBX cenderung berfungsi paling baik, tetapi jika Anda menggunakan alat tanpa ekspor FBX, maka Collada juga berfungsi dengan baik. Dalam kasus kami, Blender mendukung ekspor FBX jadi kami akan menggunakan format file itu.
Perhatikan bahwa bagian bawah tabel 4.3 mencantumkan beberapa aplikasi seni 3D.
Unity memungkinkan Anda untuk langsung memasukkan file aplikasi tersebut ke dalam proyek Anda, yang tampaknya berguna pada awalnya, tetapi fungsi itu memiliki beberapa peringatan. Sebagai permulaan, Unity tidak memuat file aplikasi tersebut secara langsung;
sebagai gantinya, itu mengekspor model di belakang layar dan memuat file yang diekspor itu.
Karena model sedang diekspor ke FBX atau Collada, sebaiknya lakukan langkah itu secara eksplisit. Selanjutnya, ekspor ini mengharuskan Anda menginstal aplikasi yang relevan.
Persyaratan ini sangat merepotkan jika Anda berencana untuk berbagi file di antara banyak komputer (misalnya, tim developer yang bekerja bersama). Saya tidak menyarankan menggunakan file Blender (atau Maya atau apa pun) langsung di Unity.
Mengekspor dan mengimpor model
Baiklah, saatnya mengekspor model dari Blender dan kemudian mengimpornya ke Unity. Pertama buka bangku di Blender lalu pilih File > Export > FBX. Setelah file disimpan, impor ke Unity dengan cara yang sama seperti Anda mengimpor gambar. Drag file FBX dari komputer ke tampilan Proyek Unity atau klik kanan di Proyek dan pilih Impor Aset Baru. Model 3D akan disalin ke dalam proyek Unity dan siap ditampilkan untuk ditampilkan.
Catatan Unduhan sampel menyertakan file .blend sehingga Anda dapat berlatih mengekspor file FBX dari Blender; bahkan jika Anda tidak membuat model apa pun sendiri, Anda mungkin perlu mengonversi model yang diunduh ke dalam format yang diterima Unity.
Jika Anda ingin melewati semua langkah yang melibatkan Blender, gunakan file FBX yang disediakan.
Ada beberapa pengaturan default yang digunakan untuk mengimpor model yang ingin Anda ubah segera. Pertama, Unity secara default mengimpor model ke scale yang sangat kecil, ubah Scale Factor menjadi 100 untuk melawan sebagian dari .01 File Scale. Anda mungkin juga ingin mengklik kotak centang Hasilkan Collider, tetapi itu opsional; tanpa collision Anda bisa berjalan melalui bangku. Kemudian beralih ke tab Animation di pengaturan impor dan batalkan pilihan Impor Animasi (Anda tidak menganimasikan model ini).
Gambar 4.51 Sesuaikan pengaturan impor untuk model 3D.
Itu menangani mesh yang diimpor. Sekarang untuk teksturnya; ketika Unity mengimpor file FBX, itu juga membuat bahan untuk bangku. Bahan ini secara default kosong (sama seperti bahan baru lainnya), jadi tetapkan tekstur bangku (gambar pada gambar 4.16) dengan cara yang sama seperti Anda menetapkan batu bata ke dinding sebelumnya: drag gambar tekstur ke Project untuk mengimpornya ke Unity, lalu drag tekstur yang diimpor ke slot tekstur bahan bangku. Gambar terlihat agak aneh, dengan bagian gambar yang berbeda muncul di bagian bangku yang berbeda; koordinat tekstur model diedit untuk menentukan pemetaan image-tomesh ini.
Gambar 4.52 Gambar 2D untuk tekstur bangku
Definisi Koordinat tekstur adalah kumpulan nilai tambahan untuk setiap simpul yang menetapkan poligon ke area gambar tekstur. Anggap saja seperti kertas kado; model 3D adalah kotak yang sedang dibungkus, teksturnya adalah kertas pembungkusnya, dan koordinat teksturnya menunjukkan ke mana pada kertas pembungkus itu setiap sisi kotak akan pergi.
Catatan Bahkan jika Anda tidak ingin memodelkan bangku, Anda mungkin ingin membaca penjelasan rinci tentang koordinat tekstur di lampiran C. Konsep koordinat tekstur (serta istilah terkait lainnya seperti UV dan pemetaan) dapat berguna untuk diketahui saat memprogram game. Material baru seringkali terlalu mengkilat, jadi Anda mungkin ingin mengurangi pengaturan Smoothness (permukaan yang lebih halus lebih mengkilap) ke 0.
Terakhir, setelah menyesuaikan semuanya sesuai kebutuhan, Anda dapat menempatkan bangku di scene. Drag model ke atas dari tampilan Proyek dan letakkan di satu ruangan di tingkat tersebut; saat Anda menyeret mouse, Anda akan melihatnya di scene. Setelah Anda meletakkannya di tempatnya, Anda akan melihat sesuatu seperti gambar 4.17. Selamat; Anda membuat model bertekstur untuk level!
Gambar 4.53 Bangku impor di tingkat
Catatan Kami tidak akan melakukannya dalam bab ini, tetapi biasanya Anda juga akan mengganti geometri kotak putih dengan model yang dibuat di alat eksternal. Geometri baru mungkin terlihat pada dasarnya identik, tetapi Anda akan memiliki lebih banyak fleksibilitas untuk mengatur UV untuk teksturnya.