Vật lý cho một nền tảng 2.5D với một mặt phẳng cong


9

Tôi đang tạo một nền tảng 2.5D trong XNA, sử dụng các mô hình 3D bị hạn chế di chuyển dọc theo mặt phẳng 2D (giống như Trine ).

Tuy nhiên, để làm cho mọi thứ trở nên phức tạp hơn, tôi muốn bản thân mặt phẳng 2D có thể uốn cong. Hãy xem xét bản phát lại này của Klonoa (bạn chỉ cần xem trong 10 giây): mặc dù người chơi ở trên máy bay 2D, bản thân máy bay có thể quấn quanh sườn núi, cho phép người chơi di chuyển trong không gian 3D một cách hiệu quả bị ràng buộc với mặt phẳng 2D thông thường của một platformer.

Làm thế nào vật lý nên được tiếp cận trong một trò chơi như thế này?

  • Tôi nên sử dụng động cơ vật lý 2D hay động cơ vật lý 3D?
  • Có bất kỳ động cơ vật lý thực sự được thiết kế với tình huống này trong tâm trí?
  • Đối với bất kỳ điều gì không được thiết kế cho việc này: những hack hoặc thủ thuật nào sẽ cần thiết để khiến động cơ vật lý hợp tác với tôi?

2
Tôi đoán rằng 'đường cong' hoàn toàn là một hình ảnh, về mặt vật lý, nó dường như là 2D. Bí quyết duy nhất là chuyển đổi nó sang không gian GFX hoặc chuyển đổi nó sang không gian vật lý.
deceleratedcaviar

Câu trả lời:


9

Một platformer như thế này vẫn vậy, về bản chất nó là một platformer 2D. Hiệu ứng 2.5D, thậm chí là uốn quanh ngọn núi, chỉ đơn thuần là một hình ảnh của một thế giới bị giới hạn trong 2D. Công cụ vật lý của bạn có thể sẽ chỉ hoạt động trên thế giới này chứ không phải trực quan hóa nó, vì vậy một công cụ vật lý 2D là đủ.

Điều đó nói rằng, bạn có thể quan tâm đến một số hiệu ứng 3D. Trong trò chơi "Bionic Commando: Re-armed", các nhân vật kẻ thù bị đánh bại sẽ 'lăn lộn' khỏi nền tảng, biến vật lý ragdoll thực sự thành 3D. Ngoài ra, hầu hết các công cụ vật lý 3D cho phép bạn hạn chế chuyển động dọc theo một hoặc nhiều trục (mặc dù có một số điều chỉnh như tạo khớp giữa đường và các ký tự di chuyển).

Hãy nhớ rằng không phải mọi hiệu ứng 3D đều cần một công cụ vật lý toàn diện. Bạn có thể mã hóa các triển khai 3D của riêng mình cho những thứ nhỏ nhặt như mảnh vỡ sau vụ nổ, mà không cần phải dùng đến một công cụ 3D hoàn chỉnh.

Đề xuất của tôi là bắt đầu với một công cụ 2D nếu bạn có thể không cần tính toán vật lý ở chiều thứ 3. Mặt khác, chọn một công cụ 3D và giới hạn các phép tính chỉ trong hai trục khi có liên quan.


2

Nó phụ thuộc nếu bất kỳ vật lý của bạn có thể xảy ra bên ngoài không gian người chơi phẳng.

Như ghostonline đã nói các mảnh vỡ và hoạt hình ragdoll là một ví dụ kinh điển về vật lý ngoài 2D trong một trò chơi 2.5D.

Một ví dụ khác là đạn: Nếu có bất kỳ quả đạn nào trong trò chơi của bạn, chúng có đi theo độ cong của không gian 2D của bạn hay đi thẳng về phía trước ngay cả khi điều đó có nghĩa là chúng sẽ rời khỏi những giới hạn đó?

Ngoài ra, ánh xạ một không gian 2D vật lý thành một hình ảnh 3D cong chính xác là (sửa tôi nếu tôi nhầm) .. không dễ dàng gì. Bạn sẽ cần một chức năng chiếu tiêm có thể liên quan đến rất nhiều spline hoặc một cái gì đó tương tự.

Mặc dù có không gian trò chơi 2D cong là một tiện ích bổ sung đẹp mắt, nhưng nó đòi hỏi khá nhiều chi phí cho mã. Đó có thể là lý do tại sao không có điều đó trong Trine. Nhưng dù sao thì trò chơi cũng rất vui phải không? Tôi sẽ nghĩ hai lần về một tính năng như thế.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.