Blogging for sharing, sekedar berbagi ilmu dan pengalaman

Tutorial Cara Membuat Game 2D Menggunakan Unity dan Orthello Framework

August 26, 2013 Posted by Ahmad Saifuddin Azhar 35 comments


Unity adalah sebuah game engine dimana engine ini memiliki kemampuan untuk membuat game-game 3D dengan berbagai efek yang memukau, seperti efek lighting, physics, dsb. Namun tahukah Anda bahwa Unity dapat pula digunakan untuk membuat game 2D? Ya, selain untuk membuat game-game 3D ternyata unity juga memiliki kemampuan untuk membuat game 2D. Namun seberapa ampuhkah kemampuan unity untuk membuat game 2D? Apakah bisa seampuh engine 2D lain seperti flash, game maker, dsb? Hal ini merupakan pertanyaan yang cukup sulit, karena setiap developer tentu memiliki tools-tools andalan mereka dalam membuat produknya. Namun bagi saya pribadi sebagai seorang developer yang sering memanfaatkan tools Unity, saya sangat yakin bahwa Unity sama sekali tidak kalah dengan engine-engine 2D lainnya asalkan developer mampu memanfaatkan tools-tools dalam unity secara maksimal. Hal ini dibuktikan dengan munculnya berbagai game-game 2D yang cukup fenomenal yang dibuat menggunakan Unity. Sebut saja Bad piggies, game 2D besutan Rovio yang sangat sangat terkenal ternyata juga dibuat menggunakan Unity.


Selain kemampuannya yang sudah cukup sakti, kemampuan Unity dalam membuat game-game 2D juga sangat didukung dengan adanya berbagai library/framework tambahan yang sangat memudahkan untuk membuat game-game 2D. Contoh framework yang sangat terkenal adalah 2DToolkit dan Orthello. Khusus untuk artikel kali ini saya bermaksud untuk membahas tentang pembuatan animasi simple menggunakan salah satu framework 2D yaitu Orthello. Kenapa orthello saya pilih karena alasan utamanya adalah orthello merupakan framework yang gratis namun memiliki kemampuan yang tidak kalah dengan framework berbayar lainnya. Adapun alat dan bahan yang perlu dipersiapkan untuk mengikuti tutorial ini adalah sbb :

  1. Unity (Yang ini pastinya lah, judulnya aja Simple 2D Sprite di Unity. Anda dapat mendownload Unity di situs resminya di sini)
  2.  Orthello framework (Anda dapat mendownload orthello free di situs resminya di sini)
    Texture packer (Tools untuk membuat sprite 2D, Anda dapat mendownloadnya di situs resminya di sini)
  3.  Asset, optional (Ini adalah contoh sprite sederhana buatan saya, Anda dapat mendownloadnya di sini)
Peringatan : 
Sebelum Anda membaca lebih jauh saya menawarkan alternatif tutorial membuat game 2D tanpa menggunakan orthello framework disini

Nah… Jika semua tools telah siap saatnya kita mulai percobaannya. Langkah pertama sebagai pemanasan adalah siapkan spritenya. Dalam tutorial ini saya memiliki 4 buah gambar yang akan saya jadikan sebuah sprite dengan 2 animasi, yaitu idle (diam) dan walk_right (berjalan ke kanan).


Langkah selanjutnya kita buat project baru di Unity. Ketik file >> new project >> buat project baru


Dengan Unity masih aktif terbuka selanjutnya buka file orthello dan lakukan double click untuk mengimport orthello ke dalam project


Setelah double click Anda akan diberi konfirmasi komponen apa saja yang akan di import. Centang semua dan klik import


Jika orthello sudah berhasil di import maka akan muncul susunan file-file orthello seperti pada gambar


Sebagai langkah awal masukkan object orthello dalam Orthello >> Object >> OT ke dalam scene dengan melakukan drag drop ke window hierarchy


Kemudian lakukan pengaturan resolusi pada Player setting seperti gambar di bawah



Lakukan juga pengaturan resolusi game pada object view dalam Child object OT


Setelah semua pengaturan dilakukan maka pengaturan kamera secara otomatis akan dirubah oleh orthello menjadi tampilan Orthographic yaitu tampilan kamura 2D. Lihat gambar di bawah


Kemudian saya akan membuat sebuah object 2D stickman. Buat susunan folder seperti gambar di bawah. Susunan folder ini bukanlah aturan baku, Anda dapat mengatur susunannya sesuai keinginan Anda.


Setelah kerangka folder-folder siap saatnya membuat sprite, dengan langkah awal membuat Texture Atlas. Texture Atlas dibuat dengan menggunakan software tersendiri, yaitu Texture Packer. Buka texture packer maka akan muncul tampilan di bawah.


