Saya sedang mengerjakan senjata jenis pisau lempar di mana pemain membidik gratis lalu melempar pisau. Pisau berputar di udara dan pada tabrakan berhenti berputar dan orang tua itu sendiri ke objek yang bertabrakan dengannya. Pemintalan ditangani melalui animasi sedangkan jalur pisau ditangani oleh fisika.
Satu masalah yang saya hadapi adalah bagaimana memastikan bahwa ketika pisau bertabrakan dengan musuh maka pisau itu akan menghadap ke arah mereka. Pada saat yang terjadi kadang-kadang adalah pisau yang ditanamkan ke pegangan musuh terlebih dahulu. Yang jelas tidak realistis. Pada saat yang sama, saya pikir itu akan sangat tidak masuk akal bagi pisau untuk hanya "memukul" musuh jika pisau itu bertabrakan terlebih dahulu, karena tingkat di mana pisau berputar berada di luar kendali pemain.
Saya telah menonton banyak rekaman killcam lambat dari senjata yang sama dan setiap kali senjata dilemparkan itu berputar di udara dan secara ajaib selalu berakhir dengan pisau menunjuk ke sasarannya. Untuk permainan yang jarak lemparannya konsisten, ini cukup mudah untuk dilakukan. Tetapi saya tidak begitu yakin bagaimana cara memprediksi ini karena ada banyak faktor yang tidak terduga misalnya yang terlibat. arah pisau, rotasi pisau, posisi musuh, jarak dari musuh dll. Jika memungkinkan, saya lebih suka tidak harus menggunakan logika prediksi yang rumit karena permainan akan untuk perangkat yang cukup rendah. Apakah ada cara "asap dan cermin" untuk menyelesaikan ini?
sumber
Jawaban:
Berpura-pura
Lihat video yang Anda tautkan, saksikan dalam gerakan lambat ... eh, apa itu? Kamera melompat di ujung, dan pisau sudah ada di helm target.
Palsukan saja. Setelah jarak dari pisau ke target kecil, lompat memotong ke pisau secara ajaib di target.
Sunting: Anda dapat memeriksa apakah itu akan mengenai target menggunakan prediksi berbelit-belit, dan kemudian berpura-pura itu mengenai pisau pertama, kemudian menunjukkan animasi di mana target tidak bergerak dan pisau membunuhnya.
Prediksi berbelit-belit
Itu benar. Itu di luar kendali pemain. Namun, tidak di luar kendali Anda ...
Jika Anda dapat menghitung jarak yang harus ditempuh pisau, Anda dapat membuat kecepatan putar sehingga pisau akan mengenai pisau terlebih dahulu.
Sekarang, tidak masuk akal untuk membuat prediksi ini di pertengahan penerbangan, karena pisau harus menyesuaikan jika ada penghalang di jalan. Karena itu, Anda akan melakukannya ketika Anda melempar.
Fakta bahwa Anda harus mengikuti jalur parabola untuk mencapai tes membuatnya lebih rumit daripada pemain sinar sederhana. Saya akan menyarankan untuk mendapatkan persamaan untuk gerakan parabola yang sesuai dengan lemparan pisau, dan mengevaluasinya pada interval tertentu.
Dimungkinkan juga untuk menemukan jarak rintangan ke parabola, dengan menemukan titik terdekat di parabola dengan posisi rintangan, dan kemudian melakukan tabrakan dengan titik itu.
Setelah Anda tahu berapa banyak pisau yang harus dibawa, Anda dapat membaginya menjadi jumlah putaran bilangan bulat, sehingga pisau itu akan mengenai pisau terlebih dahulu. Sunting: atau bilangan bulat 0,5 tergantung pada cara Anda melempar.
Tentu saja, rintangan akan bergerak pada saat pisau itu sampai di sana ...
Jadilah realistik
Anda tidak akan membuat pisau pemukul pisau 100% pertama kali, khususnya dengan target yang bergerak. Hanya merangkul itu, pisau lempar bukanlah senjata yang dapat diandalkan. Jadi, miliki alternatif untuk memantulkannya saat itu mengenai pegangan pertama. Anda dapat memeriksa apakah itu mengenai pegangan terlebih dahulu dengan memeriksa orientasinya dan membandingkannya dengan arah ke titik tumbukan.
sumber
Jika Anda tahu sebelumnya di mana pisau akan mendarat - seperti pada mereka yang membunuh rekaman cam, yang paling pasti diproduksi setelah-fakta-hanya menghitung kecepatan rotasi yang tepat berdasarkan jarak penerbangan dan jumlah rotasi yang diinginkan. Pisau lempar meninggalkan gagang lempar terlebih dahulu, sehingga perlu memutar N + 0,5 putaran penuh 1 , di mana N biasanya setidaknya 1 tetapi bisa lebih didasarkan pada tingkat keterampilan pelontar atau seberapa keren Anda ingin terlihat: lebih banyak berputar = lebih dingin.
Jika tidak, tidak apa-apa untuk menipu dengan memperbaiki rotasi pada hit, dan mungkin menyembunyikannya dengan percikan darah. Seperti seorang penyihir, jika Anda melakukannya dengan cukup cepat, pemain tidak akan menyadarinya.
Tentu saja, semua ini tidak realistis. Dalam kehidupan nyata, melempar pisau sangat sulit dan membutuhkan banyak latihan jika Anda ingin pisau mendarat terlebih dahulu. Pelempar harus sepenuhnya menyadari jarak dan mengubah lemparan mereka sesuai, jika tidak pisau akan mengenai gagang pertama.
1 : Ada beberapa gaya di mana pisau menjadi pisau juga.
sumber
Hitung jarak garis lurus ke target.
Setiap Frame mengatur sudut pisau menjadi 2PI * (tersisaStraightLineDistance) / (originalStraightLineDistance) * DiinginkanNumRotations.
Rasio putaran akan sedikit bervariasi jika Anda tidak menggerakkan pisau dalam garis lurus tetapi tidak ada yang akan memerhatikan.
Jika Anda tidak menentukan terlebih dahulu target (yaitu Anda hanya melempar dan menggunakan fisika untuk melihat apa yang hitsnya) maka Anda perlu mengelabui ini tetapi Anda dapat menggunakan prinsip yang sama untuk melihat target apa yang mungkin mengenai sasaran dan menyesuaikan putaran menjadi benar untuk target itu.
sumber
Pisau lempar sungguhan dirancang untuk memiliki peluang sangat tinggi untuk memukul pisau terlebih dahulu. Desain pisau Anda sesuai.
Koleksi pisau lempar dari Wikipedia :
Anda ingin pusat massa, dan karenanya pusat rotasi, sejauh mungkin dari ujung pisau . Ini akan meningkatkan peluang bahwa blade akan berputar ke posisi memukul sebelum ujung gagangnya sampai di sana.
Pisau biasanya panjang dan tipis, untuk menonjol sejauh mungkin dari pusat massa sambil menambahkan massa sesedikit mungkin. Selain itu, sering ada penyeimbang berbentuk cakram atau bola di ujung pegangan, yang menarik saya tidak melihat di salah satu pisau dari gambar Wikipedia.
Pisau dilemparkan dengan memegang ujung pisau dan melengkungkan pegangan ke arah lemparan.
sumber
Untuk cara "asap dan cermin", Anda dapat memiliki pusat rotasi pisau (yaitu pusat massa) di dekat gagang (yaitu bagian yang tidak runcing). Dengan cara ini, jika kecepatan rotasi cukup tinggi dibandingkan dengan kecepatan pisau, dapat dipastikan bahwa ujung pisau akan bertabrakan dengan target dan bukan bagian lain.
Ada beberapa perhitungan untuk mendapatkan yang merupakan kecepatan rotasi minimum mengingat pusat massa dan dimensi, tetapi harus langsung. Perhatikan juga ini tidak menyiratkan apa pun tentang sudut klik.
sumber
Pelempar pisau yang sempurna?
Saat ini, Anda mengatakan Anda memutar pisau melalui animasi. Parameter apa yang Anda gunakan untuk mengontrol sudut? Nomor bingkai? Waktu bermain? Ditentukan oleh tingkat putaran yang berubah-ubah?
Jika Anda menggunakan parameter (jarak bergerak) / (jarak total ke target), dengan penskalaan yang sesuai dengan pi dan (jumlah putaran + 0,5), maka pisau memang selalu akan secara ajaib tiba di titik pertama.
sumber