Çıkıntıya tırmanma animasyonu ve hareketi (2B platform)


11

Bir fizik güdümlü 2d platformer için çıkıntı tırmanma tamircisi uygulanması konusunda karar vermek için mücadele. Aşırı karmaşık hale gelmeden bu konuda gitmenin en iyi yolu nedir?

Şimdiye kadar anlıyorum (hobi burada bir profesyonel değil) orada birkaç seçenek dahil:

  1. Kök konumu el konumunun hemen üzerinde oluncaya kadar y eksenindeki rijit gövdeye kontrollü kuvvet uygulayın, ardından karakter platformda ayakta duracak şekilde x eksenine yeterli kuvvet uygulayın. Aynı zamanda bunu bir şekilde tırmanış animasyonlarıyla senkronize edin.

    Açıklamalar : Hareket burada kolaydır ve prizmatik kayan bir eklem tarafından bile kontrol edilebilir, ancak animasyonları (omurga) hareketi ile nasıl senkronize tutacağımdan emin değilim.

  2. Karakterin kök konumunu yönlendiren kök hareket animasyonu. Rijit gövdeyi tamamlandığında ışınlayın ve box2d, gökten herhangi bir nesne düşerse herhangi bir çarpışmaya zamanında uygun şekilde cevap verebileceğini umuyoruz.

    Açıklamalar : Sesleri gerçekten canlandırmak daha kolay, ancak omurga çalışma zamanı, box2d veya daha sonra çizgi hareketli platformlarda ve çeşitli yükseklik platformlarında herhangi bir sorunla karşılaşıp karşılaşmayacağımdan emin değilim.

  3. İK kısıtlamasını programlı olarak ellere kilitlemek ve kemikleri elle döndürmeye devam etmek veya sert gövdeye aynı anda gerekli kuvveti uygularken küçük ön ayarlı (birkaç tuş / kare) animasyon uygulamak.

    Açıklamalar : Bu, oyuncuya maksimum kontrol verecek gibi görünüyor, ancak benim seviyemde uygulamak benim için karmaşık bir yol gibi görünüyor, nereden başlayacağımı tam olarak bilmiyorum.

Herhangi bir giriş için şimdiden teşekkürler!

FYI: Bu, box2d ile ECS (libgdx + ashley) tabanlı bir motor. Çıkıntı tutucusu zaten ayrı bir sistem olarak uygulanmıştır, bu yüzden karakterin zaten herhangi bir yükseklikte bir çıkıntıdan asılabileceğini varsayabiliriz.

Yanıtlar:


1

uygun bir karar vermeden önce burada daha fazla tasarım seçeneğine ihtiyacınız olduğuna inanıyorum, özellikle, karakter asılıyken / tırmanırken ne olabilir?

oyunun fizik tabanlı olduğunu söylediğinden, asılı veya tırmanırken başınıza düşen bir kayaya sahip olabileceğinizi varsayalım, bu yüzden rootmotion için en basit çözüm olabileceğine inanıyorum, sadece tırmanmayı canlandırmanız gerekir , tırmanırken biraz farklı asılı bir durumda, tek fark tırmanma eylemini başlatamamanızdır.

Şimdi bu, tüm asılı durumunuzu kontrol altında tuttuğunuzu varsayar, yani asılı kalırsanız ve herhangi bir etkileşim gerçekleşirse, karakter düzgün tepki verir.

O zaman yapmanız gereken tek şey tırmanma animasyonu tamamlandığında karakterinizin durumunu boşta tutmaktır.


0

Sadece dönüşü hareket ettirebilirsin. ayaklar çıkıntıya gelene ve fiziği geçici olarak unutana kadar n kez yukarı çıkabilir, bence iyi çalışır, çarpışma sırasında başarısız olursa düşen nesneler ile oyuncu arasındaki mesafeyi her zaman ölçebilirsin dönüşüm çevirisi. çarpışmanın gerçekleştiğinden emin olmak için ..


0

Oynatıcı tırmanabilen bir nesneye bastırılırsa, yukarı / aşağı hareket ettirerek Y ekseninde hareket etmesine izin verin. Bu durum sırasında X ekseni üzerinde hareket edemediğinden emin olun. Hareket ettikçe Animasyon'u arayabilirsiniz. Animasyondaki noktanın her şeyi zamanlamak yerine tırmanılan mesafeyle eşleştiğinden emin olmak için tırmanma animasyonunuzda örnek alın.


0

Bence "en iyi" yol şu olurdu: Tırmanmanın mümkün olduğunu tespit ettiğinizde, oyuncunun pozisyonunu geçici olarak kilitleyin. Animasyonu kök hareketiyle kullanın ve kontrolleri kilitleyin. Animasyon sona erdiğinde, oyuncuların konumunu ve kontrollerini açın.

Tabii ki pervasız bir şekilde yaparsanız, garip görünecek VEYA piksel mükemmel hassasiyet gerektirecektir. Ancak bundan kaçınabilirsiniz - oyuncuya tırmanabileceği bir aralık verin ve bir lerp ile pozisyonu hızlı bir şekilde mükemmel noktaya ayarlayın.


0

Oyuncu havada iken serbestçe yatay hareket edebilir mi (hava kontrolü)? Eğer öyleyse, oyuncunun ayaklarını platformun üstüne almak ve oyuncunun üzerine yatay olarak hareket etmesine izin vermek için uygun miktarda dikey kuvvet uygularım.

Bu, oyuncuya karakter üzerinde daha fazla kontrol sağlar ve daha fazla hareket seçeneği açar - Örneğin, oyuncu (bir çıkıntıdan sarkarken) atlamak isterse, platformdaki bir şeye ateş et, sonra geri çekil ve yeniden tut mermi, oyuncuya ateş ettiği herhangi bir mermiyi atlatmak için hedefine gitti. Böyle bir taktik ilginç bir patron dövüş stratejisi yapabilir.

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.