Kit NPC

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

NPC (karakter non-pemain) dapat menambahkan banyak kedalaman pada sebuah pengalaman. Semua NPC berikut dapat disesuaikan secara visual, perilaku mereka dapat dimodifikasi, dan zombie/soldier bahkan dapat mempertahankan area dengan menyerang pemain atau karakter lain menggunakan sistem tag untuk menetapkan perilaku.

Untuk menggunakan NPC dalam permainan Anda:

  1. Pilih salah satu kit NPC berikut:

    Zombie Mengeluarkan Air Liur
    Soldier
    Robot RO-01
    Robot NP-C 9000
  2. Di halaman item NPC, klik tombol hijau Dapatkan dan konfirmasi transaksi.

  3. Di Studio, buka Toolbox.

  4. Pilih bagian Inventaris di toolbox Anda.

  5. Temukan NPC dan klik untuk menambahkannya ke tempat.

Struktur karakter

Setiap model NPC biasanya memiliki objek berikut:

Nama objek atau [Tipe]TipeDeskripsi
AnimasiFolderBerisi Animations, seperti AttackAnimation atau DeathAnimation.
Pose AwalFolderBerisi informasi pose.
AnimateScriptMemuat dan memutar animasi pada rig karakter. Lihat Animate untuk lebih jelasnya.
[Aksesoris]AccessorySalah satu dari beberapa Accessories untuk NPC seperti topi, senjata, dll.
KesehatanScriptUmumnya memperbaharui kesehatan Humanoid seiring waktu. Menonaktifkan ini akan mencegah karakter memperbaharui kesehatan.
HumanoidHumanoidMengelola properti terkait Humanoid, seperti Humanoid.Health, Humanoid.WalkSpeed, Humanoid.DisplayDistanceType, dll.
NPCScript

Menentukan perilaku khusus karakter seperti berkeliaran, menyerang, dll. Memparenting objek berikut:

Maid (ModuleScript) mendefinisikan kelas yang berguna untuk membebaskan sumber daya yang digunakan.

Ragdoll (ModuleScript) mendefinisikan fungsi yang mengubah karakter menjadi tubuh yang longgar dan dipengaruhi fisika (memparenting RigTypes ModuleScript yang mendefinisikan beberapa fungsi bantu).

RbxNpcSoundsScriptMenentukan dan mengelola perilaku terkait efek suara karakter seperti berlari, mati, dll.
BodyPartsBasePartBerbagai bagian tubuh karakter yang terpasang pada HumanoidRootPart atau bagian tubuh yang berdekatan melalui Motor6D atau objek constraint. Lihat BodyParts untuk lebih jelasnya.
HumanoidRootPartBasePartBagian khusus tak terlihat yang dianggap sebagai akar rig; ini juga merupakan PrimaryPart dari Model karakter.
KonfigurasiConfigurationBerisi objek nilai yang mengatur berbagai perilaku. Lihat Konfigurasi untuk lebih jelasnya.

Catatan desain

Saat menggunakan kit NPC, ingat catatan desain berikut:

  • Penampilan visual NPC dapat disesuaikan dengan menambahkan/memodifikasi berbagai objek [BodyParts] dan dengan menambahkan objek Accessory.

  • Soldier, Zombie Mengeluarkan Air Liur, 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 sambungan sederhana dengan cara ini memungkinkan Anda untuk menyertakan geometri tambahan untuk karakter Anda tanpa mengubah rig dasar aslinya.

  • Pada tingkat dasar, animasi NPC dapat dikustomisasi dengan memodifikasi AnimationId dari objek Animasi yang ada di dalam pose skrip Animate, atau yang ada di dalam folder Animasi. Perubahan tersebut pada dasarnya adalah pertukaran aset - untuk mengubah detail yang lebih halus, Anda dapat membuat salinan kustom dari animasi yang ada, dan untuk memutar animasi dalam kondisi berbeda, Anda dapat mengedit skrip Animate atau NPC secara langsung. Untuk informasi lebih lanjut, lihat Animasi.

Animate

Skrip Script Animate di Model NPC menangani konfigurasi yang terkait dengan animasi dan berisi objek berikut:

Nama objek atau [Tipe]TipeDeskripsi
ScaleDampeningPercentNumberValueMenentukan bagaimana kecepatan animasi dimodifikasi saat karakter diperbesar (kurang dari 1 menunjukkan pemutaran animasi berkurang sebanding saat karakter diperbesar).
PlayEmoteBindableFunctionIni dapat dipanggil oleh skrip lain untuk memaksa asumsi pose.
[Pose]StringValueReferensi ke kategori animasi yang dapat dimainkan seperti diam, melompat, berjalan, dll. Objek ini dapat memparenting sejumlah Animations.

Objek Animations ini memparenting Weight (NumberValue) yang memprioritaskan satu dari beberapa animasi untuk dimainkan saat pose diambil; biasanya digunakan untuk menambah variasi pada pose diam dan tari.

