Фізика для 2.5D платформера з площиною, яка криво


9

Я створюю 2.5D платформер у XNA, який використовує 3D-моделі, обмежені для подорожі по двовимірному літаку (як і Trine ).

Щоб зробити справи хитрішими, однак, я хочу, щоб сама 2D площина могла кривитись. Розглянемо це повторення Клоноа (потрібно дивитися лише 10 секунд): хоча гравець знаходився на двовимірному літаку, сам літак міг обернутися стороною гори, ефективно дозволяючи гравцеві подорожувати по 3D-простору - весь час обмежений звичайною двовимірною площиною платформера.

Як слід підходити до фізики в такій грі?

  • Чи варто використовувати 2D-фізичний двигун чи двигун-фізику 3D?
  • Чи є якісь фізичні двигуни, фактично розроблені з урахуванням цієї ситуації?
  • Для будь-якого, хто не був призначений для цього: які хаки чи трюки знадобляться, щоб фізичний двигун співпрацював зі мною?

2
Я здогадуюсь, що «крива» суто візуальна, з точки зору фізики вона, здається, є двовимірною. Єдиним трюком було б перетворення його в простір GFX або перетворення його в простір фізики.
deceleratedcaviar

Відповіді:


9

Такий платформер, як і раніше, є, по суті, 2D-платформером. Ефект 2.5D, навіть завивання навколо гори, - це лише візуалізація світу, обмеженого в 2D. Ваш фізичний двигун, ймовірно, буде працювати тільки на цьому світі, а не на його візуалізації, тому 2D-фізичного двигуна буде достатньо.

При цьому вам можуть бути цікаві деякі 3D-ефекти. У грі "Bionic Commando: Переозброєні" переможені ворожі персонажі будуть неначе "скочуватися" з платформи, роблячи фізику регдола фактично 3D. Крім того, більшість двигунів з фізики 3D дозволяють вам обмежувати рух по одній або декількох осях (хоч і з деякими поправками, такими як створення стику між дорогою та рухомими символами).

Пам'ятайте, що не кожен 3D-ефект потребує повноцінного двигуна фізики. Ви можете кодувати свої власні 3D-реалізації для незначних речей, таких як падіння сміття після вибуху, не вдаючись до повного 3D-двигуна.

Моя рекомендація починається з 2D двигуна, якщо вам, ймовірно, не знадобляться фізичні розрахунки в 3-му вимірі. В іншому випадку виберіть 3D-двигун і обмежте обчислення лише на двох осях, де це доречно.


2

Це залежить від того, чи може відбутися будь-яка ваша фізика поза плоским простором гравця.

Як зазначає ghostonline, анімація від сміття та регдолла є класичним прикладом поза-двовимірної фізики в 2.5D-грі.

Інший приклад - кулі: Якщо у вашій грі є якісь снаряди, чи слідкують вони за викривленням 2D простору чи роблять подорож прямо вперед, навіть якщо це означає, що вони покинуть ці межі?

Також правильно відобразити фізичний 2D-простір на вигнуту 3D-візуалізацію (виправте мене, якщо я помиляюся) .. не все так просто. Вам знадобляться функції інжекційних проекцій, які, ймовірно, включають багато шліців або щось подібне.

Хоча вигнуті 2D ігрові простори є приємним доповненням, він вимагає певних накладних витрат на код. Це може бути причиною того, що подібного в Трине немає. Але гра все одно була веселою, чи не так? Я б подумав двічі про таку функцію.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.