Minggu, 19 Mei 2013

Chapter 15. Character Animation : Facial Animation


Pada kesempatan ini saya memposting artikel yang digunakan tugas softskill yaitu menerjemahkan sebuah sub bab dari ebook Pengantar Teknologi Games – Core Algorithm In Game Technology, yang bisa di unduh secara gratis disini -> Core Algorithm In Game Technology

Yang saya terjemahkan pada sub bab buku ini adalah Chapter 15. Character Animation : Facial Animation. Berikut ialah hasil terjemahannya kedalam Bahasa Indonesia :

Facial Animation

Sebagian besar emosi karakter dan kepribadian disampaikan melalui wajahnya: Kemarahan, ketakutan, dan kekecewaan yang sangat sulit untuk mensimulasikan jika mimik wajah tidak tersedia. Banyak game-game saat ini dan kebanyakan game dari masa depan akan menggabungkan beberapa jenis real-time animasi wajah. Langkah pertama adalah lipsynching, atau kemampuan untuk memindahkan mulut dan bibir sehingga karakter terlihat seperti dia benar-benar mengucapkan setiap kata. Selain itu, Anda dapat membangun sistem emosi wajah secara keseluruhan. Mengambil ini ke ekstrim, wajah animasi dapat diintegrasikan dengan sistem animasi seluruh tubuh, sehingga karakter bisa mengekspresikan diri melalui tubuh dan mimik wajah. Pendekatan semacam ini menghasilkan elegan pada kebijakan berdasarkan tingkat-of-detail. Ekspresi wajah hanya diminta untuk karakter up-dekat karena nuansa emosi hilang pada jarak yang lebih besar. Dengan demikian, Anda bisa kode sistem yang dilakukan animasi seluruh tubuh, dan sebagai karakter mendekat ke kamera, memperkenalkan animasi wajah dan emosi juga.

Ada dua sekolah animasi wajah. Yang pertama ditandai dengan menghidupkan simpul langsung. Biaya komputasi berkurang, namun jejak kaki memori dapat tumbuh, terutama jika wajah sangat rinci adalah menjadi animasi. Kecenderungan kedua adalah untuk menghidupkan otot wajah dengan menggunakan sistem kerangka. Kerangka dari karakter hanya meluas ke wajahnya, sehingga kita dapat menghidupkan area wajah secara hierarkis. Ini kedua metode CPU-intensif karena banyak tulang yang diperlukan. Untuk karakter dalam permainan Sony The Getaway, sebanyak 35 tulang digunakan untuk wajah saja.

Animasi wajah berbasis simpul adalah populer untuk game sederhana. Simpul ini terkelompok sesuai dengan wajah otot, dan fungsi perpindahan diterapkan untuk menyampaikan kepribadian. Coding solusi tersebut sangat tidak keras, dan dengan hati-hati, emosi dapat berlapis untuk membuat ekspresi kompleks. Salah satu yang terbaik contoh filosofi ini adalah wajah animasi demo oleh Ken Perlin, yang dapat dilihat pada Gambar 15.7 dan tersedia dari situs web di http://mrl.nyu.edu/~perlin/facedemo/

Gambar 15.7. Ken Perlin itu wajah animasi demo dengan semua kontrol untuk mengatur parameter untuk ekspresi.


Sistem berbasis vertex tidak skala baik. Karena jumlah ekspresi meningkat, terutama jika Anda menambahkan lipsynching untuk campuran, jumlah ekspresi model menjadi tidak layak, baik dari segi jam kerja dan memori footprint. Dalam skenario ini, menggunakan sistem animasi tulang akan menghasilkan hasil yang lebih baik. Representasi sangat kompak, dan hasilnya sama-sama mengesankan.

Animasi rangka, di sisi lain, menjiwai simpul menggunakan hirarki tulang. Untuk wajah, Komponen hirarkis sistem tulang tidak akan sangat berguna, karena jenis hubungan lakukan tidak benar-benar terjadi pada wajah. Namun, karakteristik lain dari animasi tulang memang akan sangat berguna: kemampuan untuk mempengaruhi satu titik oleh lebih dari satu tulang, sehingga simpul di pipi mendapat pengaruh dari rahang, mata, dan sebagainya. Selain itu, sistem animasi kerangka yang besar untuk melakukan blendsmixing selektif wajah untuk alis dengan ekspresi yang berbeda untuk sisa wajah, misalnya. Ini semua masalah yang memilih mana tulang dari mana ekspresi akan dicampur.

