Unlimited WordPress themes, graphics, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Game Development
  2. Art
Gamedevelopment

Menatal Parallax: Cara Mudah, Berkesan untuk Menambah Kedalaman ke Game 2D

by
Difficulty:IntermediateLength:MediumLanguages:

Malay (Melayu) translation by Hamdan Veerlax (you can also view the original English article)

Menatal Parallax adalah cara yang mudah dan berkesan untuk mencipta ilusi kedalaman dalam permainan 2D. Sama ada anda sedang membangunkan penembak menegak atau platformer menatal sampingan mendatar, tatal paralaks adalah ruji permainan yang cuba dan benar yang akan meningkatkan kesan rendaman dan grafik projek anda.

Dalam tutorial ini, saya akan merangkumi asas-asas penggilapan paralaks, bersama dengan beberapa kaedah pelaksanaan, dengan cara yang anda akan dapat yakin dan berjaya memperkenalkan menatal paralaks ke dalam set kemahiran anda, tanpa mengira tahap kemahiran semasa anda.

Demo

Cuba demo di bawah untuk melihat adegan yang menggunakan mendatar, menegak, kedua-dua, dan tiada menatal paralaks. Klik demo untuk mengaktifkannya, kemudian gunakan kekunci nombor untuk menukar pemandangan dan kekunci anak panah untuk memindahkan kapal angkasa (untuk adegan yang sesuai).

Apakah yang dimaksudkan dengan Parallax Scrolling?

Parallax ditakrifkan sebagai anjakan jelas objek yang diperhatikan kerana perubahan dalam kedudukan pemerhati. Dengan tatal paralaks 2D, kedudukan pemerhati hanya berubah di sepanjang paksi x dan y. Hanya kelajuan dan lokasi objek akan berubah dengan kedudukan pemerhati, kerana skala objek memerlukan perubahan sepanjang paksi z.

Patrol Bulan Takashi Nishiyama dikreditkan secara meluas sebagai permainan pertama yang menampilkan penggilapan paralaks 2D, tetapi teknik itu wujud dalam animasi tradisional seawal 1933. Menggunakan kamera berbilang, animator dapat menghasilkan kesan 3D stereoskopik yang mencipta ilusi kedalaman dengan membenarkan aset seni yang berbeza untuk bergerak pada kelajuan yang berbeza berhubung dengan jarak yang dilihat dari lensa kamera. Inilah cara menggulung paralaks dicapai dalam permainan video moden, tetapi bukan kamera multipelane, adegan dipasang dengan pelbagai lapisan dan satu kamera permainan atau pandangan.

Dengan membahagikan latar belakang dan elemen latar depan permainan ke dalam lapisan yang berlainan, adalah mungkin untuk mengawal kelajuan dan kedudukan unsur-unsur ini berdasarkan lapisan mereka. Pemerhati, dalam kes ini, adalah pemain, dan kamera permainan tetap fokus pada titik atau objek tertentu, sementara latar belakang dan lapisan latar bergerak dengan sewajarnya.

Titik fokus ini bergerak pada kelajuan 'biasa', atau kelajuan yang ditakrifkan oleh permainan. Objek latar belakang bergerak lebih perlahan daripada titik fokus manakala objek pendahuluan bergerak lebih cepat daripada titik fokus. Ini menghasilkan ilusi kedalaman yang membuat adegan 2D berasa lebih mendalam.

Contoh 1: Skrol Parallax Mendatar

Dalam contoh pertama kami, kami mempunyai pemandangan jalan yang sangat mudah pada waktu malam yang menampilkan menatal mendatar tanpa elemen interaktif. Lapisan berlatar belakang pelbagai bergerak pada kelajuan yang telah ditetapkan di sepanjang paksi x. Buat masa ini, mari kita memberi tumpuan kepada asas-asas penggiliran paralaks tanpa bimbang tentang pergerakan pemain atau peralihan pandangan.

Pertama, mari memecah elemen individu dan sifat-sifat adegan kita. Tingkap permainan adalah 600x300px, dan aset seni setiap kami mempunyai lebar sekurang-kurangnya 600px. Dengan menggunakan elemen latar belakang yang lebih besar daripada tetingkap permainan, kami boleh menghalang keseluruhan aset daripada kelihatan pada bila-bila masa. Oleh kerana lapisan tersebut dijubing, ini akan membantu untuk mengelakkan pengulangan yang terlalu jelas kerana aset yang sama skrol tanpa batas.

