Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines
(+1)

Thanks!   You'll want to start by looking into "CharFXTransform" in the Godot documentation.   The "visible" boolean is what you want to play with.  For the fade out part, just make it wait for the fade in process to finish before starting and repeat the logic except change opacity from 100 to 0, so the same thing but in reverse visually... To make it wiggle, you can actually offset each individual character with [var].offset = Vector2(X, Y), but you want to make sure you make X and Y something like X = sin(something)* amplitude and Y = sin(something)* amplitude.   or cos.  Basically you leverage that sin/cos is a wave, and multiply it by how wiggly you want it to be.   Create this in a standalone .gd, give it a classname, be sure to include a declared variable called "bbcode" = "[sickradeffect]" then you can call your sick rad effect into code attached to dialogue box if and only if you wrap text in the inspector like this.   "[sickradeffect]SICKRADEFFECTEXAMPLE[/sickradeffect]"    That way sickradeffect only applies if and only if you wrap text in this.  You're essentially adding something custom along side the ability to write out text like this "[b]THIS WOULD BE BOLD[/b]".


This is the way to do it to save yourself from typing it out over and over again in whatever project.   Even cooler, you can create a permanent, personal library of text effects that to include in any project from the get go.   If you haven't written anything like that yet, once you do, congrats, you've crafted your first personalized boilerplate code.  Ideally each text effect that you design should be in a seperate .gd file, and should have a unique bbcode to prevent conflicts.   In your dialogue box code include something like "text_label.custom_effects = [sickradeffect.new(), sickradeffect2.new(),...etc]",.         "custom_effects" is a pre-existing array designed for you to fill it with....custom effects in the manner described here.  And then make sure to @onready your label.   I hope that helps!