Senin, 29 Maret 2010

tutorial animasi pada ogre 3D

Kita sekarang akan setup animasi dasar. Animasi di Ogre sangat sederhana. Untuk melakukan ini, Anda perlu mendapatkan Badan AnimationState dari objek, mengatur pilihan, dan mengaktifkannya. Ini akan membuat animasi aktif, tetapi Anda juga perlu menambah waktu untuk itu setelah setiap frame agar animasi untuk menjalankan. Kita akan mengambil satu langkah pada satu waktu. Pertama, pergi ke MoveDemoListener's constructor dan tambahkan kode berikut:

// Set idle animation
       mAnimationState = ent->getAnimationState("Idle");
       mAnimationState->setLoop(true);
       mAnimationState->setEnabled(true);


Baris kedua mendapatkan AnimationState keluar dari entitas. Pada baris ketiga kita sebut setLoop (benar), yang membuat animasi loop berulang-ulang. Untuk beberapa animasi (seperti kematian animasi), kita akan ingin untuk mengatur palsu ini sebagai gantinya. Baris keempat benar-benar memungkinkan Animasi. Tapi tunggu ... mana yang kita dapatkan "Idle" dari? Bagaimana sihir ini konstan menyelinap di sana? Setiap mesh memiliki seperangkat mereka sendiri Animasi ditetapkan untuk mereka. Untuk melihat semua Animasi untuk mesh tertentu yang sedang Anda kerjakan, Anda perlu untuk men-download dan melihat OgreMeshViewer mesh dari sana.
Sekarang, jika kita mengkompilasi dan menjalankan demo yang kita lihat ... tidak ada yang berubah. Hal ini karena kita perlu memperbarui negara animasi dengan waktu setiap frame. Cari MoveDemoListener:: frameStarted metode, dan tambahkan baris kode ini pada awal fungsi:

 
 
mAnimationState->addTime(evt.timeSinceLastFrame);
Sekarang membangun dan menjalankan aplikasi.  
Anda akan melihat robot melaksanakan animasi berdiri di tempat.
 

4 komentar: