View Daniel Harjanto's profile on LinkedIn

Domino Effect

by Daniel Harjanto a.k.a misterdi

Karena tutorial ini sudah berada banyak diberbagai site yang ditulis oleh banyak orang pula, tutorial ini hanya dimaksudkan untuk menampilkan alur kerja penulis dalam menghadapi efek tersebut.

Tutorial ini akan membahas beberapa masalah, yaitu bagaimana melakukan setup dari geometri dan bagaimana melakukan perpindahan dari passive ke aktif rigidBody di antaranya.

 

The setup

Sebagai geometri domino, kita akan menggunakan standar polygon Cube dan diskalakan sehingga menyerupai bentuk sebuah kotak domino. Kemudian benda ini diganti namanya menjadi dominoProxy, karena sesungguhnya benda ini hanya digunakan untuk simulasi rigid body bukan sebagai bentuk akhir dari kotak domino.

Yang terpenting untuk dilakukan pada dominoProxy ini adalah memindahkan titik pivot ke sisi bawah dari kotak tersebut.

Kita juga perlu membuat sebuah bidang meja (dibuat dari plane polygon biasa) dan diatas meja ini dibuat sebuah curve yang nantinya akan digunakan sebagai motion path curve dimana beberapa proxy domino akan diletakan.

Untuk membuat urutan kotak domino dalam scene, akan digunakan motion path sebagai alat untuk meletakan objek-objek tersebut dan secara otomatis akan melakukan pengaturan sendiri orientasinya sehingga membentuk deret kotak domino.

Karena diinginkan ada 30 proxy domino sepanjang kurva, maka pada saat menggunakan motion path opsi yang digunakan adalah sebagai berikut:

Start time dibuat sama dengan 1, dan end time dibuat 30, parametric length dan follow dicentang. Front axis menggunakan sumbu X dan up axis menggunakan sumbu Y. Karena posisi kurva tepat berada di atas meja, dan seluruh proxy juga berada di atas meja, maka pastikan Bank tidak dicentang.

Kalau kita melakukan scrubbing pada timeline antara 1 hingga 30, akan terlihat dominoProxy bergerak sepanjang kurva dalam distribusi yang seragam sebagai hasil penggunaan parametric length yang dicentang. Dan juga orientasi dari dominoProxy akan secara otomatis disesuaikan pada kurva sebagai hasil dari Follow yang dicentang.

Tugas berikut adalah bagaimana melakuakn duplikasi dari dominoProxy untuk setiap frame diantara 1 dan 30, sehingga menghasilkan sebuah deret kotak domino. Ada beberapa cara untuk melakukannya.

Cara yang pertama adalah menggunakan Animation->Animate->Create Animation Snapshot

dimana End Time dibuat menjadi 30 dan tekan Snapshot.

Kerugian dari cara ini adalah: Animation Snapshot akan membuat sebuah node baru (snapshot node) dan semua objek hasil duplikasi (setelah menghapus history) akan memiliki lokasi titik pivot di Origin, yang sebetulnya tidak menjadi masalah dalam kasus ini, tetapi mungkin memusingkan kepala pada kasus lainnya.

Cara yang kedua adalah: melakukan duplikasi satu per satu mulai dari frame 1 hingga frame 30, yang mungkin tidak terlalu bermasalah dalam kasus ini tapi bisa membosankan kalau jumlahnya 100 bukan 30 frame.

Cara yang ketiga adalah: melakukan duplikasi seperti pada cara kedua tetapi menggunakan simple script seperti berikut ini.

Saya lebih menyukai cara ketiga, karena hasilnya lebih bersih sebagai berikut:

 

Setting up Rigid bodies.

Karena kita sudah memiliki 30 buah objek hasil duplikasi dari dominoProxy, dominoProxy boleh dibuang atau di hide saja, sehingga tidak terpilih secara tidak sengaja pada saat kita bekerja dengan hasil duplikasinya.

Pilih semua dominoProxy hasil duplikasi, dan kaitkan dengan sebuah gravity field.

Proses ini akan secara otomatis menambahkan rigidBody pada dominoProxy dan mengkaitkannya dengan gravity field yang baru diciptakan. Setting default gravity field dapat digunakan untuk kasus ini, atau boleh juga nilai magnitude diperbesar sedikit sekitar 25 sehingga effectnya akan terjadi lebih cepat.

Pilih bidang meja dan jadikan passive rigid body, tekan tombol play, dan tidak terjadi apapun dalam deret kotak domino.

 

The trigger.

Untuk menciptakan domino effect, kita perlu memicunya. Berbagai cara dapat digunakan sebagai pemicu, seperti memberikan inital velocity/spin pada kotak domino proxy yang pertama sehingga ia jatuh pada kotak kedua, atau dengan memberikan dynamic field pada kotak pertama, menumbuk kotak pertama dengan sebuah passive rigidBody lain, atau memberikan impulse sesaat padanya.

Tapi cara yang akan digunakan dalam tutorial ini adalah dengan menggunakan passive to active rigidbody switch, yang akan membawa momentum dari animasi passive rigid body menjadi simulasi active rigid body.

Pada frame 1, dengan kotak domino proxy yang pertama terpilih (dominoProxy1), lakukan perintah dynamics->Soft/RigidBodies->Set Passive Key

Pindahkan time slider ke frame 8, dan putarlah dominoProxy1 pada sumbu Z (lokal), sehingga ia bersandar pada dominoProxy2. Mungkin ia perlu diangkat sedikit sehingga tidak menembus meja (kalau tidak ada kemungkinan didapatkan warning message tentang interpenetration dan mungkin hasil simulasi menjadi kacau), dan lakukan dynamics->Soft/RigidBodies->Set Active Key

Jangan khawatir jika terlihat dominoProxy1 menembus dominoProxy2 saat ini , karena dalam simulasi akan dihitung ulang transformasi dari dominoProxy2.

Dari frame 8 keatas, biarkan Maya dynamic simulations mengambil alih pekerjaan, rewind saja animasi anda, set end time ke frame yang cukup besar misalnya 300, dan tekan tombol play.

Jika diinginkan untuk melihat kerja dari effect dengan waktu yang lebih mendekati realtime, gunakan playblast, lakukan beberapa penyesuaian dalam attribute di rigidBodies sampai anda puas dengan hasil simulasi. Lalu anda dapat melakukan bake animation key dari kotak-kotak proxy ini dan tentunya juga camera work sehingga bisa menghasilkan animasi yang lebih dinamis.

Ini adalah contoh hasil render dari Domino Effect (domino.mov), dan scene file sebelum simulasi di bake menjadi animasi(domino.mb) atau dalam zipped file (domino.zip)

 

Lanjutan dari tutorial ini.

Ketika semua animasi sudah sesuai dengan keinginan, duplicate salah satu proxy, dan bentuklah bentuk geometri final dari sebuah kotak domino, berikan texture dan buat se realistis mungkin.

Duplicate final model, jadikan anak dari setiap proxy lalu hide shapenode dari proxy. Sehingga ia akan mewarisi animasi dari proxy, tetapi pada saat render proxy tidak akan turut terbawa.

Pada saat keping terakhir dari domino jatuh dari sisi meja, gunakan trax editor untuk menciptakan kesan bullet effect (atau time sliced effect).

Tutorial berikut adalah "Flipping the crown".

<<back>>