Animasi dan gerakan pendakian lereng (platformer 2d)

11

Berjuang untuk membuat keputusan tentang implementasi mekanik pendakian langkan untuk platformer 2d yang digerakkan oleh fisika. Apa cara terbaik untuk melakukannya tanpa menjadi terlalu rumit?

Sejauh ini saya mengerti (penggemar di sini bukan pro) ada beberapa pilihan termasuk:

  1. Berikan kekuatan yang terkontrol ke tubuh kaku pada sumbu y sampai posisi akar tepat di atas posisi tangan, lalu berikan kekuatan yang cukup pada sumbu x sehingga karakter berdiri di platform. Pada saat yang sama, entah bagaimana sinkronkan ini dengan animasi pendakian.

    Komentar : gerakan mudah di sini dan bahkan dapat dikontrol oleh sambungan geser prismatik tapi saya tidak yakin bagaimana saya akan menjaga animasi (tulang belakang) selaras dengan gerakan.

  2. Animasi gerakan root yang menggerakkan posisi root karakter. Teleport tubuh yang kaku ketika selesai dan berharap box2d masih dapat merespon dengan tepat pada waktu tabrakan jika ada benda yang jatuh dari langit.

    Keterangan : terdengar lebih mudah untuk benar-benar menghidupkan tetapi tidak yakin apakah saya akan mengalami masalah dengan runtime tulang belakang, box2d atau lambat di bawah platform pemindahan garis dan platform ketinggian bervariasi.

  3. Terapkan batasan IK secara terprogram pada tangan untuk menguncinya di tempat dan lanjutkan untuk memutar tulang secara manual atau menerapkan animasi preset kecil (beberapa kunci / bingkai) sambil menerapkan kekuatan yang diperlukan ke tubuh kaku pada saat yang sama.

    Komentar : sepertinya ini akan memberikan kontrol maksimal kepada pemain tetapi kedengarannya sulit bagi saya untuk menerapkan pada level saya, tidak yakin di mana saya akan mulai.

Terima kasih sebelumnya atas masukan apa pun!

FYI: Ini adalah engine berbasis ECS (libgdx + ashley) dengan box2d. Ambang langkan sudah diterapkan sebagai sistem terpisah sehingga kita dapat mengasumsikan di sini bahwa karakter sudah mampu menggantung dari langkan apa pun.

Adrian
sumber

Jawaban:

1

Saya percaya Anda perlu lebih banyak pilihan desain di sini sebelum Anda dapat membuat keputusan yang tepat, khususnya, apa yang dapat terjadi pada karakter saat ia tergantung / memanjat?

karena Anda mengatakan permainan ini berbasis fisika saya berasumsi bahwa Anda mungkin memiliki batu jatuh di kepala Anda saat menggantung atau memanjat, jadi jika ini masalahnya saya percaya pergi untuk rootmotion mungkin merupakan solusi paling sederhana, Anda hanya perlu menghidupkan pendakian , sementara memanjat itu dalam keadaan gantung yang sedikit berbeda, satu-satunya perbedaan adalah bahwa Anda tidak dapat memulai aksi pendakian.

Sekarang ini dengan asumsi Anda memiliki seluruh situasi menggantung terkendali, yang berarti bahwa jika Anda menggantung dan interaksi terjadi, karakter bereaksi dengan benar.

Maka yang perlu Anda lakukan adalah mengatur status karakter Anda kembali ke siaga setelah animasi pendakian selesai.

Brian H.
sumber
0

Anda bisa memindahkan transform.y ke atas n beberapa kali sampai kaki berada di langkan dan melupakan fisika sementara, saya pikir itu akan berfungsi dengan baik, Anda selalu dapat mengukur jarak antara benda yang jatuh dan pemain jika tabrakan gagal selama terjemahan transformasi. untuk memastikan tabrakan terjadi ..

joe shmoe
sumber
0

Jika pemain ditekan terhadap objek yang dapat dipanjat, maka izinkan naik / turun untuk memindahkannya pada sumbu Y. Selama kondisi ini pastikan tidak dapat bergerak pada sumbu X. Saat Anda bergerak, Anda dapat memanggil Animation. Contoh di animasi pendakian Anda untuk memastikan titik dalam animasi cocok dengan jarak yang naik daripada mencoba mengatur waktu segalanya.

Peter Morris
sumber
0

Menurut pendapat saya, cara "terbaik" adalah: Ketika Anda mendeteksi pendakian adalah mungkin, kunci sementara posisi pemain. Gunakan animasi dengan gerakan root dan kunci kontrol. Ketika animasi selesai, buka kunci posisi dan kontrol pemain.

Tentu saja jika Anda melakukannya dengan gegabah, itu akan terlihat aneh ATAU itu akan membutuhkan ketepatan pixel sempurna. Tapi Anda bisa menghindarinya - berikan pemain jarak di mana mereka bisa memanjat, dan dengan lerp cepat sesuaikan posisi ke tempat yang sempurna.

lilKriT
sumber
0

Dapatkah pemain bebas bergerak secara horizontal saat mereka berada di udara (kontrol udara)? Jika demikian, saya hanya akan menerapkan jumlah kekuatan vertikal yang sesuai untuk mendapatkan kaki pemain di atas platform dan membiarkan pemain bergerak secara horizontal ke atasnya.

Ini akan memberi pemain lebih banyak kontrol atas karakter dan membuka lebih banyak opsi gerakan - Misalnya, jika pemain (sambil tergantung dari langkan) ingin melompat, menembak sesuatu di platform, lalu jatuh kembali ke bawah dan ambil kembali langkan sementara proyektil melakukan perjalanan ke sasarannya sehingga untuk menghindari proyektil apa pun sasaran menembak balik ke pemain. Taktik seperti itu mungkin membuat strategi pertarungan bos yang menarik.

Agen Tatsu
sumber