Membuat Simple Ai Untuk Mengkuti Obyek Tertentu Di Unity
Dalam sebuah game akan terasa tidak lengkap bila player tidak mempunyai lawan. Untuk itu hampir dalam semua game niscaya ada suatu aksara yang digerakkan oleh komputer AI yang berfungsi sebagai lawan atau teman. Sebut saja game sederhana pac-man, niscaya tidak akan seru atau bahkan belum bisa disebut game bila aksara menyerupai cumi-cumi yang selalu menjadi lawan pemain dihilangkan. Oleh alasannya yaitu itu keberadaan aksara AI menjadi sangat penting bagi sebagian game.
Gambar game Pacman
Seiring berkembangnya waktu insan mulai menciptakan aksara AI yang semakin baik. Dahulu kala aksara AI dari sebuah game mungkin hanya bersifat sangat minim menyerupai musuh pacman yang hanya bertugas mengikuti lawan. Namun ketika ini seiring berjalannya waktu aksara AI seringkali dilengkapi banyak sekali algoritma tertentu sehingga seolah-olah player merasa kalau lawan mainnya benar-benar bisa berpikir layaknya manusia.
Pada artikel ini saya akan sedikit membahas bagaimana cara menciptakan sebuah aksara AI yang sangat mudah dan hanya bertugas untuk mengejar obyek yang menjadi target. Tidak ada algoritma tertentu disini bahkan tidak sanggup menemukan jalur terdekat untuk mengejar obyek. Algoritma AI ini bisa sobat terapkan untuk menciptakan game-game shooter sederhana menyerupai Alien Shooter. Bahkan mungkin bagi sebagian orang hal ini masih belum sanggup disebut sebagai AI, namun apalah namanya itu tidaklah penting, yang penting bagaimana sobat bisa memahami bagaimana algoritma menciptakan obyek yang sanggup mengikuti obyek lain secara smooth di unity. Ok eksklusif saja kita mulai langkah-langkahnya.
Alat, bahan, dan skill yang diharapkan :
- Unity yang sudah terinstall di PC sobat
- Kemampuan dasar untuk memakai Unity menyerupai menciptakan objek, transformasi obyek menyerupai translate, rotate, dsb. Kalo sobat belum tahu dasar unity mari silahkan mampir ke artikel saya sebelumnya perihal kumpulan link tutorial gamedev. Silahkan berguru dari salah satu link di bab Unity Basic.
Baca Juga
1. Buat karakter
Pertama buat dulu aksara sesuai selera. Bisa yang simple-simple aja atau import dari model 3D lain. Kalau saya sendiri bikin aksara dari bentuk dasar sederhana, capsule sebagai tubuh dan cylinder sebagai hidung. Untuk menciptakan obyek klik Game Object >> Create other >> pilih obyek yang diinginkan. Gambar di bawah yaitu aksara milik saya, sedikit abnormal sih tapi tidak mengecewakan daripada nggak.
2. Buat arena
Selain arena, tentu akan lebih anggun bila diberikan effect cahaya. Tambahkan directional light untuk memberi dampak cahaya menyerupai matahari.
3. Buat script untuk AI
Setelah bentuk aksara dan arena telah siap maka saatnya untuk memperlihatkan script pada karakter. Disini saya buat C# script dengan nama kelas AICharacterBehaviour
Adapun isi dari script tersebut yaitu sbb :
using UnityEngine; using System.Collections; public class AICharacterBehaviour : MonoBehaviour { public GameObject target; //target yang dikejar public float movingSpeed = 2f; //kecepatan berpindah public float turnSpeed = 0.05f; //kecapatan berbelok void Update() { Vector3 gapPosition = target.transform.position - this.transform.position; //Gap antara posisi AI dengan sasaran gapPosition = new Vector3(gapPosition.x, 0, gapPosition.z); //Nilai gap y dibentuk 0 biar AI mengabaikan posisi atas dan bawah (Y) dari sasaran dan hanya mengikuti arah ke kanan dan ke kiri (X dan Y) Quaternion lookRotation = Quaternion.LookRotation(gapPosition); //Rotasi untuk look atau melihat sasaran this.transform.rotation = Quaternion.Lerp(this.transform.rotation, lookRotation, turnSpeed); //Membuat rotasi berubah secara smooth memakai fungsi lerp dari rotasi awal ke rotasi tujuan lookRotasion this.transform.Translate(Vector3.forward * movingSpeed * Time.deltaTime); //Bergerak maju } }
sehabis script dibentuk maka langkah selanjutnya yaitu mengimplementasikan script pada karakter. Lakukan drag drop script ke karakter
4. Buat aksara sasaran / player yang digerakkan user
Setelah aksara AI jadi maka kita buat sasaran yang dikejar. Target ini nantinya sanggup digerakkan oleh user melalui keyboard. Pada tutorial ini aksara sasaran saya buat kubus dan saya beri C# script PlayerBehaviour.
Adapun isi dari scriptnya PlayerBehaviour dalah sbb
using UnityEngine; using System.Collections; public class PlayerBehaviour : MonoBehaviour { public float movingSpeed = 15; //kecepatan bergerak void Update () { //Jika keyboard di tekan if (Input.GetKey(KeyCode.LeftArrow)) this.transform.Translate(Vector3.left * movingSpeed * Time.deltaTime, Space.World); else if(Input.GetKey(KeyCode.RightArrow)) this.transform.Translate(Vector3.right * movingSpeed * Time.deltaTime, Space.World); else if (Input.GetKey(KeyCode.UpArrow)) this.transform.Translate(Vector3.forward * movingSpeed * Time.deltaTime, Space.World); else if (Input.GetKey(KeyCode.DownArrow)) this.transform.Translate(Vector3.back * movingSpeed * Time.deltaTime, Space.World); } }
Selanjutnya tinggal implementasi kedalam aksara dengan drag & drop
5. Uji coba
Untuk melaksanakan ujicoba kita pasang dulu sasaran ke dalam script AI biar sasaran dikejar. Tinggal lakukan drag & drop saja
Kemudian terakhir atur kameranya sedemikian rupa biar viewnya nyaman
Makara deh... Silahkan di play dan lihat sendiri apa yang terjadi. Untuk menggerakkan player tinggal tekan panah atas bawah kanan dan kiri. Untuk hasil hasilnya saya lampirkan di link dibawah. Jika menemui problem silahkan komen saja.
Mungkin cukup sekian artikel kali ini, mohon maaf bila ada salah kata, semoga bermanfaat dan terus berkarya. ^^
DOWNLOAD PROJECT: http://www.4shared.com/zip/9Mtzs2vR/Simple_AI.html
BACA JUGA :
Pencarian rute memakai algoritma A* dengan library arongranberg