NPC'ler (oyuncu olmayan karakterler) bir deneyime çok fazla derinlik ekleyebilir.Aşağıdaki tüm NPC'ler görsel olarak özelleştirilebilir, davranışları değiştirilir ve zombi/askerler bir alanı oyunculara veya diğer karakterlere bir etiket sistemi kullanarak saldırarak savunabilirler.
oyunbir NPC kullanmak için:
NPC'nin öğe sayfasında, yeşil Al düğmesine tıklayın ve işlemi onaylayın.
Roblox Studio'da, Alet çantasını aç ( Görüş → Alet çantası ).
Alet kutunuzu seçin Envanter bölümünü.
NPC'yi bul ve yerine eklemek için dünya.
Karakter yapısı
Her NPC modeli genellikle aşağıdaki nesneleri içerir:
Nesne adı veya [Tip] | Tür | Açıklama |
---|---|---|
Animasyonlar | Folder | Bunlar arasında Animations , bir AttackAnimation veya DeathAnimation gibi bir şey var. |
Başlangıç Pozları | Folder | Pozlama bilgisi içerir. |
Animasyon | Script | Karakter kızgınında animasyonlar yüklenir ve oynanır. Daha fazla ayrıntı için Animasyon bakın. |
[Aksesüarlar] | Accessory | Muhtemelen çok sayıda Accessories NPC için şapkalar, silahlar vb. |
Sağlık | Script | Genellikle zamanla Humanoid sağlığı yeniler. Bunu devre dışı bırakmak, karakterin sağlığını yenilemesini engelleyecektir. |
İnsansız | Humanoid | Humanoid ile ilgili özellikleri yönetir, örneğin Humanoid.Health , Humanoid.WalkSpeed , Humanoid.DisplayDistanceType vb. |
NPC | Script > | Gezme, saldırma vb. karakter spesifik davranışları tanımlarAşağıdaki nesnelerin ebeveynleri: Hizmetçi ( ModuleScript ) kullanılan kaynakları serbest bırakmak için kullanışlı bir sınıf tanımlar: Ragdoll ( ModuleScript ) bir karakteri serbest bir fiziğe etkili vücut haline dönüştüren bir işlev tanımlar (birkaç yardımcı işlev tanımlayan bir RigTypes ModuleScript ). |
RbxNpcSesler | Script | Karakter ses efektleriyle ilgili davranışı tanımlar ve yönetir, örneğin koşmak, ölmek vb. |
Vücut Parçaları | BasePart | HumanoidRootPart veya komşu vücut parçalarına Motor6D veya kısıtlayıcı nesneler aracılığıyla bağlı çeşitli karakter vücut parçaları.Daha fazla ayrıntı için Vücut Parçaları'ya bakın. |
İnsansız Kök Parçası | BasePart | Rig'in kökü olarak kabul edilen özel görünmez bir parça; bu ayrıca karakterin PrimaryPart 'inin Model 'idir. |
Yapılandırma | Configuration | Çeşitli davranışları ayarlayan değer nesneleri içerir. Daha fazla ayrıntı için Yapılandırma bakın. |
Tasarım notları
NPC kitini kullanırken, aşağıdaki tasarım notlarını göz önünde bulundurun:
Bir NPC'nin görsel görünümü, çeşitli [Vücut Parçaları] nesneleri ekleyerek veya değiştirerek ve Accessory nesneler ekleyerek özelleştirilebilir.
Askerler, tükürükleyen zombi ve NP-C 9000 Robotları, Rthro'yu kukla üssü olarak kullanır.Ancak, RO-01 Robotları, Üst Torso 'ya bağlı itici parçalar ekleyen değiştirilmiş bir Rthro tabanı kullanır ve WeldConstraints kullanarak.Bu şekilde basit bağlantıları kullanmak, orijinal temel kırığı değiştirmeden karakterleriniz için ekstra geometri dahil etmenize izin verir.
Temel seviye, NPC animasyonları mevcut Animasyon nesnelerinin AnimationId kısmını değiştirerek veya Animasyonlar klasörünün içindeki mevcut Animasyon nesnelerinin **** kısmını değiştirerek özelleştirilebilir.Böyle bir değişiklik aslında bir varlık değişimi - daha ince detayları değiştirmek için mevcut animasyonların özel kopyalarını oluşturabilir ve farklı koşullarda animasyonları oynatmak için Animasyonu Anlat veya NPC senaryolarını doğrudan düzenleyebilirsiniz.Daha fazla bilgi için, Animasyon bakın.
Animasyon
NPC'deki Animasyon işlemleri, animasyon ilgili yapılandırmaları ele alır ve aşağıdaki nesneleri içerir:
Nesne adı veya [Tip] | Tür | Açıklama |
---|---|---|
Ölçek Yavaşlatma Yüzdesi | NumberValue | Karakter ölçeklendirildiğinde animasyon hızlarının nasıl değiştirileceğini tanımlar (1'den az, bir karakter ölçeklendirildiğinde animasyon oynatma ölçekleri ters yönde değişir). |
OynatEmote | BindableFunction | Bu, bir pozun varsayımını zorlamak için diğer kodlar tarafından çağrılabilir. |
[Poz] | StringValue | Boşluk, zıplama, yürüme gibi oynanabilir bir animasyon kategorisine referansBu nesne herhangi bir sayıda Animations ebeveyn olabilir. Bu Animations ebeveyn, Ağırlık ( NumberValue ) öncelik verir birden fazla animasyon oynarken poz varsayılırken; genellikle boş ve dans pozlarına çeşitlilik eklemek için kullanılır. |
Vücut Parçaları
NPC'deki Vücut Parçası çeşitli karakter vücut parçalarını temsil eder ve aşağıdaki nesneleri içerir:
Nesne adı veya [Tip] | Tür | Açıklama |
---|---|---|
AvatarParçasıÖlçekTipi | StringValue | Parçanın nasıl ölçekleneceğini belirler; değerler Klasik , OranlarNormal veya OranlarZayıf olabilir. |
Orijinal Boyut | Vector3Value | Karakter ölçeklemesi 1 olduğunda parçanın boyutunu belirler. |
[Eklenti] | Attachment | Konumlandırma sırasında kullanılabilecek bireysel parça ile ilgili bir noktayı tanımlar, kodlar, efektler ve Tool veya Accessory gibi nesneler. |
[Motor6D] | Motor6D | İki vücut parçası arasında animasyonlu bir bağlantı.Not that Animator bir animasyon oluşturulduğunda kullanılan Motor6Ds 'nin adıyla tutarlı olması için Motor6Ds 'nin adını değiştirmekten kaçının, bu nedenle bu nesneyi yeniden adlandırmayın. |
[Paylaşılan] | WeldConstraint , Constraint , JointInstance | İki vücut parçası arasında animasyon olmayan bir eklem. |
[Sesi] | Sound | Genellikle kafada veya HumanoidRootPart bulunur; kurgunun kontrol edildiği gibi içeriden ses çalar RbxNpcSounds. |
Yapılandırma
Her NPC, değer nesneleri konteyneri olarak hareket eden bir Configuration nesne içeren hiyerarşisini içerir.Bunlar, çeşitli davranışları ayarlamak için NPC kodu tarafından kullanılır.Aksi belirtilmediği sürece, bunlar tüm karakterlere uygulanır.
Nesne adı veya [Tip] | Tür | Açıklama |
---|---|---|
Ölümde Yok Etme | BoolValue | Tüm NPC'lerin öldükten kısa bir süre sonra yok edilmesine neden olur. Kuklaların kalıcı olması için bunu devre dışı bırakın. |
Devriye etkinleştirildi | BoolValue | NPC'nin başlangıç konumunun etrafındaki bir alanda dolaşmasına neden olur. |
Devriye Alanı | NumberValue | Bir NPC'nin başlangıç konumundan kaçabileceği maksimum mesafeyi tanımlar, varsayımsal olarak PatrolEnabled doğru olduğu varsayılır. |
RagdollEnabled Revizyon: Değiştirme: | BoolValue | NPC'nin parçalanmak yerine öldüğünde sakatlanmasına neden olur, yerine kırılmaz. |
Saldırı Hasarı | NumberValue | NPC tarafından saldırıldığında kurbanın ne kadar sağlığını kaybettiğini tanımlar. Bu sadece Zombi ve Asker kitleri için geçerlidir. |
Saldırı Gecikmesi | NumberValue | Ateşler arasındaki minimum saniye sayısını tanımlar. Bu yalnızca Asker kiti için geçerlidir. |
Saldırı Modu | NumberValue | Askerin neye saldıracağını belirler, etiketleme sistemi üzerine dayanarak. Bu sadece Asker kıtaları için geçerlidir. |
Saldırı Radyosu | NumberValue | NPC'nin saldırmadan önce potansiyel bir kurbanla olması gereken maksimum mesafeyi tanımlar. Bu sadece Zombi ve Asker kitleri için geçerlidir. |
Klibin Kapasitesi | NumberValue | Silahın yeniden yüklemeden önce ateş edebileceği mermi sayısını tanımlar. Bu sadece Asker kitleri için geçerlidir. |
Yeniden Yükleme Süresi | NumberValue | Askerin silah klidi yeniden yüklenmeden önce kaç saniye geçmesi gerektiğini tanımlar. Bu sadece Asker kıtaları için geçerlidir. |
Etiketler atayın
The NPC scripti, diğer karakterlere ve oyunculara yönelik saldırıyı yönetmek için CollectionService etiketlerini kullanır.Aşağıdaki tablodan çeşitli etiketler aşağıdaki gibi atanabilir:
Başka bir NPC'ye etiket(ler) atamak için, özelliklerinin Etiketler bölümünü kullanarak NPC'nin üst seviyesine atayın veya Studio'nun Etiket Editörü .
Bir Player karakterine bir etiket atlamak için, bir Script çağrısı ile Başlangıç Karakter Komut Dosyaları 'ya bir CollectionService:AddTag() ekleyebilirsiniz. Mesela:
local CollectionService = game:GetService("CollectionService")CollectionService:AddTag(script.Parent, "SoldierEnemy")
İşaretleme | Amaç |
---|---|
Asker Düşmanı veya Asker Arkadaşı | Bir askerin, Saldırı Modu yapılandırma değeri üzerine dayanarak, başka bir karaktere saldırması gerektiğini belirler.Askerin Saldırı Modu si 1 olarak ayarlanırsa, diğer karakterlerin saldırılabilir olarak kabul edilmesi için Asker Düşmanı ile etiketlenmesi gerekir.Askerin Saldırı Modu si 2 olarak ayarlanırsa, Asker Arkadaşı etiketine sahip olmayan tüm nesneler saldırılabilir kabul edilir.Askerin Saldırı Modu si olarak ayarlanırsa, bu etiketler tümüyle göz ardı edilir ve asker tüm karakterlere saldıracaktır. |
Zombi Arkadaşı | Bu etiket, bir karaktere saldırması gerekip gerekmediğini belirlemek için zombi tarafından kullanılır.Uygulandığında, zombi etiketli karaktere karşı uysal hale gelir. |