Untuk kurva gerak, saya sarankan menggunakan kurva Hermite. Anda cukup memberikan titik awal / kecepatan dan titik akhir / kecepatan, dan itu menciptakan kurva yang bagus dan halus antara keduanya. Gunakan titik akhir / kecepatan dari pasangan poin pertama sebagai titik awal / kecepatan pasangan poin berikutnya dan Anda memiliki kurva panjang dan berliku yang mulus.
Ini dengan sempurna menangani persyaratan untuk mengatur kecepatan: Anda memberikan daftar titik waktu dengan kecepatan yang Anda pilih, dan itu memberi Anda posisi yang diinterpolasi dan nilai kecepatan dengan mulus. Jika Anda ingin menggunakannya, semua yang Anda butuhkan untuk mengekstrak dari aplikasi 3D authoring adalah poin dan kecepatan di jalur yang Anda inginkan. Anda juga dapat membuat mereka dalam runtime, mungkin berdasarkan input pengguna.
Untuk menyesuaikan orientasi, Anda memiliki sejumlah opsi. Jika pesawat akan selalu menunjuk ke arah mana ia pergi (yang merupakan kasus yang masuk akal), Anda dapat menggunakan vektor kecepatan interpolasi dari kurva Hermite untuk menemukan ke mana kapal Anda harus mengarah. Jika Anda tahu vektor atas (bergerak di bidang, atau Anda tahu arah mana yang harus naik), Anda dapat menghitung sumbu ketiga dengan lintas (depan, atas) dan di sana Anda memiliki orientasi.
Jika Anda ingin orientasi "goyah" entah bagaimana sehingga pesawat kadang-kadang menyimpang dari arah depan di jalan, Anda dapat menggunakan arah depan sebagai arah yang diinginkan, dan berturut-turut lakukan satu langkah slerp antara orientasi saat ini dan orientasi yang diinginkan.
Jika Anda ingin orientasi khusus yang tidak ada hubungannya dengan jalur, tentu saja Anda dapat menyediakan daftar angka orientasi untuk ini. Kemudian poin Anda menjadi (titik, kecepatan, angka empat). Kemudian Anda dapat menggunakan slerp antara dua angka empat berturut-turut untuk mengatur orientasi Anda di sepanjang jalan. Jangan lupa bahwa slerp adalah metode interpolasi linier . Namun, biasanya harus baik-baik saja. Jika Anda menemukan bahwa rotasi tidak cukup mulus pada lapisan, Anda dapat mencoba menginterpolasi daftar angka empat dengan kurva Bezier, seperti dijelaskan di sini pada bagian 7.
Berikut adalah beberapa kode sumber yang dapat membantu Anda memulai. Ini memiliki sejumlah teknik interpolasi halus untuk daftar angka empat (skuad, bezier, dll).
Beri tahu saya jika Anda memiliki pertanyaan!