SIMULASI PERGERAKAN AGEN BERBASIS BOID DENGAN OPTIMASI NEIGHBORHOOD AVOIDANCE

dokumen-dokumen yang mirip
Pengaturan Perilaku Pasukan Non Player Character menggunakan metode Flocking Behavior berbasis Agent pada permainan Real Time Strategy

ANIMASI 3D PERGERAKAN BURUNG TERBANG MENGGUNAKAN MODEL BOIDS

Model Penghindaran Tabrakan Multi Obyek Menggunakan Repulsive Field

Simulasi Kerumunan Bebek Menggunakan Metode Reynolds

IMPLEMENTASI AUTOMATED PATH DAN ROUTE FINDING UNTUK UNIT BEHAVIOR PADA REAL-TIME STRATEGY GAME DENGAN MENGGUNAKAN FUZZY LOGIC

Simulasi Perilaku Tempur Pada Sekumpulan NPC Berbasis Boid

Pengaturan Perilaku Pasukan NPC menggunakan Flocking Behavior berbasis Agent pada Permainan RTS

SIMULASI AUTONOMOUS VEHICLE DI UNIVERSITAS KRISTEN SATYA WACANA SALATIGA

SIMULASI PERGERAKAN EVAKUASI KELUAR SEGEROMBOLAN MANUSIA DALAM BENTUK 2D DENGAN METODE FLOCKING DAN RAY CASTING (Studi Kasus : Rumah)

Pergerakan Otonom Pasukan Berbasis Algoritma Boids Menggunakan Metode Particle Swarm Optimization

ALGORITMA BOIDS DAN LOGIKA FUZZY PADA PERGERAKAN DAN PERILAKU NON PLAYER CHARACTERS PERMAINAN BORNEO MISSION

Kata Kunci: Artificial Intelligence, Game, pathfinding, Artificial Potential Field, Flocking behavior

Manuver Kelompok NPC Berbasis Boids

OPTIMASI PENCAPAIAN TARGET PADA SIMULASI PERENCANAAN JALUR ROBOT BERGERAK DI LINGKUNGAN DINAMIS

Crowd Simulation Pada Formasi Pasukan Kapal Laut Berbasis 3 Dimensi

SIMULASI perilaku manusia menggunakan agen virtual

SIMULASI Pencarian jalan terbaik adalah suatu proses

SIMULASI PERGERAKAN PASUKAN BERBASIS POTENTIAL FIELD SISWATI

Pencarian Rute Oleh Non Player Character Menggunakan Algoritma A* Berbasis 2D

BAB IV HASIL PERANCANGAN DAN ANALISA

SIMULASI PERGERAKAN PASUKAN BERBASIS POTENTIAL FIELDS UNTUK TARGET DINAMIS

Penerapan Algoritma Hybrid Pathfinding A* dan Boids untuk Game Pesawat Tempur

Pergerakan Kelompok Non Playable Character Menuju Target Berbasis Artificial Fish Swarm Algorithm

Kendaraan Otonom Berbasis Kendali Teaching And Playback Dengan Kemampuan Menghindari Halangan

Perilaku Kamera Untuk Pengambilan Sudut Pandang Otomatis Menggunakan Metode

KAJIAN ALGORITMA CRAIG RAYNOLD PADA KERUMUNAN (FLOCKING)

OPTIMISASI TOTAL TEMPUH NPC PADA RTS GAME MENGGUNAKAN HARMONY SEARCH ALGORITHM. Herti Miawarni 1* Jl. A. Yani 114, Surabaya 60231, Telp.

PERILAKU OTONOM DAN ADAPTIF NON PLAYER CHARACTER MUSUH PADA GAME 3 DIMENSI MENGGUNAKAN FUZZY STATE MACHINE DAN RULE BASED SYSTEM

PENERAPAN ALGORITMA COLLISION DETECTION DAN BOIDS PADA GAME DOKKAEBI SHOOTER

Simulasi Perilaku Agen Otonom Dalam Dunia Virtual Menggunakan Logika Fuzzy

Dosen Pembimbing : Subchan, M. Sc., Ph.D Drs. Iis Herisman, M. Si

SIMULASI MULTI-AGENT DENGAN HEXAGONAL GRID MENGGUNAKAN METODE KNOWLEDGE-BASED SYSTEM

Jurusan Teknik Elektro, Institut Teknologi Sepuluh Nopember Surabaya 1,2,3 1

SIMULASI PERGERAKAN PENGUNJUNG MALL MENGGUNAKAN POTENTIAL FIELD

Perancangan dan Implementasi Kontroler PID untuk Pengaturan Autonomous Car-Following Car

UKDW BAB I PENDAHULUAN. 1.1 Latar Belakang Masalah

BAB II TINJAUAN PUSTAKA DAN DASAR TEORI. Tabel 2.1 Perbandingan Aplikasi Pembelajaran. Sekolah Dasar Berbasis. (2014) Untuk Taman Kanak-

BAB II LANDASAN TEORI. Pada bab ini berisi tentang teori mengenai permasalahan yang akan dibahas

Koordinasi Non Playing Character (NPC) Follower Menggunakan Algoritma Potential Fields

ARTIFICIAL INTELEGENCE ALGORITMA A* (A STAR) SEBAGAI PATHFINDING ENEMY ATTACK PADA GAME TRASH COLLECTION

SIMULASI PERILAKU AGEN OTONOM DALAM DUNIA VIRTUAL MENGGUNAKAN LOGIKA FUZZY

OCKY NOOR HILLALI

PERBAIKAN ALGORITMA Q-LEARNING DENGAN ANT COLONY DAN PREDIKSI JALUR PADA SIMULASI PERENCANAAN JALUR ROBOT BERGERAK DI LINGKUNGAN DINAMIS

Journal Speed Sentra Penelitian Engineering dan Edukasi Volume 9 No

Penerapan Autonomous Vehicle Behavior Pada Permainan Simulasi Ujian Berkendara 3D Menggunakan Metode Steering Behavior

2014 IMPLEMENTASI FUZZY LOGIC METODE MAMDANI UNTUK PENGEMBANGAN INTELLIGENT NON- PLAYER CHARACTER PADA GAME STRATEGY

