Unity 2018.3 memperkenalkan dukungan untuk peta ubin isometrik, sangat mirip dengan peta ubin segi enam, yang ditambahkan dalam versi 2018.2. Fitur Tilemap baru memungkinkan Anda membuat lingkungan 2D dengan cepat dan efisien berdasarkan kisi-kisi isometrik dan heksagonal yang digunakan dalam banyak gim klasik, termasuk bagian pertama Diablo dan Fallout, Peradaban, Zaman Kerajaan, dan banyak lagi lainnya.
Kedua sistem didasarkan pada sistem Tilemap yang sudah ada, yang muncul di Unity 2017.2, dan hari ini sama mudahnya untuk bekerja dengannya! Selain itu, mereka memiliki integrasi asli dengan Editor. Dalam versi Unity yang akan datang, mereka dapat porting ke manajer paket.
Jika Anda tertarik untuk bereksperimen dengan sistem ini, kami membuat proyek Isometrik Starter Kit yang telah disiapkan sebelumnya dengan karakter animasi dan beberapa tileset lingkungan. Anda dapat mengunduhnya di
sini .
Pengaturan Proyek untuk Isometrik Tilemap
Sebelum memulai dengan Tilemap, penting untuk menyiapkan proyek dengan benar. Tilemap isometrik bekerja dengan sprite dua dimensi dan menggunakan sortasi rendering yang tepat untuk menciptakan ilusi peta isometrik dengan tampilan atas. Kita harus membuat ubin lebih jauh dari gambar penampil terlebih dahulu, dan yang lebih dekat di atasnya.
Anda dapat menggunakan fungsi Unity yang disebut Custom Axis Sort untuk menyesuaikan urutan rendering objek 2D di layar. Parameter ini dapat diatur baik untuk kamera (saat ini metode ini standar untuk Pipeline Render Skrip, termasuk LWRP dan HDRP), atau secara global, di tingkat proyek.
Untuk mengatur Custom Axis Sort di tingkat proyek, pergi ke
Edit> Pengaturan Proyek> Grafik . Di bagian Pengaturan Kamera, Anda akan melihat menu tarik-turun Mode Urut Transparansi, serta opsi nilai X, YZ untuk Sumbu Urut Transparansi.
Secara default, Transparency Sort Axis mengatur sumbu XYZ ke (0, 0, 1). Namun, semua ubin 2D kami sebenarnya berada di bidang Z yang sama. Oleh karena itu, untuk menentukan ubin mana yang ada di depan atau di belakang, Anda harus menggunakan bukan kedalaman, tetapi ketinggian. Ubin yang terletak lebih tinggi pada layar akan disortir berdasarkan yang lebih rendah. Untuk mengurutkan ubin berdasarkan ketinggian, ubah nilai Mode Urut Transparansi ke Kustom dan atur Sumbu Urut Transparansi ke (0, 1, 0).
Untuk mempelajari lebih lanjut tentang cara kerjanya, Anda dapat membaca
halaman yang sesuai pada pengurutan 2D dalam dokumentasi Unity.
Dalam beberapa kasus, Anda mungkin juga perlu mengubah nilai Axis Sortir Transparansi ke Z. Kami akan membicarakan lebih lanjut tentang ini di bawah ini.
Jenis Kartu Tile
Sistem Tilemap terdiri dari beberapa komponen yang saling berinteraksi. Dua yang pertama adalah objek permainan Grid dan Tilemap. Untuk membuat Kotak, cukup klik kanan di mana saja di Hierarki, buka Objek 2D, dan pilih jenis Tilemap yang ingin Anda gunakan. Secara default, setiap Grid baru dibuat dengan satu objek game Tilemap satu anak dari tipe yang sesuai. Jenis-jenis Tilemap berikut saat ini ada:
Tilemap - membuat Grid persegi panjang dan Tilemap. Contoh penggunaan Tilemap ini dapat dilihat di
2D Game Kit dari mesin Unity.
Hexagonal Point Top Tilemap - membuat Grid dan Tilemap dari segi enam, di mana salah satu simpul dari setiap segi enam diarahkan ke atas.
Hexagonal Flat Top Tilemap adalah jenis Grid
hexagon lainnya, di mana di bagian atas segi enam terdapat wajah yang sejajar dengan tepi atas layar.
Dua tipe terakhir,
Isometrik dan
Isometrik Z sebagai Y , membuat dua implementasi yang berbeda dari kisi isometrik. Perbedaan di antara mereka muncul ketika mensimulasikan berbagai tingkat ketinggian ubin, misalnya, ketika ada platform tinggi di tingkat isometrik.
Jika Anda ingin membuat objek game Tilemap terpisah untuk setiap level ketinggian ubin, maka lebih baik menggunakan tipe
Tilemap Isometrik yang biasa. Ini menyederhanakan proses pembuatan bentuk tabrakan otomatis, tetapi memiliki fleksibilitas kurang ketika bekerja dengan ketinggian antar ubin, karena semua ubin pada lapisan yang sama harus pada "bidang" yang sama.
Dalam kasus
Isometrik Z sebagai Y Tilemap , nilai posisi Z dari setiap
petak bekerja bersama dengan parameter Sortir Sumbu Transparansi, membuat petak tampak ditumpuk satu sama lain. Saat menggambar pada Z sebagai Y Tilemap, kami secara dinamis mengubah parameter brush Z untuk beralih di antara ketinggian yang berbeda. Untuk merender
Z sebagai Y Tilemap dengan benar , nilai Z tambahan diperlukan dalam Sumbu Urut Transparansi dengan mode Kustom.
Catatan: Aset yang ditunjukkan dalam tangkapan layar diambil dari ubin Kuil proyek Isometrik Starter Kit . Mereka sepenuhnya gratis, sehingga Anda dapat menggunakannya untuk membuat lingkungan Anda sendiri!Pikirkan Grid sebagai "kuda-kuda" di mana semua objek game Tilemap berada. Dan mereka, pada gilirannya, pada dasarnya adalah kanvas tempat kita akan menggambar ubin. Untuk mulai menggambar di Tilemap, kita juga membutuhkan kuas dan palet. Semua aset ubin terletak di Palet Ubin, dari mana mereka dapat dipilih menggunakan alat kuas dan mulai menggambar.
Untuk membuat Tile Palette, pilih Window> 2D> Tile Palette. Di menu tarik-turun kiri atas, pilih "Buat Palet Baru". Pastikan jenis mesh yang sesuai dipilih. Pada contoh, saya akan menggunakan Isem Tilemap yang biasa, serta aset dari proyek
Isometrik Starter Kit . Kami akan menentukan Manual sebagai ukuran sel palet (ukuran sel) agar dapat mengubah ukuran ubin isometrik. Dalam hal ini, saya tahu bahwa ukuran ubin saya sesuai dengan kotak dengan ukuran sel 1 oleh X dan 0,5 oleh Y; Namun, mereka bergantung pada resolusi yang dipilih saat mengimpor nilai piksel per unit dan ukuran aset - pada kenyataannya, pada sudut isometrik bahwa ubin diputar.
Catatan tentang mengimpor aset
Anda mungkin tidak tahu opsi impor dan ukuran kartu ubin mana yang terbaik untuk aset Anda. Ada aturan umum yang dapat Anda ikuti: pertama, Anda perlu melihat resolusi ubin. Biasanya, balok ubin isometrik lebih tinggi daripada lebarnya; Ubin "Flat" (yang lebih mirip bidang daripada kubus) lebih lebar daripada tinggi. Namun, lebar di antara mereka akan selalu sama. Oleh karena itu, jika Anda ingin ubin menempati tepat satu unit pengukuran Unity, maka atur
Pixels Per Unit dalam pengaturan impor ubin ke nilai yang sama dengan lebar dalam piksel. Dalam beberapa kasus, nilai ini harus diubah, biasanya dalam arah penurunan (atau meningkatkan resolusi aset); ini dapat berguna jika Anda ingin membuat ulang efek di mana beberapa ubin tampaknya menempati lebih dari satu sel kotak dan tumpang tindih ubin yang berdekatan.
Untuk menentukan nilai kisi yang benar oleh Y untuk ubin, ambil ketinggian alas (atau simpul) satu ubin, dan bagi dengan lebar. Ini akan memberi Anda nilai Y relatif terhadap X, mengingat X adalah 1. Mari kita lihat beberapa contoh:
Dalam aset seni piksel yang kami gunakan untuk proyek ini, semua ubin dasar memiliki tinggi 32 piksel dan lebar 64 piksel. Oleh karena itu, ukuran kisi dalam Y akan sama dengan 0,5. Blok kedua dalam gambar diambil dari paket aset Golden Skull Studios; Anda bisa melihatnya di
sini . Ubin contoh telah dikurangi, tetapi aset asli lebarnya 128 piksel. Basis ubin adalah sekitar 66 piksel, yang memberikan ukuran kotak Y dari 66/128, yaitu sekitar 0,515 unit.
Proses dasar bekerja dengan Tilemap
Setelah memutuskan ukuran Grid yang benar, tambahkan beberapa ubin ke palet kami. Cukup ambil salah satu sprite ubin dan seret ke jendela Tile Palette. Ini akan membuat Aset Tile. Ini berisi informasi tentang ubin itu sendiri, misalnya, sprite yang digunakannya, rona dan jenis collider yang dihasilkan. Jika Anda perlu melihat informasi terperinci tentang ubin palet, pilih alat Pilih (S) di bagian atas jendela Palet Tile dan klik ubin ini. Perhatikan bahwa Inspektur dapat melihat aset Tile yang dimaksud.
Untuk menggambar Tile baru oleh Tilemap, pilih Brush tool (B) dan klik Tile in the Palette. Setelah itu, Anda dapat menggambar dengan ubin yang dipilih di jendela adegan. Ada alat menggambar lainnya seperti Eraser (D), Box Fill (U), Flood Fill (G), dan Tile Picker (I).
Terkadang Anda perlu mengubah lokasi ubin pada palet itu sendiri. Tepat di bawah bilah alat terdapat tombol Edit. Jika Anda mengkliknya, mode edit palet akan menyala, di mana alat mempengaruhi Palet Ubin itu sendiri. Jangan lupa untuk keluar dari mode ini setelah melakukan perubahan yang diperlukan.
Mode Renderer Tilemap
Dalam beberapa kasus, ubin dari jenis yang berbeda mungkin tidak diurutkan dengan benar, meskipun berada di Tilemap yang sama, seperti dalam contoh ini:
Ini ditentukan oleh parameter Mode dari komponen Renderer Tilemap. Secara default, Mode adalah Chunk.
Mode chunk efektif dalam mengurangi konsumsi aset Tilemap. Alih-alih merender setiap ubin secara terpisah, ini menjadikannya dalam satu lintasan sebagai blok besar. Namun, mode ini memiliki dua kelemahan utama. Pertama, itu tidak mendukung penyortiran dinamis dengan objek 2D lainnya di TKP. Ini berarti bahwa jika Tilemap berada dalam mode Chunk, ia tidak akan dapat mengurutkan secara dinamis di depan atau di belakang objek lain, misalnya karakter - hanya satu atau yang lainnya akan terlihat pada satu waktu, dan ini tergantung pada parameter Order in Layer. Namun, ini masih sangat efektif untuk mengoptimalkan gim dan dapat digunakan untuk mengelompokkan bidang yang luas.
Namun, ini tidak menyelamatkan kita dari masalah kesalahan pengurutan ubin yang berbeda. Untuk rendering batch ubin yang diambil dari dua atau lebih sprite yang berbeda (mis. Tekstur), sprite harus digabungkan menjadi aset Sprite Atlas tunggal.
Untuk membuat Sprite Atlas, pilih
Aset> Buat> Sprite Atlas . Sprite Atlas memiliki daftar
Objects for Packing . Cukup seret dan taruh ke dalamnya semua ubin yang harus dirender dalam batch, dan tentukan parameter impor yang sesuai, biasanya cocok dengan parameter masing-masing sprite.
Setelah itu, ubin akan disortir dengan benar; tetapi mereka hanya akan terlihat dalam mode Putar atau selama eksekusi game.
Oleh karena itu, selama proses pengeditan, lebih baik untuk memilih mode
Individual untuk Tilemap Renderer. Dalam mode ini, setiap sprite akan diurutkan secara terpisah; ini berarti bahwa mereka akan membuat dengan benar bahkan di luar mode Play, yang sangat berguna saat mengedit level. Setelah menyelesaikan pembuatan struktur level, Anda dapat mengubah mode Renderer Tilemap ke Chunk lagi kapan saja.
Mode render individual juga berguna ketika Anda perlu menambahkan objek seperti pohon, objek dan bidang tanah yang lebih tinggi yang harus diurutkan secara dinamis dengan karakter atau satu sama lain. Dalam posting ini kami akan mengaktifkan mode Individual untuk semua Tilemap.
Menggunakan Beberapa Tilemap
Terkadang diperlukan untuk menggunakan beberapa Tilemap pada satu Grid. Dalam kasus Tilemap isometrik dan heksagonal, berguna untuk dapat menambah tingkat item yang selaras pada kisi atau ubin yang tampak lebih tinggi dari lapisan pertama.
Untuk menghubungkan Tilemap lain ke grid, klik kanan pada objek game Grid dan buat Tilemap baru dari jenis yang sesuai.
Untuk mulai menggambar di Tilemap baru, kembali ke jendela Tile Palette dan ubah Active Tilemap di bawah toolbar utama.
Menambahkan Area yang Dibesarkan
Ada dua cara utama untuk menambahkan area yang ditinggikan ke level. Memilih yang tepat biasanya tergantung pada jenis Tilemap yang dipilih. Kami akan mempertimbangkan masing-masing kasus.
Selain itu, kami telah menyiapkan video pendek tentang topik ini, yang menunjukkan pendekatan ini menggunakan Tilemap Isometrik biasa serta menambahkan area tumbukan ke ubin. Tonton video jika Anda ingin memahami secara singkat kedua cara ini:
Menggunakan Tilemap Isometrik biasa
Untuk Tilemap Isometrik biasa, Anda bisa membuat Tilemap baru dengan Grid yang sama dan menetapkan Order in Layer nilai yang lebih tinggi. Anda kemudian dapat mengubah parameter Jangkar Tile sehingga lapisan baru berlabuh ke titik yang lebih tinggi di kotak yang sama.
Tilemap level bawah saya untuk X dan Y memiliki Tile Anchor diatur ke (0, 0). Saya ingin layer baru ditarik satu unit lebih tinggi, jadi saya akan mengubah titik jangkar Tilemap baru ke (1, 1). Saya juga akan mengatur Order in Layer menjadi 1 - satu lebih dari level dasar.
Sekarang Anda dapat mengubah Tilemap aktif ke level ketinggian kedua dan mulai menggambar.
Menggunakan Z sebagai Y Isometrik Tilemap
Kadang-kadang berguna untuk mensimulasikan ketinggian yang berbeda dengan Tilemap tunggal. Dalam kasus seperti itu, Z seperti Y Isometrik Tilemap dan Grid dapat digunakan.
Dalam kasus Z sebagai Y Tilemap, nilai Z dari setiap ubin memiliki efek tambahan pada urutan di mana ubin diberikan. Kita dapat mengubah nilai ubin Z saat menggambar mereka menggunakan parameter sikat Posisi Z di bagian bawah Palet Ubin (serta menggunakan tombol panas "+" dan "-"):
Namun, agar nilai Z memengaruhi dengan benar dan ubin untuk mengurutkan dengan benar, Anda harus kembali ke nilai Urutkan Sumbu Kustom dan menambahkan pengaruh Z. Angka yang digunakan di sini secara langsung terkait dengan bagaimana Unity mengubah posisi sel kisi isometrik menjadi nilai di ruang dunia.
Misalnya, kisi dengan dimensi menurut XYZ dari (1, 0,5, 1) - standar untuk isometri - akan memiliki nilai sortir sepanjang sumbu Z sama dengan -0,26. Jika Anda tertarik pada bagaimana angka ini dihitung, atau jika Anda menggunakan kisi dengan ukuran sel yang berbeda, maka lanjutkan membaca untuk mengetahui bagaimana menemukan nilai Z yang tepat untuk kasus Anda.
Dengan mengatur nilai yang benar untuk Urutan Sumbu Kustom, Anda dapat mulai menggambar petak dengan nilai Z yang berbeda. Anda juga dapat mengonfigurasi kenaikan dengan nilai Z yang memindahkan petak yang dinaikkan ke atas atau ke bawah, mengubah ukuran Z dari Kotak, yaitu 1 secara default.
Perhitungan nilai Z
Ada rumus umum yang dapat digunakan untuk menentukan nilai Z penyortiran sumbu. Pertama, ambil ukuran Y dari grid. Jika Anda belum memutuskan ukuran Y, lihat catatan tentang mengimpor aset di atas. Lipat gandakan nilai ini dengan -0,5, dan kurangi 0,01 lainnya.
Menurut rumus ini, kotak yang memiliki ukuran (1, 0,5, 1) akan memberi kita nilai semacam oleh Z dari -0,26. Dengan nilai pengurutan ini, ubin kotak apa pun (1, 0,5, 1) akan diurutkan dengan benar.
Jika Anda ingin tahu lebih banyak tentang nilai ini dan tentang perhitungan, maka pelajari
dokumentasinya . Ini menjelaskan secara rinci pekerjaan penyaji 2D dan apa yang terjadi ketika sel isometrik dikonversi ke nilai ruang dunia.
Menambahkan Tabrakan
Sekarang kita telah menempatkan beberapa ubin di atas yang lain, dengan bantuan tabrakan kita dapat mengontrol area yang bisa dijangkau pemain dan transisi di antara mereka.
Ada banyak cara untuk menambahkan tabrakan, tetapi dalam kasus kami diharuskan agar pemain naik dan turun di sepanjang lereng, sehingga tidak begitu jelas objek mana yang harus memiliki colliders. Kita dapat mengatur konflik secara manual menggunakan Tilemap opsional.
Dalam proyek ini, kami membuat beberapa sprite yang sesuai dengan berbagai bentuk yang akan menentukan area tumbukan. Kita dapat menggambar bentuk-bentuk ini di Tilemap ketiga di tempat-tempat di mana pemain tidak bisa lewat. Misalnya, kami ingin pemain dapat memanjat batu hanya di sepanjang lereng, dan tidak memanjat langsung di atasnya.
Kami juga dapat menambahkan material unik ke Tilemap Renderer untuk memberi ubin warna berbeda dan membedakannya dari sisa level.
Dengan menempatkan ubin tabrakan, Anda dapat menambahkan komponen Collider Tilemap ke collision Tilemap. Dalam hal ini, untuk setiap ubin individual, colliders dibuat secara otomatis, ditentukan oleh bentuk sprite.
Untuk mengoptimalkan kinerja, Anda juga dapat menambahkan komponen 2D Collider Komposit dan centang kotak centang Digunakan oleh Komposit untuk Tilemap Collider. Ini akan menggabungkan semua colliders individual menjadi satu bentuk besar.
Menambahkan Item
Menambahkan item ke level cukup sederhana. Anda dapat secara manual menempatkan sprite item pada titik yang diinginkan dalam adegan, atau melampirkan item ke Grid Tilemap, mengubahnya menjadi ubin terpisah. Pilih solusi mana yang terbaik untuk Anda.
Dalam proyek ini, kami secara manual menempatkan beberapa pohon di tingkat tersebut. Pohon dan karakter memiliki Orde sama Lapisan, yang memungkinkan Anda untuk secara dinamis mengurutkan karakter di depan dan di belakang pohon.
Menggunakan collider, Anda dapat menentukan titik di mana pemain dapat pergi dekat pohon. Ini juga dapat dilakukan dengan beberapa cara.
Yang pertama ditunjukkan dalam video - cukup lampirkan anak collider ke objek dan ubah bentuknya sesuai kebutuhan.
Cara kedua adalah mengatur
Bentuk Fisika Kustom untuk objek di Sprite Editor. Untuk membuka Editor Sprite, pilih objek sprite dan temukan tombol Editor Sprite di Inspektur. Di menu tarik-turun kiri atas, beralihlah ke editor Bentuk Fisika Kustom. Di sini Anda dapat membuat bentuk poligonal yang menentukan batas-batas collider. Setelah mengatur bentuk fisik, Anda dapat melampirkan komponen Polygon Collider ke objek, dan itu akan sesuai dengan formulir ini.
Jika Anda menggunakan objek sebagai ubin di Tilemap, Anda juga bisa menggunakan collider Grid. Pilih Aset Ubin yang cocok dengan ubin item (jika Anda tidak ingat di mana menemukannya, lihat bagian "Proses Tilemap Dasar"). Anda akan melihat menu Jenis Collider. Secara default, sprite ditetapkan sebagai jenisnya, yaitu collider yang dihasilkan secara otomatis akan menggunakan Bentuk Fisika, yang telah kita bicarakan di atas. Jika jenisnya diatur ke kisi. maka itu akan selalu sama persis dengan bentuk sel mesh tempat item tersebut terpasang. Mungkin ini bukan cara yang paling akurat untuk mengimplementasikan colliders, tetapi untuk beberapa jenis game mungkin bermanfaat.
Untuk menggunakan collider untuk ubin ini, pilih Tilemap dengan objek dan tambahkan komponen Tilemap Collider.
Menggunakan Rule Tiles
Rule Tiles sangat berguna untuk mengotomatisasi proses menggambar dengan ubin. Rule Tile berfungsi seperti ubin biasa, tetapi memiliki daftar tambahan opsi ubin.
Dengan menggunakan parameter ini (aturan), ubin dapat secara otomatis memilih sprite yang akan diambil tergantung pada ubin tetangga.Ubin aturan berguna saat Anda tidak ingin memilih ubin secara manual dengan belokan yang berbeda, misalnya saat membuat batu atau platform. Mereka juga dapat digunakan untuk mengacak di antara berbagai variasi ubin yang sama, untuk menghindari pola berulang, dan bahkan untuk membuat ubin animasi.Ubin Aturan Isometrik dan Heksagonal tersedia dari repositori 2D Extras Unity di GitHub. Ini juga memiliki banyak aset Tilemap berguna lainnya yang perlu ditelusuri.Kami menambahkan Isometrik Starter Kit ke proyek.Rule Tiles untuk setiap tileset. Berikut adalah beberapa contoh dari ubin proyek yang dapat Anda coba:Pekerjaan selanjutnya
Sekarang Anda telah belajar tentang perangkat kartu ubin isometrik di Unity, unduh proyek kit Isometrik Pemula dan coba bekerja dengannya sendiri! Jika Anda seorang programmer, maka Anda memiliki kesempatan untuk berinteraksi dengan Tilemap melalui skrip, Anda dapat menggunakannya.Misalnya, dengan menonton video ini, Anda dapat mempelajari cara menerapkan pengontrol karakter sederhana yang kompatibel dengan Isometrik Tilemap:Grafik untuk proyek ini dibuat untuk Unity oleh @castpixel ; karyanya yang lain dapat dilihat di sini . Jika Anda ingin mempelajari lebih lanjut tentang membuat game 2D di Unity, maka Anda harus belajar beberapa kursus hebat dari situs web Learn . Jika Anda mencari sumber daya tambahan untuk bereksperimen dengan peta petak, maka periksa Unity Asset Store .Pertama kali membuat level dengan Tilemap? Pelajari cara membangun dunia dua dimensi di tutorial pemula Unity Learn ini.