Kemudian klik Use Free (lite) Version untuk masuk ke dalam program. Setelah masik, saatnya membuat Texture Atlas baru dengan melakukan drag & drop sprite 2D ke dalam Texture Packer pada bagian Sprites


Kemudian rubah pengaturan layout seperti pada gambar di bawah. Perhatikan pada bagian yang diberi tanda


Setelah layout rubah pengaturan output. Perhatikan pula pada bagian yang diberi tanda. Untuk data file masukkan pada [lokasi project]/Assets/User Assets/Stickman/Texture Atlases. Beri nama Stickman.xml. Peringatan : Pada kondisi default Texture packer akan memberi ekstensi .plst pada data file. Namun agar dapat di baca unity maka format data harus dirubah dari .plst ke .xml. Lihat gambar di bawah


Setelah semua pengaturan selesai maka berikut adalah preview dari Texture Atlas yang telah kita buat


Setelah semua siap tinggal kita buat Texture Atlas dengan klik Publish


Setelah kita lakukan publish maka jika penyimpanan lokasi benar maka data dan texture akan ada dalam folde Texture Atlases di Unity


Secara default semua image yang diimport dalam Unity memiliki type Texture. Typeini membuat gambar lebih ringan untuk di load namun akan terlihat sedikit kabur. Dalam game 2D hampir tidak ada bedanya antara object (yang seharusnya jadi texture) dengan object user Interface GUI. Untuk itu meskipun pada sebenarnya image digunakan sebagai texture, maka akan lebih baik hasilnya jika kita ruba typenya ke GUI. Bentuk GUI akan membuat gambar lebih jelas dan tidak kabur. Klik image yang di rubah, pada Texture Type pilih GUI.


Selanjutnya untuk membuat sebuah animasi langkah pertama adalah membuat sebuah object Container. Container dapat saya ibaratkan sebagai data image apa saja yang akan load di suatu scene. Image ini berupa Texture Atlas dimana di dalamnya terdapat data pada Texture Atlas dan Image itu sendiri. Pada kasus ini kita akan membuat container dari Stickman, dengan Texture Atlas yang telah kita buat tadi menggunakan Texture Packer. Langkah pertama adalah drag drop object Orthello dari Orthello >> Objects >> Sprites >> Sprite Atlas >> SpriteAtlasCocos2SD ke dalam scene atau ke window Hierarchy


Setelah kita drag drop maka secara otomatis akan ada object Container baru dalam child Containers.


Selanjutnya kita lakukan pengaturan, berupa setting nama container dan lakukan drag & drop data dari Texture Atlas ke dalam container.


Ketika data di drag & drop maka seharusnya secara otomatis image dari Texture Atlas akan terinclude dan Orthello akan mengenerate sprite-sprite pada Texture Atlas Anda.


Setelah Container dibuat maka langkah selanjutnya adalah membuat Animasi dari container. Animasi kita buat dengan melakukan drag & drop object dari Orthello >> Objects >> Sprites >> Animation ke dalam scene window Hierarchy.


Kemudian beri nama animasi


Buat animasi dengan mengisi frameset sesuai jumlah animasi yang diinginkan. Pada setiap frameset masukkan container yang telah kita buat dengan melakukan drag & drop


Kemudian atur nama animasi dan range frame dari animasi tersebut sesuai Texture Atlas yang telah dibuat sebelumnya


Object container beres, animasi beres, selanjutnya tinggal membuat object dari animasi yang telah kita buat. Hal ini hampir sama dengan membuat object biasanya. Caranya drag & drop object Animating Sprite dari Orthello >> Objects >> Animating Sprite ke dalam scene.


Beri nama object animasinya dan masukkan animasi yang telah kita buat sebelumnya.


Sekarang untuk ujicoba tinggal play deh project kita, maka seharusnya akan muncul animasi rang bergerak. Selamat, Anda berhasil membuat animasi 2D di unity… ^^


Nah… Selanjutnya apakah berhenti sampai disini? Terus gimana kalo setiap kita menekan key tertentu muncul animasi yang berbeda? Ya… Tentu harus menggunakan script. Ok, kali ini saya akan memberi contoh object akan me-load animasi berbeda ketika saya menekan key Panah kanan. Langkah awalnya non-aktifkan dulu auto start animasinya.


Kemudian saya bikin sebuah script StickmanBehaviour, dan jangan lupa untuk menaruh script ini di object Stickman.


Nah isi scriptnya kurang lebih seperti ini


using UnityEngine;
using System.Collections;

