New: Implement GetTimeRange for FHorizonTweenEventCustomCurve and FHorizonTweenEventCustomColorCurve
New: Add UHorizonTweenEvent::GetTweenSystem
Refactor: change .h and .cpp folder structure
Refactor: meta = (EditCondition = “bUseCustomCurve”) for Custom curve
Refactor EventMacro
Refactor: Change widget dependency module from PrivateDependencyModuleName to PublicDependencyModuleName
Refactor Classes folders
*4.18.0
REFACTOR: Change the inheritance of AHorizonTweenSystem from AActor to AInfo.
*4.17.0
UPDATE: Update to engine 4.17.0, and plugin’s VersionName will also follow engine’s version.
UPDATE: Now BP user can call GetCurrentLerp in any TweenEvent for customize their own tween event.
UPDATE: Refactor parameter name: pTarget to TweenTarget for BP display in TweenSystem’s tween creating function.
NEW: implement StopTweenEventByObject, PlayTweenEventByObject, ResumeTweenEventByObject, RemoveTweenEventByObject, FinishTweenEventByObject in TweenSystem. If your UObject are associated with a TweenEvent in TweenSystem, then it will execute corresponding action.
NEW: implement global DefaultTweenSystem and CreateDefaultTweenEventFunctions for all exist tween events.
Refactor: redesign blueprint function Category, all functions in plugins are put into relative Category group. Currently all Plugin functions are grouped into following Category: HorizonPlugin|TweenFunctionLibrary, HorizonPlugin|TweenSystemLibrary, HorizonPlugin|TweenSystemLibraryProxy, HorizonPlugin|TweenSystemProxy. TweenFunctions in TweenSystemLibrary and TweenSystemLibraryProxy will use global DefaultTweenSystem to create TweenEvents.
Deprecated: paramImpl.bShortestPath in CreateTweenActorRotatorFromToEventWithParam and CreateTweenSceneComponentRotatorFromToEventWithParam are deprecated and will be removed in future plugin release, please recreate paramImpl and use bUseShortestPath instead.
*1.2.1
upgrade engine version to 4.16
*1.2.0
UPDATE: upgrade engine version to 4.15
NEW: Add HorizonTweenSystemProxy for blueprint user, now you can create an async node in EventGraph for all TweenEvent. All tween creation method put under HorizonPlugin|TweenSystemProxy category. Please check HorizonTweenPlugin: The mainpage documentation for more detail.
*1.1.0
UPDATE: upgrade engine to 4.14
MEW: add FinishTweenEventByName and FinishAllTweenEvent with param bTweenToEnd that can control if we want to set current tween alpha to 1 before finish the event.
*1.1.0
[update] upgrade engine to 4.14
[new] add FinishTweenEventByName and FinishAllTweenEvent with param bTweenToEnd that can control if we want to set current tween alpha to 1 before finish the event.
*1.1.0
[update] upgrade engine to 4.14
[new] add FinishTweenEventByName and FinishAllTweenEvent with param bTweenToEnd that can control if we want to set current tween alpha to 1 before finish the event.
Can you think of any reason why HorizonTween would always seem to want to rebuild itself whenever I do a solution build (even when it hasn’t been dirtied)?
*1.2.0
[update] upgrade engine to 4.15
[new] Add HorizonTweenSystemProxy for blueprint user, now you can create an async node in EventGraph for all TweenEvent. All tween creation method put under HorizonPlugin|TweenSystemProxy category. Please check HorizonTweenPlugin: The mainpage documentation
New: Implement GetTimeRange for FHorizonTweenEventCustomCurve and FHorizonTweenEventCustomColorCurve
New: Add UHorizonTweenEvent::GetTweenSystem
Refactor: change .h and .cpp folder structure
Refactor: meta = (EditCondition = “bUseCustomCurve”) for Custom curve
Refactor EventMacro
Refactor: Change widget dependency module from PrivateDependencyModuleName to PublicDependencyModuleName
Refactor Classes folders
*4.18.0
REFACTOR: Change the inheritance of AHorizonTweenSystem from AActor to AInfo.
*4.17.0
UPDATE: Update to engine 4.17.0, and plugin’s VersionName will also follow engine’s version.
UPDATE: Now BP user can call GetCurrentLerp in any TweenEvent for customize their own tween event.
UPDATE: Refactor parameter name: pTarget to TweenTarget for BP display in TweenSystem’s tween creating function.
NEW: implement StopTweenEventByObject, PlayTweenEventByObject, ResumeTweenEventByObject, RemoveTweenEventByObject, FinishTweenEventByObject in TweenSystem. If your UObject are associated with a TweenEvent in TweenSystem, then it will execute corresponding action.
NEW: implement global DefaultTweenSystem and CreateDefaultTweenEventFunctions for all exist tween events.
Refactor: redesign blueprint function Category, all functions in plugins are put into relative Category group. Currently all Plugin functions are grouped into following Category: HorizonPlugin|TweenFunctionLibrary, HorizonPlugin|TweenSystemLibrary, HorizonPlugin|TweenSystemLibraryProxy, HorizonPlugin|TweenSystemProxy. TweenFunctions in TweenSystemLibrary and TweenSystemLibraryProxy will use global DefaultTweenSystem to create TweenEvents.
Deprecated: paramImpl.bShortestPath in CreateTweenActorRotatorFromToEventWithParam and CreateTweenSceneComponentRotatorFromToEventWithParam are deprecated and will be removed in future plugin release, please recreate paramImpl and use bUseShortestPath instead.
I was trying to find the best way to play a tween in c++. I am currently using the CreateTweenEventWithParameter method but using the callback documentation to trigger the tween inside a function. I was trying to store the tweenevent in a variable but it seems like I have to call the CreateTweenEvent everytime to get it to play. Is there a more straightforward way to trigger the same tween over and over again?
Also, what is the best way to chain tweens? Can I just call another one on the onfinished callback of the first tween?
Tween event is designed in fire and forget pattern, HorizonTweenSystem will delete any finished tween events.
if you want to reuse tween event, you can:
Set NumOfLoop to 0(so it never finish and deleted by tween system)
In OnTweenLoop callback, call UHorizonTweenEvent::Stop() or UHorizonTweenEvent::Pause().
When you want to start the tween, you can call UHorizonTweenEvent::Play() or UHorizonTweenEvent::Resume() to replay tween.
>>Also, I was wondering the best way to chain tweens together. Since I basically am trying to fade up and fade down an effect once the other tween is finished.
I think you can chain those event in one of these callback:
OnTweenStartNative
OnTweenUpdateNative
OnTweenLoopNative
OnTweenFinishedNative
ex:
TweenList[0]->OnTweenLoopNative.AddLambda([TweenList](UHorizonTweenEvent* InTweenEvent)
{
TweenList[0]->Stop();
TweenList[1]->Start();
}
);
Or you can write another Manager to arrange dependencies of your tween events.