SuperTween - Tween ANYTHING

i tried tweening the text itself which didnt work (it just waited some time and changed the text itself) i dont know what maxvisiblegraphemes does but ill try tweening that

nvm i know what it does now this seems very useful

3 Likes

it seems like i will have to get how many characters are in the text for it to work so how would i do that

nevermind i figured it out now i am gonna try to tween it thanks

yay it worked!!!

2 Likes

It can! I forgot to include this in the original version, so I have updated it now to include this.

1 Like

I will change the behavior of text tweening to do this as well.
Edit: This has now been added! Check the original post for an example.

2 Likes

The trick is that instead of using velocity, I just update the character’s position. Here’s all of the relevant flower platform code I have for reference:

function MovingFlower:ApplyAdditiveAnimation()
	local timeNow = tick() % 10000
	local height = math.sin(timeNow * MovingFlower.OscillateSpeed) * MovingFlower.OscillateHeight
	local rotation = timeNow * MovingFlower.SpinSpeed
	
	local cframe = self.Instance:GetPivot()
	cframe += Vector3.yAxis * height
	cframe *= CFrame.Angles(0, rotation, 0)
	
	self.Instance:PivotTo(cframe)
	self:MovePlayer(cframe)
	self.LastPivot = cframe
end

function MovingFlower:MovePlayer(cframe)
	local player = MovingFlower.Player.Get()

	if not player.Character.Local.Classes.GroundCheck:IsStandingOn(self.Instance) then
		return
	end
	
	local playerCFrame = player.Character:GetCFrame()
	local playerRelative = self.LastPivot:ToObjectSpace(playerCFrame)
	local playerNew = cframe:ToWorldSpace(playerRelative)
	
	player.Character:SetCFrame(playerNew)
end

I have some classes behind the scenes dealing with the player, but the important part is that the methodology goes like this:

  • SuperTween fires the Updated event
  • After each update, check if the player is standing on the platform
  • If they are, get the last update’s cframe
  • Get the player cframe relative to this last update
  • Apply this relative offset to where the platform currently is

So in short, the platform is keeping track of where the player is relative to itself, then keeping that relative cframe in place for the current update.

2 Likes

Ahh I see. the thing is this would not be viable if we wanted to move let’s say 100 parts on a platform when we tween the platforms position.

I saw this thread:

and I would like to know if it’s possible to do it together using your module. But I’m worried it will not since we would need to change Assembly Linear Vel/Rot at a RenderStepped/Stepped before physics is calculated and as well as relying on its DeltaTime Parameter.

1 Like

If you want parts sitting on top of a platform to move with it, yes that would be a better method. SuperTween uses task.wait() to update instead of RunService events…

1 Like

Absolutely impressive work. This will make workflow way faster and easier.

1 Like

Certainly going to be using this, I had a problem with tweening beam colours yesterday so this is a godsend!

1 Like

This is AMAZING! wonderful job on this! 0_0

so does this mean i can finally tween “timeofday”

ps: it works but its glitched :sob:

what is that game in the background with the small cube guy i want to play it if i can

1 Like

unreleased game, hopefully we get it done someday…

THIS IS SO COOL!!! Thank you so much bro you’re a life and time saver ngl

Hello! I was looking through your module’s code and I noticed something wrong with your constructor function, I’m not sure if this is a mistake or not but you have three assert calls with the same first argument and different outputs, meaning that if you didn’t pass tweenInfo or properties, it would still continue.

Oops! Good catch, thanks for letting me know. This is fixed now.

Can you add a .rbxl to play around in , that is EDITable?

Thanks

Why do you need it? Can you just start using the module?

I’ve already provided all of my source code in the original post.