–
Rancang Bangun Sistem
Motion
Capture
dan
Motion
Database
untuk Simulasi Pergerakan Karakter Animasi Manusia 3D
William Antonius
1), Maksum Ro'is Adin Saf
2)dan Meilany Dewi
3)1) Jurusan Komputer, Politeknik Caltex Riau, Pekanbaru, email: wi l l i a m1 2 t i @ ma h a s i s wa . p c r . a c . i d
2) Jurusan Komputer, Politeknik Caltex Riau, Pekanbaru, email: [email protected]
3) Jurusan Komputer, Politeknik Caltex Riau, Pekanbaru, email: [email protected]
Abstrak – Pada umumnya pembuatan animasi di Indonesia masih kelihatan kaku dan kurang nyata, hal ini dikarenakan pembuatan animasi masih dilakukan dengan cara manual atau mengunci gerakan disetiap frame. Kemudian hasil dari pembuatan animasi tersebut hanya dapat digunakan pada objek yang diberi animasi saja, sehingga harus membuat animasi lagi pada karakter lain, meskipun gerakan yang akan dibuat sama dengan gerakan sebelumnya. Untuk menangani masalah tersebut, telah dibangun sebuah sistem dan sebuah add-ons yang dapat membantu dalam pembuatan gerakan animasi. Sistem yang dibangun berfungsi menyimpan informasi gerakan objek manusia ke database dalam bentuk titik koordinat, dengan menggunakan teknik motion capture yang ditangkap oleh perangkat Kinect. Kemudian data gerakan yang disimpan tersebut diolah kembali oleh add-ons, untuk diterapkan ke karakter yang akan dijadikan animasi menggunakan bantuan software 3D, sehingga data gerakan tersebut dapat diterapkan kebeberapa karakter untuk mempercepat proses pembuatan animasi. Hasil penelitian yang telah dibangun dapat mempercepat proses pembuatan animasi dibandingkan dengan pembuatan secara manual (frame by frame), akan tetapi hasil yang diberikan tidak sebaik pembuatan animasi secara manual. Penyebabnya adalah data yang dihasilkan Kinect tidak konsisten atau dapat berubah secara tiba-tiba karena terjadi sedikit perubahan anggota tubuh dan kemiripan data koordinat yang dihasilkan dengan posisi tubuh model tidak sempurna.
Kata Kunci : Motion Capture, Animasi, Database, Kinect.
Abstract – Generally, the making of animation in Indonesia still looked stiff and less real , because making animation is still done by hand or lock the movement of each frame. Then the result of the animation creation can only be used on an object that was animated, so that should make the animation again to another object, although movement will be made the same as the previous movement. To handle the problem, has been built system and an addons that can assist in making motion animation. The system that will be built functionate to save the information of human movement in the form of coordinate into database, using the motion capture technique using kinect hardware. Next, the movement data that have been save will be reproduce by addons, for applying in the chara cter which will be the animation using help from 3D software, so that the movement data can be apply to some character for speed up the process of making animation. The result of experiment that has been built is can speed up the process of making animation than the manual process making (frame by frame), but the result not as good as with the animation that made manually. The cause was the produce kinect data not consistent or can change suddenly because there was little change in the limbs and similarity coordinate data generated by the model by the not perfectly body position.
Keywords: Motion Capture, Animation, Database, Kinect.
1. PENDAHULUAN
Perkembangan teknologi dalam bidang animasi 3D saat ini berkembang pesat, sehingga banyak dijumpai pada game maupun perfilman. Pada umumnya pembuatan animasi di Indonesia masih dilakukan dengan cara mengunci gerakan disetiap frame, sehingga animasi yang dihasilkan masih tergolong kaku dan kurang nyata. Masalah lain dalam pembuatan animasi adalah gerakan yang dihasilkan tersebut hanya dapat digunakan pada objek yang diberi animasi saja, sehingga harus membuat animasi lagi
berulang-–
ulang untuk membuat animasi pada karakter yang berbeda.
Tujuan dari proyek akhir ini adalah membangun sistem yang dapat menyimpan banyak data gerakan, kemudian data gerakan tersebut dapat digunakan kapan saja untuk diterapkan ke karakter, agar menghasilkan gerakan animasi yang nyata.
2. LANDASAN TEORI
2.1. Penelitian Terdahulu
Pada penelitian yang berjudul "Rancang Bangun Sistem Motion Capture dan Motion Database untuk Robot Humanoid dengan Perangkat Microsoft Kinect Berbasis Ros (Robot Operating System)" menjelaskan bahwa, para roboticist selalu berusaha agar robot dapat memiliki kemampuan seperti manusia sehingga dapat berinteraksi dengan manusia dengan baik. Sistem robot yang dibangun menggunakan teknologi motion capture agar gerak robot menyerupai gerakan manusia. Sistem tersebut menggunakan masukkan berupa gerakan tangan, badan, kepala dan kaki yang awalnya disimpan ke database dahulu, kemudian robot mengambil gerakan dari database untuk bergerak sesuai dengan gerakan yang disimpan [4].
Pada penelitian lainnya dengan judul "Perancangan dan Implementasi Kinect Motion Capture Sensor untuk Interaksi dan Pembelajaran Tunawicara" menjelaskan bahwa, tunawicara adalah seseorang yang tidak dapat berkomunikasi dengan normal. Cara interaksi dengan tunawicara adalah dengan menggunakan bahasa isyarat yang dapat menyebabkan sulitnya dalam penyebaran informasi.Sehingga dirancang suatu sistem yang menggunakan masukan gerakan tangan yang disimpan dalam bentuk file *.csv. Sehingga ketika ada pengguna yang menggunakan sistem ini melakukan isyarat, maka sistem akan melakukan klasifikasi dengan algoritma k-NN. Klasifikasi data tersebut menghitung jarak untuk menentukan koordinat yang sesuai dan mencari gerakan isyarat sesuai dengan gerakan yang telah disimpan sebelumnya [2].
Penelitian berikutnya oleh dengan judul "Penerapan Microsoft XBOX Kinect Motion Capture Sensor dalam Adegan Pertarungan untuk Film Animasi 3D Selamatkan Bumi" menjelaskan bahwa, penerapan motion capture dalam pembuatan animasi memerlukan alat khusus yang terbilang mahal dan membutuhkan studio khusus dalam penggunaannya. Tetapi pada pertengahan tahun 2009 yang lalu Microsoft memperkenalkan perangkat Kinect Xbox 360 yang digunakan sebagai pengganti joystick oleh Microsoft untuk konsol Xbox 360 saja. Kemudian karena teknologi ini masih tergolong baru, banyak ilmuan dan animator 3D profesional yang mencoba untuk menghubungkan perangkat Kinect ke komputer.
Sehingga dibuat sebuah film animasi yang menggunakan perangkat Kinect sebagai masukan gerakan dalam animasi [9]. Pada penelitian ini dapat disimpulkan bahwa peneliti membangun sistem yang menggunakan masukan berupa gerakan anggota tubuh manusia (tangan, kaki, kepala dan badan). Kemudian masukan tersebut ditangkap oleh perangkat Kinect untuk mendapatkan titik koordinat sendi anggota tubuh model (objek manusia) dalam tiap detik untuk disimpan ke database. Sehingga data gerakan yang telah tersimpan tersebut, dapat digunakan kembali untuk diterapkan ke karakter animasi yang diinginkan.
2.2. Motion Capture
Motion capture adalah suatu teknik yang digunakan untuk mendapatkan informasi data gerakan terhadap titik tertentu pada subjek dari waktu ke waktu [10]. Untuk menggunakan motion capture, diperlukan hardware dan software khusus yang harganya menjadi kendala bagi studio animasi kecil. Motion capture dapat dilakukan dengan beberapa sensor kamera, salah satunya berada pada perangkat Kinect [4].
Kinect merupakan sebuah alat yang di keluarkan oleh Microsoft untuk mendeteksi gerakan tubuh manusia, gerakan wajah dan merekam suara [4]. Kinect memiliki SDK yang menyediakan API (Application Programming Interface) untuk mempermudah dalam mengakses seluruh titik sendi yang ada pada tubuh manusia. Jumlah titik sendi yang dapat diakses adalah dua puluh titik dan setiap titik sendi sudah diidentifikasi sesuai dengan nama sendinya [3]. Pada Gambar 1 mempresentasikan seluruh titik sendi tubuh manusia yang ditangkap oleh perangkat Kinect. Kinect dapat diakses dengan beberapa bahasa pemrograman yang dikeluarkan oleh Microsoft, salah satunya bahasa pemrograman C# [6].
Gambar 1 Titik sendi Kinect
2.3. Animasi
Menurut Utami [11], animasi adalah serangkaian gambar yang dimulai dengan gambar independen dan menempatkannya secara bersamaan untuk membentuk ilusi gerak yang berkelanjutan. Salah satu contoh animasi dapat dilihat ketika menonton kartun di televisi atau pembelajaran melalui simulasi.
–
yang akan dibangun untuk mengurangi kemungkinan kegagalan, menghilangkan kemacetan yang tidak terduga, mencegah biaya yang berlebihan dan untuk mengoptimalkan kinerja suatu sistem [7].
Pada penelitian ini akan dibuat simulasi pergerakan manusia dalam bentuk animasi 3D yang terdiri dari pergerakan berjalan, berlari dan melompat, karena pergerakan tersebut merupakan gerakan dasar lokomotor yang artinya suatu kemampuan yang digunakan untuk memindahkan tubuh dari suatu tempat ke tempat lain [5]. Proses pembuatan animasi tersebut dibutuhkan sebuah software 3D, salah satunya Blender. Blender adalah software 3D gratis dan open source yang bisa digunakan untuk modeling, rigging, animation, simulation, compositing dan motion tracking, bahkan dapat digunakan untuk melakukan editing video dan membuat permainan. Blender dapat berjalan diberbagai sistem operasi seperti Linux, Windows dan Machintosh. Salah satu kelebihan yang disediakan oleh Blender adalah kita dapat membuat animasi menggunakan bahasa pemrograman Python. Python digunaka untuk mengakses data gerakan yang telah disimpan di database MySQL, karena menurut Astuti & Cahyani [1], MySQL adalah salah satu jenis database server yang sangat terkenal dan banyak digunakan sebagai media penyimpanan dan pengelolaan data. MySQL menggunakan SQL (Structure Query Language) sebagai bahasa dasar yang digunakan untuk mengakses database, sehingga mudah digunakan, kinerja query yang cepat, dan mampu menangani kebutuhan data yang banyak untuk perusahaan skala menengah. Selain itu juga MySQL didistribusikan secara gratis, di bawah lisensi GPL sehingga dapat digunakan cuma-cuma.
3 METODOLOGI
Langkah-langkah dalam pengerjaan dan penulisanlaporan :
1. Studi Literatur; meliputi pencarian bahan-bahan dengan cara mempelajari dan memahami buku-buku (berbagai referensi) yang berhubungan dengan pembuatan proyek akhir.
2. Perancangan Sistem; meliputi (a) perancangan dan pembuatan flowchart, (b) Perancangan dan pembuatan program, (c) Perancangan dan pembuatan antarmuka. 3. Pengujian Sistem; meliputi pengujian data
gerakan, pengujian logika program, dan pengujian gerakan terhadap animasi manusia
.
4. HASIL DAN PEMBAHASAN
4.1. Arsitektur Sistem
Gambar 1 menjelaskan arsitektur sistem ketika pengguna menggunakan sistem hingga terbentuknya
sebuah animasi. Awalnya model melakukan gerakan di depan perangkat Kinect, kemudian data gerakan yang ditangkap oleh Kinect diolah sistem untuk disimpan ke dalam database MySQL. Kemudian pengguna dapat menggunakan gerakan dari database tersebut untuk diaplikasikan ke karakter animasi kapan saja menggunakan software 3D.
Model Kinect Aplikasi Motion
Database
Pengguna
Pengguna PC + Software
3D Animasi Menyimpan gerakan
Implementasi gerakan
Gambar 1 Arsitektur Sistem
4.2. Blok Diagram
Gambar 2 menjelaskan alur penggunaan yang dimana gerakan manusia ditangkap menggunakan perangkat Kinect. Kemudian informasi gerakan yang ditangkap oleh Kinect disimpan ke database dalam bentuk nilai titik koordinat sendi.
Setelah gerakan manusia tersebut disimpan ke database, data gerakan tersebut dapat digunakan kembali membuka aplikasi Blender (software 3D) dahulu, kemudian pengguna mempersiapkan karakter yang akan dijadikan animasi dan mengubah nama tulang yang ada pada karakter sesuai dengan ketentuan sistem. Setelah itu kita dapat menjalankan script Python untuk menerapkan data gerakan dari database ke karakter untuk membuat animasi 3D.
Model Kinect Aplikasi Motion
Database
Pengguna
Pengguna PC + Software
3D
Animasi Menyimpan gerakan
Implementasi gerakan
Gambar 2 Blok Diagram
4.3. Use Case Diagram
Gambar 3 menjelaskan alur penggunaan yang dimana gerakan manusia ditangkap menggunakan perangkat Kinect. Kemudian informasi gerakan yang ditangkap oleh Kinect disimpan ke database dalam bentuk nilai titik koordinat sendi.
–
dahulu, kemudian pengguna mempersiapkan karakter yang akan dijadikan animasi dan mengubah nama tulang yang ada pada karakter sesuai dengan ketentuan sistem. Setelah itu kita dapat menjalankan script Python untuk menerapkan data gerakan dari database ke karakter untuk membuat animasi 3D.
Melihat Manual
Menyimpan Gerakan
Melihat Daftar Gerakan
Menghapus Gerakan Pengguna
Penerapan data gerakan ke karakter
Gambar 3 Use case diagram
4.4. Pengujian Fungsional Sistem
Pada tahap ini akan dilakukan pengujian fungsional sistem menggunakan metode Blackbox, pengujian dilakukan terhadap aplikasi penyimpan gerakan dan script Python yang digunakan untuk menerapkan gerakan. Berdasarkan hasil pengujian Blackbox yang dilakukan terhadap sistem, didapatkan hasil bahwa semua kasus yang diuji pada sistem berjalan sesuai hasil yang diharapkan, sehingga sistem dapat digunakan untuk pembuatan animasi.
4.5. Pengujian Waktu Yang Dibutuhkan Dalam Pembuatan Animasi
Pengujian ini dilakukan untuk membandingkan kebutuhan waktu dalam proses pembuatan animasi pada satu karakter dan tiga gerak animasi dengan cara manual dan sistem.Berdasarkan hasil pengujian yang telah dilakukan, didapatkan hasil bahwa waktu yang dibutuhkan dalam pembuatan animasi menggunakan sistem, lebih sedikit dibandingkan pembuatan animasi secara manual.
4.6. Pengujian Kesesuaian Gerakan Yang Dihasilkan Dengan Model
Pengujian ini dilakukan untuk membandingkan kebutuhan waktu dalam proses pembuatan animasi pada satu karakter dan tiga gerak animasi dengan cara manual dan sistem.Berdasarkan hasil pengujian yang dilakukan, didapatkan hasil bahwa gerakan berjalan dan berlari yang dilakukan model, sesuai dengan gerakan animasi yang dihasilkan pada semua karakter. Namun terdapat beberapa kesalahan pada gerakan melompat, karena pada gerakan tersebut terdapat bagian tubuh model yang tertutup atau terhalang, sehingga posisi sendi skeleton tidak sesuai dengan gerakan model.
4.7. Pengujian kecepatan gerakan yang dapat ditangkap dengan membandingkan banyaknya perpindahan gerakan anggota tubuh dalam satuan waktu
Pengujian kecepatan gerakan yang dapat ditangkap oleh Kinect dilakukan dengan membandingkan gerakan model dalam interval waktu tertentu, dengan animasi yang dihasilkan secara visual. Interval waktu yang diuji terdiri dari 1, 0.5 dan 0.25 detik per gerakan. Berdasarkan hasil pengujian kecepatan gerakan yang dapat ditangkap oleh Kinect, didapatkan hasil bahwa kecepatan gerakan yang dilakukan model sesuai dengan animasi yang dihasilkan. Hasil tersebut menandakan bahwa gerakan dengan interval waktu yang kecil (pergerakan paling cepat yang dapat dilakukan model) dapat ditangkap oleh Kinect.
4.8. Pengujian posisi ideal antara Kinect dengan model
Pengujian jarak ideal antara Kinect dan model dilakukan dengan merubah masing–masing jarak, tinggi, posisi dan arah dari Kinect. Jarak yang diuji adalah 1 m, 2 m dan 3 m. Tinggi antara Kinect dan model adalah setara dengan tinggi lutut, pinggang dan dada model. Posisi antara Kinect dan model adalah kiri, tengah dan kanan dari model. Kemudian arah Kinect terhadap model terdiri dari arah lurus dan mengarah ke model. Berdasarkan hasil percobaan yang dilakukan, didapat hasil bahwa jarak ideal Kinect agar objek model terdeteksi adalah pada jarak 2 meter, tinggi Kinect sejajar dengan pinggang model, berbagai arah dan posisi. Jarak Kinect juga dapat terdeteksi pada jarak 3 meter dengan berbagai tinggi, arah dan posisi.
4.9. Pengujian delay gerakan model dengan hasil animasi.
Pengujian delay dilakukan dengan membandingkan waktu yang digunakan dalam merekam gerakan model dengan waktu yang dihasilkan dari gerakan animasi. Pengujian dilakukan dengan membandingkan tiga gerakan yang dimana setiap gerakan dilakukan sebanyak 5 kali. Gerakan yang digunakan yaitu gerakan berjalan, berlari dan melompat. Berdasarkan hasil pengujian delay yang dilakukan, didapatkan waktu yang dihasilkan dari animasi kurang dari waktu yang digunakan model untuk merekam gerakan, sehingga didapatkan kesimpulan bahwa gerakan model dengan gerakan hasil animasi memiliki total delay waktu sebanyak 8.01 %.
–
5. KESIMPULAN
Setelah melakukan pengujian dan analisa dapat diambil kesimpulan bahwa :
1. Sistem ini dapat menyimpan lebih dari satu gerakan.
2. Kebutuhan waktu yang digunakan dalam pembuatan animasi menggunakan sistem, relatif lebih singkat dibandingkan pembuatan animasi dengan cara manual (frame by frame) apabila banyak gerakan diterapkan pada satu karakter. 3. Gerakan yang dihasilkan lebih nyata meskipun
ada beberapa anggota tubuh yang tidak sesuai pergerakannya karena sistem menggunakan skala (menghitung perbandingan panjang tulang model dengan karakter), sehingga pada saat penyimpanan gerakan apabila terjadi pergeseran panjang tulang model, maka gerakan yang dihasilkan tidak sempurna.
4. Posisi ideal Kinect terhadap model dengan skenario tinggi model 165 cm, untuk mendapatkan gerakan yang lebih baik adalah pada jarak 3 meter dan model berada dalam jangkauan sensor Kinect, kemudian pada jarak 2 meter dengan syarat tinggi Kinect sejajar dengan pinggang model.
5. Gerakan yang dapat ditangkap oleh Kinect adalah gerakan yang kecepatannya tidak melebihi kecepatan gerak orang normal atau gerakan yang dilakukan setiap 0.25 detik (gerakan tercepat yang telah diuji).
6. Perpindahan posisi karakter dapat mengikuti perpindahan (transformasi) posisi model.
Adapun saran dari proyek akhir ini adalah:
1. Diharapkan pada penelitian selanjutnya dapat mengolah data gerakan yang lebih cepat dari pada gerakan yang telah diuji pada penelitian ini. 2. Diharapkan pada penelitian selanjutnya dapat
dikembangkan dengan teknologi yang mampu mengolah data yang akurat.
DAFTAR REFERENSI
[1] Astuti, Fitri Widy & Cahyani, Resa Putri (2010), Perancangan Website Sebagai Media Promosi dan Informasi Potensi Desa Hargobinangun Pake. Yogyakarta: AMIKOM Yogyakarta [2] Hasahatan, Doddy (2014), Perancangan dan Implementasi
Kinect Motion Capture Sensor untuk Interaksi dan Pembelajaran Tunawicara. Pekanbaru: Politeknik Caltex Riau
[3] Hasibuan, Imam Hidayat Arifin (2014), Perancangan dan Implementasi Aplikasi Penerjemah Bahasa Isyarat Menjadi Suara Berbasis Kinect Menggunakan Metode Dynamic Time Warping. Bandung: Institut Teknologi Telkom
[4] Indrajit, Wisnu (2012), Rancang Bangun Sistem Motion Capture dan Database Motion untuk Robot Humanoid dengan Perangkat Microsoft Kinect Berbasis Ros (Robot Operating System). Depok: Universitas Indonesia
[5] Krisnayati, Yayang (2012), Pengaruh Permainan Tradisional Terhadap Kemampuan Gerak Dasar Berlari dan Melompat Anak Usia 6-8 Tahun. Jawa Barat: Universitas Pendidikan Indonesia [6] Kurniawan, Agus (2013), Pemrograman C# untuk Pemula.
Depok: Universitas Indonesia
[7] Megawati, Nita (2010), Pengaruh Pembelajaran Matematika Menggunakan Media CAI (Computer-Assisted Instruction) dengan Tipe Simulasi Terhadap Motivasi Belajar Matematika Siswa. Jakarta: Universitas Islam Negeri Syarif Hidayatullah [8] Saputra, Hasbi Dwinanto (2012), Perkiraan Pose Manusia
Menggunakan 3d Cylindrical Model. Surabaya: ITS
[9] Suryajaya, I Dewa Bagas (2013), Penerapan Microsoft Xbox Kinect Motion Capture Sensor dalam Adegan Pertarungan untuk Film Animasi 3D “Selamatkan Bumi”. Yogyakarta: AMIKOM Yogyakarta
[10]Susianti, Elva (2010), Pengembangan Motion Capture System Menggunakan Kamera Low Cost. Surabaya: ITS
[11]Utami, Dina (2011), Animasi Dalam Pembelajaran. Yogyakarta: UNY