4
วิธีการทำให้เคลื่อนไหว 2d นามธรรมลงบนผิวน้ำ?
ต้องการปรับปรุงโพสต์นี้หรือไม่? ให้คำตอบโดยละเอียดสำหรับคำถามนี้รวมถึงการอ้างอิงและคำอธิบายว่าทำไมคำตอบของคุณถึงถูกต้อง คำตอบที่ไม่มีรายละเอียดเพียงพออาจแก้ไขหรือลบออกได้ ขณะนี้ฉันใช้เกมที่มีมุมมองจากบนลงล่างของมหาสมุทร ฉันใช้สิ่งต่อไปนี้เป็นพื้นผิวที่เป็นนามธรรมเล็กน้อย: พื้นผิวที่แท้จริงมีความโปร่งใสฉันเพิ่มสีเขียวเหมือนเพื่อความชัดเจน ปัญหาที่ฉันมีอยู่ในตอนนี้คือฉันไม่รู้ว่าจะทำให้พื้นผิวนี้เคลื่อนไหวอย่างไรดังนั้นน้ำจึงดูดี ฉันพยายามย้ายพื้นผิวด้วยคลื่นบาป: texture.y += sin(angle). แน่นอนว่าตอนนี้พื้นผิวทั้งหมดกำลังเคลื่อนไหวซึ่งดูไม่สมจริง สิ่งต่อไปที่ฉันพยายามคือเพิ่มเลเยอร์อื่นและใช้เอฟเฟกต์พารัลแลกซ์ ดังนั้นการสะท้อนกลับภายใต้ผิวน้ำก็จะเคลื่อนไหวเช่นกัน แต่ช้ากว่ามาก มันดูดีขึ้นเล็กน้อย แต่ก็ยังไม่ ... ดีพอ ฉันคิดว่าอนิเมชั่นที่ดูดีที่สุดน่าจะเป็นถ้าแต่ละเซลล์จะขยายและหดตัวเช่นเว็บหรือผ้า ลองคิดดูว่าถ้าใครจะดึงจุดยอดหนึ่งของเซลล์เหล่านี้เล็กน้อยและเซลล์เพื่อนบ้านจะขยายตัวและเซลล์ที่ฉันดึงเข้าหา (หรือกดไปที่) จะหดตัว ชนิดของใยสปริง (?) แต่ฉันไม่มีเงื่อนงำวิธีการใช้สิ่งนี้: แบบจำลองคณิตศาสตร์สำหรับเรื่องนี้คืออะไร? บางสิ่งบางอย่างกับสปริงแรงผลัก / ดึงอยู่ที่ไหน และถ้าเป็นเช่นนั้นฉันจะแมปโมเดลนี้กับพื้นผิวที่กำหนดได้อย่างไร รักษาความโค้งทั้งหมดและสิ่งที่ไม่ ... (ฉันยังเปิดรับความคิดที่แตกต่างกัน / คำตอบเกี่ยวกับวิธีการเคลื่อนไหวพื้นผิวที่กำหนดความสมจริงไม่ได้เป็นจุดที่นี่เพียงแค่น้ำดูดีเช่นการเคลื่อนไหว ... ) โซลูชันจาก DMGregory ฉันโพสต์ตัวอย่าง libgdx ในโพสต์นี้: ภาพเคลื่อนไหวน้ำ 2d ขรุขระและไม่ราบรื่น (ดูคำตอบเกี่ยวกับการกรองพื้นผิว)