Berbagi teknologi

79. Cooldown dan konsumsi skill pembuatan RPG UE5

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Pada artikel ini, kami terus mengoptimalkan skill, dan kini skill aktif yang ditambahkan ke karakter dapat disinkronkan ke UI. Pada artikel ini, kami akan meningkatkan konsumsi skill (melepaskan skill untuk mengurangi mana) dan mekanisme pendinginan.
Kita dapat melihat bahwa dalam nilai default kelas keterampilan, Anda dapat mengatur pendinginan dan GE yang dikonsumsi
Masukkan deskripsi gambar di sini
Oleh karena itu, selanjutnya kita akan menggunakan GE untuk mengatur pendinginan dan konsumsi keterampilan.

Menambahkan konsumsi keterampilan GE

Pertama-tama kita membuat cetak biru, dan kelas induk yang dipilih adalah Gameplay Effect
Masukkan deskripsi gambar di sini
Beri nama GE_Cost_FireBolt yang artinya biaya bola api.
Masukkan deskripsi gambar di sini
Untuk menggunakan durasi kami, pilih Instan.
Masukkan deskripsi gambar di sini
Lalu kami menambahkan Modifier untuk mengurangi jumlah mana karakter, menguranginya sebesar 20 setiap kali skill digunakan.
Masukkan deskripsi gambar di sini
GE konsumsi sederhana telah dibuat dan kami menerapkannya pada keterampilan
Masukkan deskripsi gambar di sini
Selanjutnya kita harus memanggil node Commit ability yang ada di skill tersebut. Node ini akan mengurangi mana yang dibutuhkan untuk skill tersebut.
Masukkan deskripsi gambar di sini
Kemampuan Komit adalah simpul terpadu untuk mengurangi mana dan pendinginan. Tentu saja, Anda juga dapat memisahkannya dan memiliki simpul terpisah untuk mengurangi konsumsi dan pendinginan.
Masukkan deskripsi gambar di sini

Jalankan efek uji
Masukkan deskripsi gambar di sini

Analisis Komitmen

Pertama, kami menentukan apakah skill akan diaktifkan jika mana tidak mencukupi. Kami mencetak data sebelum memproses konsumsinya.
Masukkan deskripsi gambar di sini
Jika jumlah mana cukup maka dapat berhasil dicetak, namun jika jumlah mana tidak dapat mendukung keluarnya skill maka tidak akan tercetak, yang membuktikan jika sumber daya tidak cukup maka skill tidak akan dimasukkan, dan itu tidak dinilai berdasarkan Kemampuan Komit, yang hanya digunakan untuk konsumsi node Sumber Daya.
Masukkan deskripsi gambar di sini
Kami melihat kode sumbernya dan kode yang dipanggilnya adalah K2_CommitAbility
Masukkan deskripsi gambar di sini
CommitAbility dipanggil ke dalam untuk mengimplementasikan logika, lalu diperiksa apakah konsumsinya cukup untuk menyediakan keterampilan, dan fungsinya dipanggil untuk mengurangi sumber daya.
Masukkan deskripsi gambar di sini
CommExecute adalah fungsi pengurangan sumber daya, yang secara internal memanggil pengurangan dan pendinginan sumber daya
Masukkan deskripsi gambar di sini
Lihatlah Terapkan Cooldown, yang akan mengambil tingkat keahlian dan menerapkan GE ke ASC
Masukkan deskripsi gambar di sini
Sumber daya aplikasi dikonsumsi dengan cara yang sama, dan tingkat keahlian juga diperoleh.
Masukkan deskripsi gambar di sini

Tetapkan level keahlian untuk mengonsumsi jumlah mana yang berbeda

Sekarang, kita tahu bahwa menggunakan konsumsi keterampilan dapat mengubah jumlah mana yang dikonsumsi melalui level keterampilan. Kita dapat menggunakan tabel untuk menentukan level dan konsumsi mana yang berbeda.
Jadi kami membuat tabel kurva baru untuk mengatur konsumsi mana keterampilan pada level yang berbeda.
Buat tabel kurva, pilih Konstan sebagai tipenya, dan atur konsumsi mana di setiap level ke nilai tetap.
Masukkan deskripsi gambar di sini
Dinamakan CT_Cost
Masukkan deskripsi gambar di sini
Tambahkan konsumsi mana skill secara internal dari level 1 ke level 10 Fireball.
Masukkan deskripsi gambar di sini
Kemudian gunakan tabel kurva di sini di GE, pilih baris yang dibuat, dan atur nilainya menjadi -1
Masukkan deskripsi gambar di sini
Kemudian ubah tingkat keterampilan awal dalam kode untuk pengujian
Masukkan deskripsi gambar di sini
Setelah mengeluarkan skill, jumlah mana menjadi tiga kali lipat dari sebelumnya, yang membuktikan bahwa tidak ada masalah dengan pengaturannya.
Masukkan deskripsi gambar di sini

Menambahkan cooldown keterampilan

Prinsip dari skill cooldown adalah dengan menerapkan tag pendingin pada ASC selama fase pendinginan. Skill ini tidak dapat digunakan lagi selama tag pendingin masih ada.
Jadi, kita ingin menerapkan pendinginan, pertama-tama buatlah label untuk pendinginan

FGameplayTag Cooldown_Fire_FireBolt; //火球术冷却标签
  • 1

Kemudian daftar ke pengelola tag

	GameplayTags.Cooldown_Fire_FireBolt = UGameplayTagsManager::Get()
		.AddNativeGameplayTag(
			FName("Cooldown.Fire.FireBolt"),
			FString("火球术冷却标签")
			);
  • 1
  • 2
  • 3
  • 4
  • 5

Menciptakan bola api untuk mendinginkan GE
Masukkan deskripsi gambar di sini
Ubah GE menjadi Has Duration yang sensitif terhadap waktu
Masukkan deskripsi gambar di sini
Seperti yang Anda lihat di sini, waktu pendinginan dapat diatur menggunakan berbagai metode yang kami gunakan untuk mengubah nilai sebelumnya. Di sini kami menggunakan yang paling sederhana, langsung menyetelnya ke 1 detik.
Masukkan deskripsi gambar di sini
Kita tidak perlu mengubah konten terkait karakter di sini. Kita hanya perlu menambahkan tag pendingin ke ASC ketika GE ini berlaku.
Masukkan deskripsi gambar di sini
Tambahkan label pendingin ke Aktor melalui komponen ini dan tambahkan label pendingin yang kita buat.
Masukkan deskripsi gambar di sini
Kemudian terapkan cooldown pada skill tersebut
Masukkan deskripsi gambar di sini
Saat menjalankan tes, kami menemukan bahwa kami hanya dapat melepaskan skill satu kali per detik.

Kami biasanya hanya menghasilkan satu contoh keterampilan karakter untuk suatu karakter Untuk mencegah klien mematikan keterampilan sebelum keterampilan dipicu, kami akan mengakhiri keterampilan ketika animasi montase keterampilan berakhir atau campurannya adalah. dibatalkan secara paksa, dan ketika keterampilan berakhir, untuk dapat terus memutar montase.
Kita juga perlu mengaktifkan Retrigger Instanced ability sehingga ketika dipicu lagi, pemicu sebelumnya akan dimatikan.
Masukkan deskripsi gambar di sini

Tindak lanjut: Sekarang kita sudah memiliki konsumsi dan dapat ditampilkan dengan benar di UI, namun pendinginan belum diterapkan. Setelah menggunakan skill, perkembangan pendinginan skill tidak dapat ditampilkan di UI skill perubahan skill pendinginan di masa depan dan menampilkannya di atas UI.