Pemrograman Permainan - Membuat Animasi Sederhana pada Unity Engine

0 comments

Animasi Pada Unity3D

Animasi pada dasarnya adalah sebuah pergerakan yang terbagi menjadi dua, yaitu perpindahan posisi dan perubahan bentuk. Materi ini akan membahas proses pembuatan dua jenis animasi tersebut menggunakan tool standar Unity. Hal-hal lain yang lebih rinci mengenai animasi pada object akan dijelaskan pada materi selanjutnya.

Praktik Membuat Animasi pada Unity3D

Buatlah project baru di Unity atau cukup scene baru saja jika masih ingin menggunakan project yang sudah digunakan dalam materi sebelumnya. Tambahkan sebuah Plane dengan cara klik menu GameObject -> 3D Obect -> Plane.


Tambahkan sebuah Cube dangan cara klik menu GameObject -> 3D Obect -> Cube dan tempatkan Cube sedikit di atas Plane agar terlihat seperti gambar dibawah.




Selanjutnya tampilkan jendela Animation dengan cara klik menu Window -> Animation atau dengan shortcut Ctrl + 6. Rencananya kita akan membuat 3 animasi yang berbeda untuk si Cube.


Untuk membuat animasi, yang pertama harus dilakukan adalah membuat sebuah file *.anim yang berisi sebuah animasi. Caranya, klik GameObject Cube pada tab Hierarchy, klik jendela Animation dan klik Create. Lalu ketikan nama animasinya, misalnya: Animasi1.anim.


Pastikan tombol record (tombol merah di pojok kiri atas) telah diklik yang menandakan Unity telah siap melakukan rekaman pergerakan apapun terhadap GameObject yang aktif. Untuk Animasi1 kita akan membuat Cube berubah ukuran. Caranya klik angka pada timeline dan pindahkan sampai angka 0:30.


Sampai tahap ini, jika kita klik tombol play animasi (yang berada di sebelah kanan tombol record pada jendela Animation) kita sudah dapat melihat bahwa Cube tersebut telah ‘bergerak’. Dari kecil ke besar dan begitu seterusnya. Agar animasinya lebih smooth lagi, silahkan coba copy (Ctrl+C) Keyframe di 0:00 dan paste (Ctrl+V) Keyframenya di 1:00


Sekarang buatlah 2 animasi klip lagi menggunakan cara yang sama namun dengan pergerakan yang berbeda. Untuk menambahkan klip, cukup klik pada combo utama di jendela Animation dan klik Create New Clip.



Jika pada animasi sebelumnya kita membuat perubahan ukuran, coba di animasi yang kedua ini kita berupa perubahan rotasi objek.


Berikutnya animasi ketiga buatlah perpindahan objek dari beberapa titk sekaligus. Anda cukup klik pada KeyFrame tertentu dan pindahkan Cubenya ke mana saja.


Tambahkan sebuah Component Animation pada Cube dengan cara klik menu Component -> Miscellaneous -> Animation.
Pada parameter Animations, ketikan angka 3 (sejumlah animasi yang tadi dibuat) dan masukkan satu per satu animasi yang diinginkan pada kotak yang bersesuaian.



Berikutnya buatlah script C# baru dan beri nama AnimationCube.cs. Ubah menjadi seperti berikut:



Script diatas akan menghasilkan sebuah button di kiri atas game, yang saat di klik akan memainkan animasi yang diinginkan.







Pemrograman Permainan - Belajar Fungsi Translate() dan Raycast()

0 comments


  1.  Apa itu fungsi Translate( ) pada unity
Translate adalah sebuah fungsi untuk membuat sebuah objek bergerak secara relatif terhadap posisinya sendiri dan bukan pada posisi dunia. Contohnya jika tombol panah maju ditekan maka objek akan mau ke depannya dan bukan ke arah depan pandangan pengguna.

     2.  Apa itu fungsi Raycast( ) pada unity

Fungsi Raycast() merupakan fungsi untuk melakukan penembakan ke arah yang dituju oleh kursor mouse dan menghasilkan koordinat Vector 3D.