Empat lapisan yang membentuk adegan pertama kami.

Adegan kami terdiri daripada empat lapisan. Dalam contoh ini, bilangan lapisan menentukan arahan di mana aset ditarik ke skrin serta kelajuan pergerakannya. Jika ini adalah platformer skrol sisi, maka objek pemain kami akan wujud di atas Lapisan 3. Lapisan ini akan menjadi titik fokus pemerhati, dan juga akan menentukan kelajuan latar belakang dan lapisan latar depan.

Lapisan 2 bergerak lebih perlahan daripada Lapisan 3, dan Lapisan 1 bergerak lebih perlahan daripada Lapisan 2. Lapisan 4 wujud sebagai lapisan latar, jadi ia bergerak lebih cepat daripada titik fokus pada Lapisan 3.

Terdapat beberapa cara anda boleh melaksanakan teknik penggilapan paralaks semacam ini. Dalam contoh ini, lapisan berpindah pada kelajuan yang telah ditentukan sebelumnya tanpa merujuk satu sama lain. Sekiranya anda merancang untuk mempunyai beberapa adegan dengan pelbagai latar belakang dan lapisan latar hadapan, maka adalah lebih baik untuk menentukan kelajuan lapisan dengan membaca kelajuan semasa lapisan fokus fokus. Sebagai contoh, jika titik fokus ialah Layer 3 dan bergerak pada kelajuan 5, maka setiap lapisan latar berturut-turut akan bergerak pada kelajuan kurang dari 5. Setiap lapisan pendahuluan akan bergerak pada kelajuan lebih besar daripada 5.

Contoh 2: Menatal Parallax Menegak

Walaupun skrol paralaks paling sering digunakan dengan latar belakang mendatar, ia juga boleh digunakan dalam adegan menegak, seperti dalam contoh penembak ruang ini. Mungkin terdapat cara yang lebih cekap untuk membuat medan bintang, tetapi penatalan paralaks mendapat pekerjaan yang dilakukan.

Perkara yang paling penting untuk diambil dari contoh menegak ini ialah kerja menatal parallax dalam semua empat arah di sepanjang paksi x dan y. (Kita akan lihat betapa pentingnya ini dalam contoh ketiga dan terakhir kita.)

Pemandangan ini mempunyai empat lapisan latar belakang: latar belakang hitam statik dan tiga koleksi bintang pada saiz yang berbeza. Latar belakang statik tidak bergerak, dan setiap lapisan berturut-turut bintang tumbuh lebih besar dan bergerak lebih laju, dengan lapisan terakhir dari bintang akhirnya menentukan kelajuan menegak titik fokus, kapal angkasa pemain. Jenis menatal paralaks ini membolehkan kita mensimulasikan kedalaman ruang sementara juga meniru gerakan ke hadapan. Kapal pemain tidak pernah benar-benar bergerak ke skrin, tetapi anda masih mendapat sensasi ruang perjalanan pantas.

Contoh 3: Menatal Parallax Mendatar dan Menegak Walaupun Mengikuti Objek

Sekarang kita mempunyai pemahaman yang lebih baik tentang apa yang menatal paralaks adalah, kita boleh mula membina adegan di mana penggilitan mendatar dan menegak dilaksanakan, bersama dengan pandangan permainan yang menjejaki pergerakan objek dikawal pemain.

Dalam demo di bahagian atas tutorial, adegan ini dibahagikan kepada dua contoh. Versi pertama menunjukkan pemandangan seperti apa tanpa menatal paralaks. Versi kedua mempunyai menatal paralaks menegak dan mendatar, dan ia benar-benar menggambarkan bagaimana skrol paralaks boleh menambah banyak rendaman dan kedalaman pada apa yang pada asalnya merupakan pemandangan yang sangat rata dan tidak bermaya.

Aspek yang paling penting dalam contoh ini ialah pergerakan pemain dan paparan permainan. Kerana latar belakang kami tidak lagi dikunci ke dalam kelajuan atau kedudukan skrin yang telah ditentukan sebelumnya, kami perlu mengira kelajuan dan kedudukan setiap lapisan berhubung dengan tetingkap paparan apabila pemain bergerak di sekitar.

