Bikin game bagian #1 (praktek)

Di tutorial gue sebelumnya pernah dibahas teori bagaimana membuat game dari aspek desain, gameplay dan beberapa tips. Sekarang saatnya gue bahas bagaimana bikin game langsung praktek. Oh iya, tutorial ini gue bagi menjadi beberapa sesi dan menggunakan metode dua penulis dalam satu aspek yang sama. Maksudnya, gue melibatkan temen gue Krishna si programmer untuk bantu gue nulis artikel ini sampe komplit. Sebenernya bisa dibilang 50-50 antara gue bantu dia atau dia bantu gue.

Berhubung gue cuma ngerti aspek desain (bukan pemrograman), dan si Krishna ngerti aspek pemrograman (bukan desain visual), jadi gue bagi tutorial ini kedalam blog gue dan blog Krishna (maklum kita kerjanya mobile dan masing-masing punya blog sendiri).

Harap diingat bahwa blog ini tidak menjelaskan aspek yang sedemikian besar dalam proses pembuatan game (atau kalian bisa baca dulu tutorial gue di artikel-artikel sebelumnya), tapi gue dan Krishna menjelaskan sebaik mungkin dan se-mood mungkin supaya bisa mudah dimengerti. Sisanya, kalian harus kembangkan sendiri akan jadi seperti apa game nantinya.

Oke, berhubung Anda datang di blog ini, berarti kita akan membahas aspek desain visual yang akan dipakai dalam membuat game. Harap diingat kita akan bikin desain 3D dengan materi yang akan kita pelajari :

  1. Modeling karakter menggunakan aplikasi pihak ketiga
  2. Rigging karakter menggunakan CAT
  3. Rigging karakter menggunakan Mixamo
  4. Unwrapping (3ds Max)
  5. Material ID (3ds Max)
  6. Baking tekstur menggunakan aplikasi pihak ketiga
  7. Teksturing menggunakan Substance Painter
  8. Retopology
  9. Sculpting (ZBrush)
  10. Physically Based Rendering

Dari beberapa tutorial diatas akan dilempar ke blog nya Krishna (saya selalu memberikan link nya nanti). Tapi intinya semua pembahasan adalah sama (bikin game yang sama). Jadi nothing to worry about. Relax nerds.

Pendahuluan

Di dunia desain 3D tidak ada istilah salah-benar, yang penting adalah objek yang Anda bikin bisa bekerja dengan baik. Tapi, bukan berarti dalam game development kita bisa bikin asal-asalan. Tetap ada batasan alias protokol yang harus diperhatikan benar.

  • Polygon efficiency : Coba perhatikan gambar dibawah. Mana yang benar dan salah? Sebelah kiri salah karena Anda hanya akan menambah jumlah polygon. Ada 8 face (16 tris) sementara bagian kanan hanya menggunakan 4 face (8 tris). Bayangkan jika objek seperti ini jumlahnya ada puluhan (atau bahkan ratusan) dalam game. Jadi sebisa mungkin perhatikan betul efisiensi dalam pembuatan mesh. Jumlah polygon berlebih akan menurunkan framerate game.

1.PNG

  • Backface Cull

Beberapa game engine menerima backface cull tapi sebagian tidak. Backface cull sebenarnya adalah Teknik dalam dunia grafis dimana polygon yang membelakangi layar tidak dirender (atau sebaliknya). Misalnya, Anda membuat sebuah rumah dan Anda berada didalam interior rumah. Anda tidak ingin player keluar rumah. Jadi, Anda cukup buat satu polygon yang merepresentasikan tembok. Player tidak akan melihat bagian sisi lain dari tembok, jadi lebih baik backface cull dalam keadaan mati. Teknik ini lebih ringan daripada engine harus membaca dua bagian.

  • Polygon Budget

Jumlah polygon harus diperhatikan betul dalam pembuatan game. Pernah main game dimana framerate drop dalam beberapa kasus? Misalnya, Anda bermain game MMORPG. Ketika map sepi, coba lihat berapa framerate nya. Dan bandingkan jika ada 20 pemain dalam satu map saling berinteraksi dimana satu pemain (misalnya) berjumlah 2000 polygon. Ya, framerate akan drop tidak peduli seberapa kuatnya prosesor komputer Anda. Bedanya, ada framerate yang masih dalam batas wajar untuk dimainkan, dan beberapa dibawah batas wajar, misalnya 15 FPS kebawah. Hal ini salah satunya disebabkan oleh jumlah polygon yang besar dalam satu interaksi yang sama. Usahakan sebisa mungkin turunkan jumlah polygon dengan memanfaatkan bake texture jika low-poly Anda masih ingin terlihat realistis.

