Cách tích hợp hoạt hình nhảy với Unity

Hôm nay tôi đã hoàn thành hoạt hình nhảy đầu tiên của mình trong Blender, mà tôi muốn tích hợp trong Unity. Tôi nghĩ rằng tôi sẽ phải làm một cái gì đó giống như Ok Ok khi tôi nhấn nút nhảy, kích hoạt hoạt hình nhảy và đó là nó! Thậm chí không gần!

Tôi đã làm điều này và kết quả là không đúng như tôi mong đợi.

Tôi khá chắc chắn rằng quá trình tôi mô tả trước đó sẽ hoạt động trong một số trường hợp cụ thể nhưng thật đáng buồn, không phải ở tôi.

Tôi đã phải trải qua một phương pháp dài hơn.

Nhìn nhanh vào một cú nhảy

Một bước nhảy thông thường có thể được chia thành ba giai đoạn khác nhau:

  • Sự thúc đẩy của Jump: khi nhân vật của chúng ta đang bắt đầu và nhảy.
  • Giai đoạn té ngã: khi nhân vật của chúng ta đang cố gắng giữ ổn định khi ở trên không.
  • Giai đoạn hạ cánh: khi nhân vật của chúng ta, vẫn còn ở trên không, đang chuẩn bị để tiếp cận mặt đất.

Làm thế nào nó hoạt động trong một trò chơi?

Khi người chơi nhấn phím cách (rõ ràng là nút nhảy ), nó sẽ kích hoạt hoạt hình nhảy.

Khi người chơi ở trên không, một hình ảnh động khác bắt đầu: pha rơi xuống cho đến khi chạm đất.

Sau đó, hoạt hình hạ cánh bắt đầu nhưng với một sự tinh tế: nếu hoạt hình này bắt đầu khi nhân vật vừa chạm đất thì đã quá muộn! Trong giai đoạn này, chúng tôi biết rằng chúng tôi sẽ chạm đất (đơn giản vì chúng tôi có thể nhìn thấy nó). Do đó, chúng ta có thể dễ dàng đánh giá khoảng cách và chuẩn bị sẵn sàng cho tác động khi ở trên không.

Hãy suy nghĩ về cách chúng ta cư xử khi chúng ta nhảy! Khi chúng tôi thấy rằng chúng tôi sẽ chạm đất, chúng tôi đang chuẩn bị cho bản thân mình để tác động trực tiếp. Chúng ta có thể bởi vì chúng ta có tầm nhìn về mặt đất và có thể nhanh chóng đánh giá khi nào chúng ta cần chuẩn bị.

Những gì còn thiếu trong trường hợp của chúng tôi là một cái gì đó để đánh giá khoảng cách của nhân vật của chúng tôi từ mặt đất! Tôi sẽ đưa ra cho bạn một phương pháp để đánh giá khoảng cách này từ nhân vật đến mặt đất, nhưng lưu ý rằng có nhiều cách khác để làm như vậy. Nó có thể được sử dụng trong công cụ trò chơi khác.

Bí quyết là chiếu một tia từ nhân vật của chúng ta theo hướng vận tốc của anh ta. Sau đó chúng tôi sẽ có thể kích hoạt hoạt hình hạ cánh vào đúng thời điểm ngay trước khi chúng tôi tiếp cận nó! 🥳

Sẵn sàng?

Thực hiện với Unity

Trong Unity, có một công cụ gọi là Raycast sẽ cung cấp cho chúng ta chính xác những gì chúng ta muốn.

Chúng tôi tiến hành theo hai bước:

  • Chúng tôi gửi một Raycast theo hướng vận tốc của chúng tôi để xác định khoảng cách trước khi chúng tôi chạm đất.
  • Nếu vận tốc của chúng ta trên trục tung, y trong Unity, là âm (có nghĩa là chúng ta đang rơi) và mặt đất quá gần, thì chúng ta kích hoạt hoạt hình hạ cánh.

Nó là hoàn hảo nhưng bây giờ khi chúng ta nhảy vào trò chơi, kịch bản sẽ kích hoạt hoạt hình của chúng ta vào đúng thời điểm. Đến vô cùng và xa hơn! ️