Is there a way of removing the easing from the Rinterp node?

I want to rotate something to look at something else but I want it to be a linear movement. Is there a very simple way of doing this? or do you have to write your own little custom graph? the Rinterp node is so almost perfect.

Simply rotate the object by the time. If you know the angle and the System FPS, then you can calculate the amount of rotation per process tick, which creates a smooth rotation to the target.

There’s so much in this answer that I don’t know how to do. Can you provide an example of how I would do that?

also this isn’t an answer to the question, but thanks anyway.

I am not sure if you can change Rinterp, but it’s rather easy to make what you want.
I am not at my PC right now so I can’t show you a blueprint but it should go like this:

Start with Event Tick, connect to SetActorRotation. Then i am not sure how you want to have it specifically, but you need to use delta seconds output in Event Tick and and your desired rotation to calculate the rotation on each tick.

It should go something like this: NewRotation=(RotationSpeed*DeltaSeconds)+CurrentRotation
Then set NewRotation to SetActorRotation

It’s just a framework and I am not sure if this is specifically what you have and want, but it should be rather simple to figure out.

It doesn’t actually end up being as simple as you would hope. the problem is not simply applying linear rotation but checking if you’re at the target rotation and not overshooting. There is an additional problem in that you have to ‘wrap’ this calculation from -180 to 180. I did it in the end, but I’m going to get someone else in my studio to check it’s the simplest solution before posting.

This function is already implemented in the engine, but not exposed to BP:

CORE_API FRotator FMath::RInterpConstantTo( const FRotator& Current, const FRotator& Target, float DeltaTime, float InterpSpeed )
{
	// if DeltaTime is 0, do not perform any interpolation (Location was already calculated for that frame)
	if( DeltaTime == 0.f || Current == Target )
	{
		return Current;
	}

	// If no interp speed, jump to target value
	if( InterpSpeed <= 0.f )
	{
		return Target;
	}

	const float DeltaInterpSpeed = InterpSpeed * DeltaTime;
	
	const FRotator DeltaMove = (Target - Current).GetNormalized();
	FRotator Result = Current;
	Result.Pitch += FMath::Clamp(DeltaMove.Pitch, -DeltaInterpSpeed, DeltaInterpSpeed);
	Result.Yaw += FMath::Clamp(DeltaMove.Yaw, -DeltaInterpSpeed, DeltaInterpSpeed);
	Result.Roll += FMath::Clamp(DeltaMove.Roll, -DeltaInterpSpeed, DeltaInterpSpeed);
	return Result.GetNormalized();
}

How would i expose this to BP? i looked at creating a custom blueprint node but as this is CORE_API i’m not sure if it would work.

Use the RInterpToConstant node.