NPC (ตัวละครที่ไม่ใช่ผู้เล่น) สามารถเพิ่มความลึกให้กับประสบการณ์ได้มากNPC ทั้งหมดต่อไปนี้สามารถปรับแต่งได้ทางสายตา พฤติกรรมของพวกเขาถูกแก้ไข และซอมบี้/ทหารสามารถป้องกันพื้นที่โดยโจมตีผู้เล่นหรือตัวละครอื่นโดยใช้ระบบแท็ก เพื่อกำหนดพฤติกรรม
เพื่อใช้ NPC ในเกมของคุณ:
บนหน้ารายการของ NPC คลิกปุ่มสีเขียว รับ และยืนยันธุรกรรม
ใน Roblox Studio เปิด กล่องเครื่องมือ ( ดู → กล่องเครื่องมือ )
เลือกส่วนกล่องเครื่องมือของคุณ สินค้าคงคลัง
ค้นหา NPC และคลิกเพื่อเพิ่มลงในสถานที่
โครงสร้างตัวละคร
แต่ละรูปแบบ NPC มักจะมีวัตถุต่อไปนี้:
ชื่อวัตถุหรือ [ประเภท] | ประเภท | คําอธิบาย |
---|---|---|
แอนิเมชั่น | Folder | ประกอบด้วย Animations , เช่น AttackAnimation หรือ DeathAnimation |
ท่าเริ่มต้น | Folder | มีข้อมูลโพสต์ที่ปรากฏ |
แอนิเมชั่น | Script | โหลดและเล่นแอนิเมชั่นบนตัวละคร ดู แอนิเมชั่น สำหรับรายละเอียดเพิ่มเติม |
[อุปกรณ์เสริม] | Accessory | หนึ่งในอาจมีหลาย Accessories สำหรับ NPC เช่นหมวก อาวุธ ฯลฯ |
สุขภาพ | Script | โดยปกติจะฟื้นฟูสุขภาพ Humanoid ในระยะเวลา การปิดใช้งานจะป้องกันไม่ให้ตัวละครฟื้นฟูสุขภาพ |
มนุษย์หุ่น | Humanoid | จัดการคุณสมบัติที่เกี่ยวข้อง Humanoid เช่น Humanoid.Health , Humanoid.WalkSpeed , Humanoid.DisplayDistanceType ฯลฯ |
NPC | Script | กำหนดพฤติกรรมเฉพาะตัวละครเช่นการล่าสังหาร, การโจมตี, ฯลฯพ่อแม่วัตถุต่อไปนี้: แม่บ้าน ( ModuleScript ) กำหนดคลาสที่มีประโยชน์ในการปล่อยทรัพยากรที่ใช้: Ragdoll ( ModuleScript ) กำหนดฟังก์ชันที่เปลี่ยนตัวละครให้เป็นร่างกายที่ได้รับผลกระทบจากฟิสิกส์อย่างหลวม (เป็นพ่อของ RigTypes ModuleScript ที่กำหนดฟังก์ชันช่วยเหลือหลายอย่าง) |
เสียง RbxNpc | Script | กำหนดและจัดการพฤติกรรมที่เกี่ยวข้องกับเสียงเอฟเฟกต์ตัวละครเช่นการวิ่งตายฯลฯ |
ส่วนของร่างกาย | BasePart | ส่วนตัวละครต่างๆ ที่ติดกับส่วนร่างกายของมนุษย์หรือส่วนร่างกายของเพื่อนบ้านผ่าน Motor6D หรือวัตถุข้อจํากัดดู ส่วนของร่างกาย สำหรับรายละเอียดเพิ่มเติม |
ส่วนรากมนุษย์ | BasePart | ส่วนที่มองไม่เห็นพิเศษที่ถือว่าเป็นรากของแร่; นี่ยังเป็น PrimaryPart ของตัวละคร Model ด้วย |
การกำหนดค่า | Configuration | มีวัตถุค่าที่ปรับแต่งพฤติกรรมต่างๆ ดู การกำหนดค่า สำหรับรายละเอียดเพิ่มเติม |
หมายเหตุการออกแบบ
เมื่อใช้ชุด NPC ให้คำนึงถึงข้อความออกแบบต่อไปนี้:
ลักษณะทางสายตาของ NPC สามารถปรับแต่งได้โดยการเพิ่ม/แก้ไขวัตถุ [BodyParts] ต่างๆ และเพิ่มวัตถุ Accessory
ทหาร ซอมบี้หยดลาย และหุ่นยนต์ NP-C 9000 ใช้ Rthro เป็นฐานของริกของพวกเขาอย่างไรก็ตาม หุ่นยนต์ RO-01 ใช้ฐาน Rthro ที่ปรับแต่งซึ่งเพิ่มชิ้นส่วนขับเคลื่อนที่เชื่อมต่อกับ UpperTorso โดยใช้ WeldConstraintsการใช้ข้อต่อง่ายในลักษณะนี้ช่วยให้คุณสามารถรวมเอกลักษณ์เพิ่มเติมสำหรับตัวละครของคุณโดยไม่เปลี่ยนระบบฐานดั้งเดิม
ในระดับพื้นฐาน NPC สามารถปรับแต่งแอนิเมชั่นได้โดยการแก้ไข AnimationId ของวัตถุแอนิเมชั่นที่มีอยู่ภายใน สคริปต์แอนิเมชั่น หรือผู้ที่อยู่ภายในโฟลเดอร์ แอนิเมชั่น การเปลี่ยนแปลงดังกล่าวเป็นส่วนใหญ่เป็นการแลกเปลี่ยนสินทรัพย์ - เพื่อเปลี่ยนรายละเอียดที่ละเอียดยิ่งขึ้นคุณสามารถสร้างสำเนาที่กําหนดเองของแอนิเมชั่นที่มีอยู่และเล่นแอนิเมชั่นภายใต้เงื่อนไขที่แตกต่างกันคุณสามารถแก้ไขสคริปต์ แอนิเมชั่น หรือ NPC โดยตรงสำหรับข้อมูลเพิ่มเติม ดู แอนิเมชั่น
แอนิเมชั่น
การแอนิเมชั่น Script ใน NPC Model จัดการการแอนิเมชั่น ที่เกี่ยวข้องและมีวัตถุต่อไปนี้:
ชื่อวัตถุหรือ [ประเภท] | ประเภท | คําอธิบาย |
---|---|---|
เปอร์เซ็นต์การลดแรงกระแทกขนาดเล็ก | NumberValue | กำหนดวิธีการที่ความเร็วในการเล่นแอนิเมชันจะถูกแก้ไขเมื่อตัวละครถูกขยาย (น้อยกว่า 1 หมายถึงการเล่นแอนิเมชันจะถูกย้อนกลับตามที่ตัวละครถูกขยาย) |
เล่นอีโมท | BindableFunction | สิ่งนี้สามารถถูกเรียกโดยสคริปต์อื่นเพื่อบังคับให้เกิดการเดาท่าทาง |
[โพส] | StringValue | การอ้างอิงถึงหมวดหมู่แอนิเมชั่นที่เล่นได้เช่นไม่ได้ใช้งานกระโดดเดินเท้าฯลฯวัตถุนี้สามารถเป็นพ่อของจํานวนใดก็ได้ของ Animations . พ่อแม่เหล่านี้ Animations มีน้ำหนัก **** ( NumberValue ) ที่ให้ความสําคัญกับหนึ่งในแอนิเมชั่นหลายรายการที่จะเล่นในขณะที่โพสต์ถูกคาดว่า; มักใช้เพื่อเพิ่มความหลากหลายให้กับโพสต์ที่ว่างเปล่าและเต้นรํา |
ส่วนของร่างกาย
ส่วนของร่างกาย BasePart ใน NPC Model แทนที่ส่วนต่างๆ ของร่างกายตัวละครและมีวัตถุต่อไปนี้:
ชื่อวัตถุหรือ [ประเภท] | ประเภท | คําอธิบาย |
---|---|---|
ประเภทสเกลตัวละคร | StringValue | กำหนดวิธีที่ชิ้นจะถูกขยาย; ค่าสามารถเป็น คลาสสิก , สัดส่วนปกติ หรือ สัดส่วนเพรียวบาง |
ขนาดเดิม | Vector3Value | กำหนดขนาดของส่วนเมื่อการปรับขนาดตัวอักษรเป็น 1 |
[แนบไฟล์] | Attachment | กำหนดจุดที่เกี่ยวข้องกับส่วนบุคคลซึ่งสคริปต์ เอฟเฟกต์ และวัตถุเช่น Tool หรือ Accessory อาจใช้ระหว่างการจัดตำแหน่ง |
[รถยนต์ 6D] | Motor6D | จุดร่วมแบบเคลื่อนไหวระหว่างสองส่วนของร่างกายโปรดทราบว่า ขึ้นอยู่กับชื่อของ เพื่อให้สอดคล้องกับที่ใช้เมื่อสร้างแอนิเมชันดังนั้นหลีกเลี่ยงการเปลี่ยนชื่อวัตถุนี้ |
[ร่วมกัน] | WeldConstraint , Constraint , JointInstance | ข้อต่อที่ไม่เคลื่อนไหวระหว่างสองส่วนของร่างกาย |
[เสียง] | Sound | พบได้บ่อยในหัวหรือ HumanoidRootPart ; เล่นเสียงจากภายในระบบที่ควบคุมโดยสคริปต์ RbxNpcSounds |
การกำหนดค่า
แต่ละ NPC รวมถึงวัตถุ Configuration ภายในระดับชั้นที่ทำหน้าที่เป็นคอนเทนเนอร์ของวัตถุมูลค่าเหล่านี้ถูกใช้โดยสคริปต์ NPC เพื่อปรับแต่งพฤติกรรมต่างๆเว้นแต่จะระบุไว้อย่างอื่น สิ่งเหล่านี้ใช้กับตัวละครทั้งหมด
ชื่อวัตถุหรือ [ประเภท] | ประเภท | คําอธิบาย |
---|---|---|
ทำลายเมื่อตาย | BoolValue | ทําให้ NPC ทั้งหมดถูกทําลายในไม่ช้าหลังจากตาย ปิดใช้งานสิ่งนี้เพื่อให้รากดอลล์ยังคงอยู่ |
สนับสนุนการลาดตระเวน | BoolValue | ทำให้ NPC เดินท่องไปในพื้นที่รอบตําแหน่งเริ่มต้นของมัน |
รัศมีการลาดตระเวน | NumberValue | กำหนดระยะสูงสุดที่ NPC จะเดินทางจากตำแหน่งเริ่มต้นโดยคาดว่า PatrolEnabled เป็นจริง |
เปิดใช้งาน Ragdoll | BoolValue | ทำให้ NPC อ่อนแอเมื่อตาย แทนที่จะแตกสลาย |
ดาเมจการโจมตี | NumberValue | กำหนดจำนวนพลังชีพที่สูญหายโดยเหยื่อเมื่อถูกโจมตีโดย NPC สิ่งนี้ใช้กับชุดซอมบี้และทหารเท่านั้น |
การโจมตีล่าช้า | NumberValue | กำหนดจำนวนวินาทีขั้นต่ำระหว่างการยิง สิ่งนี้ใช้กับชุดนักรบเท่านั้น |
โหมดโจมตี | NumberValue | ระบุสิ่งที่ทหารจะโจมตี, ขึ้นอยู่กับระบบการแท็ก . สิ่งนี้ใช้กับชุดทหารเท่านั้น |
รัศมีการโจมตี | NumberValue | กำหนดระยะสูงสุดที่ NPC ต้องอยู่จากเหยื่อที่อาจเป็นไปได้ก่อนที่จะพยายามโจมตี ซึ่งใช้กับชุดซอมบี้และทหารเท่านั้น |
ความจุของคลิป | NumberValue | กำหนดจำนวนกระสุนที่ทหารสามารถยิงได้ก่อนที่จะต้องรีโหลด สิ่งนี้ใช้กับชุดทหารเท่านั้น |
ความล่าช้าในการรีโหลด | NumberValue | กำหนดจำนวนวินาทีที่ต้องผ่านก่อนที่จะรีโหลดคลิปอาวุธของทหาร ซึ่งใช้กับชุดทหารเท่านั้น |
กำหนดแท็ก
สคริปต์ NPC ใช้แท็ก CollectionService เพื่อจัดการการโจมตีต่อตัวละครและผู้เล่นอื่นแท็กต่างๆ จากตารางด้านล่างสามารถกำหนดได้ดังนี้:
เพื่อกำหนดแท็ก (s) ให้กับ NPC อื่น ให้กำหนดพวกเขาให้กับระดับสูงสุดของ NPC โดยใช้ส่วน แท็ก ของคุณสมบัติหรือ เครื่องมือแท็กของ Studio .
เพื่อกำหนดแท็กให้กับตัวละคร Player คุณสามารถเพิ่ม Script ใน StarterCharacterScripts ด้วยการโทร CollectionService:AddTag()
local CollectionService = game:GetService("CollectionService")CollectionService:AddTag(script.Parent, "SoldierEnemy")
แท็ก | จุดประสงค์ |
---|---|
ศัตรูทหาร หรือ เพื่อนทหาร | กำหนดว่าทหารควรโจมตีตัวละครอื่นหรือไม่ ขึ้นอยู่กับค่าการกำหนดโหมดโจมตี ของมัน เมื่อโหมดการโจมตีของทหาร ถูกตั้งค่าเป็น ตัวละครอื่น ๆ จะต้องถูกแท็กด้วย SoldierEnemy เพื่อพิจารณาว่าเป็นการโจมตีได้เมื่อโหมดการโจมตีของทหาร ถูกตั้งค่าเป็น ทั้งหมดวัตถุที่ไม่มีแท็ก SoldierFriend ถูกถือว่าสามารถโจมตีได้เมื่อโหมดการโจมตีของทหาร ถูกตั้งค่าเป็น แท็กเหล่านี้จะถูกเพิกเฉยโดยสิ้นเชิงและทหารจะโจมตีตัวละครทั้งหมด |
เพื่อนซอมบี้ | แท็กนี้ถูกใช้โดยซอมบี้เพื่อตรวจสอบว่าไม่ควรโจมตีตัวละครหรือไม่เมื่อใช้แล้ว ซอมบี้จะกลายเป็นอ่อนโยนต่อตัวละครที่ถูกติดตาม |