ADS

Adegan Pemain dan Tindakan Input

 

Adegan Pemain dan Tindakan Input

Dalam dua pelajaran berikutnya, kita akan mendesain adegan pemain, mendaftarkan tindakan input khusus, dan mengodekan gerakan pemain. Pada akhirnya, Anda akan memiliki karakter yang dapat dimainkan yang bergerak ke delapan arah.

Buat adegan baru dengan membuka menu Adegan di kiri atas dan mengeklik Adegan Baru .

gambar0

Buat node CharacterBody3D sebagai root

../../_images/add_character_body3D.webp

Beri nama CharacterBody3D menjadi Player. Badan karakter melengkapi area dan badan kaku yang digunakan dalam tutorial permainan 2D. Seperti badan kaku, badan karakter dapat bergerak dan bertabrakan dengan lingkungan, tetapi alih-alih dikendalikan oleh mesin fisika, Anda yang menentukan gerakannya. Anda akan melihat bagaimana kami menggunakan fitur unik node saat kami membuat kode mekanika lompatan dan squash.

Lihat juga

Untuk mempelajari lebih lanjut tentang berbagai jenis simpul fisika, lihat pengantar Fisika .

Untuk saat ini, kita akan membuat perangkat dasar untuk model 3D karakter kita. Ini akan memungkinkan kita untuk memutar model nanti melalui kode saat animasi diputar.

Tambahkan node Node3D sebagai anak Playerdan beri namaPivot

../../_images/adding_node3D.webp

Kemudian, di dok FileSystem, perluas art/folder tersebut dengan mengklik dua kali, lalu seret dan letakkan player.glbke Pivot.

gambar1

Ini akan membuat model sebagai anak dari Pivot. Anda dapat mengganti namanya menjadi Character.

gambar2

Catatan

File-file tersebut .glbberisi data adegan 3D berdasarkan spesifikasi glTF 2.0 sumber terbuka. File-file tersebut merupakan alternatif modern dan canggih untuk format berpemilik seperti FBX, yang juga didukung Godot. Untuk menghasilkan file-file ini, kami mendesain model dalam Blender 3D dan mengekspornya ke glTF.

Seperti semua jenis simpul fisika, kita memerlukan bentuk tabrakan agar karakter kita bertabrakan dengan lingkungan. Pilih Playersimpul lagi dan tambahkan simpul anak CollisionShape3D . Di Inspector , pada properti Shape , tambahkan SphereShape3D baru .

../../_images/add_capsuleshape3d.webp

Rangka kawat bola muncul di bawah karakter.

gambar3

Bentuk ini akan digunakan oleh mesin fisika untuk bertabrakan dengan lingkungan, jadi kami ingin bentuknya lebih sesuai dengan model 3D. Buat bentuknya sedikit lebih besar dengan menyeret titik oranye di area pandang. Bola saya memiliki radius sekitar 0.8meter.

Lalu, pindahkan bentuk tumbukan ke atas sehingga bagian bawahnya kira-kira sejajar dengan bidang kisi.

gambar4

Untuk memudahkan pemindahan bentuk, Anda dapat mengubah visibilitas model dengan mengeklik ikon mata di samping Characteratau Pivotsimpul.

gambar5

Simpan adegan sebagaiplayer.tscn

Setelah node siap, kita hampir bisa memulai pengkodean. Namun, pertama-tama, kita perlu menentukan beberapa tindakan input.

Membuat tindakan input

Untuk menggerakkan karakter, kita akan mendengarkan masukan pemain, seperti menekan tombol panah. Di Godot, meskipun kita dapat menulis semua pengikatan tombol dalam kode, ada sistem canggih yang memungkinkan Anda menetapkan label pada sekumpulan tombol dan tombol. Ini menyederhanakan skrip kita dan membuatnya lebih mudah dibaca.

Sistem ini adalah Input Map. Untuk mengakses editornya, buka menu Project dan pilih Project Settings .

gambar6

Di bagian atas, ada beberapa tab. Klik Input Map . Jendela ini memungkinkan Anda untuk menambahkan tindakan baru di bagian atas; tindakan tersebut adalah label Anda. Di bagian bawah, Anda dapat mengikat kunci ke tindakan ini.

gambar7

Proyek Godot dilengkapi dengan beberapa tindakan yang telah ditetapkan sebelumnya yang dirancang untuk desain antarmuka pengguna (lihat tangkapan layar di atas). Tindakan ini akan terlihat jika Anda mengaktifkan tombol Tampilkan Tindakan Bawaan . Kita dapat menggunakannya di sini, tetapi sebagai gantinya kita akan menentukan tindakan kita sendiri untuk mendukung gamepad. Biarkan Tampilkan Tindakan Bawaan dinonaktifkan.

Kita akan memberi nama tindakan kita move_leftmove_rightmove_forwardmove_back, dan jump.

Untuk menambahkan tindakan, tulis namanya di bilah di bagian atas dan tekan Enter.

gambar8

Buat lima tindakan berikut:

gambar9

Untuk mengikat tombol atau kunci ke suatu tindakan, klik tombol "+" di sebelah kanannya. Lakukan ini untuk move_left. Tekan tombol panah kiri dan klik OK .

../../_images/left_inputmap.webp

Ikat juga Akuncinya ke tindakan move_left.

gambar12

Sekarang mari tambahkan dukungan untuk joystick kiri gamepad. Klik tombol "+" lagi, tetapi kali ini, pilih Manual Selection -> Joypad Axes .

../../_images/joystick_axis_input.webp

Pilih sumbu X negatif pada joystick kiri.

../../_images/left_joystick_select.webp

Biarkan nilai lainnya sebagai default dan tekan OK

Catatan

Jika Anda ingin kontroler memiliki tindakan input yang berbeda, Anda harus menggunakan opsi Perangkat di Opsi Tambahan. Perangkat 0 sesuai dengan gamepad pertama yang dicolokkan, Perangkat 1 sesuai dengan gamepad kedua yang dicolokkan, dan seterusnya.

Lakukan hal yang sama untuk tindakan input lainnya. Misalnya, ikat panah kanan, D, dan sumbu positif joystick kiri ke move_right. Setelah mengikat semua tombol, antarmuka Anda akan terlihat seperti ini.

gambar15

Tindakan terakhir yang harus disiapkan adalah jumpaksi. Hubungkan tombol Spasi dan tombol A pada gamepad.

gambar16

Tindakan masukan lompatan Anda akan terlihat seperti ini.

gambar18

Itulah semua tindakan yang kita perlukan untuk permainan ini. Anda dapat menggunakan menu ini untuk memberi label pada grup tombol dan kunci apa pun dalam proyek Anda.

Pada bagian berikutnya, kita akan membuat kode dan menguji pergerakan pemain.

Tidak ada komentar:

Posting Komentar