fisika

Sistem fisika membantu Anda mensimulasikan perilaku fisik dunia nyata seperti tabrakan dan gaya.

Modul Fisika

Fisika adalah mod yang dimuat secara default.

gambar-20240923155343336

Anda dapat mengubah pengaturan fisika global di sini:

  1. Arah dan besarnya gravitasi.
  2. Material fisik default. Silakan lihat bagian Tabrakan - Material Fisik di bawah ini.
  3. Ambang batas energi global. Hitung energi kinetik suatu objek menggunakan rumus:
Ek=1/2<em>m</em>v2
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.
  1. 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:

  1. Semakin besar massa pemain atau karakter, semakin besar kemungkinan terjadinya tabrakan hebat.

  2. Makin cepat kecepatan relatif antara pemain atau karakter dan benda kaku yang tertabrak, makin besar kemungkinan terjadi tabrakan hebat.

  3. 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.

  1. Tingkat fisik. Terjadinya tabrakan pada tingkat yang berbeda bergantung pada konfigurasi fisik.

Untuk mengonfigurasi lapisan fisika non-default untuk pemain:

gambar-20240717181446557

Nonaktifkan tabrakan level Kustom dan Default dalam Konfigurasi Fisika:

gambar-20240717181534541

Anda akan menemukan bahwa pemain dapat melewati objek apa pun dari level fisika default tanpa merasa:

gambar-20240923163608324

Objek yang mengandalkan pemicu tabrakan tidak akan memicu:

gambar-20240923163636790

Bentuk Tabrakan dan Tabrakan

Ada dua komponen dasar yang diperlukan untuk menerapkan objek khusus ke sistem fisika:

Komponen Bentuk Tabrakan dan Komponen Tabrakan.

gambar-20240923150401236

Untuk sebagian besar objek, Anda hanya akan menemukan satu komponen tumbukan pada objek tersebut.

Karena mereka umumnya bukan objek khusus:

gambar-20240923150521786

Untuk bentuk tabrakan khusus dan material fisik, kami sarankan Anda membuat node kosong baru dan mengoperasikannya:

gambar-20240923150725335

gambar-20240923150807166

Bentuk Tabrakan

Komponen bentuk tumbukan menentukan batas-batas di mana objek bertabrakan.

Jenis Tabrakan:

gambar-20240923153336796

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.

gambar-20240923153752769

Untuk bentuk tumbukan dasar, Anda dapat mengubah posisi, ukuran, atau menyesuaikan bentuknya secara manual:

gambar-20240923153907205

Seret titik kuning pada kotak tabrakan untuk menyesuaikan bentuk tabrakan

Bentuk tabrakan mesh memiliki opsi untuk menjadi cembung atau tidak

gambar-20240923154035083

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.

gambar-20240923154559903

File material fisik dapat dibuat.

gambar-20240923154405512

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.

gambar-20240923154620475

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:

gambar-20240923154941118

Namun peristiwa tabrakan dapat dipicu:

gambar-20240923155036397

gambar-20240923155220723

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.

gambar-20240924112556743

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.

gambar-20250630165950663

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.

gambar-20240924115708102

<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.

gambar-20240924120030311

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.

gambar-20240926150721110

Membuat karakter pemain

Di sini kita hanya membuat karakter pemain yang sederhana.

Buat objek kosong:

gambar-20240926150911348

Tambahkan komponen Pengontrol Karakter ke objek ini.

gambar-20240926151012964

Tambahkan atribut khusus ke pengontrol karakter: status. Kita akan menggunakan status untuk mengontrol gerakan kiri dan kanan karakter pemain nanti.

gambar-20240926151107697

Saat ini karakter tersebut belum memiliki penampilan, jadi tambahkan simpul anak yang kosong ke simpul kosong ini untuk menampilkan penampilan.

gambar-20240926151307907

Tambahkan komponen render khusus untuk node anak yang kosong.

gambar-20240926151344936

Pilih Mesh sebagai Silinder.

gambar-20240926151443376

Pada saat ini, pilih simpul induk dan amati karakter kita di editor adegan.

gambar-20240926151546844

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.

gambar-20240926151803081

gambar-20240926151903119

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.

gambar-20240926152126406

Inisialisasi

Buat skrip global untuk memblokir pemain default, buat pemain baru, dan atur metode pergerakan.

gambar-20240926153801533

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.

gambar-20240926152534232

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.

gambar-20240926152824590

3. Menyimpan data pemain

Buat variabel global untuk menyimpan pengontrol karakter khusus setiap pemain.

gambar-20240926153846600

gambar-20240926153853898

gambar-20240926153934182

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.

gambar-20240926154524350

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.

gambar-20240926154930426

Ketiga tombol tersebut digunakan untuk menggerakkan pemain ke kiri, kanan, dan melompat.

Tambahkan skrip ke entitas UI dan gunakan logika pemrosesan panggilan balik:

  1. Lompat

Melompat dicapai dengan menerapkan gaya pada pengendali karakter khusus.

gambar-20240926155224218

Antarmuka aplikasi gaya dapat langsung memilih kecepatan aplikasi, menghindari perhitungan gaya dan massa.

  1. Seluler

Kami mengendalikan pergerakan dengan mengubah status, menangani status pemain dengan menekan dan melepaskan tombol secara terpisah.

gambar-20240926155731649

gambar-20240926155753513

Tambahkan panggilan balik pada tombol untuk memanggil metode ini masing-masing.

  1. Lompat

gambar-20240926155857104

  1. Seluler

gambar-20240926155911048

gambar-20240926155924485

men-debug

gambar-20240926160400721

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.

gambar-20240926160759275

Tambahkan skrip untuk entitas UI.

Gerakkan lensa, ambil contoh gerakan ke atas:

gambar-20240926160942701

Parameter lensa cetak:

gambar-20240926161034212

Tambahkan panggilan balik

Tambahkan panggilan balik untuk setiap tombol:

Ambil contoh naik jabatan:

gambar-20240926161123354

Parameter lensa cetak:

gambar-20240926161149538

Dengan cara ini Anda dapat menyesuaikan kamera untuk mencapai efek yang Anda inginkan saat men-debug game:

gambar-20240926161255378