Apapun metode yang Anda pilih, itu adalah penting untuk memahami struktur wajah untuk mencapai hasil yang realistis. Dalam hal ini, saya sarankan mengambil melihat pada wajah Action Coding Sistem yang diusulkan oleh Ekman dan Friesen pada akhir tahun 1970. Sistem ini mencoba untuk menggambarkan ekspresi wajah obyektif, menggunakan kriteria ilmiah. Dimulai dengan menganalisis ekspresi dalam hal otot-otot yang digunakan untuk menghasilkan mereka. Semua otot wajah mempengaruhi tampilan wajah dianalisis, dan daftar menyeluruh efeknya pada wajah dibangun. Daftar memiliki 46 entri, yang muncul dengan menggerakkan satu otot atau kelompok otot. Anda dapat kemudian menggabungkan berbagai otot dan negara-negara mereka untuk menyampaikan ekspresi komposit: otot yang berbeda konfigurasi untuk mata, rahang, alis, dan sebagainya.

Untuk melakukan lip-sync, perangkat lunak Anda harus dapat menghidupkan daerah mulut untuk mensimulasikan fonem yang berbeda, atau suara dalam bahasa karakter sedang berbicara. Setiap bahasa memiliki nomor yang berbeda dari fonem, bahasa Inggris memiliki sekitar 35. Karena itu adalah seperti sejumlah besar (bayangkan jumlah bekerja diperlukan untuk menciptakan array animasi wajah), kadang-kadang fonem yang diucapkan sama disederhanakan, sehingga lebih sedikit pekerjaan yang harus dilakukan. Ini ditemukan waktu yang lama oleh animator Disney, yang disederhanakan seluruh fonem set untuk hanya 12 posisi mulut kanonik. Kemudian, animasi wajah Sistem seperti morphs wajah atau animasi skeletal dapat digunakan untuk melakukan animasi yang sebenarnya. Salah satu masalah dengan pendekatan seperti itu adalah bahwa pengucapan memiliki komponen emosional yang tinggi. Kata yang sama kata berbisik atau berteriak pada seseorang akan terlihat sangat berbeda.

Namun, wajah animasi menggunakan tulang tampak seperti cara untuk pergi untuk-sama industri dengan cara rangka animasi diganti metode berbasis frame progresif di masa lalu. Semua yang dibutuhkan adalah tulang yang lebih baik strategi tata letak yang membantu menyampaikan berbagai ekspresi dan emosi dari wajah manusia. Jelas, sebagian besar tulang akan mengendalikan baik mata (atau alis) atau mulut, karena ini adalah ekspresif utama elemen dalam wajah. Tapi itu tata letak yang tepat yang masih perlu dikuasai.

Game Engine



Penjelasan Tentang Game Engine
Game Engine adalah sebuah sistem yang dirancang untuk penciptaan dan pengembangan video game. Mesin game terkemuka menyediakan kerangka kerja perangkat lunak yang digunakan pengembang untuk membuat game untuk konsol permainan video dan komputer pribadi. Fungsionalitas inti biasanya disediakan oleh mesin permainan mencakup mesin render ("renderer") untuk 2D atau 3D grafis, mesin fisika atau tabrakan (dan tanggapan tabrakan), suara, script, animasi, kecerdasan buatan, jaringan, streaming, memori manajemen, threading, dukungan lokalisasi, dan adegan grafik. Proses pengembangan game sering dihemat, sebagian besar, dengan menggunakan kembali / mengadaptasi mesin permainan yang sama untuk menciptakan permainan yang berbeda, atau untuk membuatnya lebih mudah untuk "pelabuhan" permainan untuk berbagai platform.