public class StickmanBehaviour : MonoBehaviour {
    private OTAnimatingSprite otAnimatingSprite;

    void Start() {
        otAnimatingSprite = this.GetComponent();
    }

    void Update() {
        // Get keyboard input
        if (Input.GetKey(KeyCode.RightArrow))
            MoveRight();
        else
            Idle();
    }

    public void MoveRight() {
        otAnimatingSprite.PlayLoop("Walk Right");

        //Some script to translate object
    }

    public void Idle() {
        otAnimatingSprite.PlayLoop("Idle");
    }
}


Ato jika mau screenshotnya silahkan liat gambar di bawah



Ok… Sekarang jadilah animasi Anda. Silahkan tekan panah kanan dan liat apa yang terjadi. Selamat Anda telah mengilkuti tutorial ini dengan baik ^^

Kesimpulan :
Mungkin dari beberapa step yang Anda lakukan terlihat cukup ribet dan sulit, terdapat beberapa tahap hanya untuk membuat 1 animasi 2D. Nah, sebenarnya tidak ribet, namun kita harus mengetahui step-stepnya secara urut. Berikut adalah rangkuman step-step yang harus dilakukan
  • Siapkan bahan (unity, orthello framework, texture packer)
  • Buat new project unity, atur berbagai keperluan seperti resolusi dsb, import orthello framework
  • Masukkan object orthello ( OT ) ke dalam scene dan atur resolusi dan pengaturan lain di View
  • Buat Texture Atlas menggunakan software Texture Packer
  • Buat object Container dan masukkan Texture Atlas yang telah dibuat pada step sebelumnya. Container  adalah ibarat mendefinisika Texture Atlas yang akan digunakan di scene agar dapat di proses oleh orthello dan dijadikan kumpulan Sprite
  • Buat animation. Animation adalah ibarat mendefinisikan animasi dari Container yang dibuat pada step sebelumnya. Misal : Animasi jalan, berasal dari container A, dari frame 1-10
  • Buat object animasi. Ini seperti membuat object biasa, tinggal masukkan animasinya
Ok… Mungkin cukup sekian saja artikel dari saya. Mohon maaf jika mungkin ada kesalahan, saya ucapkan selamat mencoba dan terus berkarya ^^

Sumber : Blog pribadi http://gurusakti.wordpress.com/2013/05/23/simple-2d-sprite-di-unity-menggunakan-orthello/

Baca juga :
Andengine, library imut yang tangguh untuk Android game developer 

