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 menambah banyak kedalaman pada sebuah permainan. Semua NPC berikut dapat disesuaikan secara visual, perilakunya dapat dimodifikasi, dan zombie/soldier bahkan dapat mempertahankan area dengan menyerang pemain atau karakter lain menggunakan sistem tag untuk mengatur perilaku.

Untuk menggunakan NPC dalam permainan Anda:

  1. Pilih salah satu kit NPC berikut:

    Zombie Meneteskan 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 toolbox Anda.

  5. Temukan NPC dan klik untuk menambahkannya ke tempat.

Struktur karakter

Setiap model NPC biasanya berisi objek-objek berikut:

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

Menentukan perilaku spesifik karakter seperti berkeliaran, menyerang, dll. Mengandung objek-objek berikut:

Maid (ModuleScript) mendefinisikan kelas yang berguna dalam melepaskan sumber daya yang digunakan.

Ragdoll (ModuleScript) mendefinisikan fungsi yang mengubah karakter menjadi tubuh yang terpengaruh fisika yang longgar (mengandung RigTypes ModuleScript yang mendefinisikan beberapa fungsi pembantu).

RbxNpcSoundsScriptMenentukan dan mengelola perilaku terkait efek suara karakter seperti berlari, mati, dll.
BodyPartsBasePartBerbagai bagian tubuh karakter yang terhubung ke HumanoidRootPart atau bagian tubuh tetangga melalui Motor6D atau objek constraint. Lihat BodyParts untuk detail lebih lanjut.
HumanoidRootPartBasePartBagian khusus yang tidak terlihat yang dianggap sebagai akar dari rig; ini juga merupakan PrimaryPart dari Model karakter.
KonfigurasiConfigurationBerisi objek nilai yang menyetel berbagai perilaku. Lihat Konfigurasi untuk detail lebih lanjut.

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.

  • Soldier, Zombie Meneteskan Air Liur, dan Robot NP-C 9000 menggunakan Rthro sebagai dasar rig mereka. Namun, Robot RO-01 menggunakan dasar Rthro yang dimodifikasi yang menambahkan bagian pendorong yang terhubung ke UpperTorso menggunakan WeldConstraints. Menggunakan sendi sederhana dengan cara ini memungkinkan Anda untuk menyertakan geometri tambahan untuk karakter Anda tanpa mengubah rig dasar yang asli.

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

Animate

Skrip Script Animate dalam Model NPC menangani konfigurasi terkait animasi dan berisi objek-objek berikut:

Nama objek atau [Tipe]TipeDeskripsi
ScaleDampeningPercentNumberValueMenentukan bagaimana kecepatan animasi dimodifikasi saat karakter diskalakan (kurang dari 1 menunjukkan pemutaran animasi diskalakan secara terbalik saat karakter diskalakan).
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 menjadi induk dari sejumlah Animasi.

Objek Animasi ini menjadi induk dari Weight (NumberValue) yang memprioritaskan salah satu dari beberapa animasi untuk diputar saat pose diasumsikan; biasanya digunakan untuk menambah variasi pada pose diam dan menari.

BodyParts

BodyPart BasePart dalam Model NPC mewakili berbagai bagian tubuh karakter dan berisi objek-objek berikut:

Nama objek atau [Tipe]TipeDeskripsi
AvatarPartScaleTypeStringValueMenentukan bagaimana bagian akan diskalakan; nilai dapat berupa Classic, ProportionsNormal, atau ProportionsSlender.
OriginalSizeVector3ValueMenentukan ukuran bagian saat skala karakter adalah 1.
[Attachment]AttachmentMenentukan titik relatif terhadap bagian individu yang dapat digunakan skrip, efek, dan objek seperti Tool atau Accessory selama penempatan.
[Motor6D]Motor6DSebuah sendi 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, JointInstanceSendi yang tidak dianimasikan antara dua bagian tubuh.
[Sound]SoundUmumnya ditemukan di kepala atau HumanoidRootPart; memutar suara dari dalam rig yang dikendalikan oleh skrip RbxNpcSounds.

Konfigurasi

Setiap NPC menyertakan objek Configuration dalam hierarkinya yang bertindak sebagai wadah objek nilai. Ini digunakan oleh skrip NPC untuk menyetel 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 dijelajahi NPC dari posisi awalnya, dengan asumsi PatrolEnabled adalah true.
RagdollEnabledBoolValueMenyebabkan NPC menjadi lemas saat mati, alih-alih hancur.
AttackDamageNumberValueMenentukan berapa banyak kesehatan yang hilang oleh korban saat diserang oleh NPC. Ini berlaku hanya untuk kit Zombie dan Soldier.
AttackDelayNumberValueMenentukan jumlah detik minimum antara tembakan. Ini berlaku hanya untuk kit Soldier.
AttackModeNumberValueMenentukan apa yang akan diserang oleh soldier, berdasarkan sistem penandaan. Ini berlaku hanya untuk kit Soldier.
AttackRadiusNumberValueMenentukan jarak maksimum NPC harus dari calon korban sebelum mencoba menyerang. Ini berlaku hanya untuk kit Zombie dan Soldier.
ClipCapacityNumberValueMenentukan berapa banyak peluru yang dapat ditembakkan soldier sebelum perlu mengisi ulang. Ini berlaku hanya untuk kit Soldier.
ReloadDelayNumberValueMenentukan berapa banyak detik yang harus berlalu sebelum klip senjata soldier diisi ulang. Ini berlaku hanya untuk kit Soldier.

Menetapkan tag

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

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

  • 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")
TagTujuan
SoldierEnemy atau SoldierFriend

Menentukan apakah seorang soldier, berdasarkan nilai konfigurasi AttackMode-nya, harus menyerang karakter lain. Ketika AttackMode soldier diatur ke 1, karakter lain harus diberi tag SoldierEnemy untuk dianggap dapat diserang. Ketika AttackMode soldier diatur ke 2, semua objek tanpa tag SoldierFriend dianggap dapat diserang. Ketika 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 diberi tag.
©2026 Roblox Corporation. Roblox, logo Roblox, dan Powering Imagination termasuk dalam merek dagang kami yang terdaftar dan tidak terdaftar di AS dan negara lainnya.