Skip to main content
GameDev.net gamedev.net
🔒 Locked 🤖 Godot

Godot 4: One-Shot Top-Down Water Splash VFX with AnimatedSprite2D

Started by rio1222 Jul 31 at 6:40 AM 0 replies 400+ views
Original Post
rio1222
rio1222

I built a small set of registered top-down water-interaction animations and used the free Shallow Step sprite to make a reusable one-shot AnimatedSprite2D scene in Godot 4.

The sheet contains 16 centered frames in a 4x4 layout. Set the animation to 16 FPS, disable looping, and attach:

extends AnimatedSprite2D

func _ready() -> void:
    play("shallow_step")
    await animation_finished
    queue_free()

Save that as a small VFX scene and spawn it wherever a foot, projectile, or object touches shallow water:

const SHALLOW_STEP_VFX := preload(
    "res://vfx/water/shallow_step_vfx.tscn"
)

func spawn_water_step(at: Vector2) -> void:
    var fx := SHALLOW_STEP_VFX.instantiate()
    get_tree().current_scene.add_child(fx)
    fx.global_position = at

Because every frame shares the same registered center, the splash stays fixed on the contact point without per-frame offset work. The same approach works for ripples, wakes, bobber bites, rain splashes, and projectile impacts.

The free starter contains Calm Ripple, Shallow Step, and Bobber Bite in 64x64 and 128x128 sizes, with clear-blue and tintable-white variants:

https://rio1222.itch.io/top-down-water-interaction-vfx

The full pack adds 12 water interactions, three palettes, numbered PNG sequences, 4x4 sheets, GIF previews, and a JSON manifest.

AI assistance disclosure: the concept, build code, documentation, and this post were prepared with Codex assistance and reviewed before publication. The graphics are original deterministic procedural drawings; no third-party or model-generated source images were used.

Animated preview of top-down water interaction VFX
Top-down water interaction VFX shown in a game scene

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.