BodyParts

Bagian BodyPart BasePart di Model NPC mewakili berbagai bagian tubuh karakter dan berisi objek berikut:

Nama objek atau [Tipe]TipeDeskripsi
AvatarPartScaleTypeStringValueMenentukan bagaimana bagian akan diperbesar; nilai dapat Classic, ProportionsNormal, atau ProportionsSlender.
OriginalSizeVector3ValueMenentukan ukuran bagian ketika skala karakter adalah 1.
[Attachment]AttachmentMenentukan titik relatif terhadap bagian individu yang dapat digunakan skrip, efek, dan objek seperti Tool atau Accessory dalam penempatan.
[Motor6D]Motor6DSendi yang dianimasikan antara dua bagian tubuh. Perhatikan bahwa Animator bergantung pada nama Motor6Ds untuk konsisten dengan nama Motor6Ds yang digunakan saat animasi dibuat, jadi hindari mengganti nama objek ini.
[Joint]WeldConstraint, Constraint, JointInstance Sendi yang tidak dianimasikan antara dua bagian tubuh.
[Sound]SoundUmumnya ditemukan di kepala atau HumanoidRootPart; memutar suara dari dalam rig yang dikontrol oleh skrip RbxNpcSounds.

Konfigurasi

Setiap NPC menyertakan objek Configuration di dalam hierarkinya yang bertindak sebagai wadah objek nilai. Ini digunakan oleh skrip NPC untuk mengatur berbagai perilaku. Kecuali ditentukan lain, ini berlaku untuk semua karakter.

Nama objek atau [Tipe]TipeDeskripsi
DestroyOnDeathBoolValueMenyebabkan seluruh NPC dihancurkan segera setelah mati. Nonaktifkan ini agar ragdoll tetap ada.
PatrolEnabledBoolValueMenyebabkan NPC berkeliaran di area sekitar posisi awalnya.
PatrolRadiusNumberValueMenentukan jarak maksimum yang dapat ditempuh NPC dari posisi awalnya, dengan asumsi PatrolEnabled adalah true.
RagdollEnabledBoolValueMenyebabkan NPC menjadi lemas saat mati, bukan hancur.
AttackDamageNumberValueMenentukan berapa banyak kesehatan yang hilang oleh korban saat diserang oleh NPC. Ini hanya berlaku untuk kit Zombie dan Soldier.
AttackDelayNumberValueMenentukan jumlah menit minimum antara serangan. Ini hanya berlaku untuk kit Soldier.
AttackModeNumberValueMenentukan apa yang akan diserang oleh soldier, berdasarkan sistem tagging. Ini hanya berlaku untuk kit Soldier.
AttackRadiusNumberValueMenentukan jarak maksimum NPC harus dari korban potensial sebelum mencoba untuk menyerang. Ini hanya berlaku untuk kit Zombie dan Soldier.
ClipCapacityNumberValueMenentukan berapa banyak peluru yang bisa ditembakkan oleh soldier sebelum perlu melakukan reload. Ini hanya berlaku untuk kit Soldier.
ReloadDelayNumberValueMenentukan berapa banyak detik yang harus berlalu sebelum klip senjata soldier diisi ulang. Ini hanya berlaku untuk kit Soldier.

Menetapkan tag

Skrip NPC menggunakan tag CollectionService untuk mengelola agresi terhadap karakter dan pemain lain. Berbagai tag dari tabel berikut dapat ditetapkan sebagai berikut:

  • Untuk menetapkan tag pada NPC lain, tetapkan pada Model tingkat atas NPC menggunakan bagian Tags dari propertinya.

  • Untuk menetapkan tag pada karakter Player, Anda dapat menambahkan Script ke StarterCharacterScripts dengan panggilan CollectionService:AddTag(). Misalnya:


    local CollectionService = game:GetService("CollectionService")
    CollectionService:AddTag(script.Parent, "SoldierEnemy")
TagTujuan
SoldierEnemy atau SoldierFriendMenentukan apakah soldier, berdasarkan nilai konfigurasi AttackMode, harus menyerang karakter lain. Saat AttackMode soldier diatur ke 1, karakter lain harus ditandai dengan SoldierEnemy agar dianggap dapat diserang. Saat AttackMode soldier diatur ke 2, semua objek tanpa tag SoldierFriend dianggap dapat diserang. Saat AttackMode soldier diatur ke 3, tag ini diabaikan sepenuhnya dan soldier akan menyerang semua karakter.
ZombieFriendTag ini digunakan oleh zombie untuk menentukan apakah ia tidak boleh menyerang karakter. Ketika diterapkan, zombie menjadi jinak terhadap karakter yang ditandai.
©2026 Roblox Corporation. Roblox, logo Roblox, dan Powering Imagination termasuk dalam merek dagang kami yang terdaftar dan tidak terdaftar di AS dan negara lainnya.