Saya menggunakan kamera seperti FPS, dan menggunakan angka empat. Tapi, setiap kali saya mencoba melihat ke atas dan ke samping, itu miring, dan kadang-kadang bisa terbalik. Bagaimana saya bisa memperbaikinya?
17
Saya menggunakan kamera seperti FPS, dan menggunakan angka empat. Tapi, setiap kali saya mencoba melihat ke atas dan ke samping, itu miring, dan kadang-kadang bisa terbalik. Bagaimana saya bisa memperbaikinya?
Jawaban:
Anda bisa menguraikan angka empat Anda menjadi seperangkat yaw / pitch / roll, tetapi itu biasanya berlebihan.
Alih-alih menyusun angka empat Anda seperti ini:
Coba ini:
Maka tidak akan pernah menghasilkan tilt / roll dan setara dengan menyimpan yaw dan pitch secara terpisah
sumber
framePitch
danframeYaw
float
tipe? Juga, saya akan berterima kasih atas beberapa klarifikasi pada kalimat pertama Anda.cameraOrientation
,,framePitch
danframeYaw
semuanya angka empat (masing-masing angka empat adalah mengapung atau ganda).Ini adalah masalah yang saya miliki untuk sementara waktu, dan saya tidak dapat menemukan jawaban, jadi saya pikir saya akan mempostingnya di sini.
Ini sebenarnya cukup sederhana. Cara Anda paling mungkin melakukan rotasi adalah seperti ini:
Tetapi, melakukannya seperti ini juga tidak berhasil.
Yang harus Anda lakukan adalah melakukannya dengan urutan pertama untuk rotasi ke atas dan ke bawah, dan urutan kedua untuk rotasi ke samping.
Bagi saya, itu seperti ini:
Untuk alasan mengapa, cara pertama memiliki rotasi relatif terhadap arah sideways saat ini, yang Anda inginkan untuk naik dan turun, tetapi Anda tidak ingin itu untuk rotasi sideways, itulah sebabnya urutan kedua diperlukan.
sumber
Untuk kamera FPS Anda biasanya tidak ingin roll dan terbatas pada +/- 90 derajat pitch, jadi saya hanya melacak keadaan saat ini menggunakan sudut yaw dan pitch. Kekuatan penuh angka empat tidak terlalu membantu untuk ini.
Anda masih dapat mengonversi sudut yaw / pitch ke dan dari angka empat jika Anda ingin beralih antara kamera FPS dan kamera animasi menggunakan interpolasi keyframe angka empat, atau sesuatu seperti itu.
sumber
Trik sederhana lainnya adalah menempatkan kamera dalam GameObject, dan memiliki rotasi Yaw untuk mengontrol objek game, sementara kamera anak dikonfigurasikan dengan koordinat Pitch:
sumber