Engine menawarkan komponen reusable yang dapat dimanipulasi untuk membawa permainan untuk hidup. Loading, menampilkan, dan animasi model, tabrakan antara objek, fisika, masukan, antarmuka pengguna grafis, dan bahkan bagian dari kecerdasan buatan permainan ini semua bisa komponen yang membentuk mesin. Sebaliknya, isi dari permainan, model spesifik dan tekstur, makna di balik tabrakan objek dan masukan, dan cara objek berinteraksi dengan dunia, adalah komponen yang membuat permainan yang sebenarnya. Untuk menggunakan analogi mobil lagi, memikirkan bagaimana tubuh, CD player, sistem navigasi in-dash, dan kursi kulit membuat mobil yang sebenarnya.

Tapi di mana mesin permainan berasal?

Kelahiran Game Engine
Untuk waktu yang lama, banyak perusahaan game membuat mesin permainan mereka sendiri dan terus bahwa teknologi di rumah, iterasi di atasnya sebagai komputer diperbaiki dan versi lanjutan yang diperlukan. Mesin seperti SCUMM oleh LucasArts dan SCI oleh Sierra, misalnya, didukung sebagian besar game petualangan bahwa perusahaan-perusahaan dirilis pada akhir 1980-an dan ke pertengahan 1990-an. Baru-baru ini, mesin seperti id Tech (mesin yang kekuatan seri Quake permainan) dan Unreal Engine dimulai sebagai di-rumah teknologi, meskipun mereka baru-baru ini berkembang menjadi teknologi middleware juga.

Jenis Mesin Permainan
Mesin permainan datang dalam berbagai rasa yang berbeda dan di berbagai tingkatan keahlian pemrograman. Untuk mendapatkan merasakan betapa berbedanya mereka bisa, saya akan menjelaskan tiga jenis mesin: versi Roll-your-own, versi Mostly-ready, dan Point-and-click.

1.      Roll-your-own game engine
Banyak perusahaan game kecil seperti publisher indie biasanya menggunakan engine-nya sendiri. Mereka menggunakan API seperti XNA, DirectX atau OpenGL untuk membuat game engine mereka sendiri. Di sisi lain, mereka kadang menggunakan library komersil atau yang open source. Terkadang mereka juga membuat semuanya mulai dari nol. Biasanya game engine tipe ini lebih disukai karena selain kemungkinan besar diberikan secara gratis, juga memperbolehkan mereka (para developer) lebih fleksibel dalam mengintegrasikan komponen yang diinginkan untuk dibentuk sebagai game engine mereka sendiri. Kelemahannya banyak engine yang dibuat dengan cara semacam ini malah menyerang balik developernya. Tower Games Studio membutuhkan satu tahun penuh untuk menyempurnakan game engine-nya, hanya untuk ditulis ulang semuanya dalam beberapa hari  sebelum penggunaannya karena adanya bug kecil yang sangat mengganggu.

2.      Mostly-ready game engines
Engine ini biasanya sudah menyediakan semuanya begitu diberikan pada developer/programer. Semuanya termasuk contoh GUI, physiscs, libraries model, texture dan lain-lain. Banyak dari mereka yang sudah benar-benar matang, sehingga dapat langsung digunakan untuk scripting sejak hari pertama. Game engine semacam ini memiliki beberapa batasan, terutama jika dibandingkan dengan game engine sebelumnya yang benar-benar terbuka lebar. Hal ini ditujukan agar tidak terjadi banyak error yang mungkin terjadi setelah sebuah game yang menggunakan engine ini dirilis dan masih memungkinkan game engine-nya tersebut untuk mengoptimalkan kinerja game-nya. Contoh tipe game engine seperti ini adalah Unreal Engine, Source Engine, id Tech Engine dan sebagainya yang sudah sangat optimal dibandingkan jika harus membuat dari awal. Dengan hal ini dapat menyingkat menghemat waktu dan biaya dari para developer game.