ANALISA PERBANDINGAN ALGORITMA A* DAN DYNAMIC PATHFINDING ALGORITHM DENGAN DYNAMIC PATHFINDING ALGORITHM UNTUK NPC PADA CAR RACING GAME

Navigasi Mobile Robot Nonholonomic menggunakan Fuzzy-Ant Colony System

Crowd Framework Untuk Pengembangan Film Animasi 3D Sukoco Universitas Surakarta

NAVIGASI BERBASIS BEHAVIOR DAN FUZZY LOGIC PADA SIMULASI ROBOT BERGERAK OTONOM

BAB III PERANCANGAN Sistem Kontrol Robot. Gambar 3.1. Blok Diagram Sistem

Markerless Augmented Reality Pada Perangkat Android

TRAFFIC ALERT AND COLLISION AVOIDANCE SYSTEM CAS) SEBAGAI ALAT NAVIGASI PADA CN-235

BAB III PERANCANGAN SISTEM

A. Vektor dan Skalar I. PENDAHULUAN. B. Proyeksi Vektor II. DASAR TEORI

PENERAPAN MODEL PREDICTIVE CONTROL (MPC) PADA DESAIN PENGENDALIAN ROBOT MOBIL BERODA EMPAT

PEMBUATAN MODUL AJAR GRAFIKA KOMPUTER BERBASIS WEB UNTUK OBYEK TIGA DIMENSI

BAB I PENDAHULUAN. Pada era globalisasi ini, perkembangan dunia teknologi dan informasi. Animasi komputer salah satu bentuk modern cara pembuatan dan

BAB 1 PENDAHULUAN 1.1 Latar Belakang Masalah

IMPLEMENTASI ARSITEKTUR BEHAVIOR-BASED DENGAN MENGGUNAKAN FUZZY UNTUK NAVIGASI CAR-LIKE MOBILE ROBOT DALAM LINGKUNGAN YANG TAK DIKENAL

Visualisasi Model 3D Jari Menggunakan Finger Motion Capture Berbasis Flex sensors

VISUALISASI NAVIGASI PESAWAT DALAM FORMAT TIGA DEMENSI

MANUVER KELOMPOK NPC BERBASIS BOIDS

ROBOT PENGURAI ASAP DALAM RUANGAN MENGGUNAKAN T-BOX DENGAN METODE BEHAVIOUR BASED CONTROL

Rancang Bangun Sistem Pengukuran Posisi Target dengan Kamera Stereo untuk Pengarah Senjata Otomatis

TIP 163. Game Engine. Topik 4 (Pert 5) Atribut Objek, Gerak Terkoordinasi, Blending. Dosen: Aditya Wikan Mahastama

Pemilihan Jalur Evakuasi Dalam Keadaan Darurat Menggunakan Algoritma Quantum Ant-Colony

Bagaimana Sebuah Pesawat Bisa Terbang? - Fisika

RENDERING STOCHASTIC & ACCUMULATION BUFFER UNTUK EFEK MOTION BLUR PADA ENGINE OGRE 3D

BAB 3 PENANGANAN JARINGAN KOMUNIKASI MULTIHOP TERKONFIGURASI SENDIRI UNTUK PAIRFORM-COMMUNICATION

Strategi Menyerang Jarak Dekat Menggunakan Klasifikasi Bayesian Pada NPC (Non Player Character)

Sistem Pengemudian Otomatis pada Kendaraan Berroda dengan Model Pembelajaran On-line Menggunakan NN

APLIKASI SISTEM BERSENSOR GANDA

PENERAPAN METODE COLLISION DETECTION DALAM PERMAINAN BERBASIS ANDROID. Yulianti Haerun Nisa,Prihastuti Harsani dan Arie Qur ania.

DETEKSI MARKA JALAN DAN ESTIMASI POSISI MENGGUNAKAN MULTIRESOLUTION HOUGH TRANSFORM

BAB 1 PENDAHULUAN Latar Belakang

SECRETS BEHIND THE WHEELS GOOGLE AUTONOMOUS CAR. Andrew Wirjaputra Binus University Jakarta, Indonesia

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB I PENDAHULUAN I.1

UKDW BAB I PENDAHULUAN. 1.1 Latar Belakang Masalah

BAB IV METODE PENELITIAN. Beberapa peralatan yang digunakan dalam penelitian ini adalah: 5.86GT/s, Cache 12MB, Quad-Core, Socket LGA1366 (No HSF)

LANDASAN TEORI. Bab Konsep Dasar Graf. Definisi Graf

BAB II TINJAUAN PUSTAKA

BAB II DASAR-DASAR SIMULASI PENCARIAN SUMBER GAS

ANALISA GAYA PADA SISTEM KEMUDI TYPE RECIRCULATING BALL

Mobile Robot. Nuryono S.W. UAD TH22452 ROBOTIKA 1

EKO TRI WASISTO Dosen Pembimbing 1 Dosen Pembimbing 2

IMPLEMENTASI DAN PERANCANGAN GAME 3D RUNNING BUNG KARNO

Aircraft stand number designation. Gambar :

STRATEGI MENYERANG NPC GAME FPS MENGGUNAKAN FUZZY FINITE STATE MACHINE Ady Wicaksono 1), Mochamad Hariadi 2), Supeno Mardi S. N 3)

BAB I PENDAHULUAN 1.1 Latar Belakang

Aplikasi Metoda Random Walks untuk Kontrol Gerak Robot Berbasis Citra

Perencanaan Lintasan Dubins-Geometri pada Kapal Tanpa Awak untuk Menghindari Halangan Statis

PENGENDALI LAJU KECEPATAN DAN SUDUT STEERING PADA MOBILE ROBOT DENGAN MENGGUNAKAN ACCELEROMETER PADA SMARTPHONE ANDROID

BAB II TINJAUAN PUSTAKA

BAB III PERANCANGAN SISTEM

BAB 3 METODE PENELITIAN. Bab ini membahas perancangan sistem yang digunakan pada robot hexapod.

