Aplikasi Pendeteksi Jauh Dekat Posisi Suatu Objek Dengan Menggunakan Kinect For Windows Jeffrey Harto M. D.1, Liliana2, Gregorius Satiabudhi3 Program Studi Teknik Informatika Fakultas Teknologi Industri Universitas Kristen Petra Jl. Siwalankerto 121 – 131 Surabaya 60236 Telp. (031) – 2983455, Fax. (031) – 8417658
E-Mail:
[email protected],
[email protected],
[email protected]
ABSTRAK Perkembangan teknologi telah digunakan dalam berbagai macam aspek kehidupan manusia. Salah satu aspek yang mengalami perkembangan pesat dalam teknologi yaitu dalam dunia video game. Virtual reality menjadi salah satu fokus pengembangan yang dilakukan pengembang game untuk meningkatkan kualitas gameplay. Dengan menggunakan virtual reality, user dapat berinteraksi secara lebih nyata dengan game yang dimainkan. Salah satu contoh teknologi yang digunakan dalam dunia virtual reality ini adalah dengan menggunakan teknologi kinect. Oleh karena itu diteliti sebuah aspek yang dimiliki kinect yaitu depth sensor untuk menghasilkan reaksi yang berbeda berdasarkan gerakan kedalaman. Tujuan dari penelitian ini dimaksudkan untuk menggunakan gerakan kedalaman yang ditangkap kinect sebagai input yang diaplikasikan pada sebuah game virtual reality. Penggunaan Kinect dalam game virtual reality dimaksudkan untuk mengontrol character game agar sesuai dengan kenyataan. Dengan demikian pemain terasa nyata terlebih lagi dengan memperhitungkan konsep fisika dari gerakan kedalaman yang dilakukan pemain maka hasil output dari game akan terasa lebih nyata. Hasil Pengujian menunjukan bahwa device kinect mampu memberikan output berbeda dengan cukup baik dengan memanfaatkan depth sensor yang terdapat pada perangkat. Hasil input kecepatan gerakan yang didapat dari kinect mampu diklasifikasi hingga 4 tingkat kecepatan dan 4 kecepatan ini dapat digunakan didalam game dalam menghasilkan reaksi yang berbeda-beda.
Kata Kunci: Virtual reality, Game, Kinect Unity. ABSTRACT The growth of technology are used on every aspect of human lifes. One that rapidly growing is technology on video games. Virtual reality is on that raise the intereset of game developer to improve the quality of gameplay. By using virtual reality, user can interact directly with the game world this will give the user feeling of reality. One of the technology that used in virtual reality is kinect. On that aspect this research about the depth sensor of kinect device is chosen. Depth sensor will be used to get an input of user motion to make a different result based on the depth movement. This research is meant to create an application that can give a different output on virtual reality game based on depth input that kinect catch from user motion. Kinect is used as the game controller in the result of this virtual reality game research. Kinect device will used to control the game character, user only need to move their body parts to
move the character this kind of controller will led to a feeling of reality experienced by user. Therefore to increase that feel, the depth movement that user do will be calculated using physics to give a more better output. The test result shown that kinect device can give good output by using the depth sensor. The test can divide the speed that kinect catch can be classified to 4 stage dan each of this stage can giive a different reaction on the game. Keywords: Virtual reality, Game, Kinect Unity.
1. PENDAHULUAN Perkembangan teknologi telah digunakan dalam berbagai macam aspek kehidupan manusia. Salah satu aspek yang mengalami perkembangan pesat dalam teknologi yaitu dalam dunia video game. Pengembangan teknologi dalam game bergerak dalam berbagai bentuk baik dalam peningkatan kualitas grafis, audio, alur cerita, gameplay dan lain-lain. Hal ini menyebabkan pengembang game bersaing untuk menghasilkan teknologi baru untuk menjadi inovasi baru dalam dunia game. Virtual reality menjadi salah satu fokus pengembangan yang dilakukan pengembang game untuk meningkatkan kualitas gameplay. Dengan menggunakan virtual reality, user dapat berinteraksi secara lebih nyata dengan game yang dimainkan. Salah satu contoh teknologi yang digunakan dalam dunia virtual reality ini adalah dengan menggunakan teknologi kinect. Device bernama kinect ini akan mengambil input berupa gerakan tubuh user di dunia nyata untuk dipakai menjadi data input didalam sebuah game sehingga user merasa seperti menjadi tokoh didalam game itu sendiri. Rasa nyata yang diberikan kepada user saat bermain inilah yang menjadi fokus dari pengembangan teknologi kinect. Beberapa penelitian telah dilakukan oleh mahasiswa Universitas Kristen Petra seperti mendeteksi posisi tangan user untuk kemudian diubah menjadi drum virtual sesuai dengan posisi yang telah ditetapkan dan permainan olahraga dodgeball yang memerlukan gerakan pada dunia 3 dimensi. Dari penelitian sebelum-sebelumnya, tidak ada yang membedakan gerakan terhadap jauh-dekat/kedalaman input dari user. Oleh karena itu pada skripsi ini dibuat virtual reality game menggunakan teknologi kinect dengan tujuan membuat lingkungan virtual game menjadi lebih nyata dengan memperhitungkan pergerakan player terhadap jauhdekat/kedalaman input untuk menghasilkan reaksi yang berbeda. Data yang dihasilkan akan diterapkan pada dunia 3D pada game. Diharapkan dengan adanya game virtual reality ini, perkembangan game ataupun entertaintment lainnya kedepannya dapat memanfaatkan teknologi ini untuk meningkatkan kualitas game atau entertainment tersebut.
2. LANDASAN TEORI 2.1 Virtual reality Virtual reality adalah sebuah lingkungan virtual yang di presentasikan dalam bentuk 3D yang terbentuk dari computergenerated simulation dan mensimulasi kehadiran fisik pengguna kedalamnya sehingga komputasi dan visualisasi menjadi kunci dari virtual reality. Dalam sejarah perkembangannya teknologi komputasi berkembang dengan sangat pesat tetapi teknologi dalam visualisasi tertinggal jauh dibelakang. Hal ini menyebabkan masalah dalam perkembangan virtual reality kedepannya karena pada dasarnya faktor yang paling terasa dan dikenali oleh manusia sebagai Virtual reality adalah melalui visualisasi. [6]
2.2 Kinect Kinect adalah sebuah alat yang dibuat oleh Microsoft sebagai sebuah alat input untuk Xbox 360, Xbox One, dan Windows PC. Kinect mendapatkan input dari user untuk menghasilkan data yang akan diolah menjadi suatu input didalam game. Input yang dapat diterima oleh kinect berupa motion sensing dan speech recognition. Motion detection yang dimiliki oleh kinect dilengkapi dengan skeletal tracking untuk mengenali kerangka dari pemain. Setiap pemain akan menghasilkan 20 joints yang dianalisa oleh kinect dan kinect sanggup mendeteksi hingga 6 pemain tetapi kinect hanya bisa mengembalikan data secara lengkap jika jumlah pemain kurang dari 3. Untuk melakukan motion detection ini kinect di lengkapi dengan color camera, infrared emitter(IR emitter), dan infrared depth sensor(IR depth sensor). Color camera yang dimiliki kinect dapat mendeteksi warna RGB dan dapat bekerja dengan kecepatan 30 frame rate per second pada resolusi layar 640x 480. Sedangkan dalam mendeteksi kedalaman kinect menggunakan IR emitter dan IR depth sensor. Jangkauan pandang kinect sejauh 43 derajat horizontal dan 57 derajat vertikal dengan jarak tangkapan dijelaskan pada Gambar 1. [2][7]
Gambar 2. Posisi Joint Kinect
2.4 Depth Sensor Kinect menggunakan IR emitter dan IR depth sensor untuk mendapatkan data kedalaman. IR emitter mempunyai fungsi untuk menembakkan sinar inframerah sedangkan IR depth sensor berfungsi untuk mendapatkan pantulan dari sinar inframerah tersebut. Cara kerja dari Depth Sensor ditunjukkan pada Gambar 3.[1]
Gambar 3. Cara Kerja Depth Sensor Gambar 1. Jarak Tangkap Kinect
2.3 Skeletal Tracking Skeletal tracking adalah fitur dari Kinect untuk mendeteksi pergerakan dari player dengan memperhitungkan 20 joint yang telah di siapkan kinect yaitu kepala, bahu tengah, bahu kanan, bahu kiri, siku kanan, siku kiri, pergelangan tangan kanan, pergelangan tangan kiri, tangan kanan, tangan kiri, tulang belakang, pinggul tengah, pinggul kanan, pinggul kiri, lutut kanan, lutut kiri, pergelangan kaki kanan, pergelangan kaki kiri, tangan kanan, tangan kiri. Gambar 2 menunjukan posisi dari tiap joint. [1]
2.5 Rule based Artificial Intelligence Rule based Artificial Intelligence atau yang biasa disebut dengan sistem pakara merupakan sebuah sistem Artificial Intelligence yang mengolah fakta-fakta yang didapat untuk kemudian diolah menjadi sebuah keputusan dengan cara melakukan proses perbandingan value pada beberapa tahap perbandingan kondisi yang pada akhirnya akan menghasilkan sebuah action jika memenuhi rules yang telah ditetapkan. Secara garis besar sebuah rule base dapat dinyatakan sebagai kumpulan dari beberapa fakta yang kemudian akan diproses dengan menggunakan beberapa production rule untuk menghasilkan sebuah kesimpulan akhir atau sebuah aksi.[3]
IF the spill is liquid And the spill ph <6 And the spill smell is vinegar Then the spill material is acetic acid
mengakhiri permainan player dapat memilih tombol exit game. Gambar 4 menunjukan flowchart dari sistem utama game.
Start
2.6 Arcade Game Arcade game adalah sebuah kategori game dimana biasanya dilakukan pada sebuah mesin permainan dan hanya dapat memainkan sebuah permainan saja [5].Sebuah game arcade berfokus pada kecepatan bereaksi seorang user dan game arcade cenderung tidak membutuhkan tingkat pemikiran yang kompleks, beberapa contohnya seperti shooting game, platform game, maze game, dan lain-lain [4]. Dengan perkembangan teknologi-teknologi baru game bersifat arcade ini mulai berkembang ke arah virtual reality dengan memanfaatkan sensor-sensor, salah satunya dengan kinect sebagai alat inputnya.
Initialize Game
Output Score & Input Name True
User Motion
Return Menu
AI Action
False
Player Health Empty?
3. DESAIN SISTEM 3.1 Perancangan Sistem Game Game akan dimulai dengan menampilkan tampilan menu yang menyakikan menu start, highscore, dan exit. Jika menu start dipilih maka akan ditampilkan 2 pilihan permainan 1 player atau 2 player. Selain itu disajikan juga sebuah checkbox untuk menyalakan mode tracking gaya fisika. Setelah pemilihan jumlah player maka akan ditampilkan opening story dari permainan tersebut. Apabila opening story telah selesai maka permainan akan dimulai. Seperti pada Gambar 4. Permainan akan dimulai dengan melakukakn inisialisasi terlebih dahulu dimana inisialisasi ini akan melakukan penyettingan resources dan juga pengecekan apakah device kinect telah terkoneksi dengan baik. Apabila semua resources telah tersetting dengan baik maka permainan dimulai dengan player melakukan kalibrasi terlebih dahulu hingga berhasil terkoneksi dengan character pemain. Setelah terkoneksi maka permainan akan dimulai dengan countdown 3detik sebelum enemy akan keluar. Permainan ini memiliki objective untuk meraih poin setinggitingginya dengan cara menggerakan karakter player dan melakukan gerakan pukulan dan tendangan terhadap seluruh objek enemy yang ada di dalam permainan. Untuk setiap enemy yang player kalahkan player akan meraih poin tertentu. Tiap pergerakan player akan diperhitungkan gaya yang dihasilkan berdasarkan kecepatan dari pukulan atau tendangan player. Besar gaya yang dihasilkan ini akan mempengaruhi efek animasi, jarak pantulan, dan damage yang dihasilkan player terhadap enemy. Dan enemy yang terkena hasil dari gerakan player adalah pada posisi yang sesuai berdasarkan data depth sensor yang ditangkap kinect. Selain pergerakan player, enemy pada game juga memiliki AI yang diatur dengan metode Rule based. Dimana enemy di permainan ini dibagi menjadi 2 tipe yaitu ground dan flying enemy. Ground enemy memiliki kemampuan untuk mengejar,menyerang dan lari dari player. Sedangkan Flying enemy memiliki kemampuan untuk mengelilingi player, menghindari serangan player, dan menyerang player. Permainan akan berhenti apabila Health dari player habis. Pemain akan memasukkan nama player dan tersimpan dari database. Kemudian tampilan permainan akan kembali ke menu awal. Disini player dapat melihat Highscore dari 3 skor tertinggi dengan menekan tombol menu highscore. Untuk
Gambar 4. Flowchart sistem game
3.2 Implementasi Enemy AI AI pada game menggunakan metode rule based dan tipe dari enemy sendiri tertdapat 2 jenis yaitu ground enemy dan flying enemy. Rule-rule yang digunakan pada ground enemy sebagai berikut If health<=0 Then die Else If health<=20% Then run Else If is being hit Then stop till touch ground Else If touch ground and status being hit Then reset to chase Else If is on attack range Then attack Else chase
Rule-rule yang digunakan pada flying enemy sebagai berikut If health<=0 Then die Else If health<=20% Then run Else If is on player attack range Then random avoid chance Else If random avoid true Then avoid Else If is being hit Then stop till touch ground Else If touch ground and status being hit Then reset to wander Else If is on attack range Then random attack chance Else If attackchance true Then attack Else wander
4. PENGUJIAN SISTEM 4.1 Pengujian Aktivitas Pemain Terhadap Kinect Pengujian aktivitas pemain yang dilakukan dibagi menjadi beberapa gerakan:
Pukulan Tangan Proses aktivitas pukulan tangan dilakukan dengan cara pemain melakukan gerakan tangan dari satu titik menuju titik lain dalam waktu tertentu.Berikut gambar-gambar dari uji aktivitas pukulan tangan. Gambar 5 dan 6 menunjukan proses dan hasil aktivitas pukulan tangan.
Menunduk Proses aktivitas menunduk dilakukan dengan cara pemain memposisikan tubuh bagian atas condong ke arah depan bawah. Gambar 9 dan 10 menunjukan proses dan hasil aktivitas menunduk.
Gambar 5. Gerakan Pukulan Awal Gambar 9. Gerakan Menunduk
Gambar 6. Gerakan Pukulan Akhir
Tendangan Kaki Proses aktivitas tendangan kaki dilakukan dengan cara pemain melakukan gerakan kaki dari satu titik menuju titik lain dalam waktu tertentu. Berikut gambar-gambar dari uji aktivitas tendangan kaki. Gambar 7 dan 8 menunjukan proses dan hasil aktivitas tendangan kaki.
Gambar 10. Gerakan Menunduk Membuka Tangan
Mengangkat Tangan Proses aktivitas mengangkat tangan dilakukan dengan cara pemaian mengangkat tangan secara vertikal. Gambar 11 menunjukan proses dan hasil aktivitas mengangkat tangan.
Gambar 7. Gerakan Tendangan Awal
Gambar 11. Gerakan Mengangkat Tangan Hasil Pengujain diatas dapat menunjukkan bahwa kinect mampu mengenali beberapa pergerakan penting yang akan digunakan dalam permainan tersebut.
4.2 Pengujian Kinect Gambar 8. Gerakan Tendangan Akhir
Jarak
Efektif
Pengunaan
Pengujian ini dilakukan dengan cara menguji aplikasi yang telah dibuat dengan memposisikan pemain pada jarak yang berbeda-beda dari posisi terdekat hingga posisi terjauh yang dapat dideteksi oleh device kinect. Gambar 12 menunjukan uji jarak pada pemain 1 dan 2 orang.
kontroler kinect dapat diletakkan pada 3.5–1.5meter. Setelah mengevaluasi keseluruhan dari skripsi ini, beberapa saran yang dapat saya berikan:
Gambar 12. Hasil Uji Jarak Pada Pemain 1 dan 2 Orang Hasil pengujian menunjukkan batas terjauh yang dapat ditangkap oleh device kinect adalah 4 meter dimana hal ini dibuktikkan pada posisi 4 meter bagian tubuh player yang dikenali kinect mulai menghilang. Sedangkan posisi optimal kinect dimana semua skeleton dapat terdeteksi adalah pada jarak 3.5 – 2 meter.Pada jarak 1.5 meter skeleton pada pemain dapat dideteksi dengan baik kecuali pada bagian leher keatas terkadang menghilang. Pada jarak 1 meter hasil pendeteksian sudah kurang bagus bagian bahu turun tidak pada posisi yang benar, bagian lutut kebawah hilang. Sedangkan pada jarak kurang dari 1 meter kinect tidak dapat mendeteksi skeleton.
5. KESIMPULAN DAN SARAN Berdasarkan hasil dari pengujian, dapat disimpulkan beberapa hal sebagai berikut:
Pendeteksian pergerakan player dapat dikenali dengan baik berdasarkan pengujian dilakukan beberapa pergerakan dan hasilnya sesuai dengan yang diharapkan. Pendeteksian pegerakan jauh dekat objek dapat berjalan dengan baik berdasarkan dimana objek yang terkena interaksi sesuai dengan posisi kedalaman dari player. Kinect dapat digunakan secara efektif pada jarak 3,5 – 1,5 meter dari pengguna baik pada mode permaian 1 dan 2 pemain. Untuk mendapatkan skeleton dengan sempurna
Pengembangan aplikasi berbasis device kinect dapat difokuskan pada pemanfaatan depth sensor dalam sebuah aplikasi yang lebih kompleks seperti pada permainan billiard, bowling, golf, dan lain-lain. Pengembangan artificial intelligence dari game dapat dikembangkan menjadi lebih baik dengan mengganti artificial intelligence sederhana dalam game dengan mengunakan sistem fuzzy logic atau artificial neural network. Pengembangan aplikasi berbasis device kinect dapat memanfaatkan gesture recognition sederhana dalam game menjadi gesture yang lebih kompleks yang dapat dimanfaatkan sebagai sebuah sistem kontrol dari sebuah aplikasi.
6. DAFTAR PUSTAKA [1] Catuhe, D. 2012. Programming with the Kinect for Windows Software Development Kit. USA: Microsoft Press. [2] Jana, A. 2012. Kinect for Windows SDK Programming Guide. UK: Packt Publishing. [3] Negnevitsky, Michael. 2011. Artificial Intellegence A Guide to Intelligent Systems. Kanada: Pearson Education Canada. [4] Overmars, M. 2007. Game Maker Tutorial: Designing Good Games. YoYo Games Ltd. [5] Salen, K. & Zimmerman, E. 2003. Rules of Play : Game Design Fundamentals. The MIT Press. [6] Tang,X. X. 2012. Virtual reality: Human Computer Interaction. Croatia: Intech. [7] Webb, J. 2012. Beggining Kinect Programming with the Microsoft Kinect SDK. New York: Apress.