Asal tingkap pandangan kami berada di sudut kiri atas di (X,Y). Setiap asal aset lapisan latar ada di sudut kiri atas sprit di (0,0). Dengan mencari koordinat x- dan y semasa tetingkap paparan berhubung dengan dunia permainan, kita boleh melakukan pengiraan untuk menentukan di mana asal lapisan latar akan diletakkan di tempat kejadian. Kedudukan ini berubah apabila tetingkap paparan bergerak mengikut pengiraan ini.

Dengan menggunakan nilai yang berbeza dalam pengiraan setiap lapisan, kita dapat memindahkan setiap lapisan pada kelajuan yang berbeza, bergantung pada seberapa pantas pemain bergerak.

Kod untuk menggambar lapisan yang terletak di belakang objek pemain kami adalah dalam format berikut: draw_background_tiled_horizontal (lapisan, x, y) di mana draw_background_tiled_horizontal () adalah fungsi yang mudah untuk menarik aset berjubin di lokasi tertentu, dan bg_ex_3_2 adalah lapisan kami aset.

Nilai X lapisan dalam kes ini ditakrifkan oleh nilai X pandangan semasa dibahagikan dengan nilai 2.5, mewujudkan pergerakan mendatar yang bergerak sedikit lebih perlahan daripada pergerakan pandangan itu sendiri.

Begitu juga, nilai Y lapisan ditakrifkan oleh nilai Y pandangan semasa dibahagikan dengan 10. Nilai Y lapisan kemudiannya meningkat sebanyak 300 untuk meletakkannya dengan betul berkaitan dengan dunia permainan. Tanpa penambahan tambahan ini sebanyak 300, aset itu akan muncul di bahagian atas dunia permainan dan bukannya di bahagian bawah mana yang kita mahu.

Nilai-nilai ini jelas akan berbeza dalam projek anda, tetapi perkara penting yang perlu diingat adalah bahawa kelajuan pergerakan lapisan akan bertambah apabila nombor bahagian meningkat, tetapi hanya sampai ke titik tertentu. Dengan menggunakan bahagian, lapisan hanya boleh bergerak pada kelajuan yang sama atau lebih lambat daripada kelajuan pemain.

Kedua lapisan di belakang lapisan ini bergerak lebih perlahan, jadi bilangan bahagiannya lebih kecil:

Untuk membuat lapisan yang bergerak lebih cepat daripada titik fokus, seperti lapisan latar depan, sedikit perubahan perlu dibuat. Tidak ada lapisan latar depan dalam contoh ini, dan lapisan fokus utama sebenarnya hanya boleh dilihat di bahagian bawah skrin. Pemain ini dapat terbang dan di atas titik fokus, yang merupakan tanah, jadi kapal itu sendiri menjadi titik fokus. Kami merujuk kepada alasan sebagai titik fokus dalam contoh ini kerana tanah adalah satu-satunya lapisan yang bergerak pada kelajuan yang sama seperti kapal angkasa. Di sinilah kita dapat memahami kelajuan sebenar di tempat kejadian.

Lapisan tanah bergerak dengan lebih cepat daripada pandangan itu sendiri, jadi kod untuk menggambar lapisan ini sedikit berbeza daripada lapisan latar belakang yang lain:

Dengan lapisan yang bergerak lebih cepat daripada pandangan, kami mengambil nilai negatif X dan Y pandangan semasa dan membiaknya dengan beberapa nilai. Tiada pembahagian yang terlibat dalam mengira kelajuan lapisan latar hadapan. Dalam contoh ini, lapisan tanah bergerak pada kelajuan mendatar iaitu satu setengah kali lebih cepat daripada kelajuan tetingkap paparan. Tiada pendaraban dilakukan pada kelajuan menegak lapisan, jadi ia bergerak pada kelajuan yang sama seperti pandangan. Nilai tambahan 700 ditambahkan ke nilai Y lapisan untuk meletakkannya di lokasi yang dikehendaki berhampiran bahagian bawah dunia permainan.

Kesimpulan

Menatal Parallax adalah cara yang mudah tetapi sangat berkesan untuk menambahkan ilusi kedalaman ke permainan 2D. Saya harap contoh-contoh dalam demo membuktikan betapa berkesannya itu, dan saya harap tutorial itu sendiri telah membuktikan betapa mudahnya ia dilaksanakan!

Rujukan

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.