Perilaku Kamera Untuk Pengambilan Sudut pandang Otomatis Menggunakan Metode Knowledge-Based System Prananto Yuwono1) Moch. Hariadi2) Supeno Mardi S. N3) 1) Jurusan Teknik Elektro ITS, Surabaya 60111, email:
[email protected] 2) Jurusan Teknik Elektro ITS, Surabaya 60111, email:
[email protected] 3) Jurusan Teknik Elektro ITS, Surabaya 60111, email:
[email protected]
Abstrak - Penelitian ini menjelaskan tentang bagaimana membuat kamera dengan sudut pandang otomatis menggunakan Knowledge-Based System yang merupakan salah satu bidang Artificial Intelligence (AI) yang dalam hal ini menawarkan kemudahan pengambilan keputusan berdasarkan aturan if-then sederhana. Kamera virtual bergerak secara otomatis berdasarkan perubahan state dari FSM yang telah dikondisikan, selanjutnya digunakan logika fuzzy dengan variabel kesehatan dari player, jarak musuh, dan jumlah musuh untuk mendapatkan sudut pandang kamera yang lebih bervariasi dan lebih halus derajat sudutnya. Dalam thesis ini disimulasikan sistem pengambilan keputusan pada kamera virtual dari game peperangan yang memiliki jangkauan sudut pandang antara 0 – 90 derajat. Perilaku kamera dapat berubah sudut pandang secara otomatis dari sudut yang sempit (< 45 derajat), sudut sedang (= 45 derajat) , dan sudut lebar (> 45 derajat) lebih dinamis berdasarkan logika fuzzy tersebut. Pada posisi state menyerang maka kamera akan berubah ke sudut 20 derajat langsung ketika hanya menggunakan knowledge based, tetapi ketika ditambahkan logika fuzzy sudut kamera akan bergerak bervariasi antara 12 derajat sampai 20 derajat.
perilaku. perilaku kamera adalah perilaku kamera virtual yang ada didalam game. Dalam permainan ini kita akan meneliti kamera yang bisa mengambil keputusan secara otomatis untuk mengambil gambar-gambar dari sudut-sudut yang terbaik pada adegan yang terbaik juga. Ini berguna untuk menambah tingkat kedinamisan visual game jadi bermain game akan terasa lebih seru dengan sudut pandang yang bagus juga. 2. TEORI PENUNJANG 2.1 Finite State Machine (FSM) FSM merupakan salah satu metode yang paling populer untuk memodelkan perilaku agen/NPC dalam sebuah game. Bahkan seakan menjadi standard karena telah digunakan secara luas dalam berbagai game. Hal ini mengingat kesederhanaan dan kemudahan FSM untuk diimplementasikan. FSM terdiri dari dua elemen utama yaitu keadaan (state) dan transisi (transition). State merupakan keadaan objek saat ini, sedangkan transisi adalah hal yang dilakukan untuk dapat berpindah dari satu state ke state yang lain (Gambar2.1)
Kata Kunci: kamera virtual, Knowledge-Based System, perilaku kamera 1. PENDAHULUAN Game merupakan suatu program dimana didalamnya terdapat banyak sekali susunan struktur penunjang mulai dari skenario, model karakter, map, script programming, ilustrasi suara, penataan kamera, penataan suara, sampai pada pmbuatan environment . Hal-hal tersebut tidak bias dipisahkan dalam pembuatan game. Game yang bagus dan berkualitas adalah dimana game tersebut memiliki jalan certia atau skenario yg bagus, yang seru dan tidak membosankan, memiliki penataan suara yang bagus, memiliki karakter dan penataan grafis yang bagus juga.Penelitian ini akan membahas permainan dari segi penataan kameranya yang disebut sebagai
Gambar 2.1: Diagram FSM State dilambangkan dengan lingkaran, sedangkan transisi disimbolkan dengan anak panah dengan arah tertentu. Pada Gambar 1, angka 1-5 adalah state sedangkan huruf a-g adalah transisi. Kelebihan dari FSM adalah sederhana dan mudah diimplementasikan. Sedangkan kekurangannya adalah pada sistem yang besar, FSM akan sulit diperlihara.
FSM diimplemtasikan dalam bahasa pemrograman dengan berbagai cara, yaitu: cara tradisional (menggunakan switch-case), look-up tabel (menggunakan matriks untuk menyimpan state), dan dengan paradigma Object Oriented. FSM berkembang menjadi beberapa variasi dengan menggabungkan dengan metode lain, antara lain: Fuzzy State Machine (FuSM), Probabilistic FSM (PFSM), Hierarchical FSM (HFSM), dan lainnya.
2.2 Knowledge-Based System DSS (decission support systems) merupakan alat bantu untuk memecahkan persoalan-persoalan yang kurang terstruktur dengan baik. KBS ( knowledge-based system atau expert system) merupakan alat bantu untuk memecahkan persoalan yang mengikuti cara kerja pakar (expert). Penggabungan antara KBS dan DSS yang disebut dengan KB-DSS memberi suatu alternative baru untuk memecahkan persoalan. Knowledge Based System adalah suatu system yang menggunakan set pengetahuan (knowledge) yang dikodekan ke bahasa mesin untuk dapat menyimpulkan dan melakukan suatu tugas. Knowledge Based System digunakan untuk dapat membantu manusia dalam menyelesaikan masalah yang dihadapi dengan berdasarkan atas pengetahuan yang telah diprogramkan ke system tersebut. Untuk hal inilah maka digunakan knowledge based system dalam memecahkan masalah yang berhubungan AI
Gambar 2.2: Skema Knowledge-Based System (dev2.tech-knowledgee.net) 2.2.3.1 Komponen KBS Knowledge-Based System terdiri dari 3 komponen. Seperti terlihat pada gambar 2.6 yaitu : 1. Fact Base (Working Memory) 2. Knowledge Base 3. Rule Engine (Inference Engine) Contoh deklarasi fact base:
Knowledge Base Berisi sekumpulan aturan yang dapat memindahkan dari kondisi awal permasalahan ke solusi. Knowledge Base berupa procedural language dan bersifat longterm knowledge.
Kelebihan dan Kekurangan KBS Kelebihan KBS 1. Sederhana dan mudah dimengerti 2. Cepat 3. Konsisten Kekurangan KBS 1. Tidak bisa memberi jawaban jika tidak ada di knowledge base 2. Tidak bisa memberi respon yang kreatif 3. Tidak efisien dan sudah diimplementasikan pada sistem yang besar
2.3 Logika Fuzzy Logika Fuzzy adalah sebuah metode untuk menangani masalah ketidakpastian. Yang dimaksud dengan ketidakpastian yaitu suatu masalah yang mengandung keraguan, ketidaktepatan, kurang lengkapnya informasi, dan nilai kebenarannya bersifat sebagian. Ide tentang logika Fuzzy sebenarnya telah lama dipikirkan, yaitu semenjak jaman filsuf Yunani kuno. Dalam hal ini Plato adalah filsuf pertama yang meletakkan pondasi dasar dari logika Fuzzy. Plato menyatakan bahwa ada area ketiga selain benar dan salah. Pemikiran ini sempat menghilang selama 2 milenium sebelum akhirnya pada abad ke 19 para ahli menemukan teori probabilitas yang bisa digunakan untuk menangani masalah ketidakpastian. Teori ini terus berkembang hingga akhirnya pada tahun 1960 Lotfi A. Zadeh memperkenalkan teori himpunan Fuzzy. Lotfi A. Zadeh merupakan seorang profesor dari University of California, Berkeley, Amerika Serikat dan merupakan profesor pertama yang mempublikasikan makalah tentang konsep logika Fuzzy. Munculnya konsep logika fuzzy bukan berarti menggantikan teori probabilitas yang sebelumnya ada. Akan tetapi dengan adanya logika fuzzy telah ditemukan alternatif lain yang bias digunakan untuk menyelesaikan masalah
ketidakpastian. Beberapa tahun setelah munculnya teori logika fuzzy, para ilmuwan jepang berhasil mengaplikasikan konsep tersebut kedalam perangkat elektronik maupun pada proses produksi dalam industry. Pada dasarnya teori himpunan fuzzy merupakan perluasan dari teori himpunan klasik. Dalam teori himpunan klasik, setiap elemn hanya akan memiliki dua kemumgkian keanggotaan terhadap himpunan yaitu menjadi bagian dari himpunan atau bukan merupakan anggota himpunan. Sebagai contoh himpunan A adalah bilangan bilangan genap dari 0 sampai 7 maka maka anggota himpunan A adalah 2,4,6 dan maka yang bukan anggota bilangan A adalah 8,9,10 dan seterusnya. Dengan demikian nilai keanggotaan dari setiap elemen hanya memiliki dua yaitu 0 jika bukan merupakan anggota himpunan dan 1 jika merupakan anggota himpunan. Keterbatasan dari himpunan klasik adalah tidak dapat menangani ketidakpastian. Sebagai contoh A adalah himpunan botol berisi penuh air sehingga Ā adalah himpunan botol kosong. Bagaimana bila ada botol yang berisi setengah atau seperempat. Tentu botol tersebut bukan merupakan anggota himpunan A atau Ā. Dengan menggunakan logika Fuzzy maka kekurangan tersebut akan teratasi karena logika Fuzzy memetakan suatu elemen menjadi suatu bilangan real antara 0 sampai 1. Jadi pada kasus botol di atas maka nilai keanggotaan dari botol setengah penuh adalah 0.5. Sekumpulan obyek umum yang dapat dimasukkan dengan berbagai derajat (kelas) dari keanggotaan atas [0,1] interval. Konvensi untuk memiliskan fuzzy set yang dihasilkan dari universe U yang diskrit adalah sebagai berikut:
∑
(2.1)
sedangkan jika U adalah kontinyu, maka.fuzzy set A dinotasikan sebagai:
(2.2)
Suatu sistem yang berbasis pada Logika Fuzzy dapat digambarkan dengan bagan berikut ini :
Gambar 2.3. Bagan sistem berbasis fuzzy [6] Pada gambar 2.3, proses awal pada sistem yang berbasis aturan fuzzy adalah melakukan fuzzification yaitu mengubah masukan yang bersifat pasti menjadi bentuk fuzzy. Pada proses fuzzification didefinisikan variabel lingustik dari nilai masukan yang semantiknya ditentukan berdasarkan fungsi keanggotaannya. Variabel linguistik merupakan suatu interval numerik yang memiliki nilai-nilai linguistik. Variabel linguistik dibuat sebagai pendekatan alternatif dari pemikiran manusia yang berfungsi untuk meringkas informasi dan mengungkapkan informasi tersebut dalam bentuk masukan fuzzy [6]. Karena pada penelitian ini digunakan bentuk gambar sebagai representasi fungsi keanggotaannya maka penjelasan selanjutnya akan difokuskan pada bentuk gambar. Pada representasi ini, fungsi keanggotaan akan dinyatakan dalam suatu grafik fungsi. Terdapat beberapa bentuk grafik fungsi yang digunakan untuk menentukan fungsi keanggotaan, dalam penelitian ini digunakan dua fungsi ke anggotaan antara lain : 1.
Fungsi Bentuk Segitiga Seperti namanya, fungsi segitiga berbentuk bangun segitiga yang memiliki titik pucak. Fungsi ini memiliki anggota yang dipetakan dalam interval [0,1] dimana hanya satu anggota saja yang memiliki derajad keanggotaan sama dengan satu yaitu yang berada pada titik puncak segitiga [6].
Gambar 2.10: fungsi segitiga [7] 2.
Fungsi Bentuk Trapesium Fungsi trapesium berbeda dengan fungsi segitiga dimana pada fungsi trapesium ada beberapa anggota yang memiliki derajat keanggotaan sama dengan satu. [6]
Dimana f bisa berupa sembarang fungsi dari variabel-variabel masukan yang nilainya berada dalam interval variabel keluaran. Kedua model tersebut memiliki karakteristik yang berbeda. Model Sugeno sering digunakan untuk membangun sistem yang menuntut hasil yang cepat. Karena perhitungannya yang sangat sederhana maka model ini sering digunakan untuk sistem kontrol. Akan tetapi model ini memiliki kelemahan yaitu hasil yang diperoleh kurang manusiawi atau masih terkesan kaku. Pada penelitian ini digunakan Model Mandani karena hasi perhitunganl yang diperoleh lebih manusiawi. Proses terakhir adalah defuzzification yaitu mengubah fuzzy Output menjadi nilai yang bersifat pasti. Fuzzy Output diperoleh dari proses inference. Bentuk dari Fuzzy Output masih berupa variabel linguistik sehingga harus diubah menjadi suatu nilai yang bersifat pasti. Ada beberapa metode yang digunakan untuk melakukan proses defuzzification, dalam peneltian ini digunakan centroid method : •
Gambar 2.10: fungsi trapesium [7] Setelah masukan diubah menjadi fuzzy input yang memliki variabel linguistik dan fungsi keanggotaan tertentu, selanjutnya dilakukan proses inference yaitu memasukkan aturan-aturan yang ada dalam basis pengetahuan. Terdapat banyak model aturan Fuzzy yang bisa digunakan dalam proses inference akan tetapi ada dua model aturan yang paling sering digunakan yaitu : 1.
2.
Model Mamdani Bentuk aturan yang digunakan pada model Mamdani adalah sebagai berikut : IF x1 is A1 AND … AND xn is An THEN y is B ………………………(2.3) Dimana A1,…, An, B adalah nilai-nilai linguistik, sedangkan “ x1 is A1 “ menyatakan bahwa nilai dari variabel x1 adalah anggota himpunan fuzzy A. Model Sugeno Model Sugeno merupakan varian dari model Mamdani dan memiliki bentuk aturan sebagai berikut : IF x1 is A1 AND … AND xn is An THEN y = f(x1 , …. , xn) …………(2.4)
Centroid Method Metode ini juga biasa disebut dengan Center of Area atau Center of Gravity. Metode ini merupakan metode yang paling penting dan menarik dari semua metode yang ada. Pada metode ini nilai tegas keluarannya diperoleh berdasarkan titik berat dari kurva hasil proses pengambilan keputusan.[7]
Gambar 2.10: metode centroid [7] Dari penjelasan tentang logika Fuzzy dapat diketahui bahawa suatu sistem yang menggunakan logika Fuzzy mampu menangani suatu masalah ketidakpastian dimana masukan yang diperoleh merupakan suatu nilai yang kebenarannya bersifat sebagian. Atas dasar itulah logika Fuzzy digunakan pada penelitian ini, dengan tujuan untuk mendapatkan respon perilaku kamera virtual berdasarkan variabel input yang dimiliki.
3. METODE PENELITIAN Pada penelitian ini kita akan membuat suatu simulasi perilaku kamera dengan mengambil sudut pandang terbaik dari adegan terbaik dalam sebuah game peperangan yang dimana didalamnya terdapat banyak sekali karakter-karakter yg terlibat. Tetapi dalam penelitan ini hanya digunakan agent yang berperan sebagai first person saja sehingga dapat memudahkan dalam melakukan analisa. Dalam game peperangan ini terdapat sistem penataan kamera yang sangat standard dengan hanya mengikuti first person dari belakang dan hanya terdapat satu sudut pandang saja. Dalam penelitian ini dibuat macam-macam sudut pandang yang akan membuat game terasa lebih dinamis dari segi sudut pandangnya sehingga terasa lebih seru dan menarik. Sudut pandang dalam penelitian ini akan bergerak secara otomatis bedasar pada state dalam FSM dari agent tersebut sehingga sudut pandang akan berubah jika agent mengalami state tertentu.
3.1 Desain FSM Agent Pada penelitian ini kita menggunakan FSM agent untuk membuat suatu kondisi dimana state yang akan dideteksi akan digunakan oleh knowledgebased system dalam mengambil suatu keputusan dalam pemilihan sudut pandang kamera. Seperti dibawah ini : • Pada posisi standby atau idle maka tidak terdeteksi suatu aksi apapun dan state normal. • Pada posisi berlari maka state akan terdeteksi bahwa ada aksi berlari maka disini akan di pilih keputusan ketika berlari maka kamera akan menentukan sudut pandang nya. • Pada posisi dimana state mendeteksi adanya musuh, maka state akan berubah menjadi menyerang, maka diambil keputusan juga kamera akan berputar melewati agent kearah depan melalui dua tahap, dan kembali ke posisi semula. • Pada posisi state agent mati maka kamera juga akan brubah naik ke atas dan berubah sudut menjadi 90 derajat.
Gambar 3.2: Desain FSM Agent
Gambar 3.1: flowcart penelitian Game peperangan yang dibuat merupakan pengembangan dari prototipe game Glorious Combat yang dibuat oleh David Lancaster dari perusahaan pembuat game Rebel Planet Creation (www.therebelplanet.com). David menyediakan kode sumber game tersebut secara gratis dan mendorong orang lain untuk memakai dan mengembangkannya.
3.2 Menentukan Aturan Dalam mengambil suatu gambar ada beberpa aturan yang nantinya sebagai parameter yang dimasukkan ke dalam knowledge based system. aturan aturan tersebut digunakan untuk mengambil keputusan dalam pengambilan sudut pandang kamera, aturan-aturannya adalah : • •
IF musuh = 1 THEN kamera = 20 derajat IF musuh = 1 AND kesehatan = 0 THEN kamera = 90 derajat
• • • •
IF musuh = 1 AND jumlah = 15 THEN kamera = 45 derajat IF musuh = 1 AND jumlah = 1 THEN kamera = 20 derajat IF musuh = 0 THEN kamera = 20 derajat IF musuh = 1 AND jarak = 5 AND jumlah = 15 THEN kamera = 30 derajat
Aturan-aturan diatas masih sangat sederhana dan kurang halus dalam pemilihan pengambilan sudut pandang tersebut, maka oleh karena itu diberikan fuzzy agar pengambilan keputusan lebih halus dan lebih dinamis. Untuk membuat fuzzy disini kita membuat 3 parameter input yaitu : •
Kesehatan Tabel 3.1 : Variabel linguistic Input Kesehatan Variabel SL L Sd K SK
Notasi Sangat Lemah Lemah Sedang Kuat Sangat Kuat
Gambar 3.4 derajat keanggotaan Input jarak •
Jumlah Tabel 3.3 Variabel linguistic Input jumlah Variabel S Sd B
Notasi Sangat Dekat Dekat Jauh
Nilai 0-5 3-11 9-15
Nilai 0-4 1-8 5-15 12-19 17-20
Gambar 3.5derajat keanggotaan Input jumlah Dan output-nya adalah : • Sudut Pandang
Gambar 3.3: derajat keanggotaan Input kesehatan •
Jarak Musuh
Tabel 3.4: Variabel linguistic Input Kesehatan Variabel Notasi Nilai Sempit S 0-30 Sedang Sd 20-60 Lebar L 45-90
Tabel 3.2 : Variabel linguistic Input jarak Variabel SD D J SJ
Notasi Sangat Dekat Dekat Jauh Sangat Jauh
Nilai 0--5 2-10 8-15 13-20
Gambar 3.3: derajat keanggotaan output sudut pandang
Parameter – parameter diatas dapat dibuat aturan-aturan yang digunakan untuk mengambil keputusan Antara lain aturan-aturan tersebut sebagai berikut :
Gambar 4.1 grafik hasil percobaan kelompok1 •
Hasil Percobaan kelompok 2 Tabel 4.2: Hasil percobaan kelompok 2
Aturan-aturan tersebut diatas akan difuzzykan untuk memberikan hasil yg lebih maksimal dan lebih halus dalam pemilihan keputusan dalam pemilihan sudut pandang kamera.
4. HASIL DAN PEMBAHASAN Dari penelitian ini didapatkan 3 parameter input dan 1 parameter output dan diberikan beberapa aturan yang akan diproses dengan menggunakan fuzzy logic. Dari parameter-parameter diatas dapat dilihat bahwa nilai-nilai yang ada akan digunakan untuk menentukan nilai output yang berupa nilai derajat dari sudut pandang kamera. •
percob
keseha
aan
tan
1
5
2 3 4 5
Jarak
Jumla
Sudut
h
Pandang
5
5
45
5
5
10
50.9
5
5
15
79.7
5
10
5
45
5
10
10
39.1
6
5
10
15
35.1
7
5
15
5
12.4
8
5
15
10
36.1
9
5
15
15
36.9
10
5
20
5
11.4
11
5
20
10
36.1
12
5
20
15
35.1
Hasil Percobaan kelompok 1 Tabel 4.1: Hasil percobaan kelompok 1 percobaan 1 2 3 4 5 6 7 8 9 10 11 12
kesehatan
Jarak
Jumlah
Sudut Pandang
10
5
5
45
10
5
10
50.9
10
5
15
79.7
10
10
5
45
10
10
10
45
10
10
15
45
10
15
5
12.4
10
15
10
36.1
10
15
15
45
10
20
5
11.4
10
20
10
36.1
10
20
15
45
Gambar 4.2: grafik hasil percobaan kelompok 2
•
5. KESIMPULAN
Hasil Percobaan kelompok 3 Tabel 4.3: Hasil percobaan kelompok 3
percobaan 1 2 3 4 5 6 7 8 9 10 11 12
kesehatan
Jarak
Jumlah
Sudut Pandang
20
5
5
59.3
20
5
10
52.4
20
5
15
79.7
20
10
5
45
20
10
10
39.1
20
10
15
45
20
15
5
12.4
20
15
10
36.1
20
15
15
45
20
20
5
11.4
20
20
10
36.1
20
20
15
45
Dari hasil berbagai macam scenario percobaan seperti diatas, maka dapat disimpulkan beberapa hal, yaitu : •
•
•
knowledge-based system dapat mengambil keputusan dengan baik dalam kondisi yang sudah ditentukan. Tetapi sebatas kondisi itu saja. Jika mendeteksi musuh kamera langsung berubah ke sudut 30 derajat, jika mati kamera langsung berubah ke 90 derajat. Fuzzy memberikan banyak variasi sudut pandang kamera dengan parameterparameter yg sudah ditentukan. Pada posisi mati jika tanpa fuzzy kamera langsung berubah ke sudut 90 derajat, tetapi dengan fuzzy pada saat mati berubah secara bervariasi antara sudut 80.3 – 90 derajat. Perilaku kamera pada glorius combat ini dapat berubah sudut pandang secara otomatis dari sudut yang sempit (< 45 derajat) sudut sedang (= 45 derajat) dan sudut lebar (> 45 derajat) lebih dinamis berdasarkan pada variabel kesehatan, jarak musuh, dan jumlah musuh DAFTAR REFERENSI
Gambar 4.3:grafik hasil percobaan kelompok 3 Percobaan diatas telah menunjukkan bahwa perubaha sudut pandang yang ditentukan oleh input yang berbeda-beda sangat halus, ini di tunjukkan dengan nilai besaran sudut nya yang mempunyai sudut dengan nilai yang sangat bervarisi. Jika seluruh percobaan digabungkan maka akan didapatkan hasil grafik 3D seperti dibawah ini,
Gambar 4.4:grafik hasil seluruh percobaan
[1] Doron Friedman, Yishai A.Feldman. Automated cinematic reasoning about camera behavior,VECG Laboratory, Department of Computer Science, University College London, UK, 2006, Efi Arazi School of Computer Science, The Inter disciplinary Center, P. O .Box 167, 46150 Herzliya, Israel, 2006 [2] Ian Millington, Artifical Intelligent for games (The Morgan Kaufmann Series in Interactive 3D Technology), Morgan Kaufmann Publisher Inc., San Francisco, CA, USA, 2006 [3] Jarret Raim. Finite state machine in games, 2004. [4] Jason Brownlee. Finite state machine (fsm). 2002. [5] U.G. Gupta, Validating and Verifying Knowledge-based Systems,IEEE Press, Los Alamitos, 1990. [6] Jang, J. Roger, Sun. Chuen-Tsai, Mizuntani. Eiji. (1997). Neuro-Fuzzy and Soft Computing. Prentice-Hall Inc. Fuzzy Logic Toolbox Four Use with [7] Matlab, The MathWorks Inc