BAB II DASAR TEORI 2.1. Metode Trial and Error

KONTROL OTOMATIS PADA ROBOT PENGANTAR BARANG DENGAN PARAMETER MASUKAN JARAK DENGAN OBJEK DAN POSISI ROBOT. oleh. Ricky Jeconiah NIM :

IMPLEMENTASI ALGORITMA GREEDY BEST FIRST SEARCH PADA APLIKASI PERMAINAN CONGKLAK UNTUK OPTIMASI PEMILIHAN LUBANG DENGAN POLA BERFIKIR DINAMIS

Transkripsi:

SIMULASI PERGERAKAN AGEN BERBASIS BOID DENGAN OPTIMASI NEIGHBORHOOD AVOIDANCE Mohamad Anwar Syaefudin 1, Mochamad Hariadi, ST, M.Sc, Ph.D 2, Supeno Mardi S N, ST, MT 2 1 Mahasiswa Jurusan Teknik Elektro, ITS Surabaya 2 Dosen Pembimbing Jurusan Teknik Elektro, ITS Surabaya 25 Januari 2012 Abstrak Boid yang memiliki tiga perilaku dasar dan masing-masing perilaku tersebut memiliki tiga parameter, mendasari percobaan dengan memvariasikannya untuk mengoptimalkan penghindaran antar agen (neighborhood avoidance). Pengoptimalan yang dilakukan dengan mengubah sudut, gaya dan jangkaun. Dasar dari metode percobaan yang dilakukan terdiri dari gabungan algoritma berkelompok (ocking algorithm) yang terdiri perilaku memisahkan diri dengan agen lain (separation), perilaku daya tarik antar agen (cohesion) dan perilaku mensejajarkan dengan agen lain (alignment). Simulasi boid dengan perilaku mengikuti pemimpin dan perilaku menghindari penghalang juga ditambahkan untuk memperoleh nilai parameter terbaik dari ketiga parameter tersebut dalam proses pergerakaanya di ruangan sempit. Melalui simulasi percobaan dihasilkan bahwa nilai parameter sudut terbaik untuk neighborhood avoidance yaitu 0 derajat, untuk gaya yaitu terkecil diantara nilai percobaan, untuk jangkauan yaitu memiliki nilai terbesar diantara nilai percobaan. Nilai sudut 90 derajat menghasilkan banyak agen yang tertinggal yaitu maksimal 3 agen dari 70 agen. Agen yang tertinggal tersebut disebabkan karena agen tersebut diluar jangkauan dari pemimpin dan diluar jangkauan dengan agen terdekatnya. Kata Kunci : Boid, Flocking, Steering Behavior, Autonomous Character 1 PENDAHULUAN Boid merupakan sebuah program untuk mensimulasikan suatu kelompok agen, dimana sering dilihat pada perilaku dari sekelompok burung atau sekelompok ikan dalam melakukan aktivitasnya. Seperti halnya program simulasi dari suatu kelompok agen, maka masing-masing agen berbasis boid memiliki perilaku berbeda-beda yang muncul karena adanya reaksi buatan. Pergerakan agen berbasis boid dapat digambarkan dari pergerakan sekelompok agen dimana dalam pergerakan tersebut terjadi pemisahan beberapa agen kemudian berkumpul lagi. Pergerakan tersebut dapat diilustrasikan dari suatu pergerakan kelompok manusia dalam keadaan darurat dari suatu kejadian (chaotic). Pergerakan agen yang tidak teratur mendasari simulasi percobaan dengan memberikan variasi sudut, gaya dan jangkauan dari parameter boid untuk memperoleh pengoptimalan proses menghindar antar agen (neighborhood avoidance) saat agen berada di ruangan sempit dengan keadaan saling berpapasan. Masing-masing agen dalam algoritma boid memiliki karakter yang berdiri sendiri (Autonomous characters). Karakter dari masing-masing agen merupakan jenis dari Autonomous Agent yang sering digunakan dalam industri animasi dan media interaktif seperti teknologi permainan (games) dan lm. Agen disini merepresentasikan sebuah karakter dari sebuah cerita atau games yang memiliki kemampuan berimprovisasi dari aksi yang dilakukan. Dalam teknologi permainan Autonomous Character biasanya disebut non-player characters. 2 DASAR TEORI Dalam perkembangannya, Craig Reynold menemukan pergerakan menggunakan steering behaviour yang lebih banyak diapilkasikan dalam teknologi permainan, simulasi dan industri lm saat ini. Steering Behavior, merupakan suatu kumpulan perilaku dari suatu unit untuk menghasilkan suatu steering force yang akan mempengaruhi gerakan dan arah unit tersebut. Dalam suatu steering behavior dibutuhkan suatu vehicle model dan juga titik koordinat yang akan dituju serta arah atau heading saat itu. Beberapa Steering Behaviour dijelaskan melalui sub seksi dibawah ini. 2.1 Perilaku Mencari dan Menjauhi Target (Seek and Flee) Seek merupakan sebuah aksi dari agen untuk bergerak menuju posisi tertentu yang telah ditetapkan. Sedangkan Flee merupakan sebuah aksi dari agen untuk bergerak menjauhi posisi yang telah ditetapkan. Dua perilaku ini merupakan perilaku paling dasar dari sebuah steering behavior. 2.2 Perilaku Mengejar dan Menghindari Target Bergerak (Pursuit and Evade) Pursuit merupakan pengembangan dari seek, namun posisi yang dituju merupakan titik koordinat hasil prediksi dimana agen dan target akan bertemu di waktu yang akan datang. Sedangkan Evade merupakan pengembangan dari ee, namun agen bergerak menjauhi titik koordinat hasil prediksi seperti pada pursuit. 1

