Sabtu, 20 Oktober 2018

Instancing - Part 1

Hanya membuat satu scene dengan banyak node di dalamnya memungkinkan untuk sebuah project kecil, tetapi sejalan dengan berkembang serta semakin kompleksnya project yang Anda kerjakan, terlalu banyak node dalam satu scene akan semakin membuat project Anda susah untuk dikelola. Untuk mengatasi masalah ini, Godot memungkinkan Kita untuk membuat sebanyak mungkin scene ke dalam satu project. Hal ini dapat sangat membantu Anda mengorganisasi komponen-komponen yang dibutuhkan dalam game Anda.

Dalam postingan sebelumnya Scenes dan Nodes Anda telah mempelajari bahwa scene adalah gabungan dari kumpulan beberapa node dalam bentuk tree (pohon biner), dengan satu node utama.
Nodes tree
Tree
Anda bisa membuat sebanyak mungkin scene sesuai dengan yang Anda inginkan dan menyimpan mereka menjadi sebuah file. File tersebut biasa disebut "Packed Scenes" (Paket Scene) dan memiliki  ekstensi file.tscn.
Instancing
Pre-instancing
Saat sebuah scene telah menjadi sebuah file, file tersebut bisa di-instanced ke scene lain selayaknya sebuah node (bisa dibilang sebuah file scene adalah node baru yang Anda buat sendiri).
Instancing
Instancing
Dalam gambar di atas, Scene B ditambahkan ke Scene A sebagai instance.

Contoh Instancing

Untuk mempelajari bagaimana cara kerja instancing, mari Kita mulai dengan mengunduh project sederhana berikut: ⏬instancing.zip.

Ekstrak project tersebut ke dalam direktori manapun. Lalu buka aplikasi Godot dan tambahkan project baru melalui tombol import.
Godot Project Manager
Godot Project Manager
Akan terbuka panel dialog untuk memilih folder data project, arahkan ke dalam folder yang sudah Anda ekstrak sebelumnya. Lalu pilih "project.godot" yang ada di dalam folder tersebut, selanjutnya tekan
Open dan tekan Import & Edit.

Project ini memiliki dua scene: "Ball.tscn" dan "Main.tscn". Ball scene menggunakan RigidBody2D untuk mengaplikasikan physics behavior (perilaku fisika) dalam sebuah bola sedangkan main scene memiliki obstacles (rintangan) yang dibuat dengan menggunakan node StaticBody2D.

Ball.tscn
Ball.tscn

Main.tscn
Main.tscn
Buka Main.tscn (Main scene), lalu kemudian pilih root node -nya (node utama).
Pilih root node pada main scene
Pilih root node pada main scene
Kita akan tambahkan scene Ball sebagai instance child node untuk Main node. Klik tombol yang berbentuk seperti simbol link (akan muncul keterangan bertuliskan "Instance a scene file as Node.") dan pilih file Ball.tscn.
Tombol instance
Tombol instance
Akan muncul objek bola yang terdapat di scene Ball kedalam Main scene. Bola tersebut secara otomatis berada di pojok kiri atas viewport (merupakan posisi default saat pertama kali sebuah node/instance scene dibuat yaitu kordinat
(0,0)). Klik dan drag bola tersebut di suatu tempat dekat bagian tengah atas dari scene. Semacam gambar dibawah ini.
Atur posisi bola
Atur posisi bola

Tekan Play dan lihatlah bola akan terjatuh ke arah bawah layar.
Tombol play
Tombol play

Multiple Instances (melakukan Instance lebih dari satu)

Anda bisa melakukan instance sebanyak mungkin lebih dari satu sesuai keinginan, entah dengan menggunakan tombol instance, atau dengan klik kanan di bagian node bola lalu pilih "Duplicate", atau hanya dengan menekan Ctrl+D (Cmd+D jika menggunakan Mac).
Memperbanyak instance
Memperbanyak instance

Jalankan sekali lagi dan semua bola akan jatuh, seperti gambar dibawah ini.
 Multiple Instance
Multiple Instance

Melakukan Edit Pada Instance

Buka scene Ball dan rubah properti Bounce di inspector menjadi 1. Tekan Play dan perhatikan semua bola yang di instance sebelumnya akan menjadi lebih membal (bouncy). Karena bola-bola yang di-instance sebelumnya adalah merupakan satu file scene, meruba properti di scene tersebut akan berakibat ke semua node instance-annya.

Apabila Anda ingin merubah properti secara individual, maka lakukan perubahan di dalam scene Main, sebelumnya coba kembalikan properti Bounce di scene Ball menjadi 0.5. Lalu kembali ke main scene, pilih satu bola dan rubah Bounce nya menjadi 1 dan tekan play.
Inspector properties
Inspector properties
Perhatikan di bagian sebelah kanan akan muncul tombol "revert" (simbol tanda panah melingkar), ketika tombol ini muncul, berarti Anda telah merubah nilai properti yang akan menggantikan nilai dari file scene sumbernya. Saat seperti ini, meskipun properti scene sumbernya dirubah, nilai yang ada di scene (tempat Anda melakukan perubahan sebelumnya) 
akan tetap, kecuali Anda menekan tombol revert yang berarti mengembalikan nilai properti sesuai dengan scene sumbernya.

Konklusi

Instancing merupakan metode yang sangat berguna ketika Anda ingin membuat duplikat dari suatu objek (instanced scene/node).

Source: http://docs.godotengine.org/en/3.0/getting_started/step_by_step/instancing.html

0 komentar:

Posting Komentar