Musuh yang terjebak di pintu atau menabrak dinding merusak pengalaman bermain. Menciptakan NPC yang responsif memerlukan pemahaman mendalam tentang mesin navmesh 3D Roblox.
Layanan bawaan `PathfindingService` menyediakan kalkulasi rute A* untuk lingkungan dinamis. Panduan ini mengupas tuntas parameter agent, pembobotan biaya `PathfindingModifier`, dan optimasi raycast.
1. Cara Roblox Menghitung Jalur: Grid Voxel 3D
Memahami geometri navigasi agar rute tidak gagal:
- Grid Voxel: Jika AgentRadius melebihi lebar celah, status menjadi NoPath.
- Tabel Parameter: Sesuaikan AgentRadius, AgentHeight, dan AgentCanJump dengan model.
- Array Waypoint: Koordinat 3D yang menyimpan aksi berjalan atau melompat.
2. PathfindingModifiers & Biaya Material Kustom
Kendalikan area yang disukai atau dihindari NPC:
- PathfindingModifier: Menetapkan label seperti Lava atau Jalan ke part.
- Pengali Biaya: Biaya tinggi memaksa NPC memutar menghindari bahaya.
- Flag PassThrough: Memperlakukan pintu sebagai jalur yang dapat dilalui.
3. Mencegah Gerakan Patah-patah: Raycasting
Teknik menghilangkan gerakan kaku:
- Raycast Garis Pandang: Bergerak lurus jika tidak ada rintangan.
- Peralihan Awal: Ganti waypoint ketika berjarak 3-4 stud untuk menjaga momentum.
- Throttling: Hitung ulang rute hanya setiap 0.3-0.5 detik.
4. Skrip Lua Produksi: Pengejar Cerdas
Skrip pengejar performa tinggi dengan deteksi macet:
-- Skrip PathfindingService dengan Raycast
local PathfindingService = game:GetService("PathfindingService")
Kemampuan utama: penyesuaian dimensi agen, lompatan terkoordinasi, dan pemulihan otomatis.
5. Optimasi Performa untuk Puluhan NPC
Menjalankan 50+ NPC tanpa lag server:
- Interpolasi Sisi Klien: Server menghitung jalur, klien memperhalus pergerakan.
- LOD Jarak: Kurangi frekuensi pembaruan untuk NPC yang jauh.
- Antrean Eksekusi: Patuhi batas 500 kalkulasi per menit.
Ketahui Profil Pemikiran Algoritmik Anda
Merancang AI membutuhkan penalaran logika yang kuat dan perencanaan spasial.
Mulai Tes Tipe Otak GratisPertanyaan Umum (Roblox Pathfinding)
Mengapa mengembalikan NoPath?
Target terhalang atau celah jalan lebih sempit daripada AgentRadius.
Bagaimana cara mencegah NPC tersangkut di sudut?
Atur AgentRadius sedikit lebih besar dari ukuran fisik karakter.
Apa perbedaan MoveTo dan Pathfinding?
MoveTo berjalan lurus tanpa menghindari rintangan; Pathfinding menghitung rute A*.