3.      Point-and-click engines
Engine ini merupakan engine yang sangat dibatasi, tapi dibuat dengan sangat user friendly. Anda bahkan bisa mulai membuat game sendiri menggunakan engine seperti GameMaker, Torque Game Builder dan Unity3D. Dengan sedikit memanfaatkan coding, kamu sudah bisa merilis game point-and-click yang kamu banget.  Kekurangannya terletak pada terbatasnya jenis interaksi yang bisa dilakukan dan biasanya hal ini mencakup semuanya, mulai dari grafis hingga tata suara. Tapi bukan berarti game engine jenis ini tidak berguna, bagi developer cerdas dan memiliki kreativitas tinggi, game engine seperti ini bisa dirubah menjadi sebuah game menyenangkan, seperti Flow. Game engine ini memang ditujukan bagi developer yang ingin menyingkat waktu pemrogramman dan merilis game-game mereka secepatnya.

Macam-macam Game Engine
1.      Game Engine Freeware
  • OGRE (Object-Oriented Graphics Rendering Engine) merupakan engine yang mendukung 3D Graphic. Merupakan game engine yang fleksibel dalam melakukan 3D Rendering, ditulis dalam bahasa C++ sehingga memudahkan pengembang untuk membangun game yang mendukung 3D Graphics.
  • Dim3, juga dikenal sebagai Dimensi 3, merupakan freeware open-source 3D game engine untuk Mac OS X diciptakan oleh Brian Barnes. Dim3 ini telah dipilih sebagai staf untuk OS X development software oleh Apple. Dim3 menggunakan OpenGL untuk rendering, OpenAL untuk audio,JavaScript untuk scripting, XML untuk data danSDL untuk resolusi switching dan masukan.
  • Crystal Space adalah suatu kerangka kerja untuk mengembangkan 3D aplikasi yang ditulis dalam C++ oleh Jorrit Tyberghein dan lain-lain. Rilis publik pertama adalah pada 26 Agustus 1997. Crystal space biasanya digunakan sebagai game engine tetapi kerangka lebih umum dan dapat digunakan untuk setiap jenis visualisasi 3D. Crystal space sangat portabel dan berjalan pada Microsoft Windows, GNU/Linux, Unix dan Mac OS X. Crystal space merupakan freeware, dilisensikan di bawah GNU Lesser General Public License, dan SourceForge.net ‘s Project of the Month untuk Februari 2003. Opsional dapat menggunakan OpenGL (di semua platform), SDL (semua SDL platform), X11 (Unix atau GNU / Linux) dan SVGAlib (GNU / Linux). Ini dapat juga secara opsional menggunakan rutin assembler menggunakan NASM dan MMX.
2.      Game Engine License
  • Crystal Tools adalah mesin permainan yang diciptakan oleh Jepang berbasis RPG. Awalnya berjudul, “White Engine”, itu nama dalam proses pembangunan Final Fantasy XIII dan Final Fantasy Versus XIII. Game engine ini telah dibangun secara khusus untuk membuat game generasi ketujuh. Game eingine ini awalnya direncanakan untuk digunakan dengan Playstation 2, ketika bertukar ke PS3. Tetsuya Nomura, seorang karyawan terkenal Square Enix, telah menyatakan ‘Swapping dari PS2 ke PS3 jauh lebih sulit dari PS1 ke PS2.
  • DX Studio adalah tool pengembangan terintegrasi lengkap untuk penciptaan 3D video game, simulasi real-time atau aplikasi interaktif baik untuk digunakan pada Web Based, Microsoft Office atau Visual Studio. DX Studio dihasilkan oleh Worldweaver Ltd, sebuah perusahaan yang didirikan pada tahun 1996 oleh Chris Sterling untuk mengembangkan PC game dan high-end aplikasi SIG bisnis. Pengembangan DX Studio dimulai pada 2002 dan versi pertama diluncurkan ke pasar pada tahun 2005 . Sejak saat itu basis pengguna DX Studio telah berkembang menjadi sekitar 30.000 di seluruh dunia.
  • Truevision3D Merupakan game engine 3D yang dibangun dengan menggunakan visual basic 6 dan C++ dengan menggunakan Microsoft Directx API. Mulai versi 6.5, engine ini menggunakan direct 9 dan shader support, serta ditulis ulang menggunakan C++. Sampai perkembangan terbaru, belum ada wacana untuk mengembangkannya untuk mendukung penggunaan directx9 serta Microsoft XNA.