Dimana batas wajar polygon budget? Jawabannya adalah tergantung dari game Anda. Jika game Anda untuk smartphone, usahakan lebih kecil dari game PC. Konsultasikan ini pada dokter.. err.. maksudnya pada tim Anda. Jumlah polygon berlebih bisa dikurangi jika Anda menerapkan poin pertama pada artikel ini (polygon efficiency).

  • File Size

Ukuran file juga harus diperhatikan betul dalam game. Game Anda terdiri dari banyak asset. Katakan saja ada rumah, pohon, mobil, karakter, batu dan lainnya. Masing-masing objek memiliki material dan tiap material memiliki tekstur. Sekarang coba bandingkan satu file mesh tanpa tekstur dan yang komplit. Untuk mengurangi ukuran file, ada baiknya Anda perhatikan betul polygon budget dan efisiensi mesh nya. Jangan lupa untuk diskusi dengan tim berapa ukuran file tekstur untuk satu mesh nya. Sekarang untuk game smartphone sudah bisa pakai ukuran tekstur 2048 x 2048, tapi pertanyaanya seberapa penting tekstur segitu untuk game Anda? Jika objek berada jauh dari layar pemain (misalnya pesawat diatas langit) dan si player tidak bisa menjangkaunya, lebih baik minimize ukuran tekstur dan polygon nya.

Game engine saat ini sudah support multi-tekstur, jadi satu material bisa hold banyak tekstur. Biasanya minimal yang dipakai adalah Color, Normal, AO, dan lainnya. Untuk penggunaan material yang lebih realistic menggunakan Teknik PBR (Physically Based Rendering) yang umumnya terdiri dari Albedo (Color), Roughness dan Metalness. Nah itu untuk satu material dan mungkin satu objek bisa terdiri dari multi-material, dimana satu material nya saja menggunakan 3-4 tekstur format .PNG. Jadi bayangkan berapa besarnya game Anda disaat sudah komplit rilis pasar.

Sekedar tips, untuk mengurangi penggunaan tekstur yang sedemikian banyak, adakalanya Anda menggunakan Complete Map untuk satu materialnya. Complete Map adalah format gambar (tekstur) dimana beberapa elemen tekstur di bake jadi satu. Biasanya proses ini memakan waktu rendering dan bisa dikerjakan menggunakan beberapa aplikasi misalnya Blender, 3ds Max, Maya dan sebagainya. Kelebihan dari Complete Map adalah ukuran file Anda bisa jauh lebih kecil, karena Anda hanya butuh Complete Map untuk satu material. Namun kekurangannya adalah, Complete map sebenarnya gambar ‘mati’, alias segala bentuk perubahan cahaya sekitar tidak akan berpengaruh pada complete map tersebut karena sudah dirender sebelumnya.

  • Satuan skala

Ini yang kadang dilewatkan, kadang-kadang gue juga males berurusan dengan skala. Namun ini juga penting dalam development Anda. Gue jabarkan kasus gue ya, jadi gue pernah bikin karakter cewek bohay cantik di 3ds Max. Begitu gue export ke Unity, ukuran kok jadi kecil. Parahnya pas gue export ke Unreal Engine, ukurannya malah jauh lebih kecil lagi. Sebenarnya Anda bisa saja resize di engine, cuma beberapa kasus mungkin luput seperti ketika Anda membutuhkan ukuran presisif untuk di snap satu objek dengan objek lain (biasanya ini ketika Anda berurusan dengan environment).

Teknik mudahnya adalah, gue export karakter bawaan Unreal Engine ke 3ds Max. Di 3ds Max, karakter tadi gue jadiin patokan skala ketika gue bikin objek lain misalnya mobil atau pintu. Jadi ketika gue export balik ke Unreal, masalah ini udah fix buat gue.

Di Engine, objek yang terlalu besar malah ‘ngerepotin’ komponen lain untuk berinteraksi dengan objek Anda. Masing-masing Engine sudah ada pakem value nya. Misalnya, di Unreal Engine karakter lari sudah pas dengan value 600 untuk Speed nya. Tapi ketika karakter terlalu besar, value 600 menjadi lebih lambat. Ini juga berpengaruh pada komponen (actor) lain dalam Engine, misalnya value pencahayaan. Jadi untuk main aman, lebih baik ikuti nilai dari game engine yang kalian pakai.

 

Modeling Karakter menggunakan aplikasi pihak ketiga

Modeling apa saja sebenernya bisa di 3ds Max, Maya, Houdini, Modo dan lainnya. Tapi, khusus untuk tutorial ini kita akan menggunakan aplikasi pihak ketiga untuk membuat cepat karakter (humanoid). Nantinya setelah sesi tutorial ini selesai, kita akan coba ubah (modifikasi) di 3ds Max dan belajar bagaimana menggunakan material ID dan implementasi material PBR di Maya dan game engine.

