Membuat environment 3D untuk game sering membutuhkan proses penempatan objek yang cukup teliti. Developer perlu mengatur posisi berbagai asset agar setiap objek berada di permukaan yang tepat. Proses tersebut juga dapat memakan waktu ketika sebuah game memiliki banyak prop dan elemen environment.

Surface Snap hadir sebagai plugin Godot yang membantu developer mempercepat proses tersebut. Tool ini memungkinkan pengguna menempelkan objek 3D langsung ke permukaan objek lain. Selain itu, Surface Snap dapat menyelaraskan orientasi objek dengan permukaan target.

Jettelly membagikan demonstrasi Surface Snap melalui X. Video tersebut menunjukkan bagaimana plugin ini dapat mempercepat penempatan objek untuk kebutuhan level design dan environment game 3D.


Apa Itu Surface Snap?

Source: https://x.com/jettelly/status/2090439344469262748

Surface Snap merupakan editor plugin untuk Godot 4.7+ yang membantu pengguna memindahkan Node3D ke permukaan objek lain.

Cara penggunaannya cukup sederhana. Developer memilih objek, menahan tombol Alt, lalu menyeret objek tersebut menuju permukaan target.

Plugin kemudian menghitung posisi dan alignment objek secara otomatis. Dengan demikian, developer tidak perlu mengatur posisi dan rotasi secara terpisah.

Surface Snap juga memberikan fleksibilitas lebih dibanding vertex snapping. Alih-alih hanya menggunakan titik vertex tertentu, developer dapat menempatkan objek pada berbagai bagian permukaan.


Objek Bisa Mengikuti Arah Permukaan

Salah satu fitur utama Surface Snap adalah alignment otomatis.

Plugin menyelaraskan sumbu Y objek dengan normal dari permukaan target. Karena itu, objek dapat mengikuti arah permukaan yang disentuh.

Fitur ini sangat berguna untuk kebutuhan game 3D, terutama saat developer bekerja dengan:

  • Dinding.
  • Permukaan miring.
  • Lantai yang tidak rata.
  • Objek dengan bentuk kompleks.
  • Environment 3D.

Selain itu, Surface Snap memberikan offset agar objek tidak langsung masuk atau menembus permukaan target.


Mempermudah Level Design Game 3D

Penempatan objek menjadi bagian penting dalam pembuatan level game 3D.

Biasanya, developer perlu memindahkan objek terlebih dahulu. Setelah itu, mereka harus memutar dan menyesuaikan posisi asset secara manual.

Surface Snap menyederhanakan proses tersebut.

Sebagai contoh, developer ingin menempatkan sebuah prop di atas permukaan yang miring. Tanpa plugin, developer harus mengatur posisi dan rotasi secara manual.

Sebaliknya, dengan Surface Snap, developer cukup menyeret prop menuju permukaan target. Plugin langsung menyesuaikan posisi dan orientasi objek.

Oleh karena itu, developer dapat melakukan iterasi level game dengan lebih cepat.


Menggunakan Collision sebagai Permukaan Target

Surface Snap menggunakan sistem collision untuk mengenali permukaan target.

Developer perlu menambahkan collision fisik pada objek yang ingin digunakan sebagai target. Contohnya, developer dapat memakai CollisionShape3D bersama StaticBody3D atau Area3D.

Selain itu, pengguna juga dapat memakai CSGShape3D dengan collision aktif.

Developer dapat mengatur physics layer melalui Collision Mask. Dengan pengaturan tersebut, mereka dapat memilih objek atau layer mana yang berfungsi sebagai permukaan snapping.

Hasilnya, developer memiliki kontrol yang lebih jelas saat mengatur asset dalam scene game.


Mendukung Workflow Non-Destructive

Surface Snap juga bekerja dengan sistem Undo dan Redo bawaan Godot.

Godot mencatat setiap perubahan posisi yang dibuat melalui proses snapping. Karena itu, developer dapat membatalkan perubahan menggunakan Ctrl+Z ketika hasilnya belum sesuai.

Fitur ini membuat proses eksperimen menjadi lebih fleksibel.

Developer dapat mencoba berbagai posisi untuk asset game. Jika satu posisi kurang cocok, mereka bisa membatalkannya dan mencoba pilihan lain.

Selain itu, workflow seperti ini membantu developer ketika desain level berubah selama proses pengembangan game.


Cocok untuk Berbagai Asset Game

Surface Snap dapat membantu developer mengatur berbagai jenis asset dalam game 3D.

Beberapa contoh penggunaannya meliputi:

  • Mengatur furniture di dalam environment.
  • Menambahkan dekorasi pada dinding.
  • Memasang prop di atas terrain.
  • Menyesuaikan objek dengan permukaan miring.
  • Mengatur asset untuk level design.
  • Mempercepat pembuatan environment game.

Plugin ini memang memiliki fungsi yang sederhana. Namun, tool kecil seperti Surface Snap dapat menghemat banyak waktu ketika developer harus mengatur ratusan asset dalam sebuah game.


Surface Snap dan Fitur Snapping Godot

Godot sudah menyediakan beberapa fitur snapping bawaan. Namun, Surface Snap menawarkan workflow yang lebih berfokus pada permukaan.

Developer dapat menyeret objek langsung menuju permukaan target. Setelah itu, Surface Snap membantu menyesuaikan posisi dan orientasi berdasarkan bentuk permukaan.

Pembuat plugin juga menjelaskan bahwa Surface Snap berbeda dari vertex snapping. Surface Snap tidak membatasi penempatan objek pada vertex tertentu.

Karena itu, plugin ini dapat menjadi pilihan tambahan bagi developer yang ingin mengatur asset game dengan cara yang lebih praktis.


Kesimpulan

Surface Snap menunjukkan bagaimana plugin sederhana dapat membantu mempercepat workflow pembuatan game di Godot.

Developer dapat menyeret objek ke permukaan target dan membiarkan plugin menyesuaikan alignment secara otomatis. Sistem collision juga membantu Surface Snap mengenali permukaan yang dapat digunakan.

Selain itu, dukungan Undo dan Redo membuat proses eksperimen menjadi lebih fleksibel.

Bagi developer yang membuat game 3D menggunakan Godot, Surface Snap dapat menjadi tool yang berguna untuk mempercepat level design, mengatur environment, dan menempatkan asset dengan lebih praktis.

Informasi lengkap mengenai Surface Snap dapat kamu lihat melalui postingan Surface Snap di Reddit atau halaman Surface Snap di Godot Asset Store.

Referensi:
X.com
Game Application and Technology

Kelvin

Eduard Sutanto

Author

Content Creator Intern @BINUS Game Application & Technology

Muhamad Fajar

Muhamad Fajar

Editor

Lecturer @BINUS Game Application Technology