Praktik pemakaian fungsi Translate( ) and Raycast( )

     Buat sebuah project game 3D pada unity. Lalu tambahkan game object cube pada scene. dan buat component rigidbody yang diattach pada game object cube sebelumnya. Lalu buat sebuah plane sebagai lantai dari cube. Pastikan cube berada di atas plane. Tambahkan material pada cube agar warna tidak sama dengan plane.



  1. Pemakaian Translate ( ) 
Silahkan buat script C# bernama TranslateScript.cs lalu ketik script dibawah ini pada text editor yang anda pakai. Pasang script di game object cube dan coba jalankan game lalu tekan tombol arrow atas.
Yang terjadi adalah cube akan maju sesuai arah dari cube tersebut.


Tahap selanjutnya, hentikan game dan tambahkan script seperti screenshot dibawah ini pada method update.


Lalu silahkan play game. coba tekan tombol panah kanan, panah kiri. Selanjutnya tekan dan tahan tombol shift kiri + tekan tombol panah kanan atau kiri. Hasilnya cube akan bergerak maju dan mundur saat arrow atas dan bawah ditekan, saat ditekan arrow kanan dan kiri kepala dari cube akan melakukan rotate ke arah arrow yang ditekan. Saat L-Shift dan arrow kanan di tekan, cube akan bergerak secara horizontal.

Tambahkan sebuah method di script yang bernama IsGrounded( ) yang mengembalikan boolean.


Kemudian panggil method IsGrounded( ) pada method Update ( ) sebagai sebuah conditional statement.  Jalankan kembali game dan tekan tombol spasi. maka game object cube akan melompat bergantung pada value variabel distGround dan power.


Jika pada if statement diatas method IsGrounded( ) tidak dipanggil kira kira apa yang terjadi? Tentu saja cube akan melesat ke atas tanpa batasan. 

     2. Pemakaian Raycast( )

Cube akan dibuat bergerak menuju suatu titik berdasarkan inputan dari mouse. Atur posisi MainCamera seperti semula sehingga tidak lagi menjadi child dari cube dan dapat melihat keseluruhan Plane Cube dari atas kira kira seperti gambar dibawah.


Tambahkan sebuah Plane lainnya, beri nama Target. Kecilkan ukuran Plane tersebut dengan menggunakan gizmo scale dan tambahkan sebuah material dan beri warna tertentu sehinga plane target dapat terlihat kontras dengan Plane yang berada di bawahnya.


Buat script lalu beri nama RaycastCube.cs dan ketik script dibawah ini.



Pasang script tersebut di GameObject Cube, isikan parameter target dengan GameObject plane target yang tadi sudah dibuat. Untuk percobaan awal, biarkan parameter Is Moving tidak dicentang kemudian jalankan Game. Klik kanan pada sembarang tempat di plane pertama, perhatikan plane yang dipasang material akan berpindah pada posis tepat di posisi mouse dan Cube berputar sesuai dengan arah Plane tersebut.

Hal lain yang menarik dari proses ini adalah ketika Anda berpindah dari tab Game ke tab Scene saat Game masih berjalan. Anda dapat melihat sebuah garis lurus berwarna merah yang ditembakkan langsung dari GameObject Main Camera menuju titik pusat plane kecil (target). Kira-kira seperti itulah bentuk ‘nyata’ dari fungsi RayCast yang merupakan salah satu fungsi utama yang sering digunakan untuk menciptakan interaksi antara user dengan lingkungan game.



Langkah selanjutnya adalah, matikan kembali game, lalu centang parameter Is Moving, dan jalankan kembali game. Kini selain hanya melihat ke arah posisi titik yang diklik oleh mouse, Cube juga akan bergerak menuju Plane.

Sekian tutorial blog yang saya buat. Terima kasih atas perhatiannya.

Kunjungi juga : Universitas Budi Luhur

Pemrograman Permainan - Belajar Membuat dan Instantiate Prefab

0 comments

1. Pengertian Prefab

Prefab merupakan sebuah GameObject yang disimpan ke dalam Assets, yang nantinya bisa dimanfaatkan menjadi GameObject kembali.

2. Pengertian Fungsi Instatiate ( )

Fungsi Instantiate() atau yang dalam banyak forum lebih sering disebut dengan: "Fungsi untuk membuat GameObject secara runtime."


3. Contoh Pemakaian Prefab pada Game

