ฟีดแบ็ก 6 ชั้นเบื้องหลังการต่อสู้ที่น่าพึงพอใจ
ข้อความนี้สำรวจว่าการเพิ่มองค์ประกอบการตอบสนองที่แตกต่างกันหกชั้น ได้แก่ ฮิตสต็อป การสั่นของกล้อง ปฏิกิริยาของเป้าหมาย แรงกระแทกถอยหลัง เอฟเฟกต์อนุภาค และเสียง ให้กับแอนิเมชันการโจมตีเพียงชุดเดียว สามารถยกระดับความพึงพอใจในการต่อสู้ที่ผู้เล่นรับรู้ได้อย่างมากในเกมแอ็กชัน
สิ่งที่การสาธิตแสดงให้เห็น
สำหรับนักพัฒนาที่ปรับแต่งการต่อสู้ในเกมแอ็กชัน คำถามที่มีประโยชน์คือจะเกิดอะไรขึ้นเมื่อแอนิเมชันการโจมตียังคงเดิม ผู้สร้างค่อย ๆ เพิ่มเลเยอร์การตอบสนองหกชั้นให้กับการโจมตีหนึ่งครั้ง ได้แก่ hitstop, camera shake, ปฏิกิริยาของเป้าหมาย, knockback, อนุภาค และเสียง การสาธิตทำให้เห็นผลรวมขององค์ประกอบเหล่านี้ แต่ไม่ได้จัดทำการศึกษาผู้เล่นแบบควบคุมหรือตัวเก็บโค้ดสาธารณะ หลักฐานที่นำเสนอเป็นการเปรียบเทียบเชิงคุณภาพ ไม่ใช่สูตรสากลสำหรับกำหนดระดับความสนุกแบบใดแบบหนึ่งโดยเฉพาะ
เฟรมจากวิดีโอ: การสาธิตต้นฉบับของผู้สร้าง แผงภาพแสดงช่วงต่าง ๆ ของแอนิเมชัน ภาพนิ่งไม่สามารถแสดงจังหวะของ hitstop หรือเสียงได้
ข้อสังเกตเชิงปฏิบัติคือ การโจมตีเบาและหนักสามารถใช้ระบบการตอบสนองร่วมกันได้ โดยใช้จังหวะเวลาและความเข้มข้นที่แตกต่างกัน ผู้สร้างอธิบายว่าการโจมตีเบาจะใช้ช่วงหยุดที่สั้นกว่าและการสั่นที่เบากว่า ส่วนการโจมตีหนักจะใช้ช่วงหยุดที่ยาวกว่า การสั่นที่แรงกว่า และเอฟเฟกต์เฟรมปะทะเพิ่มเติม ไม่มีการระบุค่าพรีเซ็ตตัวเลขแบบสากล
เลเยอร์ต่าง ๆ ทำงานร่วมกันอย่างไร
การนำไปใช้งานสามารถถือว่าการโจมตีที่ยืนยันแล้วเป็นอีเวนต์ร่วมซึ่งบรรจุตำแหน่งสัมผัส ทิศทางการปะทะ เป้าหมาย และโปรไฟล์การโจมตีไว้ คอมโพเนนต์การตอบสนองอิสระจะรับอีเวนต์ดังกล่าว สถาปัตยกรรมแบบอิงอีเวนต์นี้เป็นโมเดลการนำไปใช้งานเชิงบรรณาธิการ ไม่ใช่การสร้างซอร์สที่ไม่ได้เผยแพร่ขึ้นใหม่ โดยแยกการตรวจจับการโจมตีออกจากการนำเสนอ ขณะยังคงให้การตอบสนองด้านภาพ กายภาพ และเสียงเชื่อมโยงกับจุดสัมผัสเดียวกัน
Hitstop จะระงับการเคลื่อนไหวชั่วครู่เมื่อเกิดการสัมผัส ในการนำไปใช้งานด้วย Unity ที่หยุดเวลาของเกมตามสเกลผ่าน Time.timeScale ตัวจับเวลาการคืนสภาวะต้องใช้นาฬิกาที่ไม่อิงสเกล มิฉะนั้นตัวจับเวลาอาจหยุดไปพร้อมกับการกระทำ Unity ระบุว่า FixedUpdate และคอร์รูทีนที่รอด้วย WaitForSeconds จะหยุดทำงานเมื่อ timeScale เป็นศูนย์ ขณะที่ Time.unscaledDeltaTime ยังคงไม่ขึ้นกับสเกลดังกล่าว การหยุดแอนิเมชันเฉพาะจุดก็เป็นอีกทางเลือกหนึ่งในการออกแบบ โพสต์ต้นฉบับไม่ได้ระบุว่าใช้กลไกใด การสเกลเวลา; การจับเวลาที่ไม่อิงสเกล
Camera shake สามารถใช้เอนเวโลปสั้น ๆ ที่ลดลงอย่างรวดเร็วได้ Cinemachine Impulse ของ Unity ทำให้แนวคิดนี้เป็นรูปธรรมในรูปของแหล่งกำเนิดที่ทริกเกอร์ด้วยอีเวนต์ สัญญาณแบบมีทิศทางพร้อมเส้นโค้งความแรงตามเวลา และตัวรับสัญญาณที่ติดตั้งอยู่กับกล้อง รูปทรงและระยะเวลาของสัญญาณสามารถเปลี่ยนไปตามการโจมตีได้โดยไม่ต้องเปลี่ยนตัวควบคุมกล้อง เอกสาร Cinemachine
ปฏิกิริยาของเป้าหมายและ knockback มีบทบาทแตกต่างกัน แสงวาบ การเสียรูป หรือเลขความเสียหายสื่อสารว่ามีการสัมผัสเกิดขึ้น ส่วนการเคลื่อนตำแหน่งจะเปลี่ยนตำแหน่งทางกายภาพหรือในเกมของเป้าหมาย สำหรับ Unity Rigidbody ที่ทำงานอยู่และไม่ใช่ไคเนแมติก AddForce พร้อม ForceMode.Impulse จะทำให้ความเร็วเปลี่ยนแปลงเท่ากับแรงกระตุ้นหารด้วยมวล โดยไม่ขึ้นกับระยะเวลาของขั้นตอนการจำลอง ส่วนคอนโทรลเลอร์ตัวละครอาจใช้กฎการเคลื่อนที่ของตนเองแทน ความแตกต่างนี้สำคัญเมื่อปรับแต่งแรงที่รับรู้ได้โดยไม่ทำให้ระยะห่างในการต่อสู้เปลี่ยนไปโดยไม่ตั้งใจ เอกสาร Rigidbody
อนุภาคสื่อสารทิศทางการปะทะ ขณะที่เสียงผสานจังหวะเริ่มต้น ลักษณะเฉพาะของวัสดุ และน้ำหนักที่รับรู้ได้ ผู้สร้างเสนอเลเยอร์ความถี่ต่ำ กลาง และสูง AudioSource.PlayOneShot ของ Unity สามารถเรียกใช้คลิปที่ซ้อนกันได้โดยไม่ยกเลิกคลิปที่กำลังเล่นอยู่ แต่ยังต้องปรับสมดุลระดับเสียง เนื่องจากเอกสารระบุว่าการสเกลระดับเสียงให้สูงกว่าหนึ่งอาจทำให้เกิดการคลิป ดังนั้นการวางเลเยอร์เสียงจึงต้องอาศัยการมิกซ์ ไม่ใช่เพียงทำให้แต่ละเลเยอร์ดังขึ้น เอกสาร Audio
การประยุกต์ใช้และขอบเขตของหลักฐาน
การแยกองค์ประกอบเป็นหกเลเยอร์มีประโยชน์สำหรับการตรวจสอบต้นแบบการต่อสู้ระยะประชิดและระบุว่าการตอบสนองใดขาดหายไปหรือไม่สอดคล้องกัน เวิร์กโฟลว์การปรับแต่งเชิงบรรณาธิการคือคงการกระทำและการจัดเฟรมกล้องไว้เหมือนเดิม เปิดใช้งานทีละเลเยอร์ แล้วเปรียบเทียบโปรไฟล์การโจมตีเบาและหนัก บันทึกระยะเวลาการหยุด เอนเวโลปการสั่น การเคลื่อนตำแหน่ง ทิศทางของอนุภาค และสมดุลเสียงแยกกัน เพื่อไม่ให้การเปลี่ยนแปลงด้านภาพถูกเข้าใจสับสนกับการเปลี่ยนแปลงด้านเกมเพลย์
เนื้อหานี้เป็นการสาธิตของผู้สร้างประกอบกับคำอธิบายที่อิงเอนจิน ไม่ใช่ปลั๊กอิน โมเดล AI หรือวิธีการทางวิชาการที่เผยแพร่ ผู้สร้างไม่ได้เผยแพร่ส่วนงานในอนาคตหรือรายการ TODO ไว้ในแหล่งข้อมูลที่ตรวจสอบ ดังนั้นจึงไม่มีการกล่าวอ้างถึงแผนพัฒนาที่นี่ ตัวอย่าง Unity อธิบายกลไกที่มีอยู่ แต่ไม่ได้ยืนยันว่าการนำไปใช้งานในวิดีโอต้นฉบับทำอย่างไร
คำถามที่พบบ่อย
ชั้นทั้งหกจำเป็นต้องมีความแข็งแรงเท่าเทียมกันหรือไม่?
ไม่ ผู้สร้างปรับจังหวะเวลาและความแรงของการโจมตีเบาและหนักให้แตกต่างกัน การสาธิตรองรับเลเยอร์ที่ปรับได้ ไม่ใช่ค่าที่ตั้งไว้ล่วงหน้าสำหรับความแรงสูงสุดเพียงค่าเดียว
เหตุใดการใช้งาน hitstop จึงค้างได้?
หากมันหยุดเวลาตามสเกลและรอให้ตัวจับเวลาตามสเกลทำงานจนเสร็จ ลอจิกการกู้คืนก็อาจหยุดทำงานไปด้วย การจับเวลาแบบไม่ใช้สเกลของ Unity มีนาฬิกาที่ทำงานต่อไปอย่างเป็นอิสระ
ฉันสามารถดาวน์โหลดระบบการต่อสู้ที่สาธิตไว้ได้หรือไม่
โพสต์ที่ตรวจสอบแล้วไม่มีพื้นที่เก็บข้อมูลสาธารณะหรือระบบที่ดาวน์โหลดได้ API ของ Unity ที่ลิงก์ไว้สามารถรองรับการนำไปใช้งานได้ แต่ไม่ใช่การเผยแพร่โปรเจ็กต์ของผู้สร้าง



