VISUALISASI GERAKAN OBJEK 3D PADA AUGMENTED REALITY DENGAN DETEKSI TUMBUKAN BERBASIS BOUNDING BOX Adhi Arsandi1), Supeno Mardi SN2) Moch.Hariadi3) 1,2,3
Pasca Sarjana Jaringan Cerdas Multimedia (Game Teknologi) Teknik Elektro,Teknologi Industri ITS Jurusan Teknik Elektro, Fakultas Teknologi Industri ITS Jl. Keputih Sukolilo,Surabaya, 60111 E-mail :
[email protected]),
[email protected]),
[email protected]
ABSTRAK Teknologi game dan animasi 3D terus mengalami perkembangan. Augmented Reality (AR) adalah bidang penelitian komputer yang menggabungkan data komputer grafis 3D dengan dunia nyata. Semakin berkembangnya AR membawa ke suatu inovasi tool bernama ARToolkit. suatu software library untuk membangun augmented reality (AR). Agar AR benar-benar mampu menerima suatu lingkungan real dan virtual objects, AR haruslah terlihat seolah-olah menyatu bersama dengan lingkungan penggunanya. Agar lebih terlihat meyakinkan, real dan virtual objects harus berinteraksi secara realistis. Saat dua buah objek 3D bertemu, tentu akan terjadi intersection. Agar hal itu tidak terjadi diperlukan metode collision detection. AR yang merupakan dua bidang Computer Vision menaruh banyak perhatian pada algoritma collision detection. Dengan mengembangkan ARToolKit, peneliti mengajukan suatu metode untuk memvisualisasikan object overlay 3D pada media AR dengan menerapkan bounding box collision detection. Interaktif dibangun melalui pengimplementasian konsep control kendali keyboard dan menggunakan webcam untuk mencapai hasil animasi objek 3D interaktif. Kata kunci: 3D, augmented reality, ARToolKit, collision detection
1. PENDAHULUAN Teknologi game dan animasi terus mengalami perkembangan. Hal ini seiring dengan tuntutan kebutuhan tampilan dunia tiga dimensi (3D) dengan kualitas yang baik untuk membangun virtual world menjadi lebih real ke dalam komputer. Augmented Reality (AR) merupakan bidang penelitian komputer yang menggabungkan data komputer grafis 3D dengan dunia nyata. Semakin berkembangnya AR membuat teknologi ini banyak dicari. Dalam kurun waktu 2005 hingga 2009 minat orang akan AR sangat tinggi. Ini terlihat dari frekuensi google search di internet yang banyak mengakses informasi mengenai AR. Survey oleh Gartner bahkan menempatkan AR sebagai satu dari 10 teknologi yang “mengusik” sepanjang tahun 2000 hingga 2012. Pengembangan teknologi AR secara kontinu oleh kalangan peneliti. Berbagai bidang aplikasi dirambah oleh AR. Salah satu yang paling populer dalam pengembangan AR adalah ARToolKit. Suatu software library untuk membangun augmented reality yang dikembangkan oleh Dr Hirozaku Kato dari Universitas Osaka Jepang dan didukung oleh Human Interface Technology (HIT) Laboratory University of Washington dan HIT LAB. NZ University of Cantertbury New Zealand. Agar AR benar-benar mampu menerima suatu lingkungan real dan virtual objects, AR haruslah terlihat seolah-olah menyatu bersama dengan lingkungan penggunanya. Agar lebih terlihat meyakinkan, AR harus mampu berinteraksi secara
realistis. Objek dalam AR mampu berinteraksi dengan objek lain dalam banyak cara. Ini dapat dikategorikan menjadi dua, yakni secara visual dan physical. Physical interactions contohnya seperti kinematic constraints, collision detection-response, dan full physically-based responses. Kinematic interactions. Penelitian ini memfokuskan pada collision detection. Terdapat berbagai teknik collision detection. Khusus untuk 3D terdapat dua macam teknik pada collision untuk objek 3D, yakni teknik bounding box dan sphere. AR yang merupakan dua bidang Computer Vision menaruh banyak perhatian pada algoritma collision detection. Tomasz Koziara dan Nenad Bicanic dalam papernya menjelaskan tentang permasalahan intersection detection antara sepasang bounding box dalam ruang 3 dimensi. Koziara menginginkan collision detection yang efisien yang dapat diterima pada berbagai aplikasi berskala besar. Dia menyederhanakan entitas geometry dengan mengasumsikan bahwa objek yang dikerjakan adalah axis aligned bounding box. Sedangkan dalam media AR, penelitian tentang collision detection juga telah banyak dikembangkan. Dalam papernya, Ricardo Nakamura dan Romero Tori mengemukakan teknik collision detection user interaction antara real-time video avatar dan objek dari mix reality environment. Sama dengan Koziara, Nakamura berpendapat tiap objek virtual diasosiasikan dengan representasi volume sebuah bounding, baik itu sebuah sphere atau sebuah axisaligned bounding box. Lain halnya dengan Slay, Hannah, et al (2002) yang mengemukakan metode
collision detection yang berbeda. Teknik Slay mendeteksi tumbukan antara marker. Metode ini diterapkan untuk collision detection antara node pada file VRML dalam AR. Penelitian yang juga berkaitan adalah oleh D. Aliaga yang mengemukakan tentang virtual and real object collisions in a merged environment. Melalui paper ini, penelitian terfokus kepada visualisasi gerak objek 3D dalam media AR dengan mengimplementasikan teknik bounding box collision detection. Dalam menampilkan objek 3D interaktif di media AR, teknik yang diajukan adalah menggunakan artoolkit dengan menganimasikan sequence objek 3D dan teknik interaksi gerak menggunakan handling keyboard pada komputer. Ada tiga langkah dalam penelitian ini, yaitu tahap loading objek, gerak animasi-interaksi objek, dan collision detection objek. Pada tahap loading objek, model 3D yang telah dibuat dikonversi ke dalam struktur data berbasis lowpoly representasi. Objek yang akan diload akan ditampilkan dalam bentuk marker dengan pola pattern tertentu. Setelah proses tersebut berhasil, objek akan berinteraksi dengan pengguna dengan beranimasi pergerakan objek. Pada akhirnya, markermarker yang menampikan objek 3D akan diterapkan prinsip-prinsip bounding box collision detection. 2. LANDASAN TEORI 2.1 AUGMENTED REALITY (AR) Istilah AR muncul pertama kali pada tahun 1990 ketika Tom Caudell dan David Mizell mendesain suatu head-set display yang disebut HUDset (Heads-Up, see through, head-mounted Display). Para peneliti mengenai AR, salah satunya adalah, Ronald T. Azuma (1997) mendefinisikan augmented reality sebagai penggabungan bendabenda nyata dan maya di lingkungan nyata, berjalan secara interaktif dalam waktu nyata, dan terdapat integrasi antar benda dalam tiga dimensi, yaitu benda maya terintegrasi dalam dunia nyata. AR merupakan salah satu teknologi yang menggunakan teknik computer vision dalam menentukan kesesuaian antara citra dan dunia nyata. 2.2 ARToolKit ARToolKit yang dibangun pertama kali oleh Dr Hirozaku Kato dari Universitas Osaka Jepang dan didukung oleh Human Interface Technology (HIT) Laboratory University of Washington dan HIT LAB. NZ University of Cantertbury New Zealand adalah suatu software library dengan bahasa C yang memudahkan programmer mengembangkan berbagai macam aplikasi AR. ARToolKit merupakan software ToolKit layaknya GLUT. Di dalamnya terdiri dari predefined functions yang bisa kita panggil (call) dalam
mengembangkan aplikasi AR. ARToolKit menggunakan OpenGL untuk rendering, GLUT untuk aspek windows/event handler. API. ARToolKit ditulis dalam bahasa C dan disertakan pula beberapa contoh yang bisa dijadikan acuan dalam mengembangkan aplikasi AR. Gambar 1 mengilustrasikan hubungan antara aplikasi yang dibuat dengan ARToolKit dan library yang diperlukan.
Gambar 1. Hubungan artoolkit dengan opengl 2.2.1 Prinsip Dasar ARtookit Dasar dari metode computer vision Artookit adalah pendeteksian marker. Secara garis besar, langkah-langkah pendeteksian tersebut sebagai berikut: 1. Kamera menangkap gambar dari dunia nyata secara live dan mengirimkannya ke computer 2. Perangkat lunak dalam komputer mencari marker pada masing-masing frame video 3. Jika ditemukan sebuah kotak, maka digunakan perhitungan matematika untuk menghitung posisi kamera relatif terhadap kotak warna hitam 4. Tiap kali posisi kamera diketahui maka model grafis hasil rekayasa komputer digambarkan pada posisi yang sama 5. Model tersebut ditampilkan di atas gambar video dunia nyata dan tampak menempel pada marker yang berbentuk kotak 6. Hasil akhir menunjukkan juka user melihat pada tampilan, maka akan tampak objek virtual tambahan pada dunia nyata.
Gambar 2. Sistem kerja ARToolKit
2.3 Pustaka Grafis OpenGL Proses rendering tiga dimensi merupakan proses untuk membentuk sebuah gambar dari sebuah model yang dibentuk oleh perangkat lunak animasi, model tersebut berisi data geometri, titik pandang, texture dan cahaya yang diperlukan untuk membuat gambar utuh. Dalam komputer grafis terdapat dua standar internasional perangkat keras untuk grafis, yaitu OpenGL dan DirectX. Masing-masing standar mempunyai kelebihan dan kekurangan, hanya saja dasar penyusunan standar tersebut diambil dari teori yang sama. OpenGL adalah antarmuka perangkat lunak untuk perangkat keras dirancang sebagai sebuah antarmuka independen yang dapat digunakan untuk berbagai macam platform perangkat keras. Tujuan utama dari sistem OpenGL adalah menterjemahkan koordinat tiga dimensi dari suatu objek ke citra dua dimensi untuk dapat ditampilkan ke layar. 2.4 Computer Vision Computer Vision atau Visi komputer adalah ilmu dan teknologi yang dapat membuat mesin (komputer) dapat melihat. Visi komputer berusaha untuk menerapkan teori dan model untuk pembangunan sistem visi komputer. Ketika komputer grafis menghasilkan data gambar dari model 3D, visi komputer sering menghasilkan model 3D dari data gambar. Pengenalan objek dalam visi komputer adalah cara untuk menemukan obyek tertentu pada foto atau video. Ada banyak metode yang telah dikembangkan agar sistem dapat mengenali objek, salah satunya adalah edge detection (identifikasi tepi). Tracking system adalah proses menemukan satu atau beberapa objek yang bergerak dengan menggunakan bantuan kamera. Tumpuan untuk dapat memprediksi berbagai kemungkinan perubahan arah model ketika bergerak agar objek tersebut dapat dilacak. 2.5 Bounding Box Collision Detection Sejak perkembangan game komputer begitu pesat, para programer tak henti-henti mencari jalan agar game terlihat begitu nyata selayaknya dunia pada dunia sesungguhnya. Collision detection adalah proses pendeteksian tabrakan antara dua objek. Sebenarnya dalam game sendiri tabrakan tidak hanya terjadi antara dua objek, tetapi dapat terjadi juga antara satu objek dengan banyak objek. Dalam game dibutuhkan collision detection yang akurat. Setelah menentukan terjadinya collision, kita harus menentukan juga response apa yang terjadi pada objek yang ditabrak ataupun yang menabrak.
Selain itu, collision detection ini juga berguna untuk menentukan posisi dari satu objek dengan objek yang lain sehingga tidak ada objek yang saling menembus. Sehingga game yang akan dibuat memiliki kesamaan dengan realita yang ada. Pendeteksian benturan antara obyek karakter yang satu dengan karakter yang lain dapat dilakukan dengan mengidentifikasi perpotongan antara obyek geometri yang satu dengan obyek geometri yang lain. Dan jika terdeteksi adanya perpotongan, maka harus dihasilkan respon yang sesuai. Banyak teknik dalam menentukan collision detection. Salah satunya bounding box collision detection. Teknik ini sederhana, yakni melakukan pembuatan bounding untuk setiap obyek yang berada pada scene. Untuk melakukan pengecekan apakah kotak-kotak itu saling beririsan atau tidak kita cukup membandingkan nilai maksimum dan minimum pada koordinat x,y dan z. 2.6 Alur Kerja Sistem Untuk alur kerja system dapat terlihat dari flowchart pada gambar 3 di bawah. Langkah pertama yakni inisialisasi dengan function init dalam sistem. Init secara rutin dipanggil dari main routine dan digunakan untuk membuka video path dan dibaca dalam parameter dalam ARToolKit. Parameter kunci dalam aplikasi Artoolkit adalah pattern yang akan digunakan sebagai pola yang akan menjadi template untuk mencocokkan pada objek yang akan terhubung nantinya, dan karakteristik kamera dari video camera yang digunakan. Kedua hal di atas dibaca dari suatu nama file. Untuk parameter kamera, file default-nya yaitu Data/camera_para.dat. Sedangkan untuk nama file objek, default-nya yaitu Data/object_data. Filefile tadi yang mengandung nama pattern dan objek virtual dibaca dengan memanggil suatu fungsi dalam program pada sistem. Setelah itu terbaca, maka video path akan terbuka dan berikut ukurannya. Begitu pola pattern dimana system akan mengenali marker yang terkorespondensi dengan objek. Ketika tidak ada masalah, maka proses rendering akan terjadi dimana system akan berhasi menampilkan objek yang sudah disiapkan yang terkoresponden dengan marker. Hasil dari rendering, tentu overlay objek 3D pada marker. Objek yang sudah overlay tadi akan dimasukkan interaksi menggunakan keyboard di dalamnya untuk pergerakan. Untuk itu, system melakukan load event keyboard. Setelah itu, barulah diterapkan metode bounding box collision detection untuk mendeteksi tumbukan antara dua buah objek yang berhasil overlay pada marker. Ketika tumbukan terbaca, objek yang digerakkan keyboard akan berhenti saat gerakannya mencoba memotong posisi objek lainnya.
Mulai
inisialisas
Kamera
Load video
Marker 1
Marker 2
Load pattern 1
Load pattern 2
Rendering objek 3D
tidak
Berhasi l ya
Load overlay objek 3D
Load event keyboard
Bounding Box Collision Detection
2.7 Skenario dan FSM Dalam penelitian ini skenario yang terjadi adalah suatu objek karakter, pada penelitian ini digunakan karakter cepot, ditampilkan dengan satu marker. Karakter tersebut bergerak dengan handling keyboard oleh user. Sementara itu, marker lainnya menampilkan objek berupa wall. Karakter yang digerakkan oleh keyboard akan collision detection dengan objek wall. Untuk membatasi kinerja system dibuat skenario berdasarkan Finite State Machine (FSM), yakni set dari state-state yang dibuat, dimana terdapat stae awal dan state akhir. State sendiri merupakan transisi perubahan dari state yang terjadi sebelumnya. Di dalam perubahan state tersebut terdapat condition dan action. Jika condition bertemu dengan action, maka state baru akan lahir. Berikut dagram FSM interaksi animasi dari penelitian yang dikerjakan dapat dilihat pada gambar Dari diagram di bawah dapat dijelaskan bahwa state awal adalah posisi diam. Objek kemudian akan melakukan state berikutnya, yakni bergerak, baik itu maju, mundur, belok dan melompat. State gerak tersebut dipicu oleh action dan condition yang terjadi. Saat menggerakkan, tombol keyboard sebagai trigger untuk interaksi animasi digunakan. Hingga mencapai suatu deteksi tumbukan terhadap objek lain (objek wall) state berubah menjadi lompat hingga objek karakter mampu mendeteksi (tidak tembus). Karena interaksi animasi ini untuk melihat atau membuktikan tumbukan, setelah tumbukan tercapai maka state akan kembali ke state awal yakni diam.
Gerak Maju
Gerak Mund ur
Keyboard panah atas
Keyboard panah bawah
Diam Keyboard panah kiri
tidak
Tumbu kan
Gerak Belok kiri
ya Bertemu objek wall
Bertemu objek wall
Control keyboard
Panah kanan
Lom pat
Gerak belok kanan
Objek berhenti
Bertemu objek wall
Keyboard x
Keyboard x
Bertemu objek wall
Colli sion
tidak
Gambar 4 fsm sistem ya
Selesai Gambar 3. flowchart
2.8 Implementasi Sistem Sistem telah dilakukan uji coba dan dapat berjalan dengan baik pada grafik card NVIDIA GeForce 7000M, 512 MB DDR2 series, OpenGL Version: 3.2.0, processor AMD Turion X2 2.0 GHz, DirectX 9.0, kamera webcam. 2.8.1 Pengujian Load Objek Pada AR Sebelum pada pergerakan karakter, terlebih dahulu dibahas mengenai loading objek pada ARToolKit. Objek 3D yang sudah dibuat menggunakan software 3D modeling dipanggil dalam ARToolKit untuk ditampilkan melalui marker. Marker yang digunakan dalam penelitian seperti gambar di bawah ini: Gambar 7. Pengolahan objek 3D pada metasequioa
Gambar 5. Pola image pattern yang digunakan Marker yang dibuat ini kemudian ditraining oleh ARToolKit untuk dikenali sebagai sebuah pattern yang nantinya akan menampilkan objek. Berikut screenshot saat marker dikenali sistem
Gambar 6. Training marker oleh Artoolkit Stelah training dilakukan, dilakukan uji loading objek untuk ditampilkan dalam AR. Data uji yakni objek adalah karakter 3D cepot dan objek wall dengan masing-masing teksturnya. Pengolahan 3D menggunakan 3D Max studio9 yang dikonversi menggunakan aplikasi freeware Metasequio. Teknik yang diajukan dalam sistem yakni menambahkan header yang di-include-kan dalam sistem. File objek berekstensi mqo inilah yang akan dipanggil untuk kemudian overlay pada marker dalam sistem. Berikut screenshot pengolahan objek 3D -nya:
2.8.2 Hasil Uji Load Objek Dalam sistem kerja AR, rendering objek menjadi perhatian tersendiri. Overlay objek dalam real world menampilkan rendering secara kontinu. Untuk itu, maka kita dapat mengamati frame per second. Dalam penelitian ini, attribute objek 3D yang digunakan: 1. Cepot a. ukuran file 649 MQO file b. Dimension: X = 67.856 Y = 77.364 Z = 181.637 c. Vertices: 5245 d. Faces : 10250 e. Map teksture: batik.bmp 169 KB dimension 1025 x 1024 CH01_11 copy.bmp 3073 KB dimension 239 x 239 2. Wall a. ukuran file 2KB MQO file b. dimension: X = 87.35 Y = 95.716 Z = 51.779 c. Vertices : 8 d. Faces : 12 e. Map tekstur: bata merah.bmp 791 KB Dimension 526 x 512 00tex_master.BMP 769 KB Dimension 512 x 512 (digunakan saat collision detection) Sistem AR dalam penelitian ini menggunakan nilai kamera parameter dengan ukuran sebagai berikut: 1. Size 640, 480 2. Distortion factor = 318.500000 263.500000 26.200000 1.012757 700.95147 0.00000 316.50000 0.00000 0.00000 726.09418 241.50000 0.00000 0.00000 0.00000 1.00000 0.00000
Hasil loading objek karakter Cepot dalam sistem terekam dalam tabel 1 yang menampilkan data fps hasil rendering objek
Tabel 1. Data fps Perbandingan Posisi Diam dan Gerak Maju waktu pengamatan 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 170 180 190 200 210 220 230
Posisi Model diam 13.03383427 14.02639024 14.51396417 14.25054439 14.14173924 13.13505606 13.77665293 14.06011819 13.52839895 14.45665673 13.67527161 13.91381949 14.58249559 14.80060809 15.0265719 14.27165105 14.47505379 14.6837192 13.97833473 14.1422861 14.92877984 14.63405409 15.1824079
Posisi model gerak 15.16223553 15.29050645 16.00628156 16.25819967 15.56837728 15.67060001 15.33649728 15.71345169 16.11181677 14.99264076 15.59310729 15.26891747 14.63317774 14.79357274 15.11295013 15.40167118 15.46874031 15.13839229 14.89069053 15.0040769 14.61790187 15.11328651 15.40849375
Dari tabel di atas diperoleh grafik yang menunjukkan perbedaan nilai fps rendering objek karakter Cepot saat posisi diam dan saat posisi digerakkan oleh keyboard. Berikut gambar grafiknya:
Gambar 7. Grafik fps posisi diam dan maju objek Sedangkan hasil loading objek wall dalam sistem terekam dalam tabel 2 yang menampilkan data fps hasil rendering objek Tabel 1. Data fps Perbandingan Posisi Diam dan Gerak Maju waktu pengamatan Posisi Model diam Posisi model gerak 10 12.29127898 14.54322117 20 13.47673911 14.43548355 30 14.38367954 15.76158509 40 13.69569163 15.64877135 50 13.96966043 15.02523024 60 13.03125628 15.14382112 70 13.25039708 15.23928526 80 13.56350864 14.88196726 90 13.11619949 15.98295745 100 13.69471805 14.76533361 110 13.37756459 14.81890357 120 13.75135453 14.86269148 130 13.74717301 13.99537334 140 14.36180668 14.05772102 150 14.2328969 14.59833834 160 13.7450684 15.76158509 170 14.18546705 15.64877135 180 13.73841292 15.02523024 190 13.58538053 14.01489824 200 13.7806067 14.00936922 210 14.55149656 14.55523326 220 13.7798749 14.17970962 230 14.35709214 14.46088547 Dari tabel di atas diperoleh grafik yang menunjukkan perbedaan nilai fps rendering objek karakter Cepot saat posisi diam dan saat posisi digerakkan dengan cara marker diubah posisinya. Berikut gambar grafiknya:
Untuk hasil loading gabungan render 2 objek, cepot dan wall dengan posisi diam dan bergerak dalam sistem terekam dalam tabel 3 yang menampilkan data fps hasil rendering objek Tabel 3 Data fps rendering gabungan waktu pengamatan 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 170 180 190 200 210 220 230
Posisi Model diam 12.08770416 12.44338474 12.73269578 12.48360281 12.18240001 12.98882526 12.18850566 12.20803567 12.83645428 12.57795691 12.95400614 12.294838 12.47156336 12.78299467 12.80481038 12.24072425 12.67110609 12.63540016 12.8960194 12.82009248 12.22437826 12.35245887 12.14403843
Posisi model gerak 11.93584067 11.28085593 12.14210461 12.15884272 12.1601905 12.09469201 12.18131582 12.16348485 11.52525383 11.81566573 11.94869648 12.07654225 9.433416978 9.789097557 10.0784086 9.829315627 9.528112828 10.33453808 9.534218478 9.553748487 10.1821671 9.923669731 10.29971896
Dari tabel di atas diperoleh grafik yang menunjukkan hasil rendering 2 objek dalam sistem. Berikut gambar grafiknya:
Dari kesemua tabel data dan grafik yang diperoleh. Sistem mampu menampilkan objek, terlihat dari data fps rendering objek. Data fps berubah-ubah sesuai dengan objek yang diload dan juga sesuai dengan jumlah objeknya serta posisi objek, diam atau bergerak. Terjadi penurunan angka saat objek digerakan dan juga saat ditampilkan 2 objek bersamaan. Pengamatan di atas dilakukan dengan selang waktu 10 detik. Dalam rendering, fps artijnya per detik, jadi sistem terus menerus merender dan memunculkan angka selama objek berhasil terlihat. Untuk itu kami membatasi dengan memberikan interval 10 detik untuk melakukan pengamatan.
Untuk keberhasilan sistem, screenshot berikut ini:
dpat
Gambar 9. Posisi diam
dilihat
pada
Gambar 10. Gerak maju
2.8.3 Pengujian Animasi Interaksi Setelah objek berhasil dipanggil dan muncul dalam AR, seperti skenario yang telah direncanakan interaksi objek akan dibangun dengan handling keyboard untuk menggerakkan objek sehingga beranimasi. Posisi objek pada marker setelah digerakkan akan terjadi perubahan translasi sumbu x,y dengan melakukan penjumlahan koordinat yang ditampung sebagai array matrik. Penghitungan jarak objek menggunakan euclidean dengan rumus: (x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) Sedangkan untuk perputaran objek menggunakan aturan trigonometri, yakni menghitung perputaran objek dengan sinus dan menghitung perputaran objek dengan cosinus. Pergerakan keyboard ditambahkan include header pada sistem #include "controller.h" Untuk animasinya, objek yang digerakkan merupakan objek berupa pose-pose karakter. Program akan memanggil animasi sequence dengan panduan dari data action.txt, yakni berupa urutan-urutan animasinya. Ini ditambahkan pada include header di system #include "anime_util.h"
yang kemudian dipanggil dengan char *anime_config_name "action.txt";
=
Dalam penelitian ini, animasi sequence yang digunakan untuk berjalan sebanyak 31 file objek, 1 file objek untuk posisi berdiri. Ini sesuai dengan standar animasi gerak yakni 24 hingga 30 frame. Gambar 11. Gerak mundur
Inisialisasi nilai statis variabel yang digunakan dalam kendali animasi dan keyboard meliputi: 1. kecepatan animasi karakter, menggunakan kecepatan 4 mm/s #define ANIME_SPEED
4
2.
kode nilai awal kendali keyboard untuk karakter posisi berdiri
3.
kode nilai awal kendali keyboard untuk karakter posisi jalan
#define MOTION_STAND
0
#define MOTION_WALK 1
Gambar 12. Dua objek
Setelah dilakukan uji sistem, hasilnya pergerakan objek 3D pada Ar dapat berjalan baik. Event handling keyboard pada objek berhasil mengubah posisi sumbu x dan y objek. Untuk animasi juga berjalan baik. Frame demi frame yang berupa pose karakter 3D menunjukkan animasi gerak berjalan dan melompat. Hasilnya dapat dilihat pada gambar 10 dan 11.
2.8.3 Pengujian Collision Detection Setelah interaksi dengan keyboard berjalan, karakter kemudian dapat digerakkan. Untuk menguji collision detection, ditampilkan satu objek dengan satu marker lagi. Saat system telah menampilkan ke dua objek, karakter bergerak menuju objek wall. Karakter akan mendeteksi adanya collision karena sudah ditempatkan boundngx box collision detection. Dalam sistem, posisi objek wall diinisialisasi posisi x,y dan z. Selain itu, radius serta kedalaman ataupun ketinggian objek juga diajukan. Berikut parameter dalam program untuk menempatkan objek wall. // pengaturan posisi ukuran lubang kotak g_hole.x = 50; //panjang nilai x g_hole.y = 50; //panjang nilai y g_hole.z = 50; //pandangan terhadap sumbu z g_hole.radius = 50.0; //ukuran lebar kotak g_hole.bottom = 50.0; //kedalaman kotak
Objek akan membaca jarak dari objek wall sehingga saat pergerakan memasuki range objek wall, objek cepot akan mendetaksi collision. Dengan ditambahkan height parameter dalam system, objek cepot dapat membaca ketinggian maupun kedalaman objek wall sehingga memungkinkan objek cepot berdiri pada objek wall atau “terjebak” dalam kedalaman objek wall. Berikut screenshotnya
(a)
(b)
(c) Gambar 13. Collision detection (a) cepot tanpa tekstur (b) Cepot dengan tekstur mendeteksi wall (c) Cepot mendeteksi wall dengan tekstur beda Hasil screenshot sistem menunjukkan bahwa cepot dapat membaca mendeteksi collision dengan objek wall. Teknik bounding box collision detection terlihat saat cepot mampu membaca distance objek wall. Saat pergerakan cepot berada pada range bounding wall, maka deteksi terjadi, sehingga cepot tidak tembus terhadap wall. Karena mampu mendeteksi tumbukan, maka karakter bisa berdiri pada wall. Kesimpulan Metode yang diajukan dalam membuat visualisasi gerak 3D pada AR dengan metode collision detection berjalan dengan baik. Tekstur yang selama ini menjadi permasalahan dalam ARToolKit dapat terselesaikan dengan mengubah maping tekstur pada objek 3D menjadi berformat bmp 24 bit. Agar lebih terlihat meyakinkan, AR harus mampu menghadirkan interaksi secara realistis. Dalam system ini, interaksi keyboard diterapkan dengan melakukan animasi sequence pada objek. Animasi dipandu dengan script action.txt untuk dapat menjalankan urutan-urutan pose 3D yang nantinya akan beranimasi. Pergerakan objek menerapkan algoritma Euclidean berhasil membawa perubahan posisi objek dalam media AR. Sedangkan untuk collision detection, metode sederhana bounding box diajukan sesuai dengan tujuan untuk mendeteksi tumbukan antar dua buah objek 3D.
DAFTAR PUSTAKA Azuma, R.T., Y. Baillot, R. Behringer, S. Feiner, S. Julier, B. MacIntyre 2001, Resent advances in Augmented reality, available at: http://www.cs.unc.edu/~azuma/cga2001.pdf. Breen, E. David, et all: Interactive Occlusion and Collision of Real and Virtual Objects in Augmented Reality, European ComputerIndustry Research Centre, (1995). Dorfmüller-Ulhaas, K. and Schmalstieg, D. (2001), Finger Tracking for Interaction in Augmented Environments, Proceedings ISAR’01, New York. H. Kato, M. Billinghurst, I. Pou Pyrev, K. Imamoto and K. Tachibana, Virtual Object Manipulation on a Table-Top AR Environment. In Proceedings of the International Symposium of Augmented Reality, Munich, Germany, 2000, p. 111119. Lederman, Florian, et all: A High-level Framework for Creating Augmented Reality Presentations, in IEE Virtual Reality 2005, Institute for Computer Graphics and Vision at the Graz University of Technology. Presence: Teleoperators andVirtual Environments 6, 4, 355 – 385. Slay, Hannah, et al: Tangible User Interaction Using Augmented Reality, Third Australian User Interfaces Conference, Melbourne, Australia. Conferences in Research and Practice in Information Technology, Vol. 7. (2002). Hirokazu KatoMark BillinghurstIvan Poupyrev, ARToolKit, November 2000, Hiroshima City University, Human Interface Technology Laboratory University of Washington, ATR MIC Labs MIC Research Labs ATR International Hikaridai, Seika, Souraku-gun Kyoto, Japan.
Milgram, P. and Kishino, F., (1994), A Taxonomy of Mixed Reality Visual Displays, IEICE Transactions on Information Systems, Vol E77-D, No.12. Rekimoto, J and Ayatsuka, Y. (2000), Cybercode: Designing Augmented Reality Environments with Visual Tags, Proceedings of Designing Augmented Reality Environments (DARE 2000). Rekimoto, J. (1997), Navicam: A Magnifying Glass Approach to Augmented Reality Systems. Presence: Teleoperators and Virtual Environments 6, 4, 399–412. Shutterland, I: A Head-Mounted Three Dimensional Display, in Fall Joint Computer Confrence, Proceedings, 1968. Koziara, Tomasz , Bicanic, Nenad: Bounding Box Collision Detection, 13th Acme Conference: University of Sheffield (2005). Nakamura ,Ricardo, Tori Romero: A Technique for Collision Detection and Real-Time Video Avatar Interaction in Mixed Reality Environments, IX Symposium on Virtual and Augmented Reality - SVR2007. Zlatanova, S. (2002), Augmented Reality Technology, GISt Report No. 17, TU Delft. Morley, M. (2000). Frustum culling in OpenGL. Dunlop, R. (2001). Collision Detection, Part 1: Using Bounding Spheres. Microsoft. http://www.hitl.washington.edu.artoolkit Junaio Company Profiile at http://www.metaio.com/