35 comments:

  1. ribet sih, tapi ngerti.
    masi nyoba game RPG ni

    ReplyDelete
    Replies
    1. Di unity terbaru, 4.3 sudah ada tool 2D built in sama unitynya. Jadi gak perlu pake framework Orthello dsb. Jauh lebih simple, cuman masih minim tutorial :)

      Delete
  2. Agan gunain unity yg versi brp...
    Klo ada ebook tutorialnya d share

    ReplyDelete
    Replies
    1. waktu artikel ini saya tulis saya pake unity 4.2x. Tapi saya sudah tidak lagi menyarankan untuk mengikuti tutorial ini, karena pada Unity 4.3 sudah dilengkapi dengan 2D yang jauh lebih mudah dari tutorial ini. Tapi berhubung Unity 4.3 masih belum sampe 1 bulan munculnya maka masih sangat minim tutorialnya. Kalo nemu tutorial Unity 2D 4.3 boleh di share disini... :)

      Delete
    2. wahh ane nyarii jugax belum ketemuu gan.....
      bingung brooo......
      di youtubee ada sihh...
      tp bhs,inggriss....

      Delete
    3. Klo tutorial kyk gini emang hampir semuanya bahasa inggris. Jd jgn terlalu bnyk berharap nemu tutorial bahasa Indonesia, 1 banding 1000, bahkan 0 banding 1000. Hehehe.. :D

      Hmmm... Saya sudah bisa kok unity yang 2D, nanti kalo ada waktu saya tulis tutorialnya disini :)

      Delete
    4. ane tunggu brooo....
      secepatnya kloo bisaaa...
      soalee anee lagii butuh banget nhee

      Delete
    5. makanyaa gann aklo udah bisaa di upload yaa....
      lgi butuh buat skripsii nhee

      Delete
    6. Sabar gan.. Agan sibuk skripsi, saya sendiri juga sibuk sidang skripsi. Sama-sama kita... :D

      Delete
    7. Silahkan dibaca gan... Semoga bermanfaat :)
      http://duniadigit.blogspot.com/2014/02/membuat-2d-sprite-sederhana-untuk-game.html

      Delete
  3. kalau buat karakter game yg chibi-chibi gtu pakai software apa ya? terima kasih.

    ReplyDelete
    Replies
    1. Terserah.. Macem macem software buat 3D modeling. Yang gratisan ada blender, ini yang sering saya pake. Yang berbayar ada 3ds max. Semua punya kelebihan / kelemahan masing-masing

      Delete
  4. tolong di share gan tutorial membuat game 2 d dengan tool 2d yg sudah tersedia di unity yg versi 4.3.xx gan.. makasi sebelumnya

    ReplyDelete
  5. Sudah saya share kok.. Coba cek disini.. http://duniadigit.blogspot.com/2014/02/membuat-2d-sprite-sederhana-untuk-game.html

    ReplyDelete
  6. gan unity versi baru ga bisa export ke android armv6 yah ? :( ane download lagi versi oldnya yg 3.5.7, terus ane coba tutorial agan yg di atas, tapi pas masukin script nya kok error yah gan ?
    gini bunyi error nya

    "Assets/userAsset/Stickman/Script/StickmanBehaviour.cs(8,34): error CS0411: The type arguments for method `UnityEngine.Component.GetComponent()' cannot be inferred from the usage. Try specifying the type arguments explicitly"

    kira kira apa yah masalah nya ?

    ReplyDelete
    Replies
    1. Wah kurang tahu saya kalo g bisa jalan di armv6. Ya maklum lah.. armv6 sekarang udah mulai ditinggalkan. Wah.. error apa yah itu? SAya kalo g liat kasusnya g tau. Setahu saya getcomponent ada genericnya, contoh : GetComponent(), ato GetComponent(typeof(Gameobject))

      Delete
  7. kenapa punyakku ko harus login dl padahal dah download 1 gb full

    ReplyDelete
  8. emang harus login.. Ada opsi free juga kok

    ReplyDelete
  9. kok udah diganti resolusi dua2nya kok tampilan kameranya gk berubah ya?

    ReplyDelete
    Replies
    1. Sory nin tutorial lama yang saya buat. Sejak Unity 4.3 secara default sudah ada tool untuk 2D. Jadi gak perlu pake orthello. Jauh lebih simple jauh lebih enak.

      Coba kamu baca disini
      http://duniadigit.blogspot.com/2014/02/membuat-2d-sprite-sederhana-untuk-game.html

      Delete
  10. Sory, mau nanya kalau cara build ke android gimana caranya ya?saya pake unity 4. katanya Armv 7 ga support. saya export ke android 2.2 froyo. saya udah klik build tapi Apknya ga ada.. bisa dikasih tau caranya? Terima Kasih sebelumnya...

    ReplyDelete
  11. gan game ini support untuk os apa aja dan ini pake bhs java ya? tapi kalo kita gk tau bhs java dan yg lainya ya percuma aja bikin game/aps gan

    ReplyDelete
    Replies
    1. Ini pake C# bukan java. Agan background nya programmer atau bukan? Kalo programmer saya rasa gampang aja belajar bahasa pemrograman.
      Kalo bukan programmer saya sarankan pake tool yang lebih mudah, jangan pake unity. Adapun contoh tool yang cukup terkenal adalah construct. Tool itu memungkinkan kita untuk membuat game tanpa menggunakan bahasa pemrograman sedikitpun. Tutorial banyak di youtube.. :)

      Delete
    2. BAhkan saya pernah sedikit mengajari keponakan saya yang baru kelas 4 SD pakai construct. Hasilnya cukup bisa diserap kok :)

      Delete
  12. gan bisa gak jalanin software itu pakai laptop intel atom?

    ReplyDelete
  13. kalo pake konstruct bisa buat game dan aplikasi ya,, terus kalo kita disteribusikan bisa jalan di os apa aja? dan apa cuma pake software itu aja gak ada pendukung lain yang haus di instal dan bisa gk di jalanin di laptop intel atom saya??? :)

    ReplyDelete
    Replies
    1. Kalo construct cuma bisa buat game, kalo aplikasi biar multi platform bisa pake phonegap dsb. Kalo software pendukung liat-liat mau di deploy ke platform apa saja. Misal, untuk target android butuh android SDK. Untuk iOS butuh XCode, dsb.

      Delete
  14. Keren gan, Sekarang sudah keluar Unity 5 jadi lebih banyak peningkatan :D

    ReplyDelete
  15. MAS MAS DAN MBAK MBAK GIMANA YA CARANYA NGINSTAL PROGRAM UNITY YANG DIGUNAKAN UNTUK MEMBUAT GAME 2D

    ReplyDelete