Sistem fisika membantu Anda mensimulasikan perilaku fisik dunia nyata seperti tabrakan dan gaya.
Modul Fisika
Fisika adalah mod yang dimuat secara default.
Anda dapat mengubah pengaturan fisika global di sini:
- Arah dan besarnya gravitasi.
- Material fisik default. Silakan lihat bagian Tabrakan - Material Fisik di bawah ini.
- Ambang batas energi global. Hitung energi kinetik suatu objek menggunakan rumus:
m menyatakan massa suatu benda dalam kg.
v melambangkan kecepatan fisik dalam m/s.
Jika energi kinetik suatu benda kurang dari ambang batas ini, benda tersebut akan berhenti bergerak. Misalnya, jika ambang batas ditetapkan pada 0,5, benda seberat 1 kg akan berhenti bergerak jika kecepatannya kurang dari 1 m/s.
- Ambang Batas Tabrakan Pengendali Karakter. Hanya berlaku untuk mod pemain yang mengaktifkan [Gunakan Pengendali Pemain dengan Fisika] atau pengendali karakter yang sepenuhnya kustom.
Rumus momentumnya adalah:
Bahasa Indonesia: $$
p=mv
Bahasa Indonesia: $$
m adalah massa, satuannya kg.
v adalah kecepatan dalam m/s.
Ketika terjadi tabrakan, momentum pemain dan benda kaku yang tertabrak dikurangi, dan modulus perbedaan momentum pada normal tabrakan diambil dan dibandingkan dengan ambang batas tabrakan pengendali karakter. Jika kurang dari ambang batas ini, benda kaku akan terdorong dengan stabil, jika tidak, tabrakan hebat akan terjadi.
Secara garis besar, parameter yang mempengaruhi apakah suatu tabrakan bersifat keras adalah:
-
Semakin besar massa pemain atau karakter, semakin besar kemungkinan terjadinya tabrakan hebat.
-
Makin cepat kecepatan relatif antara pemain atau karakter dan benda kaku yang tertabrak, makin besar kemungkinan terjadi tabrakan hebat.
-
Semakin tinggi ambang batas tabrakan pada pengontrol karakter yang ditetapkan, semakin kecil kemungkinan terjadinya tabrakan hebat.
Misalnya, saat ambang batas tabrakan pengendali karakter ditetapkan pada angka 50, pemain berbobot 50 kg yang melaju dengan kecepatan 1 m/s dapat bertabrakan dengan keras dengan benda kaku diam apa pun yang massanya serupa dengan pemain atau karakter tersebut dalam tabrakan langsung.
- Tingkat fisik. Terjadinya tabrakan pada tingkat yang berbeda bergantung pada konfigurasi fisik.
Untuk mengonfigurasi lapisan fisika non-default untuk pemain:
Nonaktifkan tabrakan level Kustom dan Default dalam Konfigurasi Fisika:
Anda akan menemukan bahwa pemain dapat melewati objek apa pun dari level fisika default tanpa merasa:
Objek yang mengandalkan pemicu tabrakan tidak akan memicu:
Bentuk Tabrakan dan Tabrakan
Ada dua komponen dasar yang diperlukan untuk menerapkan objek khusus ke sistem fisika:
Komponen Bentuk Tabrakan dan Komponen Tabrakan.
Untuk sebagian besar objek, Anda hanya akan menemukan satu komponen tumbukan pada objek tersebut.
Karena mereka umumnya bukan objek khusus:
Untuk bentuk tabrakan khusus dan material fisik, kami sarankan Anda membuat node kosong baru dan mengoperasikannya:
Bentuk Tabrakan
Komponen bentuk tumbukan menentukan batas-batas di mana objek bertabrakan.
Jenis Tabrakan:
Jenis tumbukan menentukan bentuk dasar tumbukan. Kami menyediakan tiga bentuk dasar: kubus, bola, kapsul, dan tumbukan jaring.
Penumbuk jala merupakan bentuk tumbukan yang disimulasikan berdasarkan batas-batas suatu model dan mendekati tampilan visual model tersebut.
Untuk node kosong yang dibuat, Anda perlu menambahkan komponen rendering khusus untuk menentukan bentuk dan ukuran gridnya.
Untuk bentuk tumbukan dasar, Anda dapat mengubah posisi, ukuran, atau menyesuaikan bentuknya secara manual:
Seret titik kuning pada kotak tabrakan untuk menyesuaikan bentuk tabrakan
Bentuk tabrakan mesh memiliki opsi untuk menjadi cembung atau tidak
Convex Polygons: Apakah akan bertabrakan dengan Mesh Collider lainnya. Mesh Collider tanpa Convex Polygons yang diaktifkan hanya didukung pada GameObjects tanpa komponen Rigidbody. Untuk menggunakan Mesh Collider dengan komponen Rigidbody, centang opsi Convex Polygons.
Tabrakan
Bahan Fisik
Bahan fisik menentukan beberapa sifat fisik benda tumbukan.
Untuk objek kustom, material fisik benturan dapat disesuaikan. Namun, untuk sebagian besar objek non-kustom yang disediakan secara resmi, material fisik tidak mendukung modifikasi.
File material fisik dapat dibuat.
Anda dapat mengubah properti berikut di panel inspektur berkas material fisik sehingga semua objek yang dipasang dengan material fisik akan memperoleh properti fisik yang sesuai.
Apakah itu pemicu?
Bila kotak centang Apakah Ini Pemicu dicentang, maka penumbuk mengabaikan tumbukan fisik namun dapat memicu kejadian.
Ini berarti bahwa objek tersebut tidak akan berpartisipasi dalam logika tabrakan fisika default:
Namun peristiwa tabrakan dapat dipicu:
Tingkat Fisik
Menentukan tingkat fisika. Terjadinya tabrakan pada tingkat yang berbeda bergantung pada konfigurasi dalam modul fisika.
Benda Tegar
Komponen Rigidbody membuat objek terkendali secara fisik, sehingga memungkinkannya dipengaruhi oleh gaya.
Untuk menambahkan komponen Rigidbody, Anda harus terlebih dahulu memiliki komponen Collision.
Benda tegar terbagi menjadi statis, dinamis dan kinematik.
Benda kaku statis sebagian besar digunakan untuk objek yang tidak memiliki kecepatan dan tidak terpengaruh gaya, seperti tanah, dinding, dan objek lain yang tidak bergerak. Memodifikasi posisi dan skala objek ini akan meningkatkan kinerja overhead.
Benda kaku dinamis paling banyak digunakan untuk objek dengan sifat mekanis seperti massa dan kecepatan, yang dapat dipengaruhi oleh gaya.
Anda dapat mengubah parameter terkait fisika seperti pusat gravitasi dan massa di bawah opsi Benda Tegar Dinamis. Anda juga dapat memilih untuk mengunci sumbu tertentu sehingga benda tegar tidak akan mengalami perpindahan atau rotasi tertentu.
Benda kaku kinematik dapat dikontrol secara manual untuk bergerak dan berputar, tetapi tidak terpengaruh oleh benturan atau gaya dari benda kaku lainnya. Benda kaku ini sering digunakan dalam produksi animasi dan efek khusus.
Pengontrol Karakter
##Pengendali Pemain FF
Secara default, tindakan pemain pada karakter pemain diwarisi dari pengendali pemain FreeFire.
Pengontrol pemain dengan fisika
Dalam modul pemain, setelah memeriksa [Apakah akan menggunakan pengontrol pemain dengan efek fisika], Anda dapat mengubah parameter fisik beberapa pengontrol pemain. Dalam hal ini, pemain mulai berpartisipasi dalam simulasi fisik dalam permainan sampai batas tertentu, seperti konfigurasi [Ambang Batas Tabrakan Pengontrol Karakter] dalam modul fisika akan mulai berlaku.
<strong>Apakah akan menggunakan pengontrol pemain dengan efek fisik: </strong>Centang untuk menggunakan pengontrol dengan efek fisik khusus dan perluas konfigurasi terkait.
<strong>Tinggi total, termasuk belahan atas dan bawah:</strong> Tinggi badan tabrakan kapsul karakter.
<strong>Jari-jari belahan atas dan bawah: </strong>Jari-jari kapsul tidak boleh melebihi 1/2 dari tingginya.
<strong>Kualitas:</strong> Kualitas pemain.
<strong>Sudut menanjak maksimum:</strong> Lereng yang melebihi sudut ini tidak dapat didaki dan pemain akan mulai meluncur ke bawah.
<strong>Offset Vertikal Langkah:</strong> Jarak yang dapat ditempuh pemain dari konfigurasinya tanpa meninggalkan tanah atau terhalang, umumnya digunakan saat naik dan turun tangga.
<strong>Jarak gerak minimum:</strong> Jika jarak yang harus ditempuh pengendali karakter kurang dari nilai ini, pemain akan tetap tidak bergerak.
Ketebalan Kulit: Kedalaman objek lain yang diizinkan untuk tertanam ke dalam collider karakter, digunakan untuk menghindari getaran atau lengket.
<strong>Percepatan gravitasi yang Anda terima:</strong> Percepatan gravitasi yang Anda terima dalam tiga dimensi. Untuk karakter pemain, pengaturan ini menggantikan pengaturan fisika global.
<strong>Aktifkan dorongan khusus:</strong> Saat diaktifkan, gaya yang diberikan oleh karakter saat mendorong benda kaku dapat disesuaikan. Perluas konfigurasi yang relevan setelah mengaktifkannya.
<strong>Kekuatan Dorong Kustom:</strong> Jumlah gaya yang diterapkan saat karakter mendorong benda kaku.
<strong>Ketinggian lompatan ganda:</strong>Ketinggian lompatan saat melakukan lompatan ganda.
<strong>Jumlah maksimum multi-hop: </strong>Jumlah maksimum lompatan yang didukung oleh setiap multi-hop.
<strong>Gerakan Udara:</strong> Saat diaktifkan, pemain dapat mengubah kecepatan dan arah gerakan mereka di udara.
Pengontrol karakter yang sepenuhnya dapat disesuaikan
Pada pengontrol karakter kustom sepenuhnya, Anda dapat sepenuhnya menyesuaikan pengontrol karakter tanpa batasan apa pun, tetapi pengontrol ini tidak memiliki fungsi default apa pun.
Untuk menggunakan pengontrol karakter yang sepenuhnya kustom, Anda perlu menggunakan komponen pengontrol karakter, dan objek yang digunakan sebagai karakter yang dikontrol tidak boleh memiliki benturan, bentuk benturan, badan kaku, dan komponen lainnya.
Silakan lihat contoh di bawah untuk penggunaan spesifik.
Contoh
Kami akan menjelaskan cara menggunakan pengontrol karakter khusus dengan membuat pengontrol karakter mode horizontal sederhana.
Siapkan situasinya
Bangun saja sebuah adegan.
Membuat karakter pemain
Di sini kita hanya membuat karakter pemain yang sederhana.
Buat objek kosong:
Tambahkan komponen Pengontrol Karakter ke objek ini.
Tambahkan atribut khusus ke pengontrol karakter: status. Kita akan menggunakan status untuk mengontrol gerakan kiri dan kanan karakter pemain nanti.
Saat ini karakter tersebut belum memiliki penampilan, jadi tambahkan simpul anak yang kosong ke simpul kosong ini untuk menampilkan penampilan.
Tambahkan komponen render khusus untuk node anak yang kosong.
Pilih Mesh sebagai Silinder.
Pada saat ini, pilih simpul induk dan amati karakter kita di editor adegan.
Jaring kapsul adalah komponen pengontrol karakter dari objek induk, dan silinder adalah komponen render khusus dari objek anak. Kami menemukan bahwa pengontrol karakter tampak sedikit lebih tinggi daripada yang terlihat, dan memiliki rentang yang lebih kecil daripada model.
Sesuaikan tinggi relatif objek anak dan tampilan pengontrol karakter sehingga kira-kira cocok.
Harap perhatikan secara khusus bahwa untuk pengontrol karakter, tingginya harus lebih besar dari dua kali radius.
Tetapkan karakter yang dibuat sebagai prefab dan ganti namanya menjadi New_player (atau nama apa pun yang Anda suka). Hapus objek kosong yang digunakan dalam adegan.
Inisialisasi
Buat skrip global untuk memblokir pemain default, buat pemain baru, dan atur metode pergerakan.
1. Hapus UI default
Untuk menggunakan pengontrol karakter khusus, Anda harus terlebih dahulu menyelesaikan pengontrol pemain bawaan. Karakter pemain tidak dapat dihapus dari permainan, tetapi kita dapat menggunakan beberapa metode untuk membuat karakter pemain tidak dapat dikontrol atau dilihat.
Dengan menutup antarmuka UI default, kita dapat memblokir semua UI yang dapat secara langsung memanipulasi pemutar default.
2. Gunakan kamera khusus
Kamera default mengikuti karakter pemain default, jadi kita perlu menggunakan kamera khusus baru untuk hanya mengamati karakter pemain baru yang kita buat.
3. Menyimpan data pemain
Buat variabel global untuk menyimpan pengontrol karakter khusus setiap pemain.
4. Mengatur metode pergerakan
Kami mengendalikan pergerakan dengan menilai status pengontrol karakter, menetapkan 0 untuk tidak ada pergerakan, 1 untuk pergerakan ke kiri, dan 2 untuk pergerakan ke kanan.
Setiap kali pembaruan dilakukan, semua pengontrol kustom menjalankan metode gerakan. Metode gerakan memeriksa status pengontrol pemain. Jika dalam status bergerak, pengontrol akan bergerak sedikit ke arah yang sesuai.
Ketika bingkai tetap diperbarui, peristiwa dipicu pada frekuensi 30 kali per detik, yang setara dengan pengontrol karakter yang bergerak dengan kecepatan 30*0,1=3m/s.
Buat UI tindakan khusus
Buat UI untuk mengontrol pergerakan pengontrol karakter kustom.
Ketiga tombol tersebut digunakan untuk menggerakkan pemain ke kiri, kanan, dan melompat.
Tambahkan skrip ke entitas UI dan gunakan logika pemrosesan panggilan balik:
- Lompat
Melompat dicapai dengan menerapkan gaya pada pengendali karakter khusus.
Antarmuka aplikasi gaya dapat langsung memilih kecepatan aplikasi, menghindari perhitungan gaya dan massa.
- Seluler
Kami mengendalikan pergerakan dengan mengubah status, menangani status pemain dengan menekan dan melepaskan tombol secara terpisah.
Tambahkan panggilan balik pada tombol untuk memanggil metode ini masing-masing.
- Lompat
- Seluler
men-debug
Logikanya bekerja normal.
Ditambahkan: Debugging lensa
Saat menggunakan lensa khusus, terkadang sulit untuk menentukan parameter lensa yang tepat.
Kita dapat menyesuaikan kamera selama fase pengembangan dengan menambahkan UI untuk mengendalikan kamera. Menggunakan ide yang sama dapat membantu Anda terus mengoptimalkan kinerja pengendali karakter selama fase debugging.
Buat UI
Kami menggunakan tombol untuk mengontrol pergerakan lensa ke atas, ke bawah, ke kiri, ke kanan, ke depan, dan ke belakang, serta mencetak offset lensa saat ini melalui tombol.
Menulis naskah
Tambahkan skrip untuk entitas UI.
Gerakkan lensa, ambil contoh gerakan ke atas:
Parameter lensa cetak:
Tambahkan panggilan balik
Tambahkan panggilan balik untuk setiap tombol:
Ambil contoh naik jabatan:
Parameter lensa cetak:
Dengan cara ini Anda dapat menyesuaikan kamera untuk mencapai efek yang Anda inginkan saat men-debug game: