2.5D'lik bir platform için eğik düzlemli fizik


9

XNA'da bir 2D düzlem boyunca ( Trine gibi ) seyahat etmek için kısıtlanmış 3D modelleri kullanan bir 2.5D platform oluşturuyorum .

Bununla birlikte, işleri daha hileli hale getirmek için, 2D düzlemin kendisinin kıvrılmasını istiyorum. Klonoa'nın bu tekrarını düşünün (sadece 10 saniye izlemeniz gerekir): oyuncu 2D bir düzlemde olmasına rağmen, uçağın kendisi bir dağın kenarına sarılabilir ve oyuncunun 3D uzayda yolculuk etmesine izin verebilir - her zaman bir platformun normal 2B düzlemiyle sınırlandırıldı.

Böyle bir oyunda fiziğe nasıl yaklaşılmalı?

  • 2D fizik motoru mu yoksa 3D fizik motoru mu kullanmalıyım?
  • Bu durumu göz önünde bulundurarak tasarlanmış fizik motorları var mı?
  • Bunun için tasarlanmamış olan herhangi biri için: fizik motorunun benimle işbirliği yapması için hangi kesmek veya püf noktaları gerekli olacak?

2
Sanırım 'eğri' tamamen görsel, fizik açısından ise 2D gibi görünüyor. Tek hile, onu GFX uzayına dönüştürmek veya fizik uzayına dönüştürmek olacaktır.
deceleratedcaviar

Yanıtlar:


9

Böyle bir platform hala özünde bir 2D platform oyunudur. 2.5D etkisi, hatta dağın etrafındaki kıvrılma bile, sadece 2D'de kısıtlanmış bir dünyanın görselleştirilmesidir. Fizik motorunuz muhtemelen sadece bu dünyada çalışacak ve onun görselleştirilmesi üzerinde çalışmayacaktır, bu yüzden bir 2D fizik motoru yeterli olacaktır.

Bununla birlikte, bazı 3D efektlerle ilgilenebilirsiniz. "Biyonik Komando: Yeniden silahlı" oyunda, mağlup düşman karakterler platformdan 'roll' olacak, Ragdoll fizik aslında 3D hale getirecek. Buna ek olarak, çoğu 3B fizik motoru, hareketi bir veya daha fazla eksen boyunca kısıtlamanıza izin verir (yol ve hareketli karakterler arasında bir bağlantı oluşturmak gibi bazı ince ayarlara rağmen).

Her 3D efektin tam gelişmiş bir fizik motoruna ihtiyaç duymadığını unutmayın. Tam bir 3D motora başvurmak zorunda kalmadan, bir patlamadan sonra döküntü gibi küçük şeyler için kendi 3D uygulamalarınızı kodlayabilirsiniz.

3. boyutta fizik hesaplamalarına ihtiyacınız olmayacaksa, tavsiyem 2D bir motorla başlamaktır. Aksi takdirde bir 3B motor seçin ve ilgili olduğunda sadece iki eksende hesaplamaları sınırlayın.


2

Fiziklerinizden herhangi birinin düz oyuncu alanının dışında olup olmayacağına bağlıdır.

Ghostonline'ın dediği gibi enkaz ve ragdoll animasyonları, 2.5D oyununda 2D dışı fiziğin klasik bir örneğidir.

Başka bir örnek mermiler: Oyununuzda herhangi bir mermi varsa, 2D alanınızın eğriliğini takip ediyorlar mı, yoksa bu sınırları terk edecekleri anlamına gelse bile doğrudan ilerliyorlar mı?

Ayrıca fiziksel bir 2D alanı doğru bir şekilde kavisli bir 3D görselleştirmeyle eşleştirmek (yanlışsam beni düzeltin) .. o kadar kolay değil. Muhtemelen çok sayıda spline veya benzeri bir şey içeren injektif bir projeksiyon fonksiyonuna ihtiyacınız olacaktır.

Kavisli 2D oyun alanlarına sahip olmak güzel bir eklenti olsa da, kod için oldukça fazla ek yük gerektirir. Trine'de böyle bir şeyin olmamasının nedeni bu olabilir. Ama oyun zaten eğlenceliydi, değil mi? Böyle bir özellik hakkında iki kere düşünürdüm.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.