Montage timeline keys half the amount of actual animation. (How to adjust the key amount in montages?)

Hey all! I have an animation at 60fps, with 109 frames. When I place it in a montage, the timeline shows 54 frames instead. How do I get the montage to match the 109 frames?

The animation plays fully and at the right speed. It just doesn’t show the key numbers correctly. I have frame count specific notifies I’d like to do and it’s tedious to figure out where exactly I have to place the notify.

framecount

1 Like

Bump. I would also like to know how to change it, all my animations are done at 60fps base and it’s really annoying to place notifies when the frame counter is wrong.

1 Like

Bump. The montage can have multiple Anim Sequences with different Targeted Frame Rates, but it would be still nice to have a setting within the Anim Montage Timeline to set the Frame Rate for the Frames that are Displayed in the Timeline.

Fixed it myself by adding the Property “TimelineFrameRate” to the UAnimCompositeBase class. I’m using 5.2.

AnimCompositeBase.h

...
UCLASS(abstract, MinimalAPI)
class UAnimCompositeBase : public UAnimSequenceBase
{
	GENERATED_UCLASS_BODY()

#if WITH_EDITORONLY_DATA
	// This sets the Frames displayed in the Timeline.
	UPROPERTY(EditAnywhere, Category="Composite")
	double TimelineFrameRate;
#endif // WITH_EDITORONLY_DATA
...

AnimComposite.cpp

...
UAnimCompositeBase::UAnimCompositeBase(const FObjectInitializer& ObjectInitializer)
	: Super(ObjectInitializer)
#if WITH_EDITORONLY_DATA
	,TimelineFrameRate(60.0) 
#endif // WITH_EDITORONLY_DATA
{
}
...

AnimModel.cpp

...
double FAnimModel::GetFrameRate() const
{
	if(UAnimSequence* AnimSequence = Cast<UAnimSequence>(GetAnimSequenceBase()))
	{
		return AnimSequence->GetSamplingFrameRate().AsDecimal();
	}
#if WITH_EDITORONLY_DATA
	if (UAnimCompositeBase* AnimCompositeBase = Cast<UAnimCompositeBase>(GetAnimSequenceBase()))
	{
		return AnimCompositeBase->TimelineFrameRate;
	}
#endif // WITH_EDITORONLY_DATA
	else
	{
		return 30.0;
	}
}
...