Idenya game yang akan dibuat kali ini cukup sederhana yaitu membuat Prefab dari sebuah GameObject dan mendaftarkannya sebagai sebuah variable public agar dapat dibuat ulang berkali-kali oleh fungsi pemanggil. Fungsi ini merupakan salah satu fungsi yang sering digunakan dalam pembuatan game.

Tambhkan sebuah game object 3D plane pada Scene unity. Atur camera agar plane terlihat seluruhnya seperti dibawah ini.



Tambahkan plane kedua, ganti namanya menjadi Lantai2 dan atur scalenya menggunakan tombol Scale di pojok kiri atas atau masukkan angkanya pada panel transform.

Angkat posisi Lantai2 sedikit ke atas dan atur kemiringannya sehingga mirip seperti gambar berikut.




Klik Lantai2 pada tab Hierarchy kemudian buat GameObject Child dengan cara klik menu GameObject -> Create Empty Child.

Atur posisi GameObjectChild tadi menggunakan gizmo atau panel Transform sehingga sedikit di atas Lantai2 seperti gambar berikut.
\

Ganti nama game object menjadi TitikJatuh. Selanjutnya buat sebuah game object yang akan di instantiate pada TitikJatuh ketika tombol tertentu ditekan. Dalam kasus ini, buat sebuah object sphere dan namakan MyBall, 



Klik MyBall dan tambahkan RigidBody dengan cara klik menu Component -> Physics -> Rigidbody.
Rigidbody adalah sebuah komponen penting yang dapat membuat GameObject seolah-olah memiliki berat dan dapat dipengaruhi oleh gaya gravitasi.

Buat sebuah Physic Material dengan cara klik Assets -> Create -> Physics Material dan beri nama Bounce. Lalu atur bounciness di inspector menjadi 0.9.

Untuk menambahkan Physic material, klik gameobject MyBall, di Inspector akan ada parameter material, klik bulatan disamping nya dan pilih Phsyic material yang sebelumnya dibuat.

Berikutnya untuk menjadikan Prefab, drag MyBall dari tab Hierarchy ke panel Assets.

Buat script C# dan beri nama GandakanBola.cs lalu ubah script menjadi seperti berikut ini.



Selanjutnya pasang script tersebut di GameObject mana saja yang Anda suka, lalu pastikan parameter TempatJatuh dan parameter Bola diisi.

Parameter Tempat Jatuh diisi dengan GameObject TitikJatuh, sedangkan parameter Bola diisi dengan prefab MyBall.

Jalankan Games dan klik tombol Buat Bola berkali-kali. Perhatikan pula kondisi tab Hierarchy dengan seksama, semua GameObject yang terbentuk dan terterah di sana akan menghilang secara otomatis setelah 5 detik. Beginilah cara Unity membuat GameObject secara runtime sekaligus menjaga kestabilan penggunaan memori pada Komputer.


Pemrograman Permainan - Belajar GUI Skin

0 comments

GUI Skin

Buatlah project baru di Unity atau cukup scene baru saja (jika masing ingin menggunakan project dari materi sebelumnya).Tambahkan sebuah GUISkin dengan cara klik menu Assets -> Create -> GUISkin. Beri nama "BelajarGUISkin"Setelah itu tambahkan beberapa Assets yang sudah diunduh tadi seperti assets untuk tombol (beberapa template gambar button berekstensi png) dan assets font.

Untuk melakukan import Assets, dapat dilakukan dengan beberapa cara, salah satunya dengan cara klik menu Assets -> Import New Assets atau dengan drag filenya langsung dari Windows Explorer. Pastikan semua assets yang akan digunakan sudah di-import.

Berikutnya kita kembali ke Skin “BelajarGUISkin” yang tadi kita buat.GUI Skin memiliki 2 jenis font, Ada font global yang letaknya di panel paling atas, dan ada font lokal yang berada di setiap parameter GUI.Ubah font khusus button dengan drag file font pada Assets ke Button -> Overflow. Atau klik tombol kecil di sebelaha kanan kolom Font lalu browse, cari Font pada Asset.Lalu ubah Font Size menjadi 24.




Berikutnya ganti background pada Button. Ganti Background pada Toggle:

  • Button -> Normal
  • Button -> Hover
  • Button -> Active



