4.1. gameplay “rare animal”repository.unika.ac.id/15404/5/13.07.0036 hening artdias bab...
TRANSCRIPT
38
BAB IV. PEMBAHASAN
4.1. Gameplay “Rare Animal”
Game “Rare Animal” adalah game edukasi pengenalan satwa langka guna
memperkenalkan berbagai jenis satwa yang sedang kritis jumlahnya yang ada di
Indonesia. Sumber utama pembuatan game tersebut menggunakan data dari
Kementrian Kehutanan serta organisasi konservasi terbesar di dunia yaitu World
wide Fund for Nature (WWF).
Genre, art, serta reward game diambil dari analisa penulis meReview 15
game yang paling banyak diunduh pada google play dengan keyword “Animal”.
Sebab google play adalah toko resmi terbesar dibuat oleh Google yang
menyediakan berbagai macam aplikasi smartphone termasuk game pengguna OS
android.
Table 4. 1 a.Tabel game dengan keyword "animal"
Nama
Game Art Genre
Tujuan
Pembuatan Reward Keunggulan
Junggle
Doctor 2D adventure
Menumbuhkan
rasa kepedulian
terhadap hewan
next
level
gamplay
menarik
Animal
Coloring
Book
2D Simulasi/game Belajar mewarnai
hewan tidak ada
user
friendly
Animal
Hide and
Seek for
Kids
2D Adventure Mengasah
kepekaan anak
next
level
gamplay
menarik
Animal
Match-Up 2D Adventure
Mengenalkan
tubuh hewan
next
level
user
friendly
39
Nama
Game Art Genre
Tujuan
Pembuatan Reward Keunggulan
Suara
Hewan 2D Adventure
Mengenalkan
suara berbagai
hewan
tidak
ada art interaktif
Wonder
Zoo 2D RPG
Penyelamatan
satwa
upgrad
e item
gamplay
menarik
Mewarna
i 3D Simulasi/game
Mewarnai +
memvisualisasika
n gambar yang
sudah diwarnai
tidak
ada art interaktif
Dino On
My Desk
AR
3D Simulasi/game
Mengenalkan
gerakan dan suara
dinosaurus
tidak
ada art interaktif
Dunia
Tini Wini
Biti
3D Simulasi/game
Menghidupkan
karakter tini wini
biti dengan 3D
tidak
ada art interaktif
Animal
4D+ 3D Simulasi/game
Mengenalkan
hewan menurut
abjad
tidak
ada art interaktif
Quiver 3D Simulasi/game
mewarnai +
memvisualisasika
n gambar yang
sudah diwarnai
tidak
ada art interaktif
AR
Flashcar
d
3D Simulasi/game
Mengenalkan
hewan menurut
abjad
tidak
ada art interaktif
Dragon 3D Simulasi/game Mengetahui
gerakan naga
tidak
ada art interaktif
Zoo-AR 3D Simulasi/game
Mengenalkan
hewan yang ada di
kebun binatang
tidak
ada art interaktif
1. Genre
Berdasarkan Review 15 game dengan keyword animal, penulis menggambil
kesimpulan bahwa game dengan genre simulasi adalah game yang paling
diminati. Game tersebut mampu menggambarkan realita yang terjadi,
Table 4. 2 b.Tabel game dengan keyword "animal"
40
memberi kesan nyata pada palyer. Selain simulasi ditambahkan pula genre
mini game agar tidak monoton dan membosankan player.
2. Art
Yang mendominasi adalah dengan art tiga dimensi. Desain tiga dimensi
mampu sinkorn dengan genre simulasi karena sama-sama bertujuan
memberikan kesan nyata pada pemainnya. Pembutan karakter 3D agar lebih
menarik minat pemain, serta mempertajam ingatan. Menurut penilitian oleh
tim Neurobiologi di University of California menemukan hasil bahwa bermain
game dengan grafis 3D mampu meningkatkan daya ingat[7]. Melihat dengan
sudut pandang 360 derajat juga termasuk keunggulan dari desain tiga dimensi.
3. Reward
Reward terbanyak adalah menggunakan next level apabila mampu
menyelesaikan suatu misi. Dengan data tersebut pemilihan next level menjadi
acuan utama menggunakan reward next level.
4. Alur cerita
Level ke-1 mengajarkan pembelajaran pada pemain bahwa satwa langka
tidak seharusnya dikurung dan dimanfaatkan anggota tubuhnya. Karena
penyebab utama krisinya jumlah badak Jawa dan badak Sumatra yaitu
berburuan untuk dimanfaatkan cula dan dagingnya, sebab dipercaya
mampu mengobati suatu macam penyakit.
Level ke-2 menggambarkan kasus nyata kebekaran hutan kelapa sawit
yang berada di Kalimantan. Tidak hanya manusia kebakaran tersebut
mengikis keanekaragaman tumbuhan maupun hewan. Yang
41
keberadaanya sangat kritis yaitu orangutan Kalimantan. Pada level ini
pemain menghentikan api agar tidak membakar pohon sawit.
Level ke-3 menceritakan kasus nyata pada karakter gajah Sumatra,
hewan tersebut mengalami kepunahan karena penyebab utamnya yaitu
pengambil ambil lahan yang menimbulkan konflik sehingga gajah
Sumatra turun pada kawasan penduduk untuk mencari makan. Pada level
ini player harus membantu pajah Sumatra untuk mendapatkan makanan
agar tidak kepalaran.
Level ke-4 memberikan pembelajaran kepada pemain bahwa membuang
sampah sembarangan (terutama di laut) itu dapat mengancam
kelangsungan habitat lain. Penyu hijau merupakan spesies prioritas yang
terkena dampak tersebut. Oleh sebab itu, pada level ini player ditugaskan
untukmengambil sampah guna menjaga kelangusngan habitat penyu
hijau.
Level ke-5 memberi edukasi tempat tinggal satwa tersebut. Sebagai
wawasan terhadap pemain bahwa masih banyak satwa yang di Indonesia
dalam spesies prioritas. Dari pulau Sumatra, Jawa, Nusa Tenggara,
Papua, Maluku, Sulawesi dan Kalimantan. Satwa dalam soal, merupakan
satwa dengan Score 100-90 prioritas kepunahan menurut Kementrian
Perhutanan.
Berdasarkan data Review 15 game dengan keyword animal 8 dari 15 game
dengan art tiga dimensi rata-rata mempunyai genre game simulasi. Simulasi pada
game tersebut hanya menampilkan 3D modeling saja, tidak ada aktifitas yang
42
dilakukan untuk memperoleh Score maupun next level. Sehingga game “Rare
Animal” mempunyai kelebihan tersendiri dari game-game di atas.
4.2. Perancangan 2D & 3D Asset
Perancangan marker menggunakan adobe illustrator (AI), software
tersebut mampu merancang bentuk 2D dengan berbagai macam tools sehingga
cocok digunakan untuk pembuatan marker yang nantinya akan berbentuk print
out. Konsep marker dibuat dalam balutan flat design dan warna-warna yang cerah
agar menarik mata pemain terutama anak-anak. Selain itu marker dibuat soalah
alah atampak atas agar menyatu dengan bentuk 3D yang nantinya muncul saat
melakukan scan gambar.
Selain marker ada beberapa komponen dua dimensi lainnya yaitu karakter
hewan, menu utama, tombol play, tombol replay, tombol home, tombol next,
tombol back, edukasi satwa, tampilan menang, tampilan kalah, tutorial setiap
menuju level berikutnya dan tampilan ketika tamat. Komponen tersebut juga
dibuat dengan Adobe illustrator (AI) CS6.
a. Marker pembukaan dan level 1 digunakan untuk memicu munculnya info
hewan-hewan langka berserta informasi jumlah saat ini dan beberapa info
lainnya berdasarkan data WWF-Indonesia dalam garis merah kepunahan.
Selain untuk menampilkan beberapa informasi marker pertama digunakan
sebagai pemicu game pertama yaitu badak Jawa dan badak Sumatra,
berlatar tempat di hutan tanah yang lapang diambil view tampak atas.
43
Disertai petunjuk bermain berupa text di sisi bawah agar model 3D tidak
menutupi tulisan.
b. Marker level 2 digunakan untuk memicu munculnya hutan kelapa sawit
yang diceriatakan berada di Kalimantan, berlatar tempat hutan yang
gundul disertai bebatuan dan semak-semak diambil view tampak atas.
Ditambah petunjuk bermain berupa text di sisi samping kanan agar model
3D tidak menutupi tulisan.
Gambar 4. 1 Marker level 1 game “Rare Animal”
Gambar 4. 2 Marker level 2 game “Rare Animal”
44
c. Marker level 3 digunakan untuk memicu munculnya gajah Sumatra,
berlatar tempat di jalan berliku di perkebunan diambil view tampak atas.
Disertai petunjuk bermain berupa text di sisi samping kanan agar model
3D tidak menutupi tulisan.
d. Marker level 4 digunakan untuk memicu munculnya sampah dan penyu
hijau, berlatar tempat di pantai dengan air yang biru dan pasir pantai
diambil view tampak atas. Disertai petunjuk bermain berupa text di sisi
atas agar model 3D tidak menutupi tulisan.
Gambar 4. 3 Marker level 3 game “Rare Animal”
Gambar 4. 4 Marker level 4 game “Rare Animal”
45
e. Marker level 5 digunakan untuk memicu munculnya pertanyaan,
bergambarkan perta Indonesia guna memvisualisasi pemain dimana hewan
tersebut tinggal diambil view tampak atas. Disertai petunjuk bermain
berupa text di sisi atas agar model 3D tidak menutupi tulisan.
f. Marker bonus by 3Djeebs dapat di download geratis pada link berikut ini
http://github.com/maximrouf/RegionCapture
Gambar 4. 5 Marker level 5 game “Rare Animal”
Gambar 4. 6 Marker bonus game "Rare Animal"
46
Tombol-tombol yang digunakan dalam game “Rare Animal” :
Table 4. 2 Table grapich user interface button game “Rare Animal”
Tombol play berada pada tampilan awal
digunakan untuk memulai game “Rare
Animal”
Tombol home untuk mengembalikan
player ke menu awal saat memulai
game.
Tombol mengerti untuk memulai game
setelah mengerti membaca petunjuk.
Tombol next untuk menuju level
berikutnya
Tombol replay untuk bermain ulang
saat game over.
47
Untuk menunjang ketertarikan pemain dibuat berbagai macam karakter
berwarna cerah serta menggambarkan kelucuan satwa liar dengan menggunakan
software Adobbe Illustrator (AI) CS6 . Ada pula karakter pemenang yang akan
muncul pada ujung game “Rare Animal” untuk mengapresiasi pemain yang telah
menyelesaikan game.
Selain karakter penunjang background merupakan unsur penting
pembutan game. Background dibuat simple berwarna cerah senada dengan marker
yang dibuat dalam bentuk buku. Berupa 5 background untuk tutorial, 5
background untuk menampilkan edukasi sebelum bermain pada level terakhir, 1
background menu utama, 1 background tampilan menang, 1 background tampilan
kalah dan yang terakhir background meneyelesaikan game
Gambar 4. 7 karakter penunjang game "Rare Animal"
48
Gambar 4. 15 Background menang Gambar 4. 14 Background kalah
Gambar 4. 12 Background tutorial level 5
Rare Animal Gambar 4. 13 Background menu utama
Rare Animal
Gambar 4. 8 Background tutorial level 1 Gambar 4. 9 Background tutorial level 2
Gambar 4. 10 Background tutorial level 3 Gambar 4. 11 Background tutorial level 4
49
Perancangan asset tiga dimensi menggunakan software 3Ds Max 2013,
serta ditunjang dengan 3D modeling gratis yang dapat didownload
www.turbosqwid.com, www.assetstore.unity3D.com dan archive3d.net. Ada 5
karakter utama yang dibuat dalam bentuk tiga dimensi, yaitu:
Gambar 4. 21 Tampilan bonus Gambar 4. 20 Tampilan informasi 5
Gambar 4. 16 Tampilan informasi 1 Gambar 4. 17 Tampilan informasi 2
Gambar 4. 18 Tampilan informasi 3 Gambar 4. 19 Tampilan informasi 4
50
2. Badak Jawa
Karakter tersebut dibuat menyerupai dengan Badak Jawa yang
sesungguhnya dengan ciri-ciri bercula kecil, berwarna abu-abu, bibir
meruncing guna untuk memakan rantai.
3. Badak Sumatra
Karakter badak Sumatra dibuat menyerupai aslinya dengan ciri-ciri fisik
mempunyai dua cula, berletinga agak besar, mempunyai warna kulit
kemerah-merahan.
4. Gajah Sumatra
Karakter gajah Sumatra lebih pendek dibandingan dengan spesies gajah
lainnya, tingginya antara 1.7 meter sampai dengan 2,6 meter. Tidak ada
ciri khusus dengan gajah lainnya.
Gambar 4. 23 Badak Jawa modeling Gambar 4. 22 Badak Jawa
Gambar 4. 24 Badak Sumatra Gambar 4. 25 Badak Sumatra modeling
51
5. Harimau Sumatra
Karakter harimau Sumatra mempunyai ciri-ciri kulitnya yang lebih gelap
dibandingkan dengan spesie harimau di dunia, warnanya orange kemerah-
merahan dan tubuhnya kecil.
6. Penyu hijau
Karakter penyu hijau ialah cangkangnya yang berwarna hijau, kepalanya
tumpul, tubuhnya besar dan berat.
Gambar 4. 27 Gajah Sumatra modeling
Gambar 4. 28 Harimau Sumatra Gambar 4. 29 Harimau Sumatra modeling
Gambar 4. 30 Penyu hijau Gambar 4. 31 Penyu hijau modeling
Gambar 4. 26 Gajah Sumatra
52
7. Asset Pelengkap
Pada pembukaan ada beberapa modeling berupa batu, jamur, pagar kayu, 6
box, rumput, drum kayu, tanah dan material kaca untuk menampilkan
informasi 5 satwa langka dan 5 box sebagai tombol untuk switch objek.
Gambar 4. 32 Tombol switch objek Gambar 4. 33 Jamur
Gambar 4. 34 Pagar kayu Gambar 4. 35 Drum kayu
Gambar 4. 36 Texture tanah Gambar 4. 37 Batu-batuan
53
Pada level 1 selain karakter utama terdapat modeling kurungan besi
berjumlah 2 buah dan 4 kunci berwarna hijau dan 4 kunci berwarna silver
yang terdapat di sekitar area karakter utama.
Gambar 4. 40 Kurungan besi
Gambar 4. 8 Kayu Gambar 4. 39 Rerumputan
Gambar 4. 41 Kunci silver Gambar 4. 42 Kunci hijau
54
Pada level ke-2 terdapat modeling pohon sawit besar berjumlah 5 dan
pohon sawit kecil yang berjumlah 4, serta 5 api yang nantinya akan
bergerak merembet pada pohon.
Pada level ke-3 ada dua item yaitu ranjau dan satu buah keranjang rotan
yang berisi beberapa buah apel, beberapa buah pir, dan pisang. Ranjau
berjumlah 4 dengan warna silver perak.
Gambar 4. 43 Pohon kelpa sawit muda
Gambar 4. 45 Api
Gambar 4. 46 Ranjau Gambar 4. 47 Makanan gajah
Gambar 4. 44 Pohon kelpa sawit muda
55
Pada level ke-4 berisi 5 buah sampah, 3 buah sampah botol dan 2 buah
sampah minuman kotak. Sampah tersebut yang nantinya digunakan untuk
penentu menuju level berikutnya.
Level terakhir terdapat rumput box yang berdampingan kanan dan kiri dan
ditengahnya gambar satwa dalam texture kaca dan text 3D serta nama-
nama pulau di Indonesia (Sumatra, Kalimantan, Sulawesi, Maluku, Papua,
Nusa Tenggara, Jawa dan Bali).
Gambar 4. 48 Sampah-sampah
Gambar 4. 49 Rumput box & soal
Gambar 4. 50 Nama-nama pulau 3D
56
4.4. Pemrograman
Pemrograman dilakukan setelah semua asset siap diolah, pemograman
game menggunakan bahasa c# dengan software MonoDevelop-Unity dan
build result unity 5.4.1.
1. Tombol Menu Utama digunakan untuk next scene menuju level awalan
berupa edukasi satwa langka.
using UnityEngine; using System.Collections; using UnityEngine.UI; public class next5 : MonoBehaviour { public void next (string sceneName) { Application.LoadLevel (sceneName); } }
Script 4. 1 script menu utama play
2. Script AR Camera dapat diperoleh pada vuvoria.developher.com
digunakan untuk menampilkan objek 3D muncul pada smartphone
sehingga menjadikan bentuk Augmented Reality.
using UnityEngine; namespace Vuforia { public class VuforiaBehaviour : VuforiaAbstractBehaviour { protected override void Awake() { AddOSSpecificExternalDatasetSearchDirs(); gameObject.AddComponent<ComponentFactoryStarterBehav
our>(); base.Awake(); } private static VuforiaBehaviour mVuforiaBehaviour= null;
57
public static VuforiaBehaviour Instance { get { if (mVuforiaBehaviour == null) mVuforiaBehaviour = FindObjectOfType<VuforiaBehaviour>(); return mVuforiaBehaviour; } } private void AddOSSpecificExternalDatasetSearchDirs() { #if UNITY_ANDROID if (Application.platform == RuntimePlatform.Android) { var databaseLoader = DatabaseLoadARController.Instance; AndroidJavaClass jclassEnvironment = new AndroidJavaClass("android.os.Environment"); AndroidJavaObject jobjFile = jclassEnvironment.CallStatic<AndroidJavaObject>("getExternalStorageDirectory"); string externalStorageDirectory = jobjFile.Call<string>("getAbsolutePath");
AndroidJavaObject jobjActivity = new AndroidJavaClass("com.unity3d.player.UnityPlayer").GetStatic<AndroidJavaObject>("currentActivity"); string packageName = jobjActivity.Call<string>("getPackageName");
databaseLoader.AddExternalDatasetSearchDir(externalStorageDirectory + "/Android/data/" + packageName + "/files/"); databaseLoader.AddExternalDatasetSearchDir(externalStorageDirectory + "/Android/data/" + packageName + "/files/Vuforia/");
databaseLoader.AddExternalDatasetSearchDir(externalStorageDirectory + "/Android/data/" + packageName + "/files/QCAR/"); } #endif } } }
Script 4. 2 script AR camera
58
4.4.2. Level 1
1. Tombol switch modeling digunakan untuk memunculkan objek
secara bergantian sesuai tombol yang dipilih. Ada 5 tombol
untuk menampilkan.
a. Tombol 1 digunakan untuk menonaktifkan semua objek
dan kecuali objek satu.
using UnityEngine; using System.Collections; public class awal1 : MonoBehaviour { public GameObject satu ; public GameObject dua ; public GameObject tiga ; public GameObject empat ; public GameObject lima ; public GameObject enam ; // Use this for initialization void Start () { } // Update is called once per frame void OnMouseDown () { satu.SetActive (true); dua.SetActive (false); tiga.SetActive (false); empat.SetActive (false); lima.SetActive (false); enam.SetActive (false); } }
b. Tombol 2 digunakan untuk menonaktifkan semua objek
dan kecuali objek dua.
using UnityEngine; using System.Collections; public class awal2 : MonoBehaviour { public GameObject satu ; public GameObject dua ; public GameObject tiga ; public GameObject empat ;
59
public GameObject lima ; public GameObject enam ; // Use this for initialization void Start () { } // Update is called once per frame void OnMouseDown () { satu.SetActive (false); dua.SetActive (true); tiga.SetActive (false); empat.SetActive (false); lima.SetActive (false); enam.SetActive (false); } }
c. Tombol 3 digunakan untuk menonaktifkan semua objek
dan kecuali objek tiga.
using UnityEngine; using System.Collections; public class awal3 : MonoBehaviour { public GameObject satu ; public GameObject dua ; public GameObject tiga ; public GameObject empat ; public GameObject lima ; public GameObject enam ; // Use this for initialization void Start () { } // Update is called once per frame void OnMouseDown () { satu.SetActive (false); dua.SetActive (false); tiga.SetActive (true); empat.SetActive (false); lima.SetActive (false); enam.SetActive (false); } }
60
d. Tombol 4 digunakan untuk menonaktifkan semua objek
dan kecuali objek empat.
using UnityEngine; using System.Collections; public class awal4 : MonoBehaviour { public GameObject satu ; public GameObject dua ; public GameObject tiga ; public GameObject empat ; public GameObject lima ; public GameObject enam ; // Use this for initialization void Start () { } // Update is called once per frame void OnMouseDown () { satu.SetActive (false); dua.SetActive (false); tiga.SetActive (false); empat.SetActive (true); lima.SetActive (false); enam.SetActive (false); } }
e. Tombol 5 digunakan untuk menonaktifkan semua objek
dan kecuali objek lima.
using UnityEngine; using System.Collections; public class awal5 : MonoBehaviour { public GameObject satu ; public GameObject dua ; public GameObject tiga ; public GameObject empat ; public GameObject lima ; public GameObject enam ; // Use this for initialization void Start () { } // Update is called once per frame
61
void OnMouseDown () { satu.SetActive (false); dua.SetActive (false); tiga.SetActive (false); empat.SetActive (false); lima.SetActive (true); enam.SetActive (false); } }
Script 4. 3 script switch karakter
2. Nyawa level 1 digunakan untuk menyimpan nyawa serta
membuat ruang canvas dan menampilkan tampilan salah ketika
kunci benar dan menampilkan benar ketika kunci benar.
using UnityEngine; using System.Collections; using UnityEngine.UI; public class nyawalevel1 : MonoBehaviour { public int hp=3; public int kunci=6; public Text text; public Canvas gameover; public Canvas next; // Use this for initialization void Start () { } // Update is called once per frame void Update () { text.text = "" + hp; if (hp == 0) { gameover.enabled = true; } if (kunci == 0) { next.enabled = true; } } }
Script 4. 4 script nyawa level 1
62
3. Kunci benar digunakan untuk mendeteksi kunci benar yang
dipilih, ketika jumlah kunci benar memenuhi sayarat maka
diteruskan pada script nyawa level 1.
using UnityEngine; using System.Collections; public class kuncibenar : MonoBehaviour { public GameObject kuncibenarsatu ; // Use this for initialization void Start () { } // Update is called once per frame void OnMouseDown () { kuncibenarsatu .SetActive (false); GameObject nyawa = GameObject.Find ("nyawa"); nyawalevel3 a = nyawa.GetComponent<nyawalevel3> (); a.kunci -= 1; } void OnCollisionEnter (Collision col) { GameObject nyawa = GameObject.Find ("nyawa"); nyawalevel3 a = nyawa.GetComponent<nyawalevel3> (); if(col.gameObject.name == "kuncibenar") { a.hp-=1; } } }
Script 4. 5 script kunci benar
4. Kunci salah digunakan untuk mendeteksi kunci salah dan nilai
berkurang 1 apabila menekan kunci salah lalu meneruskan pada
script nyawa level 1.
using UnityEngine; using System.Collections; public class kuncisalah : MonoBehaviour { public GameObject kuncisalahsatu ;
63
// Use this for initialization void Start () { } // Update is called once per frame void OnMouseDown () { kuncisalahsatu.SetActive (false); GameObject nyawa = GameObject.Find ("nyawa"); nyawalevel3 z = nyawa.GetComponent<nyawalevel3>(); z.hp -= 1; } }
Script 4. 6 script kunci salah
4.4.3. Level 2
1. Nyawa level 2 digunakan untuk memberi ruang beberapa
canvas dan melakukan action saat hp berjumlah 0 dan api
berjumlah 0.
using UnityEngine; using System.Collections; using UnityEngine.UI; public class nyawalevel2 : MonoBehaviour { public int hp=5; public Text text; public Canvas x; public Canvas z; public int api=5; // Use this for initialization void Start () { } // Update is called once per frame void Update () { text.text = "" + hp; if (hp == 0) { x.enabled = true; } if (api == 0) { z.enabled = true; } } }
Script 4. 7 script nyawa level 1
64
2. Sript Api digunakan untuk mendeteksi tumbrukan, kerika
tumbrukan terjadi nyawa hp akan berkurang dan acrtion
selanjutnya diteruskan pada script nyawa level 2.
a. Api 1 menyimpan data bahwa api1 sudah melakukan
tumbrukan atau belum lalu meneruskan pada script nyawa
level 2.
using UnityEngine; using System.Collections; public class api1 : MonoBehaviour { public GameObject apisatu ; // Use this for initialization void Start () { } // Update is called once per frame void OnMouseDown () { apisatu.SetActive (false); GameObject nyawa = GameObject.Find ("nyawa"); nyawalevel2 a = nyawa.GetComponent<nyawalevel2> (); a.api -= 1; } void OnCollisionEnter (Collision col) { GameObject nyawa = GameObject.Find ("nyawa"); nyawalevel2 a = nyawa.GetComponent<nyawalevel2> (); if(col.gameObject.name == "pohon") { a.hp-=1; } } }
b. Api2 menyimpan data bahwa api1 sudah melakukan
tumbrukan atau belum lalu meneruskan pada script nyawa
level 2.
using UnityEngine; using System.Collections;
65
public class api2 : MonoBehaviour { public GameObject apidua ; // Use this for initialization void Start () { } // Update is called once per frame void OnMouseDown () { apidua.SetActive (false); GameObject nyawa = GameObject.Find ("nyawa"); nyawalevel2 a = nyawa.GetComponent<nyawalevel2> (); a.api -= 1; } void OnCollisionEnter (Collision col) { GameObject nyawa = GameObject.Find ("nyawa"); nyawalevel2 a = nyawa.GetComponent<nyawalevel2> (); if(col.gameObject.name == "pohon") { a.hp-=1; } } }
c. Api 3 menyimpan data bahwa api1 sudah melakukan
tumbrukan atau belum lalu meneruskan pada script nyawa
level 2.
using UnityEngine; using System.Collections; public class api3 : MonoBehaviour { public GameObject apitiga ; // Use this for initialization void Start () { } // Update is called once per frame void OnMouseDown () { apitiga.SetActive (false); GameObject nyawa = GameObject.Find ("nyawa"); nyawalevel2 a = nyawa.GetComponent<nyawalevel2> ();
66
a.api -= 1; } void OnCollisionEnter (Collision col) { GameObject nyawa = GameObject.Find ("nyawa"); nyawalevel2 a = nyawa.GetComponent<nyawalevel2> (); if(col.gameObject.name == "pohon") { a.hp-=1; } } }
d. Api 4 menyimpan data bahwa api1 sudah melakukan
tumbrukan atau belum lalu meneruskan pada script nyawa
level 2.
using UnityEngine; using System.Collections; public class api4 : MonoBehaviour { public GameObject apiempat ; // Use this for initialization void Start () { } // Update is called once per frame void OnMouseDown () { apiempat.SetActive (false); GameObject nyawa = GameObject.Find ("nyawa"); nyawalevel2 a = nyawa.GetComponent<nyawalevel2> (); a.api -= 1; } void OnCollisionEnter (Collision col) { GameObject nyawa = GameObject.Find ("nyawa"); nyawalevel2 a = nyawa.GetComponent<nyawalevel2> (); if(col.gameObject.name == "pohon") { a.hp-=1; } } }
67
e. Api 5 menyimpan data bahwa api1 sudah melakukan
tumbrukan atau belum lalu meneruskan pada script nyawa
level 2.
using UnityEngine; using System.Collections; public class api5 : MonoBehaviour { public GameObject apilima ; // Use this for initialization void Start () { } // Update is called once per frame void OnMouseDown () { apilima.SetActive (false); GameObject nyawa = GameObject.Find ("nyawa"); nyawalevel2 a = nyawa.GetComponent<nyawalevel2> (); a.api -= 1; } void OnCollisionEnter (Collision col) { GameObject nyawa = GameObject.Find ("nyawa"); nyawalevel2 a = nyawa.GetComponent<nyawalevel2> (); if(col.gameObject.name == "pohon") { a.hp-=1; } } }
Script 4. 8 script api
4.4.4. Level 3
1. Script gajah digunakan untuk memberikan ruang canvas serta
mendeteksi tumbrukan kemudian melakukan action ketika
mendeteksi tumbrukan jebakan maupun mendeteksi tumbrukan
non jebakan dengan string nama GameObject pada unity.
using UnityEngine; using System.Collections;
68
using UnityEngine.UI; public class gajah : MonoBehaviour { int hp=3; public Text text; public Canvas asd; public Canvas dsa; void Start () { } void Update () { text.text = "" + hp; if (hp == 0) { asd.enabled = true; } } void OnCollisionEnter (Collision col) { if(col.gameObject.name == "jebakan") { hp-=1; } if(col.gameObject.name == "finish") { dsa.enabled = true; } } }
Script 4. 9 script gajah
2. Script button controller
a. Atas digunakan untuk emeberikan fungsi gajah bergerak ke
atas menuju utara.
using UnityEngine; using System.Collections; public class atas : MonoBehaviour { public GameObject d; // Use this for initialization void Start () { }
69
// Update is called once per frame void OnMouseDown () { Vector3 position = d.transform.position; position.z++; d.transform.position = position; } }
b. Bawah digunakan untuk emeberikan fungsi gajah bergerak
ke atas menuju selatan.
using UnityEngine; using System.Collections; public class bawah : MonoBehaviour { public GameObject c; // Use this for initialization void Start () { } // Update is called once per frame void OnMouseDown () { Vector3 position = c.transform.position; position.z--; c.transform.position = position; } }
c. Kanan digunakan untuk emeberikan fungsi gajah bergerak
ke atas menuju timur.
using UnityEngine; using System.Collections; public class kanan : MonoBehaviour { public GameObject a; // Use this for initialization void Start () { } // Update is called once per frame void OnMouseDown () { Vector3 position = a.transform.position; position.x++; a.transform.position = position;
70
} }
d. Kiri digunakan untuk emeberikan fungsi gajah bergerak ke
atas menuju barat.
using UnityEngine; using System.Collections; public class kanan : MonoBehaviour { public GameObject b; // Use this for initialization void Start () { } // Update is called once per frame void OnMouseDown () { Vector3 position = b.transform.position; position.x--; b.transform.position = position; } }
Script 4. 10 script button controller
4.4.5. Level 4
1. Script nyawa level 4 digunakan untuk membuat ruang dan
menampilkan canvas menang, canvas kalah serta hp yang akan
terdeteksi pada script penyu1,2 dan 3 serta sampah 1 sampai
dengan 5.
using UnityEngine; using System.Collections; using UnityEngine.UI; public class nyawasampah : MonoBehaviour { public int hp=3; public int sampah=5; public Text text; public Canvas a; public Canvas b; // Use this for initialization void Start () { } // Update is called once per frame void Update () { text.text = "" + hp;
71
if (hp == 0) { a.enabled = true; } if (sampah == 0) { b.enabled = true; } } }
Script 4. 11 script nyawa level 4
2. Script sampah memberi nilai ketika mampu menyelesaikan 5
nilai maka canvas menang akan terbuka yang ada pada script
nyawa level 4.
a. Sampah 1, mendeteksi sentuhan pada objek sampah 1
kemudian nilainya dikurangi dan dilanjutkan pada action
nyawa level 4.
using UnityEngine; using System.Collections; public class sampah1 : MonoBehaviour { public GameObject a ; // Use this for initialization void Start () { } // Update is called once per frame void OnMouseDown () { a.SetActive (false); GameObject nyawa = GameObject.Find ("nyawa"); nyawasampah z = nyawa.GetComponent<nyawasampah>(); z.sampah -= 1; } }
b. Sampah 2, mendeteksi sentuhan pada objek sampah 2
kemudian nilainya dikurangi dan dilanjutkan pada action
nyawa level 4.
72
using UnityEngine; using System.Collections; public class sampah2 : MonoBehaviour { public GameObject b ; // Use this for initialization void Start () { } // Update is called once per frame void OnMouseDown () { b.SetActive (false); GameObject nyawa = GameObject.Find ("nyawa"); nyawasampah z = nyawa.GetComponent<nyawasampah>(); z.sampah -= 1; } }
c. Sampah 3, mendeteksi sentuhan pada objek sampah 3
kemudian nilainya dikurangi dan dilanjutkan pada action
nyawa level 4.
using UnityEngine; using System.Collections; public class sampah3 : MonoBehaviour { public GameObject c ; // Use this for initialization void Start () { } // Update is called once per frame void OnMouseDown () { c.SetActive (false); GameObject nyawa = GameObject.Find ("nyawa"); nyawasampah z = nyawa.GetComponent<nyawasampah>(); z.sampah -= 1; } }
73
d. Sampah 4, mendeteksi sentuhan pada objek sampah 4
kemudian nilainya dikurangi dan dilanjutkan pada action
nyawa level 4.
using UnityEngine; using System.Collections; public class sampah4 : MonoBehaviour { public GameObject d ; // Use this for initialization void Start () { } // Update is called once per frame void OnMouseDown () { d.SetActive (false); GameObject nyawa = GameObject.Find ("nyawa"); nyawasampah z = nyawa.GetComponent<nyawasampah>(); z.sampah -= 1; } }
e. Sampah 5, mendeteksi sentuhan pada objek sampah 5
kemudian nilainya dikurangi dan dilanjutkan pada action
nyawa level 4.
using UnityEngine; using System.Collections; public class sampah1 : MonoBehaviour { public GameObject e ; // Use this for initialization void Start () { } // Update is called once per frame void OnMouseDown () { e.SetActive (false); GameObject nyawa = GameObject.Find ("nyawa"); nyawasampah z = nyawa.GetComponent<nyawasampah>(); z.sampah -= 1;
74
} }
Script 4. 12 script sampah
3. Script penyu digunakan untuk menampilkan canvas kalah saat
terdeteksi tersentuh. Ada tiga ekor penyu yang akan bergerak
menuju sampah.
using UnityEngine; using System.Collections; public class penyu : MonoBehaviour { public GameObject penyuh ; // Use this for initialization void Start () { } // Update is called once per frame void OnMouseDown () { satu.SetActive (false); GameObject nyawa = GameObject.Find ("nyawa"); nyawasampah z = nyawa.GetComponent<nyawasampah>(); z.hp -= 1; } }
Script 4. 13 script sampah
4.4.6. Level 5
1. Jawaban Benar berfungsi untuk menyimpan nama yang benar
serta mendeteksi sentuhan tab, setelah mengetahui jawaban
benar objek jempol akan muncul kemudian otomatis menuju
soal berikutnya.
using UnityEngine; using System.Collections; public class namabenar : MonoBehaviour { public Canvas betul; public GameObject benar ; // Use this for initialization
75
void Start () { } // Update is called once per frame void OnMouseDown () { betul.enabled = true; Application.LoadLevel ("level5"); GameObject nyawa = GameObject.Find ("nyawa"); nyawalevel5 a = nyawa.GetComponent<nyawalevel5> (); a.nama -= 1; } void OnCollisionEnter (Collision col) { GameObject nyawa = GameObject.Find ("nyawa"); nyawalevel5 a = nyawa.GetComponent<nyawalevel5> (); if(col.gameObject.name == "namabenar") { a.hp-=1; } } }
Script 4. 14 script jawaban benar
2. Jawaban Salah mendeteksi sentuhan tab nama pulau yang salah
kemudian mengeluarkan canvas baru berupa canvas replay
untuk mengulang soal pada soal itu juga.
using UnityEngine; using System.Collections; public class namasalah1 : MonoBehaviour { public GameObject salah ; // Use this for initialization void Start () { } // Update is called once per frame void OnMouseDown () { salah.SetActive (false); GameObject nyawa = GameObject.Find ("nyawa"); nyawalevel5 z = nyawa.GetComponent<nyawalevel5>(); z.hp -= 1;
76
} }
Script 4. 15 script jawaban salah
4.4.7. Bonus
Script bonus yaitu 3D colloring by 3Djeebs dapat di download
gratis dengan link berikut ini
http://github.com/maximrouf/RegionCapture.
1. Script membaca objek tiga dimensi agar texture nyata dapat
diterapkan pada objek tiga dimensi tersebut.
using System; using System.Collections; using UnityEngine; using Vuforia; #if UNITY_EDITOR #pragma warning disable 0414 #endif public class Region_Capture : MonoBehaviour { private Camera Child_AR_Camera; private GameObject AR_Camera_Vector; private Renderer m_renderer; [Space(10)] public GameObject ARCamera; public GameObject ImageTarget; public GameObject BackgroundPlane; [Space(20)] public bool AutoRegionSize = true; public bool HideFromARCamera = true; public bool CheckMarkerPosition = false; [Space(20)] public bool ColorDebugMode = false; [HideInInspector] public bool MarkerIsOUT, MarkerIsIN; private bool Is_Child_ImageTarget, reverse_matrix; private float tmp00_init, tmp01_init, tmp02_init, tmp00_updt, tmp01_updt, tmp02_updt; private int frame_num; public static Texture VideoBackgroundTexure; public static float CPH,CPW,vuforia_ios_magic; private TrackableBehaviour mTrackableBehaviour; private void Start() { mTrackableBehaviour = ImageTarget.GetComponent<Vuforia.T
77
rackableBehaviour>(); if (!m_renderer) m_renderer = GetComponent<Renderer>(); AR_Camera_Vector = GameObject.Find("AR Camera Vector"); if (AR_Camera_Vector == null) { AR_Camera_Vector = new GameObject("AR Camera Vector"); } if (GetComponentInParent<ImageTargetBehaviour>()) Is_Child_ImageTarget = true; if (ARCamera == null || ImageTarget == null || BackgroundPlane == null) { Debug.LogWarning("ARCamera, ImageTarget or BackgroundPlane not assigned!"); enabled = false; } else { if (AutoRegionSize) { var imageTargetBehaviour = ImageTarget.GetComponent<ImageTargetBehaviour>(); if (Is_Child_ImageTarget) { transform.localPosition = Vector3.zero; transform.localEulerAngles = Vector3.zero; if (imageTargetBehaviour.GetSize().x > imageTargetBehaviour.GetSize().y) transform.localScale = new Vector3(0.1f, 0.1f,imageTargetBehaviour.GetSize().y/imageTargetBehaviour.GetSize().x*0.1f); else transform.localScale = new Vector3(imageTargetBehaviour.GetSize().x/imageTargetBehaviour.GetSize().y*0.1f, 0.1f, 0.1f); } else { transform.position = ImageTarget.transform.position; transform.localRotation = ImageTarget.transform.localRotation; transform.localScale = new Vector3(imageTargetBehaviour.GetSize().x, 10.0f, imageTargetBehaviour.GetSize().y)/10.0f; } }
78
Child_AR_Camera = ARCamera.GetComponentInChildren<Camera>(); gameObject.layer = 20; if (HideFromARCamera && !ColorDebugMode) Child_AR_Camera.cullingMask &= ~(1 << LayerMask.NameToLayer("Region_Capture")); if (ColorDebugMode) { m_renderer.material.SetInt("_KR", 0); m_renderer.material.SetInt("_KG", 1); } CPH = Child_AR_Camera.pixelHeight; CPW = Child_AR_Camera.pixelWidth; vuforia_ios_magic = 1.0f; StartCoroutine(Start_Initialize()); StartCoroutine(CheckVideoMode()); } if (SystemInfo.deviceModel.Contains ("iPad5,3") || SystemInfo.deviceModel.Contains ("iPad5,4")) reverse_matrix = true; } private void Initialize() { var meshFilter = BackgroundPlane.GetComponent<MeshFilter>(); if (VuforiaRenderer.Instance.IsVideoBackgroundInfoAvailable()) { var videoTextureInfo = VuforiaRenderer.Instance.GetVideoTextureInfo(); if (videoTextureInfo.imageSize.x == 0 || videoTextureInfo.imageSize.y == 0) goto End; var k_x = videoTextureInfo.imageSize.x/(float) videoTextureInfo.textuResize.x*0.5f; var k_y = videoTextureInfo.imageSize.y/(float) videoTextureInfo.textuResize.y*0.5f; m_renderer.material.SetFloat("_KX", k_x); m_renderer.material.SetFloat("_KY", k_y); VideoBackgroundTexure = VuforiaRenderer.Instance.VideoBackgroundTexture; if (!VideoBackgroundTexure || !meshFilter) goto End;
79
m_renderer.material.SetTexture("_MainTex", VideoBackgroundTexure); AR_Camera_Vector.transform.parent = ARCamera.transform; AR_Camera_Vector.transform.localPosition = Vector3.zero; AR_Camera_Vector.transform.localScale = new Vector3(1.0f, 1.0f, 1.0f); AR_Camera_Vector.transform.localEulerAngles = new Vector3(0.0f, 180.0f, 180.0f); #if !UNITY_EDITOR && !UNITY_STANDALONE var P = VuforiaUnity.GetProjectionGL(0, 0, 0); tmp00_init = P.m00; tmp01_init = P.m01; tmp02_init = P.m02; if (CameraDevice.Instance.GetCameraDirection() == CameraDevice.CameraDirection.CAMERA_FRONT) AR_Camera_Vector.transform.localEulerAngles = new Vector3 (0.0f, 0.0f, 0.0f); if (Screen.orientation == ScreenOrientation.LandscapeRight || Screen.orientation == ScreenOrientation.LandscapeLeft) vuforia_ios_magic = -1.0f; if (Screen.orientation == ScreenOrientation.Portrait) { if (Application.platform == RuntimePlatform.IPhonePlayer && tmp02_init < 0) vuforia_ios_magic = -2.0f; else vuforia_ios_magic = 1.0f; if (SystemInfo.deviceModel.Contains ("iPhone5,3") || SystemInfo.deviceModel.Contains ("iPhone5,4")) vuforia_ios_magic = -1.0f; } if (Screen.orientation == ScreenOrientation.PortraitUpsideDown) { if (Application.platform == RuntimePlatform.IPhonePlayer && tmp02_init > 0) vuforia_ios_magic = 2.0f; else vuforia_ios_magic = -1.0f; if (SystemInfo.deviceModel.Contains ("iPhone5,3") || SystemInfo.deviceModel.Contains ("iPhone5,4")) vuforia_ios_magic = 1.0f; } #endif #if UNITY_EDITOR || UNITY_STANDALONE AR_Camera_Vector.transform.localPosition = new Vector3(0.0f, ImageTarget.GetComponent<ImageTargetBehaviour>().GetSize().x/240.0f, 0.0f);
80
#else float aspect = (float)videoTextureInfo.imageSize.x / (float)videoTextureInfo.imageSize.y; if (Screen.orientation == ScreenOrientation.Portrait || Screen.orientation == ScreenOrientation.PortraitUpsideDown) { AR_Camera_Vector.transform.localScale = new Vector3 (1.0f / aspect, aspect, 1.0f); } #endif End: if (videoTextureInfo.imageSize.x == 0 || videoTextureInfo.imageSize.y == 0 || !VideoBackgroundTexure || !meshFilter) { StartCoroutine (Start_Initialize ()); } } else { StartCoroutine(Start_Initialize()); } } private void LateUpdate() { if (AutoRegionSize && !Is_Child_ImageTarget) { transform.position = ImageTarget.transform.position; transform.localRotation = ImageTarget.transform.localRotation; } var M = transform.localToWorldMatrix; var V = AR_Camera_Vector.transform.worldToLocalMatrix; var P = VuforiaUnity.GetProjectionGL(0, 0, 0); #if !UNITY_EDITOR && !UNITY_STANDALONE tmp00_updt = P.m00; tmp01_updt = P.m01; tmp02_updt = P.m02; if (tmp00_updt != tmp00_init || tmp01_updt != tmp01_init || tmp02_updt != tmp02_init) StartCoroutine(Start_Initialize()); if (Screen.orientation == ScreenOrientation.LandscapeRight) P.m02 *= vuforia_ios_magic; if (Screen.orientation == ScreenOrientation.LandscapeLeft) P.m12 *= vuforia_ios_magic; if (Screen.orientation == ScreenOrientation.Portrait || Screen.orientation == ScreenOrientation.PortraitUpsideDown) { if (reverse_matrix) {
81
P.m02 = -P.m12; P.m12 = -tmp02_updt; } P.m02 /= vuforia_ios_magic; P.m12 *= vuforia_ios_magic; } #endif m_renderer.material.SetMatrix("_MATRIX_MVP", P*V*M); if (mTrackableBehaviour != null && (int)mTrackableBehaviour.CurrentStatus > 1) { m_renderer.material.SetFloat ("_Alpha", 1); m_renderer.enabled = true; } else { m_renderer.material.SetFloat ("_Alpha", 0); frame_num += 1; if (frame_num > 3) { m_renderer.enabled = false; frame_num = 0; } } if (CheckMarkerPosition || ColorDebugMode) { var boundPoint1 = m_renderer.bounds.min; var boundPoint2 = m_renderer.bounds.max; var boundPoint3 = new Vector3(boundPoint1.x, boundPoint1.y, boundPoint2.z); var boundPoint4 = new Vector3(boundPoint2.x, boundPoint1.y, boundPoint1.z); var screenPos1 = Child_AR_Camera.WorldToScreenPoint(boundPoint1); var screenPos2 = Child_AR_Camera.WorldToScreenPoint(boundPoint2); var screenPos3 = Child_AR_Camera.WorldToScreenPoint(boundPoint3); var screenPos4 = Child_AR_Camera.WorldToScreenPoint(boundPoint4); if (screenPos1.x < 0 || screenPos1.y < 0 || screenPos2.x < 0 || screenPos2.y < 0 || screenPos3.x < 0 || screenPos3.y < 0 || screenPos4.x < 0 || screenPos4.y < 0 || screenPos1.x > CPW || screenPos1.y > CPH || screenPos2.x > CPW || screenPos2.y > CPH || screenPos3.x > CPW || screenPos3.y > CPH || screenPos4.x > CPW || screenPos4.y > CPH)
82
{ if (!MarkerIsOUT) { StartCoroutine(Start_MarkerOutOfBounds()); MarkerIsOUT = true; MarkerIsIN = false; } } else { if (!MarkerIsIN) { StartCoroutine(Start_MarkerIsReturned()); MarkerIsIN = true; } MarkerIsOUT = false; } } } private void MarkerOutOfBounds() { // Add action here if marker out of bounds Debug.Log("Marker out of bounds!"); if (ColorDebugMode) { m_renderer.material.SetInt("_KR", 1); m_renderer.material.SetInt("_KG", 0); } } private void MarkerIsReturned() { // Add action here if marker is visible again Debug.Log("Marker is returned!"); if (ColorDebugMode) { m_renderer.material.SetInt("_KR", 0); m_renderer.material.SetInt("_KG", 1); } } private IEnumerator Start_Initialize() { yield return new WaitForEndOfFrame(); Initialize(); }
83
private IEnumerator CheckVideoMode() { var rtc = GetComponent<RenderTextureCamera>(); while (true) { yield return new WaitForSeconds(1); if (Math.Abs(CPH - Child_AR_Camera.pixelHeight) > Mathf.Epsilon || Math.Abs(CPW - Child_AR_Camera.pixelWidth) > Mathf.Epsilon) { CPH = Child_AR_Camera.pixelHeight; CPW = Child_AR_Camera.pixelWidth; StartCoroutine(Start_Initialize()); if (rtc && rtc.enabled) rtc.RecalculateTextuResize(); } yield return null; } } private IEnumerator Start_MarkerOutOfBounds() { yield return new WaitForEndOfFrame(); MarkerOutOfBounds(); } private IEnumerator Start_MarkerIsReturned() { yield return new WaitForEndOfFrame(); MarkerIsReturned(); } public void RecalculateRegionSize() { var imageTargetBehaviour = ImageTarget.GetComponent<ImageTargetBehaviour>(); transform.position = ImageTarget.transform.position; transform.localRotation = ImageTarget.transform.localRotation; transform.localScale = new Vector3(imageTargetBehaviour.GetSize().x, 10.0f, imageTargetBehaviour.GetSize().y)/10.0f; } }
2. Script untuk menerapkan texture nyata realtime ditampilkan
pada objek tiga dimensi tersebut.
84
using UnityEngine; using System.Collections; public class GetTexture : MonoBehaviour { private Region_Capture monobehaviour; private Camera RenderTextureCamera; [Space(20)] public GameObject Region_Capture; [Space(20)] public bool FreezeEnable = false; void Start () { RenderTextureCamera = Region_Capture.GetComponentInChildren<Camera>(); monobehaviour = Region_Capture.GetComponent<Region_Capture> (); if (FreezeEnable) { monobehaviour.CheckMarkerPosition = true; } StartCoroutine(WaitForTexture()); } private IEnumerator WaitForTexture() { yield return new WaitForEndOfFrame (); if (RenderTextureCamera.targetTexture) { GetComponent<Renderer> ().material.SetTexture ("_MainTex", RenderTextureCamera.targetTexture); } else StartCoroutine(WaitForTexture()); } void LateUpdate () { if (FreezeEnable && monobehaviour.MarkerIsOUT) RenderTextureCamera.enabled = false; else RenderTextureCamera.enabled = true; } }
Script 4. 16 script 3D coloring
85
4.5. View Game
Game “Rare Animal” diangkat dari kejadian nyata ancaman satwa-
satwa tersebut menjadi krisis keberadaanya. Ada 5 satwa yang menjadi
sorotan WWF-Indonesia karena dalam garis merah kepunahan diantranya
yaitu, Gajah Sumatra, Badak Jawa, Badak Sumatra, Orangutan Borneo,
Penyu Hijau, Harimau Sumatra dan 15 satwa yang menjadi prioritas
Kementrian Perhutanan. Berikut tampilan 5 satwa sebagai pembukaan
game berisi informasi-informasi satwa tersebut dalam bentuk virtual.
Gambar 4. 9 Tampilan awalan Rare Animal
86
Level pertama menceritakan kejadian penyebab utama krisinya
keberadaan Badak Jawa dan Badak Sumatra yaitu perburuan untuk
dimanfaatkan cula dan dagingnya, sebab dipercaya mampu mengobati
suatu macam penyakit. Dalam level ini player ditugaskan untuk mencari
kunci yang benar guna membebaskan Badak Jawa dan Badak Sumatra
agar hewan tersebut bebas dan lestari kembali.
Level 2 memberikan kesan hutan sawit, seperti kejadian kebakaran
hutan kelapa sawit yang mengakibatkan orangutan Borneo menipis
pupulasinya. Dalam level ini player ditugaskan untuk mematikan api yang
merembet menuju pohon sawit agar habitat hutan sawit sanatiasa terjaga.
Level ke-3 menceritakan kasus nyata pada karakter gajah Sumatra,
hewan tersebut mengalami kepunahan pengambilan lahan yang
menimbulkan konflik sehingga gajah Sumatra turun pada kawasan
Gambar 4. 10 Tampilan level 1 Rare Animal
Gambar 4. 11 Tampilan level 2 Rare Animal
87
penduduk untuk mencari makan. Pada level ini player harus membantu
gajah Sumatra untuk mendapatkan makanan secara aman tanpa melewati
ranjau yang dipasang warga sehingga tidak kepalaran.
Level ke-4 simulasi pantai yang kotor dengan bebrapa sampah.
Ancaman kepunahan penyu hijau ialah sampah yang ada di laut
mengakibatkan keracunan pada penyu dan penyu dapat mati apabila
tersangkut sampah. Player ditugaskan untuk membersihkan sampah untuk
meminimalisir kejadian-kejadian tersebut sehingga habitat penyu hijau
tetap terjaga.
Level 5 memberi edukasi tempat tinggal satwa-satwa langka yang
ada di Indonesia. Sebagai wawasan terhadap pemain bahwa masih banyak
satwa yang di Indonesia dalam spesies prioritas. Dari pulau Sumatra,
Jawa, Nusa Tenggara, Papua, Maluku, Sulawesi dan Kalimantan. Satwa
Gambar 4. 12 Tampilan level 3 Rare Animal
Gambar 4. 13 Tampilan level 4 Rare Animal
88
dalam soal, merupakan satwa dengan Score 100-90 prioritas kepunahan
menurut Kementrian Perhutanan.
Tampilan bonus coloring bebek, sebagai reward telah
menyelesaikan semua game. Sebagai hiburan dengan konsep GetTexture
Real yaitu mengaplikasi warna nyata dalam kertas hvs yang diaplikasikan
pada objek tiga dimensi.
Gambar 4. 14 Tampilan level 5 Rare Animal
Gambar 4. 15 Coloring bebek “Rare Animal”
89
4.6. Analisa Game
4.6.1. Krisisnya Kepedulian Terhadap Satwa Langka
Berdasarkan data survei 41 responden, kepedulian terhadap satwa
langka masih rendah. Penulis memberikan 5 soal sikap/ perilaku
responden apa yang harus dilakukan tentang kejadian nyata penyebab
satwa tersebut langka. Yang pertama, apabila ada hewan langka yang
kelaparan apa yang kamu lakukan. Kedua, apabila ada hewan langka yang
tersiksa dalam kurungan apa yang kamu lakukan. Ketiga, apabila ada
kebakaran hutan apa yang kamu lakukan. Kempat, apabila kamu melihat
sampah di laut apa yang kamu lakukan. Kelima, apabila ada hewan langka
di daerahmu apa yang kamu lakukan. Berikut hasil data yang sudah diolah:
0 5 10 15 20 25 30 35
Mengusirnya, menyakiti (menemdang,memukul), Mengusirnya, tidak…
Tetap mengurungnya, menyakiti(menemdang, memukul), Tetap…
Memperparah kebakaran, Pura-puratidak tau, Tidak melakukan apa-apa
Ikut membuang sampah di laut,Membuang sampah di pinggir laut,…
Tidak peduli, Tidak tau harus melakukanapa, Ikut serta melindungi dengan…
Diagram Kurangnya Kepedulian Terhadap Satwa Langka
Gambar 4. 16 Diagram sumber data primer yang diolah
90
1. Ketika ada satwa langka yang sedang kelaparan, terdapat 16 dari 41
(39%) responden menjawab mengusirnya dengan menyakiti
(menendang, memukul) / mengusirnya tidak menyakiti / hanya
melihatnya saja.
2. Ketika ada satwa langka yang tersiksa dalam kurungan, terdapat 33
dari 41 (80%) responden menjawab tetap mengurungnya dengan
menyakiti (menendang, memukul) / tetap mengurungnya tanpa
menyakiti / hanya melihatnya saja.
3. Ketika ada kebakaran hutan, terdapat 25 dari 41 (60%) responden
menjawab memperparah kebakaran / pura-pura tidak tau / tidak
melakukan apa-apa.
4. Ketika melihat sampah dilaut, terdapat 26 dari 41 (63%) responden
menjawab ikut membuang sampah di laut / membuang sampah di
pinggir laut / tidak melakukan apa-apa.
5. Ketika ada satwa langka di daerah tempat tinggal, terdapat 31 dari 41
(75%) responden menjawab tidak peduli / tidak tau harus melakukan
apa / ikut serta melindungi dengan terpaksa.
Dapat ditarik kesimpulan dari 41 responden, kepedulian terhadap
satwa diatas masih minim. Mayoritas responden tidak tau harus
melakukan apa apabila ada satwa langka didaerah tempat tinggalnya.
Serta kepedulian terhadap lingkungan habitat tempat tinggal masih
rendah.
91
4.6.2. Dampak setelah bermain game “Rare Animal”
Responden diberi 5 pertanyaan yang sama untuk dapat
membandingankan hasil setelah bermain game. Pertanyaan sebelum
bermain game atau bisa disebut dengan pre-test dan pertanyaan sesudah
bermain game atau bisa disebut dengan post-test. Berisi pertanyaan
kualitatif yang berupa pilihan ganda. Ada 1-5 Score, Score paling baik
adalah 5 dan yang paling buruk adalah 1. Berikut pertanyaan-pertanyaan
yang dibuat sama;
Kode A1, apabila ada hewan langka yang kelaparan apa yang kamu
lakukan.
Kode A2, apabila ada hewan langka yang tersiksa dalam kurungan apa
yang kamu lakukan.
Kode A3, apabila ada kebakaran hutan apa yang kamu lakukan.
Kode A4, apabila kamu melihat sampah di laut apa yang kamu
lakukan.
Kode A5, apabila ada hewan langka di daerahmu apa yang kamu
lakukann.
92
Responden Usia Jenis Kelamin A1 A2 A3 A4 A5
Pre-test
Score A1 A2 A3 A4 A5
Post-test
Score
1 10 Perempuan 2 2 2 1 3 10 4 4 4 5 4 21
2 10 Perempuan 4 4 3 3 4 18 4 4 4 4 3 19
3 10 Laki-laki 2 2 2 3 3 12 4 4 4 4 4 20
4 10 Perempuan 2 1 2 2 2 9 4 4 4 4 4 20
5 12 Perempuan 1 1 2 2 1 7 4 4 4 3 2 17
6 10 Perempuan 2 2 3 1 1 9 4 4 4 3 2 17
7 10 Laki-laki 2 2 2 2 1 9 4 4 4 4 4 20
8 10 Perempuan 4 4 4 4 4 20 4 4 4 4 4 20
9 11 Perempuan 4 4 5 4 4 21 4 4 5 4 4 21
10 10 Perempuan 4 4 4 4 3 19 4 5 4 5 4 22
11 10 Perempuan 4 3 3 3 3 16 4 4 4 4 4 20
12 10 Perempuan 4 4 4 3 3 18 4 5 4 5 5 23
13 10 Laki-laki 2 2 2 3 3 12 5 4 5 4 3 21
14 9 Perempuan 4 3 3 4 3 17 5 5 5 5 5 25
15 10 Perempuan 4 4 4 4 4 20 5 4 5 4 5 23
16 11 Perempuan 3 3 4 4 3 17 5 5 5 5 4 24
17 11 Laki-laki 2 3 4 3 3 15 4 4 4 4 3 19
18 12 Laki-laki 3 3 3 3 3 15 4 4 4 4 3 19
19 9 Perempuan 3 3 4 3 2 15 4 4 4 4 4 20
20 11 Perempuan 3 3 3 3 3 15 2 3 2 3 2 12
21 11 Perempuan 2 2 3 3 2 12 4 2 2 2 2 12
22 12 Laki-laki 4 3 3 4 3 17 4 4 2 3 4 17
Tabel Perbandingan Pre-test & Post-test
93
Responden Usia Jenis Kelamin A1 A2 A3 A4 A5
Pre-test
Score A1 A2 A3 A4 A5
Post-test
Score
24 11 Perempuan 4 3 4 4 4 19 5 5 5 5 5 25
25 9 Perempuan 4 3 2 3 3 15 4 4 4 4 3 19
26 9 Laki-laki 5 5 3 4 4 21 5 5 4 4 5 23
27 12 Perempuan 1 2 3 4 3 13 4 3 5 4 4 20
28 10 Laki-laki 4 4 4 4 5 21 4 4 3 4 4 19
29 11 Laki-laki 2 2 2 2 2 10 5 5 5 5 5 25
30 11 Laki-laki 2 3 3 4 3 15 4 4 4 3 4 19
31 10 Perempuan 3 3 3 3 4 16 5 4 5 4 5 23
32 10 Perempuan 3 2 3 2 3 13 5 5 4 4 5 23
33 12 Perempuan 3 3 3 3 2 14 5 5 5 5 5 25
34 10 Perempuan 2 3 4 3 2 14 4 4 3 2 3 16
35 11 Perempuan 3 3 4 4 3 17 4 4 4 4 4 20
36 10 Perempuan 3 3 4 2 4 16 5 5 4 4 4 22
37 11 Perempuan 2 3 2 3 3 13 4 4 4 4 4 20
38 10 Perempuan 2 3 4 2 3 14 5 4 5 4 5 23
39 9 Laki-laki 4 3 4 4 4 19 4 4 5 4 2 19
40 9 Laki-laki 3 3 3 3 3 15 4 3 4 4 4 19
41 10 Perempuan 4 2 4 3 2 15 5 4 5 4 5 23
Score Total=619 Score Total=840
Table 4. 3 Tabel score perbandingan post-test & pre-test
94
Berdasarkan data di atas total Score mengalami peningkatan dari
619 menjadi 840 atau dapat dikatakan 36% meningkat. Responden yang
tadinya tidak tau harus melakukan apa apabila ada satwa langka didaerah
tempat tinggalnya menjadi lebih tau apa yang harus dilakukan. Serta
kepedulian terhadap lingkungan habitat tempat tinggal masih rendah
menjadi meningkat setelah bermain game.
Guna validitas data, penulis melakukan uji tabel T t-Test: Paired
Two Sample for Means sehingga meminimalisir perhitungan yang salah
pada tabel di atas. Dengan membandingkan kode soal A1 pre-test
dibandingkan dengan kode soal A1 post-test, kode soal A2 pre-test
dibandingkan dengan kode soal A2 post-test, kode soal A3 pre-test
dibandingkan dengan kode soal A3 post-test, kode soal A4 pre-test
dibandingkan dengan kode soal A4 post-test dan yang terakhir kode soal
A5 pre-test dibandingan dengan kode soal A5 post-test.
Table 4. 4 T-Test: Paired Two Sample for Means kode soal A1
Variable 1
Variable
2
Mean 2.975609756 4.219512
Variance 0.974390244 0.62561
Observations 41 41
Pearson Correlation 0.007028788
Hypothesized Mean Difference 0
Df 40
t Stat -6.318485106
P(T<=t) one-tail 8.4293908
t Critical one-tail 1.683851013
P(T<=t) two-tail 1.6858807
t Critical two-tail 2.02107539
95
Terdapat hipotesa sebagai berikut untuk kode soal A1, H1: game
berpengaruh positif terhadap kepedulian terhadap satwa langka. H0: game
tidak berpengaruh positif terhadap kepedulian terhadap satwa langka. Pada
kode soal A1 diketahui bahwa t Stat lebih kecil dibandingkan dengan t
Critical one-tile. Dengan kata lain t-Stat -6.318485106 < Critical one-tile
1.683851013 yang berarti pre-test dan post-test mengalami perubahan
yang signifikan sehingga dapat diketahui bahwa H1 dapat diterima.
Table 4. 5 T-Test: Paired Two Sample for Means kode soal A2
Variable
1
Variable
2
Mean 2.878049 4.073171
Variance 0.709756 0.569512
Observations 41 41
Pearson Correlation 0.09303
Hypothesized Mean Difference 0
df 40
t Stat -7.1022
P(T<=t) one-tail 6.7609
t Critical one-tail 1.683851
P(T<=t) two-tail 1.3508
t Critical two-tail 2.021075
Terdapat hipotesa sebagai berikut untuk kode soal A2, H1: game
berpengaruh positif terhadap kepedulian terhadap satwa langka. H0: game
tidak berpengaruh positif terhadap kepedulian terhadap satwa langka. Pada
kode soal A1 diketahui bahwa t Stat lebih kecil dibandingkan dengan t
Critical one-tile. Dengan kata lain t-Stat -7.1022< Critical one-tile
1.683851 yang berarti pre-test dan post-test mengalami perubahan yang
signifikan sehingga dapat diketahui bahwa H1 dapat diterima.
96
Table 4. 6 T-Test: Paired Two Sample for Means kode soal A3
Variable 1 Variable 2
Mean 3.195121951 4.073171
Variance 0.66097561 0.769512
Observations 41 41
Pearson Correlation -0.090627823
Hypothesized Mean Difference 0
Df 40
t Stat -4.501758843
P(T<=t) one-tail 2.8515505
t Critical one-tail 1.683851013
P(T<=t) two-tail 5.7031105
t Critical two-tail 2.02107539
Terdapat hipotesa sebagai berikut untuk kode soal A3, H1: game
berpengaruh positif terhadap kepedulian terhadap satwa langka. H0: game
tidak berpengaruh positif terhadap kepedulian terhadap satwa langka. Pada
kode soal A1 diketahui bahwa t Stat lebih kecil dibandingkan dengan t
Critical one-tile. Dengan kata lain t-Stat -4.501758843< Critical one-tile
1.683851013 yang berarti pre-test dan post-test mengalami perubahan
yang signifikan sehingga dapat diketahui bahwa H1 dapat diterima.
Table 4. 7 T-Test Paired Two Sample for Means kode soal A4
Variable 1
Variable
2
Mean 3.097560976 3.902439
Variance 0.740243902 0.740244
Observations 41 41
Pearson Correlation -0.020593081
Hypothesized Mean Difference 0
df 40
t Stat -4.192695135
P(T<=t) one-tail 7.4079605
t Critical one-tail 1.683851013
P(T<=t) two-tail 0.000148159
t Critical two-tail 2.02107539
97
Terdapat hipotesa sebagai berikut untuk kode soal A4, H1: game
berpengaruh positif terhadap kepedulian terhadap satwa langka. H0: game
tidak berpengaruh positif terhadap kepedulian terhadap satwa langka. Pada
kode soal A1 diketahui bahwa t Stat lebih kecil dibandingkan dengan t
Critical one-tile. Dengan kata lain t-Stat -4.192695135< Critical one-tile
1.683851013 yang berarti pre-test dan post-test mengalami perubahan
yang signifikan sehingga dapat diketahui bahwa H1 dapat diterima.
Table 4. 8 T-Test Paired Two Sample for Means kode soal A5
Variable 1
Variable
2
Mean 2.951219512 3.804878
Variance 0.797560976 1.110976
Observations 41 41
Pearson Correlation 0.122428843
Hypothesized Mean Difference 0
df 40
t Stat -4.219624694
P(T<=t) one-tail 6.8219105
t Critical one-tail 1.683851013
P(T<=t) two-tail 0.000136438
t Critical two-tail 2.02107539
Terdapat hipotesa sebagai berikut untuk kode soal A4, H1: game
berpengaruh positif terhadap kepedulian terhadap satwa langka. H0: game
tidak berpengaruh positif terhadap kepedulian terhadap satwa langka. Pada
kode soal A1 diketahui bahwa t Stat lebih kecil dibandingkan dengan t
Critical one-tile. Dengan kata lain t-Stat -4.219624694< Critical one-tile
1.683851013 yang berarti pre-test dan post-test mengalami perubahan
yang signifikan sehingga dapat diketahui bahwa H1 dapat diterima.
98
0
5
10
15
20
25
Sangat Suka Suka Biasa Saja Kurang Suka Tidak Suka
Dari 5 tabel t-Test: Paired Two Sample for Means dapat diketahui
bahwa kode soal A1, A2, A3, A4 dan A5 rata-rata menunjukan perubahan
yang signifikan atau dapat dikatakan H1 game mampu dapat
meningkatkan kepedulian terhadap satwa langka dapat diterima. Sehingga
dari tabel “Perbandingan Pre-test & Post-test” dan tabel “t-Test: Paired
Two Sample for Means” menunjukan bahwa game Rare Animal
berdampak positif terhadap responden. Harapan penulis agar responden
menerapkan isi dalam game tercapai.
4.6.3. Formulasi Game “Rare Animal” Berpengaruh Pada Minat
Bermain
1. Apakah Kamu menyukai game “Rare Animal"?
Berdasarkan analisa data, terdapat 20 dari 41 responden
memberikan pernyataan sangat suka terhadap game”Rare Animal”, 14
dari 41 responden menyukai game “Rare Animal”, 3 dari 41
Gambar 4. 17 Diagram batang analisa pada minat 1
99
0
5
10
15
20
25
Sangat suka Suka Biasa Saja Kurang suka Tidak suka
responden menyatakan biasa saja , 2 dari 41 responden kurang suka
game “Rare Animal”, 2 dari 41 responden tidak suka game “Rare
Animal”. Total seluruhnya 82% responden menyukai / sangat
menyukai game “Rare Animal”.
2. Apakah Kamu menyukai game 3 Dimensi berbasis Augmented
Reality ?
Berdasarkan anilsa data, terdapat 15 dari 41 responden sangat
menyukai formulasi game dengan Augmented Reality, 21 dari 41
responden menyukai, 3 dari 41 responden beranggapan biasa saja, 1
dari 41 responden kurang menyukai, 1 dari 41 responden menyatakan
tidak suka sama sekali. Total seluruhnya 90% responden menyukai
game 3 Dimensi berbasis Augmented Reality.
Gambar 4. 18 Diagram batang analisa pada minat 2
100
0
5
10
15
20
25
SangatBersemangat
Bersemangat Biasa saja Kurangbersemangat
TidakBersemangat
3. Apakah kamu bersemangat bermain game “Rare Animal”
Berdasarkan analisa data, terdapat 13 dari 41 responden sangat
bersemangat saat bermainkan game “Rare Animal”, 23 dari 41
responden menyatakan bersemangat, 1 dari 41 responden menyatakan
biasa saja, 3 dari 41 responden menyatakan kurang semangat dan 1
dari 41 responden menyetakan tidak semangat saat bermain game
“Rare Animal”. Total seluruhnya 88% responden menyatakan sangat
bersemangat / bersemangat memainkan geme “Rare Animal”.
Gambar 4. 19 Diagram batang analisa pada minat 3
101
0
2
4
6
8
10
12
14
16
18
20
Sangat ingin Ya, ingin Biasa saja Kurang ingin Tidak ingin
4. Apakah Kamu ingin mengajak temanmu untuk bermain game
“Rare Animal”?
Berdasarkan data di atas, terdapat 13 dari 41 responden
menyatakan sangat ingin mengajak temanya untuk bermain game
“Rare Animal”, 19 dari 41 menyatakan ingin, 6 dari 41 menyatakn
biasa saja, 3 dari 41 menyatakan kurang ingin dan tidak ada yang
menjawab tidak ingin. Total seluruhnya 78% responden menyatakan
sangat ingin mengajak / ingin mengajak temanya untuk bermain game
“Rare Animal”.
Dari 4 pertanyaan di atas menyatakn lebih dari 75% responden
menjawab sangat suka / suka / sangat bersemangat / bersemangat /
sangat ingin mengajak / ingin mengajak. Sehingga formulasi game
dengan Augmented Reality berpengaruh positif pada minat bermain
anak-anak tentang satwa langka yang dikemas pada game “Rare
Animal”.
Gambar 4. 20 Diagram batang analisa pada minat 4
102
0
5
10
15
20
25
Sangat setuju Setuju Biasa saja Kurang setuju Tidak setuju
4.6.4. Game Menjadi Media Pembelajaran Interkatif yang
Menyenangkan
1. Apakah Kamu setuju belajar satwa langka bisa menggunakan game
“Rare Animal” ?
Berdasarkan data, terdapat 14 dari 41 responden menjawab sangat
setuju, 21 dari 41 responden menjawab setuju, 5 dari 41 responden
menjawab biasa saja, tidak ada yang menjawab kurang setuju, 1 dari
41 responden menjawab tidak setuju. Total seluruhnya 85% responden
menyatakan bahwa sangat setuju / setuju game “Rare Animal” dapat
digunakan untuk belajar satwa langka.
Gambar 4. 21 Diagram batang analisa game menjadi media pembelajaran interaktif 1
103
0
5
10
15
20
25
Sangat setuju Setuju Biasa saja Kurang setuju Tidak setuju
2. Apakah menurut Kamu game “Rare Animal” dapat mempermudah
mengingat suatu informasi?
Berdasarkan data, terdapat 10 dari 41 responden menjawab
sangat setuju, 20 dari 41 responden menjawab setuju, 6 dari 41
responden menjawab biasa saja, 5 dari 41 responden menjawab kurang
setuju, tidak ada yang menjawab tidak setuju. Total seluruhnya 73%
responden menyatakan bahwa sangat setuju / setuju game “Rare
Animal” dapat mempermudah memingat suatu informasi.
Gambar 4. 22 Diagram batang analisa game menjadi media pembelajaran interaktif 2
104
3. Apakah menurut Kamu bermain game ”Rare Animal”
menyenangkan?
Gambar 4. 23 Diagram batang analisa game menjadi media pembelajaran interaktif 3
Berdasarkan data terdapat 9 dari 41 responden menjawab
sangat menyenangkan, 23 dari 41 responden menjawab setuju, 6 dari
41 responden menjawab biasa saja, 3 dari 41 responden menjawab
kurang setuju, tidak ada yang menjawab tidak setuju. Total seluruhnya
78% responden menyatakan bahwa sangat menyenangkan /
menyenangkan bermain game “Rare Animal”.
Dari ke-3 pertanyaan tersebut menunjukan di atas 70%
responden menyatakan hal positif terhadap game, sehingga game
“Rare Animal” mampu menjadi media pembelajaran interaktif yang
menyenangkan.
0
5
10
15
20
25
105
Berdasarkan data, adapun saran yang diberikan responden untuk game
”Rare Animal”:
1. Level game hanya sedikit.
2. Pada stage penyu itemnya berjalan terlalu cepat.
3. Kurang mengetahui apa yang harus dilakukan.
4. Level terakhir terlalu banyak soal.
5. Loading agak lama.
Berdasarkan data, adapun masukan yang diberikan responden untuk
game ”Rare Animal”:
1. Level game ditambah.
2. Stage penyu dilambatkan jalannya.
3. Menambah petunjuk bermain agar tau apa yang harus dilakukan.
4. Mengurangi soal pada level terkahir.
5. Melakukan sesuatu agar loading tidak lama.
Dari beberapa masukan, dapat diketahui bahwa game “Rare
Animal” sudah memenuhi tujuan utama penulis. Namun ada beberapa
hal yang dirasa responden kurang nyaman saat bermain game “Rare
Animal”. Diantaranya level yang terlalu sedikit, beberapa level yang
itemnya berjalan terlalu cepat, kuranngnya petunjuk main, pada level
quis pertanyaan terlalu banyak dan loading agak lama.