2.3 Perilaku Menghindari Penghalang (Obstacle Avoidance) Obstacle Avoidance merupakan kemampuan agen untuk bermanuver dalam suatu lingkungan yang tidak teratur dalam menghindari segala halangan dalam lingkungannya tersebut. Implementasi dari obstacle avoidance secara sederhana adalah terdapat dua jenis penghalang yaitu penghalang pasif (obstacle) dan penghalang aktif (agent lain). Obstacle avoidance disini tidak ada hubungannya dengan pendeteksian collision. Contoh obstacle avoidance adalah sebuah pesawat dalam melakukan proses penghindaran gunung saat melayang. 2.4 Perilaku Berkelompok dan Kawanan (Flocking Algorithm and Boid) Flocking merupakan perilaku yang bersifat kolektif dalam tiap agen dalam suatu kelompok agen, dalam algoritma berkelompok, tidak ada pemimpin dari kelompok agen dan pergerakan bersifat random. Flocking muncul secara tiba-tiba dari interaksi lokal disekitarnya. Algoritma ocking memiliki interaksi langsung terhadap agen disebelahnya (ock mates) dalam radius kecil. Dasar dari Algoritma ocking terdiri dari tiga steering behavoiur, yaitu : 1. Separation Separation yaitu kemampuan dari tiap-tiap agen untuk mempertahankan jarak antara agen satu dengan agen yang lain dalam radius yang dekat disekitar agen tersebut. Hal ini untuk mencegah banyak agen dari kondisi kepadatan secara bersamaan. Beberapa agen yang saling berdekatan dalam radius tertentu akan mendapat pengaruh gaya tolak dari tiap-tiap agen tersebut. 2. Cohesion Cohesion merupakan steering behaviour yang memberikan kemampuan daya tarik menarik antar agen di tiap-tiap grup agen yang saling berdekatan. Seperti halnya separation, cohesion juga bersifat lokal dalam grup agen yang berdekatan. Hal yang pertama dilakukan adalah mencari agen yang berada di sebelahnya kemudian menentukan rata-rata posisi dari grup agen untuk memperoleh pusat gravitasi dari beberapa group agen tersebut. Rata-rata posisi dari grup agen diperoleh dengan menjumlahkan masing-masing posisi dari agen dan membaginya dalam jumlah agen dari suatu grup. 3. Alignment Alignment merupakan kemampuan dari agen untuk mensejajarkan dirinya dengan agen disekitarnya. Kesejajaran ini dalam hal arah dan kecepatan dengan agen disekitarnya. Alignment dapat diperoleh dengan mencari agen di sekitarnya atau neighborhood yang diperoleh suatu grup agen, kemudian kecepatan dari grup agen tersebut dirata-rata. Rata-rata ini kemudian menjadi kecepatan yang diinginkan dari grup agen dalam pergerakannya. Alignment memiliki kecenderungan bahwa agen yang menjadi pusat kesejajaran untuk merotasi dirinya sehingga diperoleh kesejajaran posisi. 2.5 Perilaku Mengikuti Pemimpin (Leader Following) Leader Following merupakan algoritma dimana satu atau lebih agen bergerak mengikuti pemimpin. Biasanya banyak banyak agen pengikut yang ingin berada di dekat pemimpinnya, tanpa menimbulkan kepadatan di sekitar pemimpin. Sebagai tambahan, jika lebih dari satu agen pengikutnya, maka pencegahan tabrakan dari banyak agen satu dengan agen yang lain dilakukan. Untuk mengimplementasikan dari leader following dipengaruhi oleh arrival behavior, yaitu keinginan untuk bergerak ke sebuah titik dengan perlahan. Target arrival merupakan sebuah titik oset yang berjarak dekat dibelakang leader. Jarak oset ini dihasilkan dari peningkatan kecepatan. Jika sebuah pengikut menemukan pemimpin dalam radius tertentu dengan posisi pengikut berada di depan pemimpin, maka pengikut akan menjauhi jalur yang dilewati pemimpin sebelum proses arrival behavior dari pengikut terjadi atau bisa disebut pengikut menggunakan separation behavior untuk mencegah kepadatan dengan pengikut yang lain. Implementasi dari leader following dapat dilihat pada Gambar 1. Leader Following dari Boid. Gambar 1. Leader Following dari Boid. 2.6 UnitySteer UnitySteer merupakan library dalam bentuk script C# untuk membentuk steering behavior dari autonomous character dalam permainan dan animasi. Pengguna dapat dengan cepat untuk merepresentasikan bentuk dasar dan visualisasi steering behavior melalui library ini. UnitySteer merupakan sebuah perangkat dari steering behavior, yang didenisikan dalam bentuk sebuah vehicle atau perilaku kemudi. UnitySteer menyediakan termasuk didalamnya implementasi perilaku kemudi secara sederhana dan kombinasi dari beberapa perilaku untuk menghasilkan perilaku yang komplek. UnitySteer didesain agar secara eksibel dapat terintegrasi dengan Unity3D game engine. UnitySteer mengijinkan pengguna secara interaktif menambah aspek dari simulasi. UnitySteer didistribusikan sebagai perangkat lunak secara opensource yang dikembangkan oleh Ricardo J Mendes. 3 DESAIN DAN IMPLEMEN- TASI Lingkungan dalam simulasi ini merupakan hal pertama yang dilihat oleh agen, karena dalam lingkungan ini 2