Berikutnya pada Button, istilah Toggle mungkin agak kurang familiar. Sebagian orang lebih mengenalnya dengan istilah Checkbox. Pada Contoh kali ini, toggle dimanfaatkan untuk pengaturan suara. Ganti Background pada Toggle:
  • Toggle -> Normal
  • Toggle -> Hover
  • Toggle -> Active
  • Toggle -> On Normal
  • Toggle -> On Hover
  • Toggle -> On Active

Buat script C# baru dan beri nama MenuSkin.cs dan edit file menjadi seperti berikut.


Pasang script di GameObject misalnya main camera. lalu pasang parameter mySkin dengan BelajarGUISkin. Berikut tampilan game pada saat dijalankan.




Pemrograman Permainan - Belajar Interaksi Antar Object di Script

0 comments


Pada tulisan saya saat ini, saya akan membuat tutorial untuk berinteraksi dengan game object lainnya di Script


Ada beberapa cara yang bisa dilakukan sebuah script untuk berinteraksi dengan GameObject, diantaranya:


  • Pasang script langsung pada object.
  • Pasang script pada object lain, lalu menggunakan fungsi untuk mencari object yang dituju.

1. Pembuatan Game Object

          Proses pertama yang harus dilakukan yaitu dengan membuat 4 Game Object, misalnya cube. 

Ubah nama menjadi Kubus1, Kubus2, Kubus3, Kubus4. Klik Game Object kubus 4 dan pada Inspector klik dropdown dari menu Tag. Lalu pilih Add Tag. 


Akan muncul Inspector Tags & Layers seperti di bawah ini. Kemudian klik simbol tambah dan isi nama tag dengan Kotak1.



2. Scripting

        Buat sebuah C# Script bernama ScriptKubus. Lalu ketik script berikut dan pasang script nya ke GameObject Kubus1.




3. Play and Test Game


  1. Centang pilihan Cube 1. Jalankan game dan perhatikan kubus mana saja yang berputar.
  2. Selanjutnya ketik “Kubus2” pada parameter Pilih Kubus dan centang Cube 2. Perhatikan kembali kubus mana saja yang berputar.
  3. Berikutnya ketik “Kotak1” pada parameter Pilih Tag dan centang Cube 3. Perhatikan kembali kubus yang bergerak.
  4. Terakhir klik browse (tombol bulat kecil) pada parameter Pilih Objek, pilih tab Scene dan pilih Kubus3, lalu centang Cube 4. Perhatikan kembali kubus yang bergerak.

Pertemuan 4 Pemrograman Permainan - Input Mouse dan Keyboard ( Event Listener )

0 comments




Input Mouse

Berikut proses untuk menambah event listener yang berupa input dari Mouse.

  • Scripting 
           Buat C# Script bernama InputMouse di folder Assets. Lalu ketikkan script dibawah ini


           Setelah script selesai diketik, drag and drop Script ke GameObject MainCamera di         Hierarchy 

  • Test Game
           Setelah proses scripting selesai, game bisa di tes dengan cara menekan tombol play. Jika script tidak error maka saat user menginput dengan cara klik mouse, Game akan menampilkan button mana yang diklik, position dari kordinat cursor pada saat mouse di klik dan posisi scroll pada mouse.




Input Keyboard


Berikut proses untuk menambah event listener yang berupa input dari Keyboard.

  • Scripting 
           Buat C# Script bernama InputKeyboard di folder Assets. Lalu ketikkan script dibawah ini





           Setelah script selesai diketik, drag and drop Script ke GameObject MainCamera di         Hierarchy. Disarankan untuk mendisable script InputMouse yang sebelumnya di tambahkan ke GameObject, tapi tidak apa apa jika malas untuk men-disablenya karena tidak akan mempengarughi hasil jika mouse tidak di klik. Setelah proses menambahkan script dilakukan, isi properties pilihanUser dari Script InputKeyboard  

  • Test Game
     Jika menekan karakter a/A maka keluar seperti ini : 



    Jika men-klik mouse maka keluar seperti ini : 


    Jika menekan karakter yang dipilih user di properties maka keluar seperti ini : 


          

Pertemuan 3 Pemrograman Permainan - ARRAY, CLASS, LOOPING FUNCTION

