Ledge ไต่แอนิเมชันและการเคลื่อนไหว (platformer 2d)


11

การดิ้นรนเพื่อตัดสินใจเกี่ยวกับการใช้งานกลไกไต่ระดับบนสำหรับนักฟิสิกส์ 2d platformer อะไรคือวิธีที่ดีที่สุดในการทำสิ่งนี้โดยไม่ซับซ้อนเกินไป?

จนถึงตอนนี้ฉันเข้าใจ (มือสมัครเล่นที่นี่ไม่ใช่มืออาชีพ) มีตัวเลือกไม่กี่อย่าง ได้แก่ :

  1. ใช้แรงควบคุมกับร่างกายที่แข็งบนแกน y จนกระทั่งตำแหน่งรูตอยู่เหนือตำแหน่งมือจากนั้นใช้แรงกดบนแกน x มากพอเพื่อให้ตัวละครยืนอยู่บนแพลตฟอร์ม ในขณะเดียวกันก็ซิงค์สิ่งนี้กับภาพเคลื่อนไหวปีน

    ข้อสังเกต : การเคลื่อนไหวนั้นง่ายที่นี่และยังสามารถควบคุมได้ด้วยข้อต่อแบบเลื่อนปริซึม แต่ฉันไม่แน่ใจว่าฉันจะเก็บอนิเมชั่น (กระดูกสันหลัง) ให้สอดคล้องกับการเคลื่อนไหวได้อย่างไร

  2. แอนิเมชั่นการเคลื่อนไหวของรูทที่ขับเคลื่อนตำแหน่งรากของตัวละคร ส่งผ่านร่างแข็งเกร็งเมื่อเสร็จสิ้นและหวังว่า box2d ยังคงสามารถตอบสนองได้อย่างทันเวลาต่อการชนใด ๆ หากวัตถุใด ๆ ที่ตกลงมาจากท้องฟ้า

    ข้อสังเกต : ฟังดูง่ายกว่าที่จะเคลื่อนไหวจริง แต่ไม่แน่ใจว่าฉันจะเจอปัญหาใด ๆ เกี่ยวกับกระดูกสันหลังรันไทม์, box2d หรือใหม่กว่าลงมาบนแพลตฟอร์มที่เคลื่อนย้ายสายและแพลตฟอร์มความสูงที่หลากหลาย

  3. ใช้ IK ข้อ จำกัด โดยทางโปรแกรมในมือเพื่อล็อคพวกเขาในสถานที่และดำเนินการต่อเพื่อหมุนกระดูกด้วยตนเองหรือใช้ภาพเคลื่อนไหวที่กำหนดไว้ล่วงหน้าขนาดเล็ก (ไม่กี่คีย์ / เฟรม) ในขณะที่ใช้แรงที่จำเป็นกับร่างกายแข็งในเวลาเดียวกัน

    ข้อสังเกต : ดูเหมือนว่าสิ่งนี้จะให้การควบคุมสูงสุดแก่ผู้เล่น แต่ดูเหมือนจะซับซ้อนสำหรับฉันที่จะใช้งานในระดับของฉันไม่แน่ใจว่าจะเริ่มตรงไหน

ขอบคุณล่วงหน้าสำหรับข้อมูลใด ๆ !

FYI: นี่คือเครื่องยนต์ที่ใช้ ECS (libgdx + ashley) พร้อม box2d คว้าหิ้งนำมาใช้แล้วเป็นระบบแยกเพื่อให้เราสามารถสันนิษฐานได้ว่าตัวละครมีความสามารถในการแขวนจากหิ้งใด ๆ สูง

คำตอบ:


1

ฉันเชื่อว่าคุณต้องการตัวเลือกการออกแบบมากขึ้นที่นี่ก่อนที่คุณจะทำการตัดสินใจที่เหมาะสมโดยเฉพาะสิ่งที่สามารถเกิดขึ้นกับตัวละครในขณะที่เขาแขวน / ปีนเขา?

เนื่องจากคุณบอกว่าเกมนี้เป็นเกมที่ใช้ระบบฟิสิกส์ฉันคิดว่าคุณอาจจะมีก้อนหินตกลงมาบนหัวของคุณในขณะที่แขวนหรือปีนเขาดังนั้นถ้าเป็นกรณีนี้ฉันเชื่อว่าการรูทotionเป็นวิธีที่ง่ายที่สุด ในขณะที่กำลังปีนเขาอยู่ในสภาพแขวนแตกต่างกันเล็กน้อยความแตกต่างเพียงอย่างเดียวคือคุณไม่สามารถเริ่มการปีนเขาได้