terdapat banyak objek yang berfungsi sebagai halangan (obstacle). Konsep agen dalam simulasi ini menggunakan locomotion yang dikembangkan oleh Rune Skovbo Johansen. Beberapa locomotion dalam agen dalam simulasi ini terdiri dari lima controller yaitu: 1. Pengontrol Gerak Bagian Kaki (Leg Controller) Dalam proses pergerakannya leg controller meliputi daerah pinggang hingga telapak kaki. Bagian telapak kaki dibagi menjadi beberapa daerah lagi yaitu ankle dan sendi jari kaki. Leg Controller dalam agen simulasi ini dapat dilihat pada Gambar 2. Leg Controller pada agen Human. Controler dapat dilihat pada Gambar 3. Head Look Controller pada agen Human. Gambar 3. Head Look Controller pada agen Human. Gambar 2. Leg Controller pada agen Human 2. Pengontrol Karakter (Character Controller) Character Controller merupakan denisi agen dalam bentuk sik. Character Controller dalam simulasi ini terdiri dari beberapa bagian yang merupakan sik seperti halnya manusia umumnya yang berfungsi agar agen dapat mendeteksi tabrakan (collision) antara agen satu dengan agen yang lain dan agen dengan penghalang (obstacle). Character controller dalam simulasi multi agen ini terdiri dari tiga bagian yaitu Height, Radius dan Slope Limit. Height berfungsi sebagai deteksi collision dalam ranah y, Radius berfungsi sebagai deteksi collision dalam ranah x dan z dan Slope limit merupakan batas sudut kemiringan agen dalam proses diam atau bergerak. 3. Pengontrol Saat Proses Pergerakan (Platform Character Controller) Platform Character Controller dalam agen ini merupakan locomotion yang sudah dalam proses pergerakan. Parameter dalam platform character controller terdiri dari walk multipler yang berfungsi menaikkan kecepatan kaki dalam bergerak, sehingga dalam proses pergerakanya menjadi lebih cepat. Dalam melakukan pergerakannya agen dalam simulasi ini masih dalam ranah dua dimensi yaitu x dan z. 4. Pengontrol Saat Proses Merotasi (Aim Look Character Controller) Seperti halnya Platform Character Controller, Aim Look Character Controller sama dalam hal locomotion saat agen bergerak. Locomotion ini berfungsi untuk melakukan proses rotasi untuk kemudian didapat arah agen dalam bergerak sesuai target yang diberikan. 5. Pengontrol Gerak Kepala (Head Look Controller) Head Look Contoller merupakan locomotion yang terjadi di daerah leher dan kepala. Locomotion ini mengadopsi gerakan leher, kepala dan badan dari manusia dalam melihat suatu objek disekitarnya. Proses agen dalam melihat objek terjadi dalam ranah x,y dan z dan proses rotasipun juga terjadi disini. Sehingga didapat locomotion yang lebih nyata didaerah leher agen. Head Look 3.1 Konsep Perilaku Pergerakan Agen Periaku pergerakan agen yang melibatkan banyak agen dan banyak objek sebagai penghalang yang merupakan pergerakan yang dinamis. Pergerakan dinamis yaitu proses pergerakan dalam menghindari agen lain saat agen lain tersebut bergerak. Proses bergeraknya agen ini membutuhkan proses navigasi yang mirip dengan proses navigasi pesawat terbang saat terbang. Namun perbedaanya untuk pesawat terbang terjadi di ranah x, y dan z. Sedangkan dalam simulasi multiagent dan multiobject disini terjadi pada ranah x dan z atau dua dimensi. Perilaku navigasi atau steering behavior yang utama dan harus dimiliki oleh masing-masing agen yaitu radar yang diaplikasikan melalui beberapa script yaitu UnitSteer. 3.1.1 Konsep Radar pada Agen Agen dalam proses pergerakannya membutuhkan radar. Seperi halnya sebuah radar sebenarnya, prinsip radar dalam navigasi agen pun sama fungsinya. Prinsip kerja radar disini yaitu melakukan deteksi dalam radius yang sudah ditentukan kemudian dapat diketahui apa saja yang berada didepannya. Hal ini berfungsi untuk menghindari tabrakan antar agen dengan agen dan agen dengan objek penghalang. 3.1.2 Navigasi untuk Penghindaran Halangan (Steer for Obstacle Avoidance) Proses navigasi penghindaran halangan dalam simulasi ini merupakan proses penghindaran berupa halangan tidak bergerak (stationary obstacle) yang mempunyai informasi berupa sphere collider atau penghalang yang berbentuk bola yang diaplikasikan dalam halangan tak bergerak tersebut. Navigasi ini memiliki pengaruh terhadap kecepatan gerak agen saat melewati halangan. Navigasi ini juga mirip dengan navigasi mobil dimana saat tidak ada mobil di depannya dalam jarak yang jauh maka kecepatan mobil cenderung bertambah, sedangkan jika ada halangan didepannya dalam jarak tertentu maka mobil ini cenderung mengurangi kecepatannya untuk menghindari tabrakan dengan objek lain. 3

