NPC (karakter non-pemain) dapat menambahkan banyak kedalaman ke pengalaman.Semua NPC berikut dapat disesuaikan secara visual, perilaku mereka dimodifikasi , dan zombie/prajurit bahkan dapat mempertahankan area dengan menyerang pemain atau karakter lain menggunakan sistem tag tag untuk mengatur perilaku.
Untuk menggunakan NPC di game Anda:
Di halaman item NPC, klik tombol Dapatkan hijau dan konfirmasi transaksi.
Di Roblox Studio, buka Toolbox( Lihat → Toolbox ).
Pilih bagian kotak alat Anda Inventaris .
Temukan NPC dan klik untuk menambahkannya ke tempat.
Struktur karakter
Setiap model NPC biasanya berisi objek berikut:
Nama objek atau [Jenis] | Jenis | Deskripsi |
---|---|---|
Animasi | Folder | Berisi Animations , seperti AttackAnimation atau DeathAnimation . |
Posisi awal | Folder | Berisi informasi posing. |
Animasi | Script | Memuat dan memainkan animasi di rig karakter. Lihat Animasi untuk lebih banyak detail. |
[Aksesori] | Accessory | Salah satu mungkin banyak Accessories untuk NPC seperti topi, senjata, dll |
Kesehatan | Script | Biasanya menyembuhkan kesehatan Humanoid dari waktu ke waktu. Menonaktifkan ini akan mencegah karakter menyembuhkan kesehatan. |
Humanoid | Humanoid | Mengelola properti terkait Humanoid , seperti Humanoid.Health , Humanoid.WalkSpeed , Humanoid.DisplayDistanceType , dll. |
NPC | Script | Meng定义 karakter-specific perilaku seperti berkeliaran, menyerang, dll.Orangtua objek berikut: Pembantu ( ModuleScript ) mendefinisikan kelas yang berguna dalam melepaskan sumber daya yang digunakan.: Ragdoll ( ModuleScript ) mendefinisikan fungsi yang mengubah karakter menjadi tubuh fisik longgar (orang tua RigTypes ModuleScript yang mendefinisikan beberapa fungsi pembantu). |
Suara RbxNpc | Script | Mendefinisikan dan mengelola perilaku yang terkait dengan efek suara karakter seperti berlari, mati, dll. |
Bagian Tubuh | BasePart | Berbagai bagian tubuh karakter yang terpasang ke HumanoidRootPart atau bagian tubuh tetangga melalui Motor6D atau objek batasan.Lihat BodyParts untuk lebih banyak rincian. |
Bagian Akar Humanoid | BasePart | Bagian tak terlihat khusus yang dianggap sebagai akar dari rig; ini juga merupakan PrimaryPart dari karakter Model. |
Konfigurasi | Configuration | Berisi objek nilai yang menyetel berbagai perilaku. Lihat Konfigurasi untuk lebih banyak detail. |
Catatan desain
Saat menggunakan kit NPC, ingatlah catatan desain berikut:
Penampilan visual NPC dapat disesuaikan dengan menambahkan/memodifikasi berbagai objek [BodyParts] dan dengan menambahkan objek Accessory.
Para prajurit, zombie ngiler, dan robot NP-C 9000 menggunakan Rthro sebagai dasar rig mereka.Namun, Robot RO-01 menggunakan basis Rthro yang dimodifikasi yang menambahkan bagian pendorong yang terhubung ke UpperTorso menggunakan WeldConstraints .Menggunakan persambungan sederhana dengan cara ini memungkinkan Anda menyertakan geometri ekstra untuk karakter Anda tanpa mengubah rig dasar asli.
Pada leveldasar, animasi NPC dapat disesuaikan dengan memodifikasi AnimationId dari objek Animasi yang ada dalam posisi Animasi skrip, atau yang berada di dalam folder Animasi .Perubahan seperti itu pada dasarnya adalah pertukaran aset - untuk mengubah rincian yang lebih halus, Anda dapat membuat salinan khusus dari animasi yang ada, dan untuk memainkan animasi di bawah kondisi yang berbeda, Anda dapat mengedit Animasi atau NPC skrip secara langsung.Untuk informasi lebih lanjut, lihat Animasi .
Animasi
Animasi di NPC menangani konfigurasi terkait animasi dan berisi objek berikut:
Nama objek atau [Jenis] | Jenis | Deskripsi |
---|---|---|
Skala Peredam Peratusan Persen | NumberValue | Mendefinisikan bagaimana kecepatan animasi dimodifikasi saat karakter diukur (kurang dari 1 berarti skala pemutaran animasi terbalik saat karakter diukur). |
Mainkan Emote | BindableFunction | Ini dapat diaktifkan oleh skrip lain untuk memaksakan asumsi posisi. |
[Pose] | StringValue | Referensi ke kategori animasi yang dapat dimainkan seperti diam, loncat, jalan, dll.Objek ini dapat menjadi orangtua dari berapa pun jumlah Animations . Orangtua ini memprioritaskan salah satu animasi banyak untuk dimainkan saat posisi dianggap; biasanya digunakan untuk menambahkan variasi ke posisi menganggur dan menari. |
Bagian Tubuh
Bagian Tubuh BasePart di NPC Model mewakili berbagai bagian tubuh karakter dan berisi objek berikut:
Nama objek atau [Jenis] | Jenis | Deskripsi |
---|---|---|
AvatarPartScaleType | StringValue | Menentukan bagaimana bagian akan diukur; nilai bisa menjadi Klasik , ProporsiNormal , atau ProporsiLangsing . |
Ukuran Asli | Vector3Value | Menentukan ukuran bagian saat skala karakter adalah 1. |
[Lampir] | Attachment | Mendefinisikan titik relatif terhadap bagian individu yang skrip, efek, dan objek seperti Tool atau Accessory dapat gunakan selama penempatan. |
[Motor6D] | Motor6D | Sebuah animasi bersama antara dua bagian tubuh.Perhatikan bahwa tergantung pada nama untuk konsisten dengan yang digunakan saat animasi dibuat, jadi hindari mengganti nama objek ini. |
[Bersama] | WeldConstraint , Constraint , JointInstance | Satuan bersama yang tidak beranimasi antara dua bagian tubuh. |
[Suara] | Sound | Biasa ditemukan di kepala atau HumanoidRootPart ; memutar suara dari dalam rig yang dikendalikan oleh skrip RbxNpcSounds. |
Konfigurasi
Setiap NPC termasuk objek Configuration dalam hierarkinya yang bertindak sebagai wadah objek nilai.Ini digunakan oleh skrip NPC untuk menyetel berbagai perilaku.Kecuali dinyatakan lain, ini berlaku untuk semua karakter.
Nama objek atau [Jenis] | Jenis | Deskripsi |
---|---|---|
Hancurkan pada Kematian | BoolValue | Menyebabkan seluruh NPC hancur segera setelah mati. Nonaktifkan ini agar ragdoll tetap ada. |
PatroliAktif | BoolValue | Menyebabkan NPC berkeliaran di area sekitar posisi awalnya. |
PatrolRadius | NumberValue | Mendefinisikan jarak maksimum yang akan ditempuh NPC dari posisi awalnya, asumsi PatrolEnabled adalah benar. |
RagdollDiaktif | BoolValue | Menyebabkan NPC menjadi lemas saat mati, bukan pecah. |
Serangan Kerusakan | NumberValue | Mendefinisikan berapa banyak kesehatan yang hilang oleh korban saat diserang oleh NPC. Ini berlaku untuk kit Zombie dan Tentara saja. |
Penundaan Serangan | NumberValue | Mendefinisikan jumlah minimum detik antara tembakan. Ini berlaku untuk kit Prajurit saja. |
Mode Serangan | NumberValue | Mengidentifikasi apa yang akan diserang oleh prajurit, berdasarkan sistem penandaan tagging. Ini berlaku untuk kit prajurit saja. |
Radius Serangan | NumberValue | Mendefinisikan jarak maksimum yang harus dimiliki NPC dari korban potensial sebelum ia berusaha menyerang. Ini berlaku untuk kit Zombie dan Prajurit saja. |
Kapasitas Klip | NumberValue | Mendefinisikan berapa banyak peluru yang bisa ditembak oleh prajurit sebelum perlu diisi ulang. Ini berlaku untuk kit Prajurit saja. |
Penundaan Pengisian Ulang | NumberValue | Mendefinisikan berapa banyak detik harus berlalu sebelum klip senjata prajurit diisi ulang. Ini berlaku untuk kit prajurit saja. |
Tetuk tag
Skrip NPC menggunakan tag CollectionService untuk mengelola agresi terhadap karakter dan pemain lain.Berbagai tag dari tabel berikut dapat ditugaskan sebagai berikut:
Untuk menetapkan tag (s) ke NPC lain, atribusikan mereka ke tingkat atas NPC menggunakan bagian Tag dari propertinya, atau Editor Tag Studio .
Untuk menetapkan tag ke karakter Player , Anda dapat menambahkan Script ke StarterCharacterScripts dengan panggilan CollectionService:AddTag(). Misalnya:
local CollectionService = game:GetService("CollectionService")CollectionService:AddTag(script.Parent, "SoldierEnemy")
Tag | Tujuan |
---|---|
Musuh Prajurit atau Teman Prajurit | Menentukan apakah seorang prajurit, berdasarkan nilai konfigurasi Mode Serangan nya, harus menyerang karakter lain.Ketika Mode Serangan prajurit diatur ke 1 , karakter lain harus diberi label dengan Musuh Prajurit untuk dianggap dapat diserang.Ketika Mode Serangan prajurit diatur ke 2 , semua objek tanpa tag Teman Prajurit dianggap bisa diserang.Ketika Mode Serangan prajurit diatur ke , label ini diabaikan sepenuhnya dan prajurit akan menyerang semua karakter. |
Teman Zombie | Label ini digunakan oleh zombie untuk menentukan apakah tidak boleh menyerang karakter.Saat diterapkan, zombie menjadi jinak terhadap karakter yang ditagih. |