ตอนนี้สมมติว่าคุณมีสถานการณ์แฮงค์ทั้งหมดภายใต้การควบคุมหมายความว่าหากในขณะที่คุณกำลังแฮงค์และมีการโต้ตอบใด ๆ เกิดขึ้นตัวละครจะตอบสนองอย่างถูกต้อง

จากนั้นทั้งหมดที่คุณต้องทำคือการตั้งค่าสถานะของตัวละครของคุณกลับไปว่างเมื่อเคลื่อนไหวปีนเขาเสร็จสมบูรณ์


0

คุณสามารถย้ายการแปลงได้ขึ้นอยู่กับจำนวนครั้งจนกระทั่งเท้าอยู่บนหิ้งและลืมฟิสิกส์ชั่วคราวฉันคิดว่ามันจะทำงานได้ดีคุณสามารถวัดระยะทางระหว่างวัตถุที่ตกลงมาและผู้เล่นในกรณีที่การชนล้มเหลวระหว่าง การแปลงการแปล เพื่อให้แน่ใจว่ามีการชนกันเกิดขึ้น ..


0

หากผู้เล่นถูกกดทับวัตถุที่ไต่แล้วอนุญาตให้ขึ้น / ลงเพื่อย้ายบนแกน Y ในระหว่างสถานะนี้ตรวจสอบให้แน่ใจว่ามันไม่สามารถเคลื่อนที่บนแกน X ได้ ในขณะที่คุณเคลื่อนไหวคุณสามารถโทร Animation ได้ตัวอย่างบนแอนนิเมชั่นไต่ของคุณเพื่อให้แน่ใจว่าจุดในภาพเคลื่อนไหวตรงกับระยะทางที่ปีนขึ้นไปแทนที่จะพยายามจับเวลาทุกอย่าง


0

ในความคิดของฉันวิธีที่ "ดีที่สุด" คือ: เมื่อคุณตรวจพบการปีนเขาเป็นไปได้ให้ล็อคตำแหน่งของผู้เล่นชั่วคราว ใช้ภาพเคลื่อนไหวพร้อมการเคลื่อนไหวของรากและล็อคการควบคุม เมื่อภาพเคลื่อนไหวจบลงให้ปลดล็อคตำแหน่งผู้เล่นและการควบคุม

แน่นอนถ้าคุณทำมันโดยประมาทมันจะดูแปลก ๆ หรือมันจะต้องมีความแม่นยำพิกเซลที่สมบูรณ์แบบ แต่คุณสามารถหลีกเลี่ยงได้ - ให้ผู้เล่นบางช่วงที่สามารถปีนขึ้นไปและด้วยการเลื่อนตำแหน่งอย่างรวดเร็วไปยังจุดที่สมบูรณ์แบบ


0

ผู้เล่นสามารถเคลื่อนที่ในแนวนอนได้อย่างอิสระในขณะที่อยู่กลางอากาศ (การควบคุมอากาศ)? ถ้าเป็นเช่นนั้นฉันจะใช้แรงในแนวตั้งในปริมาณที่เหมาะสมเพื่อให้เท้าของผู้เล่นอยู่เหนือแท่นและปล่อยให้ผู้เล่นเคลื่อนที่ไปตามแนวนอน

สิ่งนี้จะทำให้ผู้เล่นควบคุมตัวละครได้มากขึ้นและเปิดตัวเลือกการเคลื่อนไหวมากขึ้น - ตัวอย่างเช่นหากผู้เล่น (ในขณะที่ห้อยลงมาจากหิ้ง) อยากกระโดดยิงที่บางสิ่งบนชานชาลาแล้วถอยกลับลงมา หิ้งในขณะที่กระสุนปืนเดินทางไปยังเป้าหมายเพื่อหลบขีปนาวุธใด ๆ ที่เป้าหมายถูกไล่ออกไปที่ผู้เล่น ชั้นเชิงดังกล่าวอาจจะทำให้กลยุทธ์การต่อสู้ของบอสน่าสนใจ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.