3.1.3 Navigasi Mencapai Target (Steer for Target) Navigasi mencapai target adalah suatu perilaku navigasi agen dalam mencapai target yang sudah ditentukan dengan proses transformasi. Selain faktor kecepatan dalam mencapai target, penghitungan kekuatan agen juga penting agar agen dapat berhenti tepat pada target yang ditentukan. Navigasi ini memiliki dua variabel penting yang harus dimiliki oleh agen. Variabel tersebut antara lain gaya dan target. Target adalah variabel yang berisi tujuan agen dalam mencapai target. Target dalam simulasi disini berupa titik posisi secara dua dimensi yaitu x dan z. Sedangkan gaya disini mempengaruhi agen dalam menuju ke target, bisa lebih cepat dan bisa lebih lambat tergantung objek disekitarnya. 3.2 Flocking (Steer for Separation, Cohesion and Alignment) Navigasi ini betujuan mempertahankan pemisahan, daya tarik, dan kesejajaran jarak antar agen dan didapat suatu kondisi agen bergerak tanpa tabrakan dengan agen yang lain (neighborhood). Agen secara otomatis mencari pasangannya dalam radius tertentu (ockmates). Pergerakan antar agen dalam ocking secara dua dimensi,mirip dengan pergerakan banyak manusia dalam keadaan normal. Navigasi ocking dengan agen lain dalam simulasi ini juga memiliki beberapa parameter seperti terlihat pada Tabel 1. Parameter dan nilai dari Flocking. Tabel 1. Parameter dan nilai dari Flocking Nama Parameter Nilai Angle 45 Weight 5 Min Radius 0.5 Max Radius 1 Angle Cos 0.7 Layers Checked Nothing, Neighborhood Keterangan dari Tabel 3.3 Parameter dan nilai dari Flocking antara lain: 1. Angle atau sudut adalah faktor penting dalam navigasi ini, karena bertujuan memberikan keteraturan dalam hal sudut saat bergerak ataupun diam. 2. Weight dalam hal ini merupakan gaya tolak, gaya tarik, dan gaya kesejajaran dari masing-masing agen, sehingga diperoleh antar agen saling terpisah dan bergerak bersama-sama. 3. Min Radius dalam navigasi ini memberikan radius minimal dalam pemisahan antar agen. Sehingga diperoleh suatu jarak yang aman saat antar agen berdekatan tanpa terjadi tabrakan. 4. Max Radius dalam navigasi ini memberikan radius maksimal dalam pemisahan, daya tarik dan kesejajaran antar agen. Sehingga antar agen satu dengan agen yang lain terpisah sesuai jarak maksimal yang ditentukan, agar memperoleh batas jarak pemisahan secara wajar. 5. Angle Cos merupakan nilai cosinus dari Angle, yang berubah sesuai nilai dari Angle. 6. Layers Checked dalam navigasi meupakan variabel yang memberikan informasi kepada agen, agar agen tersebut dapat melakukan proses pemisahan antar agen atau dengan neighborhood-nya. 3.3 Leader Following Leader Following merupakan perilaku banyak agen yang mengikuti pemimpin, dalam simulasi ini akan menggabungkan dari unsur Flocking (cohesion, separation, alignment) dan pursuit behavior. Pursuit merupakan perilaku mencari agen yang bergerak yang dijadikan target. Perilaku Pursuit dalam UnitySteer memiliki beberapa parameter dan nilai yang bisa dilihat pada Tabel 2 Parameter dan nilai Steer for Pursuit. Tabel 2. Parameter dan nilai Steer for Pursuit. Nama Parameter Nilai Weight 5 Quarry HumanLeader Max Prediction Time 5 Keterangan dari Tabel 3.6 Parameter dan nilai Steer for Pursuit antara lain: 1. Gaya (Weight) dalam Steer for Pursuit merupakan gaya berat untuk melakukan pursuit sehingga diperoleh kecepatan agen saat melakukan pursuit. 2. Target Pencarian (Quarry) dalam Steer for Pursuit merupakan variabel untuk menentukan agen yang akan dijadikan pemimpin. Simulasi ini menggunakan HumanLeader sebagai agen pemimpin. 3. Waktu Prediksi Maksimal (Max Prediction Time) dalam Steer for Pursuit merupakan variabel waktu virtual untuk mencari pemimpin. Semakin besar Max Prediction Time maka agen pengikut akan semakin cepat mencari agen pemimpin. 4 SIMULASI DAN PEMBA- HASAN 4.1 Algoritma Penghindaran Penghalang Algoritma Pendeteksian Penghalang merupakan urutan langkah-langkah agen saat sebelum, proses dan sesudah menghindari penghalang. Hal ini bertujuan untuk memperoleh keteraturan kecepatan saat agen akan menghindar. Urutan proses penghindaran penghalang dapat diliharpada Gambar 4. Diagram Alir Algoritma Penghindaran Penghalang. 4

perilaku pergerakan multiagent seperti terdapat dalam simulasi kepadatan. Simulasi ini menggunakan 120 agen yang terdiri dari satu agen pemimpin dan sisanya agen pengikut. Agen Pengikut diberi perilaku antara lain : Steer for Pursuit, Steer for Separation, Steer for Cohesion, Steer for Alignment, Steer for Obstacle Avoidance, Radar Pingdan Autonomous Vehicle. Agen Pemimpin diberi perilaku antara lain: Autonomous Vehicle, Steer forobstacle Avoidance dan Radar Ping. Awal dari pergerakan menghasilan sudut posisi dari agen mengikuti posisi agen pemimpin. Agen pengikut yang berada tepat disamping kanan dan kiri agen pemimpin, memiliki perilaku sejajar dalam hal sudut dan kecepatan saat awal pergerakan. Simulasi ini dapat dilihat pada Gambar 6. Simulasi Boid Mengikuti Pemimpin dalam Ruangan dengan Satu Pintu Keluar. Gambar 4. Penghalang. Diagram Alir Algoritma Penghindaran 4.2 Algoritma Mengikuti Pemimpin Algoritma mengikuti pemimpin merupakan urutan dari agen saat sebelum atau sedang mencari dilanjutkan saat pengikut sudah bertemu pemimpin. Hal ini bertujuan memberikan esiensi pencarian agen pemimpin oleh agen pengikut. Urutan dari proses mengikuti pemimpin dapat dilihat dalam Gambar 5. Diagram Alir Mengikuti Pemimpin. Gambar 6. Simulasi Boid Mengikuti Pemimpin dalam Ruangan dengan Satu Pintu Keluar Simulasi yang terjadi setelah beberapa detik menghasilkan perilaku neighborhood avoidance dengan kondisi saling berdesak-desakan. Waktu dari agen pengikut saat keluar dipengaruhi oleh faktor kepadatan dari suatu ruangan tersebut. Semakin banyak agen yang terdapat dalam ruangan tersebut maka semakin padat. Sehingga waktu dari agen untuk keluar dari pintu keluar semakin lama. Hal ini sebagaimana terlihat dalam kehidupan nyata. 4.4 Simulasi Boid Mengikuti Pemimpin dalam Ruangan dengan Dua Pintu Keluar Gambar 5. Diagram Alir Mengikuti Pemimpin. 4.3 Simulasi Boid Mengikuti Pemimpin dalam Ruangan dengan Satu Pintu Keluar Simulasi Boid mengikuti pemimpin dalam ruangan dengan satu pintu keluar bertujuan untuk mengetahui Simulasi boid selanjutnya yaitu simulasi dengan dua grup agen dengan dua pemimpin dan pintu keluar. Hal ini dimaksudkan untuk mengetahui perilaku agen pengikut saat keluar mengikuti masing-masing pemimpinnya. Perilaku agen pemimpin dan pengikut yang diberikan seperti pada simulasi boid mengikuti pemimpin dengan satu pintu keluar. Saat awal dari simulasi didapat pola sudut masing-masing grup agen yang mengikuti pemimpinnya. Hal tersebut seperti terlihat pada Gambar 7. Pola Awal dari Simulasi Mengikuti Pemimpin dengan Dua Pintu Keluar. 5

