Skip to content

Unreal 4 UMG UI tweening plugin in C++

License

Notifications You must be signed in to change notification settings

benui-dev/UE-BUITween

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

UI Tweening Libary for UE4/UMG

Create simple tweens for UMG widgets from C++.

UBUITween::Create( SomeWidget, 0.2f )
	.FromTranslation( FVector2D( -100, 0 ) )
	.FromOpacity( 0.2f )
	.ToTranslation( FVector2D( 20, 10 ) )
	.ToOpacity( 1.0f )
	.Begin();

Usage

The plugin module registers itself to tick automatically even during game-world pause.

// Make UWidget MyWidget fade in from the left
const float TweenDuration = 0.7f;
const float StartDelay = 0.3f;
UBUITween::Create( MyWidget, TweenDuration, StartDelay )
	.FromTranslation( FVector2D( -100, 0 ) )
	.FromOpacity( 0.2f )
	.ToReset()
	.Easing( EBUIEasingType::OutCubic )
	.Begin();

Parameters available:

Property From To
Translation FromTranslation( FVector2D) ToTranslation( FVector2D )
Scale FromScale( FVector2D ) ToScale( FVector2D )
Rotation FromRotation( float ) ToRotation( float )
Opacity FromOpacity( float ) ToOpacity( float )
Color FromColor( FLinearColor ) ToColor( FLinearColor )
Visibility FromVisibility( ESlateVisibility ) ToVisibility( ESlateVisibility )
Canvas Position FromCanvasPosition( FVector2D ) ToCanvasPosition( FVector2D )
SizeBox Max Height FromMaxDesiredHeight( float ) ToMaxDesiredHeight( float )
Slot Padding FromPadding( FMargin ) ToPadding( FMargin )

Other helper functions:

  • ToReset()

Callbacks

UBUITween::Create( MyWidget, 0.5f )
	.FromRotation( -90 )
	.ToRotation( 45 )
	.OnComplete( FBUITweenSignature::CreateLambda([]( UWidget* Owner ) {
		// Do some logic on complete
	} ) )
	.Begin();

For the full API, check the source code.

Caveats

  • I haven't performance-tested it beyond having 5-6 tweens running simultaneously.
  • No Blueprint support.

License

CC0

Contact

If you find it useful, drop me a line @_benui on Twitter

benui.ca