Untuk memulai, Anda bisa download aplikasi gratis dari Adobe Fuse atau MakeHuman.

Pertama, kita akan menggunakan Adobe Fuse terlebih dahulu. Setelah Anda selesai download, install dan jalankan aplikasinya.

2.PNG

Tampilan Adobe Fuse mungkin sedikit berbeda dari 3ds Max atau kebanyakan aplikasi desain lain. Untuk memulainya, Anda cukup klik (pilih) pilihan kepala yang disediakan, kemudian pilih torso, arm dan leg. Jika Anda belum puas dengan tampilan karakter sementara, tenang, kita akan memodifikasi nya.

Untuk navigasi, klik tengah (MMB) untuk geser, klik kiri (LMB) untuk rotate dan klik kanan (RMB) untuk zoom in/out.

Karakter Anda saat ini masih bugil, kita fokus pada modifikasi fisik terlebih dahulu baru kemudian kita beralih ke pakaian.

Zoom dan arahkan karakter Anda pada bagian wajah. Pada menu bagian atas, klik Customize. Jika Anda ingin modifikasi tangan, wajah perut dan kaki, Anda bisa kembali ke Assemble sementara dan balik lagi ke Customize untuk modifikasi lebih dalam.

3.PNG

Jika Anda mengarahkan pointer mouse pada wajah, maka akan muncul marker (seperti pada gambar dibawah). Untuk saat ini klik marker pada bagian yang gue pilih seperti gambar dibawah.

4.PNG

Segera setelah Anda klik marker tersebut, perhatikan bagian kanan layar atas (perhatikan gambar dibawah)

5.PNG

Active Region menampilkan slider yang bisa Anda geser untuk mengubah bentuk fisik karakter sesuai dengan pilihan marker yang Anda klik beberapa detik lalu pada wajah. Geser dan cari komposisi yang sesuai dengan selera Anda.

Jika sudah sesuai dengan pola yang Anda inginkan, segera klik marker bagian lain dari wajah untuk modifikasi. Active Region akan muncul slider baru seperti misalnya Anda klik marker hidung atau bibir.

Ada banyak bagian marker yang bisa Anda pilih. Kadang, marker kanan dan kiri bisa berbeda, namun modifikasi yang Anda lakukan selalu simetris. Pada sesi ini sebenarnya Anda sudah bisa explore sendiri untuk bagian wajah.

Untuk bagian tubuh lain juga menggunakan metode yang sama seperti ketika Anda mengkonfigurasi wajah. Klik dahulu bagian mana yang mau diedit hingga muncul marker, kemudian geser slider disebelah kanan layar.

Untuk ganti pencahayaan, Anda bisa tekan ‘]’ pada keyboard atau bisa akses dari View > Next Lighting Mode atau Previous Lighting Mode.

Untuk menambahkan rambut, klik ‘Clothing’ di bagian tab atas.

6.PNG

Bagian kanan atas akan muncul tab top dan pakaian yang tersedia. Anda bisa pilih.

7.PNG

Jangan lupa untuk bagian bottom, shoe, hair dan lainnya jika karakter Anda ingin lebih catchy.

Sejauh ini gue udah dapet karakter yang gue mau. Sekarang saatnya Anda pindah ke tab Texture.

Klik baju pada karakter Anda. Kemudian disebelah kanan akan muncul editable yang bisa Anda sesuaikan dengan keinginan Anda. Untuk saat ini gue pastikan pilih texture berukuran 2048 x 2048, Anda bisa sesuaikan keinginan Anda.

9.PNG

Tidak hanya baju, Anda juga bisa edit tekstur untuk kulit, sepatu, rambut dan celana atau apapun yang Anda kenakan dalam karakter Anda. Gue ga bisa jelasin satu-satu parameternya karena ini sifatnya self-explanatory. Tapi untuk ukuran tekstur, pastikan semuanya sesuai dengan keinginan Anda.

Nah berikutnya, kita akan export karakter ini untuk kemudian dimodifikasi di 3ds Max, Maya, kemudian masuk ke game engine.

Klik File > Export > Export Model

Akan muncul kotak dialog window dengan beberapa opsi. Jika Anda ingin karakter Anda tetap memiliki kulit yang tertutup pakaian, pastikan untuk tidak mencentang ‘Remove occluded polygons’.

10.PNG

Klik OK untuk melanjutkan dan pilih alamat untuk di save.

Sejauh ini kita udah bisa bikin karakter instan lewat Fuse. Di tutorial berikutnya, kita akan aplikasikan material ID di 3ds Max dan menganimasikan nya di Mixamo.

Leave a comment