Gambar 7. Pola Simulasi Mengikutu Pemimpin dengan Dua Pintu Keluar setelah Beberapa Saat. Setelah beberapa saat simulasi maka didapatkan terjadi kepadatan pada kedua pintu keluar. Perilaku Neighborhood Avoidance terjadi pada simulasi ini ditandai dengan dua agen yang menyeberang ke pintu sebelahnya atau pintu yang seharusnya tidak dilewati oleh agen tersebut. 4.5 Simulasi Boid dengan Waypoint Simulasi boid dengan waypoint adalah simulasi pergerakan agen berbasis boid dengan jalur yang sudah ditetapkan berupa titik-titik, yang berada di lingkungan simulasi kemudian dihubungkan antara titik satu dengan titik yang lain sehingga terbentuk garis dan akhirnya terbentuk jalur (path). Grup agen dengan perilaku boid disimulasikan untuk mengikuti jalur yang diinginkan. Simulasi ini menggunakan 40 agen untuk mengetahui perilaku pergerakan grup agen dan formasi saat mengikuti jalur, dengan kondisi sudut jalur yang bervariasi. Formasi agen saat menuju waypoint pertama masih terlihat teratur dan masih dalam satu grup, hal ini dapat dilihat dalam Gambar 8. Formasi Pergerakan Awal Agen mengikuti Waypoint. Setelah beberapa saat karena pengaruh dari ketiga gaya (cohesion, separation, alignment) dan sudut serta radius gaya pada agen maka tampak formasi sudah tidak teratur. Formasi ini terpecah menjadi beberapa grup agen. Hal ini dapat dilihat pada Gambar 9. Formasi Agen setelah Beberapa Saat Mengikuti Waypoint. Gambar 9. Formasi Agen setelah Beberapa Saat Mengikuti Waypoint. 4.6 Variasi Formasi dalam Boid Variasi formasi dalam boid dapat diperoleh dengan mengubah nilai variabel sudut () dan radius (r) pada model boid (separation, cohesion, alignment). Agen dapat memberikan pengaruh agen lain dalam bentuk boid selama agen yang lain tersebut masuk dalam jangkauan radius dan sudut pada boid. Sudut dari boid pada agen digunakan saat algoritma berkelompok (ocking) terjadi. Semakin besar sudut dan jarak boid, maka semakin banyak agen yang masuk ke dalam grup, dan hal ini juga dipengaruhi oleh cohesion. Semakin kecil radius dan sudut boid model maka semakin besar kemungkinan agen yang berada disekitarnya akan memisah karena hal ini di sebabkan kehilangan jangkauan dengan agen yang disebelahnya (neighboors). Ketika agen lain berpisah maka kemungkinan akan bergabung dengan grup yang lain. Variasi formasi dalam boid dapat dibuat dengan mengubah sudut menjadi 270 derajat. Gambaran formasi dari perubahan sudut boid yaitu 270 derajat dapat dilihat pada Gambar 10. Boid dengan Sudut Jangkauan 270 derajat. Gambar 8. Formasi Pergerakan Awal Agen mengikuti Waypoint Gambar 10. Boid dengan Sudut Jangkauan 270 derajat. Simulasi mirip perilaku semut saat berjalan juga bisa terjadi jika mengubah sudut jangkauan menjadi 45 derajat pada masing-masing agen. Hasil Simulasi dengan sudut jangkauan 45 derajat dapat digunakan untuk membuat teknik animasi, misalnya skuadron pesawat jet dengan sifat melebar dan skuadron pesawat jet berbentuk mirip ular. Hal ini dapat dilihat pada 6

