ดังนั้นฉันจึงเจอปัญหาในเกมที่ฉันกำลังดำเนินการอยู่ แต่ดูเหมือนว่าจะเป็นสิ่งพื้นฐานที่สวยที่อาจเกิดขึ้นในเกมจำนวนมาก
เกมของฉันต้องการให้ฟังก์ชั่นการเล่นเกมบางอย่างเกิดขึ้นในช่วงเวลาที่เฉพาะเจาะจงระหว่างภาพเคลื่อนไหวของตัวละคร และอย่างที่ชื่อบอกไว้ฉันสงสัยว่าอะไรคือเทคนิคที่ดีและกลยุทธ์พื้นฐานในการซิงโครไนซ์เหตุการณ์ / ฟังก์ชั่น / การกระทำที่เกี่ยวข้องกับการเล่นเกมไปยังจุดที่เฉพาะเจาะจงในภาพเคลื่อนไหวของตัวละคร
นี่คือตัวอย่างง่ายๆของสิ่งที่ฉันพูดถึงในเกมประเภทต่างๆ:
ตัวละครของคุณโหลดปืนของพวกเขาในนักกีฬา ตัวละครของคุณเล่นภาพเคลื่อนไหว 'รีโหลด' ของเขา / เธอ แต่สิ่งสำคัญคือฟังก์ชั่นที่ตั้งค่าตัวแปรแอมโมปัจจุบันนั้นจะเรียกเฉพาะในช่วงเวลาที่แน่นอนหลังจากที่นิตยสารเปลี่ยนเป็นและปืนถูกง้าง นี่อาจเป็นจุดที่อยู่ตรงกลางของภาพเคลื่อนไหวโหลดซ้ำ
ในเทิร์นอิงเบสตัวละครของคุณจะยืนเป็นเส้นตรงตามแนวของศัตรู เมื่อได้รับคำสั่งให้โจมตีหนึ่งในตัวละครของคุณจะวิ่ง / กระโดดขึ้นไปถึงหนึ่งในศัตรูและฟันดาบยักษ์ของพวกเขาก่อนที่จะวิ่ง / กระโดดกลับไปที่ที่ยืนของพวกเขา คุณต้องการตรวจสอบให้แน่ใจว่าศัตรูได้รับความเสียหายในช่วงเวลาที่แน่นอนที่มีการเล่นอนิเมชั่นอย่างเจ็บแสบ - บางจุดระหว่างวิ่งขึ้นและวิ่งกลับ
ในเกมลับ ๆ ล่อๆตัวละครของคุณสามารถแอบและโต้ตอบกับคอมพิวเตอร์และปุ่มต่าง ๆ ในโลก อาจมีปุ่มที่ปิดแหล่งจ่ายไฟให้กับไฟหน้าด่านที่คุณกำลังแทรกซึมอยู่ เมื่อกดปุ่มแอ็คชันตัวละครของคุณจะยื่นออกมาแล้วกดปุ่มจากนั้นกลับสู่ท่าทางที่ไม่ได้ใช้งาน คุณต้องการปิดไฟที่จุดที่แน่นอนในภาพเคลื่อนไหว 'push_button' เมื่อกดปุ่ม
กรณีของฉันเป็นที่ยอมรับมากที่สุดเป็นตัวอย่างที่สองซึ่งฉันได้สร้างแอนิเมชั่นที่ตัวละครที่หันตามตัวฉันพุ่งไปข้างหน้าในระหว่างการโจมตีและฉันต้องการความเสียหายที่จะนำมาใช้ในช่วงเวลาที่แน่นอนว่า . เพราะเกมของฉันใช้ระบบเทิร์นเบส (ลองนึกภาพบางอย่างเช่นไฟนอลแฟนตาซีหรือไฟร์เอมเบลม) ฉันต้องการความเสียหาย / การรักษา / เวทมนต์ / ฯลฯ ที่จะใช้ในเวลาที่ถูกต้องในระหว่างการเคลื่อนไหวของตัวละครแต่ละตัวถึงแม้ว่าฉันจะไม่ได้ใช้การชนกันของข้อมูล
ฉันควรจะพูดถึงว่าฉันกำลังสร้างเกมของฉันในเกมเอ็นจิ้นที่ได้รับความนิยมและตอนนี้ฉันกำลังจัดการสิ่งนี้โดยใช้กิจกรรมแอนิเมชั่นของพวกเขาหรือแจ้งให้บรรลุบางสิ่งบางอย่างใกล้เคียงกับผลลัพธ์ที่ต้องการ แอนิเมชันเฉพาะคำสั่ง (เช่น: 'attack_command') และเนื้อหาแอนิเมชั่นสำหรับคำสั่งแต่ละคำสั่งของฉันจะต้องมีเหตุการณ์ภาพเคลื่อนไหว / แจ้ง 'การโทรกลับ' ลงในอักขระ ExecuteCommand ของฉัน กล่าวอีกนัยหนึ่ง - ตัวละครจะบอกให้แอนิเมชั่นการโจมตีทำการเล่นและจากนั้นแอนิเมชั่นการโจมตีจะส่งเหตุการณ์ / แจ้งการโทรกลับไปยังตัวละครในช่วงเวลาที่แน่นอนระหว่างการเคลื่อนไหวเมื่อความเสียหายควรได้รับการจัดการ
จริงๆแล้วมันใช้งานได้ตอนนี้ แต่มันก็รู้สึกผิด - เหมือนว่าฉันพลาดภาพส่วนใหญ่ที่นี่ไป! ส่วนหนึ่งของเหตุผลที่วิธีการนี้รู้สึกผิดคือมันเข้ากับตรรกะของเกมกับเนื้อหาแอนิเมชั่น หากสินทรัพย์แอนิเมชั่นของฉันลืมที่จะรวม ExecuteCommand () event / callback คำสั่งจะไม่ทำงานอย่างถูกต้องและต้องมีรหัสพิเศษเพื่อตรวจสอบว่าภาพเคลื่อนไหวคำสั่งเสร็จสิ้นโดยไม่ต้องดำเนินการคำสั่งหรือไม่ มันยุ่งและหมายความว่าเกมของฉันมีการพึ่งพาสินทรัพย์ของมันอย่างประหลาด แน่นอนฉันต้องการความเสียหายที่จะเกิดขึ้น ณ จุดใดจุดหนึ่งระหว่างภาพเคลื่อนไหวการโจมตีของฉัน แต่ฉันรู้สึกแปลก ๆ เกี่ยวกับการเรียกรหัสการเล่นเกมภายในเนื้อหาแอนิเมชั่น ..
ดังนั้นสิ่งที่ฉันมองเห็นที่นี่? เทคนิคทั่วไปที่ดีสำหรับการจัดการกับสถานการณ์ประเภทนี้ที่คุณต้องการให้การกระทำการเล่นเกมที่สำคัญเกิดขึ้นในบางช่วงเวลาในระหว่างภาพเคลื่อนไหวคืออะไร
แก้ไข: เพื่อให้ชัดเจนนี่ไม่ใช่คำถามเฉพาะเครื่องยนต์หรือฉันกำลังมองหาการออกแบบ / เทคนิคเฉพาะเครื่องยนต์ ฉันสนใจเทคนิคการซิงโครไนซ์ภาพเคลื่อนไหว / การเล่นเกมทั่วไปที่อาจใช้ในโครงการเกมของคุณโดยไม่คำนึงถึงเทคโนโลยีที่ใช้