0 comments

Array

Scripting

Silahkan buat C# script di unity bernama BelajarArray ditulis dulu script berikut

Attachment 1.png

Lalu drag and drop file C# ke Main Camera. Dan Jalankan Game dan isi property arrayAngka dan arrayTeks

Hasil : Attachment 2.png

Class

Scripting

Buat file C# script bernama ArrayClass

Attachment 3.png

Setelah selesai proses scripting, drag n drop kembali file C# script ke game objek Main Camera, lalu uncheck atau remove component script BelajarArray.

Hasil : 

Attachment 4.png

Looping

Scripting

Buat file C# script dengan nama FungsiLooping.

Attachment 5.png

Uncheck script lainnya seperti langkah sebelumnya

Hasil :



Pertemuan 2 Pemrograman Permainan

0 comments



Tutorial Dasar Penggunaan Unity Game Engine

Di tutorial ini, akan merangkum 5 dasar untuk menggunakan Unity Game Engine, yaitu :


  • Membuat Project di Unity
  • Mengolah Asset file pada Unity
  • Paham Debug Log dan Menggunakan fungsi built-in dari class MonoBehaviour, OnGUI.
  • Menjalankan project Game yang telah dibuat
  • Tipe data dalam unity (C#)
1. Membuat Project Unity.

         Setelah login ke Unity dengan akun unity atau pilihan lainnya, akan muncul tampilan seperti berikut


       Kemudian pilih New dan isi deskripsi project, kalau sudah dilengkapi pilih Create Project

2. Mengolah Asset file pada Unity
     
          Hal pertama yang harus dilakukan adalah membuat folder baru, ini berguna untuk membuat rapih file project. Misalnya image akan ditaruh pada folder image dan video pada foldernya, jadi tidak terlalu sulit untuk mencari file yang dibutuhkan. Berikut cara untuk membuat folder baru.

Pada tampilan default Unity pilih dropdown create yang posisinya di tunjuk oleh panah merah.


Lalu kemudian pilih Folder dan masukkan nama dari Folder yang akan dibuat. Nama dari folder direkomendasikan sesuai file apa yang akan di masukkan dalam folder tersebut. Misalnya jika folder tersebut ditujukan untuk menempatkan script game, maka folder bisa dinamakan "Scripts".



Selain membuat folder, Script pemrograman untuk objek objek dalam game pun dapat dibuat dengan memilih C# Script dan pastikan jika nama script sama dengan class dalam source code file tersebut.

3. Paham Debug Log dan Menggunakan fungsi built-in dari class MonoBehaviour, OnGUI.
        
         Untuk memahami cara melakukan Debug Log, pertama-tama buat sebuah C# script di folder Assets.


Lalu di klik 2 kali script yang telah dibuat, kemudian text editor yang di set default akan terbuka. Saya menggunakan MonoDevelop sebagai text editor saya. Karena MonoDevelop merupakan pilihan unity sebagai text editor defaultnya, dan fitur auto-completion sangat membantu proses Scripting.


Sebelum menjalankan game untuk melihat hasil debug, script di assets harus terlebih dahulu di attach ke dalam game object yang ada di Hierarchy dengan cara drag file script ke nama game object yang diinginkan.


Setelah script terhubung dengan game object, dalam kasus saya main camera. Game bisa dijalankan untuk melihat Debug Log yang kita buat sebelumnya. Tekan tombol play yang ada di lingkaran pada gambar dibawah


Berikut adalah output dari Console


Output hanya dilakukan sekali, saat game dimulai. Karena Debug.Log dilakukan pada function Start, yang merupakan function turunan dari class MonoBehaviour yang akan menjalankan perintah hanya pada saat game di play saja. Berbeda dengan function Update yang akan mengeksekusi perintah pada setiap frame pada saat game berjalan. Saya akan merubah sedikit script dan memindahkan perintah Debug.Log dari fungsi Start ke Update agar dapat mudah terlihat perbedaan dari kedua function ini.


Hasilnya terlihat bahwa perintah Debug.Log akan terus berjalan terus terusan dari game di play hingga saat game distop.







backlink : Universitas Budi Luhur

Powered by Blogger.
 
Blog Teknologi © 2012 | Designed by Meingames and Bubble shooter