Gambar 11. Boid yang Membentuk Pergerakan Koloni Semut. Gambar 11. Boid yang Membentuk Pergerakan Koloni Semut Simulasi pada Gambar 4.11 Boid yang Membentuk Pergerakan Koloni Semut, dapat divariasikan dengan perilaku penghindaran halangan sehingga didapat perilaku mengikuti agen didepannya saat agen didepannya menghindari halangannya diikuti agen dibelakangnya dengan jalur yang sama, hasil simulasi ini mirip algoritma koloni semut. 4.6.1 Percobaan Variasi Sudut (Angle) Dalam percobaan variasi ini dibagi menjadi dua grup agen, masing-masing agen memiliki pemimpin (leader following) dengan dua target. Di simulasikan melalui penghalang dengan dua penghalang dan satu jalan di tengah diantara penghalang tersebut. Agen Pemimpin diberi perilaku antara lain : Radar Ping, Steer for Spherical Obstacle Avoidance, Autonomous Vehicle, Steer for Target, Steer for Separation, Steer for Alignment, Steer for Cohesion, Steer for Speed, sedangkan Agen Pengikut diberi perilaku antara lain : Radar Ping, Steer for Spherical Obstacle Avoidance, Steer for Neighbor Avoidance, Autonomous Vehicle, Steer for Separation, Steer for Alignment, Steer for Cohesion, Steer for Pursuit, Steer for Speed. Dalam percobaan ini diberi variasi sudut pada Steer for Separation, Steer for Alignment, Steer for Cohesion yang diberikan yaitu 30, 45, 90, 180 dan 0 derajat dan parameter Weight diberi nilai 5, Min Radius diberi nilai 0,5 serta Max Radius diberi nilai 3. Hasil Simulasi Variasi Sudut didapat hasil bahwa sudut terbaik untuk neighborhood avoidance yaitu sudut 0 derajat, karena menghasilkan jumlah agen tertinggal paling sedikit. Sudut 90 derajat merupakan sudut yang menghasilkan jumlah agen paling banyak yaitu 3 agen dari 70 agen. dan 3. Hasil Simulasi dapat diperoleh yaitu Gaya terbaik yang digunakan untuk neighborhood avoidance adalah gaya terkecil dari hasil percobaan, karena menghasilkan agen tertinggal paling sedikit. 4.6.3 Percobaan Variasi Jangkauan (Min and Max Radius) Sama seperti percobaan sebelumnya yaitu percobaan variasi sudut dan variasi gaya, percobaan variasi jangkauan merupakan percobaan mengikuti pemimpin dengan perilaku yang sama sepert percobaan sebelumnya. Agen pengikut yang diberikan sebanyak 70 dan memberikan variasi nilai jangkauan yang berbeda namun nilai sudut dan gaya sama. Nilai sudut yang diberikan yaitu 90 derajat karena dalam percobaan sebelumnya memiliki jumlah agen yang diam paling banyak serta gaya yang diberikan yaitu 25. Hasil Simulasi dapat diperoleh yaitu Jangkauan terbaik yang digunakan untuk neighborhood avoidance adalah jangkauan terbesar dari hasil percobaan, karena menghasilkan agen tertinggal paling sedikit. 4.6.4 Percobaan Variasi Sudut dengan Steer for Target Dalam percobaan variasi ini dibagi menjadi dua grup agen, masing-masing agen memiliki pemimpin (leader following) dengan dua target. Di simulasikan melalui penghalang dengan dua penghalang dan satu jalan di tengah diantara penghalang tersebut. Agen Pemimpin diberi perilaku antara lain : Radar Ping, Steer for Spherical Obstacle Avoidance, Autonomous Vehicle, Steer for Target, Steer for Separation, Steer for Alignment, Steer for Cohesion, Steer for Speed, Steer for Target sedangkan Agen Pengikut diberi perilaku antara lain : Radar Ping, Steer for Spherical Obstacle Avoidance, Steer for Neighbor Avoidance, Autonomous Vehicle, Steer for Separation, Steer for Alignment, Steer for Cohesion, Steer for Pursuit, Steer for Speed, Steer for Target. Sudut yang digunakan dalam percobaan ini masing-masing adalah sudut seperation sebesar 180 derajat, sudut alignment sebesar 0 derajat dan sudut cohesion sebesar 90. 4.6.2 Percobaan Variasi Gaya (Weight) Sama seperti percobaan sebelumnya yaitu percobaan variasi sudut, percobaan variasi gaya merupakan percobaan mengikuti pemimpin dengan perilaku agen seperti pada percobaan variasi sudut. Agen pengikut yang diberikan sebanyak 70 dan memberikan variasi nilai gaya yang berbeda namun sudut dan jangkauan yang sama. Nilai sudut yang diberikan yaitu 90 derajat karena dalam percobaan sebelumnya memiliki jumlah agen yang diam paling banyak serta jangkauan Minimal dan Maksimal (Min & Max Radius) yaitu 0,5 Gambar 12. Boid dengan Sudut Jangkauan 45 derajat Melalui Hasil pada Gambar 12. Boid dengan Sudut Jangkauan 45 derajat, didapat bahwa semua agen yang digunakan dalam proses simulasi mengikuti pemimpin. Hal ini disebabkan karena perilaku agen pengikut yang 7

diberikan terdapat perilaku menuju target (Steer for Target). Pengaruh variasi sudut tidak memberikan pengaruh pada proses pergerakannya. 5 KESIMPULAN DAN SARAN Simulasi pergerakan agen berbasis boid dengan optimasi neighborhood avoidance berhasil dibuat melalui Unity3D Game Engine dengan memadukan antara Locomotion System dan UnitySteer. Dari simulasi tersebut, dapat ditarik kesimpulan bahwa : 1. Simulasi pergerakan agen berbasis boid melalui variasi sudut diperoleh kesimpulan bahwa, sudut terbaik yang digunakan untuk neighborhood avoidance yaitu sudut 0 derajat, karena jumlah agen yang diam tertinggal paling sedikit dibanding sudut yang lain. Jumlah agen yang tertinggal paling banyak ditemui pada sudut 90 yaitu maksimal 3 agen dari 70 agen. 2. Simulasi pergerakan agen berbasis boid melalui variasi gaya diperoleh kesimpulan bahwa, gaya terbaik yang digunakan untuk neighborhood avoidance yaitu gaya dengan nilai terkecil, karena jumlah agen yang diam tertinggal paling sedikit. [4] Reynolds, C.W.: Steering Behaviors for Autonomous Characters. In: The proceedings of Game Developers Conference, pp. 763782 1999 [5] Reynolds C.W., Flocks, Herds, and Schools: A Distributed Behavioral Model, Computer Graphics vol. 21, n. 4,(SIGGRAPH 87), pp. 25-34, 1987 [6] SHAO, W., AND TERZOPOULOS, D. Autonomous pedestrians. In SCA 05: Proceedings of the 2005 ACM SIGGRAPH/Eurographics symposium on Computer animation, ACM Press, New York, NY, USA, 1928, 2005 [7] Ricardo J Mendex UnitySteer 2.2 Released <URL : http://www.argessystems.com/articles/274/unitysteer-2-2 released/> Agustus 2011 [8] Unity3D Locomotion System <URL: http://unity3d.com/support/resources/unityextensions/locomotion-ik> Agustus 2011 3. Simulasi pergerakan agen berbasis boid melalui variasi jangkauan diperoleh kesimpulan bahwa, jangkauan terbaik yang digunakan untuk neighborhood avoidance yaitu jangkauan dengan nilai terbesar, karena jumlah agen yang diam tertinggal paling sedikit. 4. Variasi formasi dalam pergerakan agen berbasis boid dengan variasi weight, angle dan radius dapat menghasilkan perilaku neighborhood avoidance. Saran pengembangan simulasi agen berbasis boid lebih lanjut, dapat dilakukan inovasi sebagai berikut: 1. Menambah sensor untuk deteksi penghalang pada agen, karena dalam simulasi ini hanya terdapat satu sensor deteksi penghalang yang terletak pada heading. 2. Membuat perilaku neighborhood avoidance sendiri tanpa pengaruh boid dengan memberikan parameter sudut, gaya dan waktu prediksi jika saling bertabrakan. Pustaka [1] Buckland, Matt, Programming Game AI by Example,Wordware Publishing, Texas, Ch.1 and Ch.3, 2005 [2] Bourg, D.M & Seaman, G AI for Game Developers, OReilly,, Ch. 4 and Ch.5, 2004 [3] Millington, I, & Funge, J. Articial Intelligence for Games 2nd Edition: Morgan Kaufmann, Burlington, Ch. 3, 2009 8