UE5.6でのみ、TakeRecorderSubsystem で、TakeRecorderStarted状態が300msec以下になってしまう(他verでは3sec程度)

Unreal Engine 5.6でのTakeRecorderSubsystemの推奨化により、コードの移植を進めています。

私たちのプロジェクトでは、TakeRecorderPreInitialize, TakeRecorderStarted, TakeRecorderFinishedの状態に対応してWidgetの表示を切り替える機能を実装しています。

これまでは、UTakeRecorderPanel* RecordPanel = UTakeRecorderBlueprintLibrary::OpenTakeRecorderPanel();クラスを利用してこの状態を取得していました。

TakeRecorderSubsytemにこの機能を書き換えた際、5.4, 5.5では特に問題が起きませんでしたが、5.6でのみ、TakeRecroderStarted状態が300msec程度となってしまいます。

この挙動は5.6でのみ変更されたもので、エンジン側のバグかと思いますが、どのようにすればよいでしょうか?

With the recommendation of the TakeRecorderSubsystem in Unreal Engine 5.6, we are progressing with code migration. In our project, we have implemented a feature that switches the display of widgets corresponding to the states of TakeRecorderPreInitialize, TakeRecorderStarted, and TakeRecorderFinished.

Previously, we used the class `UTakeRecorderPanel* RecordPanel = UTakeRecorderBlueprintLibrary::OpenTakeRecorderPanel();` to retrieve these states. When rewriting this functionality to utilize the TakeRecorderSubsystem, there were no issues in versions 5.4 and 5.5. However, in version 5.6, the TakeRecorderStarted state lasts for approximately 300 milliseconds.

Since this behavior has changed only in version 5.6, we suspect it may be a bug on the engine side. Could you advise on how to address this issue?

UE5.4

[2025.07.14-05.38.57:273][553]LogTemp: debug TakeRecorderPreInitialize

[2025.07.14-05.39.00:331][696]LogTemp: debug TakeRecorderStarted

[2025.07.14-05.39.23:001][949]LogTemp: debug TakeRecorderFinished

UE5.6

[2025.07.14-06.04.35:132][923]LogTemp: debug TakeRecorderPreInitialize

[2025.07.14-06.04.35:409][923]LogTemp: debug TakeRecorderStarted

[2025.07.14-06.04.39:911][139]LogTemp: debug TakeRecorderFinished

`// register delegate function

void UOurProjectFunction::AssignTakeRecorderDelegates()

{

#if ENGINE_MINOR_VERSION == 3

TakeRecorderPreInitializeDelegate.BindUFunction(this, “OnTakeRecorderPreInitialize”);

UTakeRecorderBlueprintLibrary::SetOnTakeRecorderPreInitialize(TakeRecorderPreInitializeDelegate);

TakeRecorderStartedDelegate.BindUFunction(this, “OnTakeRecorderStarted”);

UTakeRecorderBlueprintLibrary::SetOnTakeRecorderStarted(TakeRecorderStartedDelegate);

TakeRecorderCancelledDelegate.BindUFunction(this, “OnTakeRecorderCancelled”);

UTakeRecorderBlueprintLibrary::SetOnTakeRecorderCancelled(TakeRecorderCancelledDelegate);

TakeRecorderFinishedDelegate.BindUFunction(this, “OnTakeRecorderFinished”);

UTakeRecorderBlueprintLibrary::SetOnTakeRecorderFinished(TakeRecorderFinishedDelegate);

#elif ENGINE_MINOR_VERSION == 4 || ENGINE_MINOR_VERSION == 5 || ENGINE_MINOR_VERSION == 6

UTakeRecorderSubsystem* TakeRecorderSubsytem = GEditor->GetEngineSubsystem();

if (!TakeRecorderSubsytem)

{

return;

}

TakeRecorderSubsytem->TakeRecorderStarted.AddDynamic(this, &UOurProjectFunction::OnTakeRecorderStarted);

TakeRecorderSubsytem->TakeRecorderFinished.AddDynamic(this, &UOurProjectFunction::OnTakeRecorderFinishedMulticast);

TakeRecorderSubsytem->TakeRecorderCancelled.AddDynamic(this, &UOurProjectFunction::OnTakeRecorderCancelled);

TakeRecorderSubsytem->TakeRecorderPreInitialize.AddDynamic(this, &UOurProjectFunction::OnTakeRecorderPreInitialize);

#endif

}

void UOurProjectFunction::OnTakeRecorderStarted()
{
ShowHideRecordingButton(true, ESlateVisibility::Visible);
UE_LOG(LogTemp, Log, TEXT(“debug TakeRecorderStarted”));
}
void UOurProjectFunction::OnTakeRecorderCancelled()
{
ShowHideRecordingButton(false, ESlateVisibility::Collapsed);
UE_LOG(LogTemp, Log, TEXT(“debug TakeRecorderCancelled”));
}
void UOurProjectFunction::OnTakeRecorderFinished()
{
ShowHideRecordingButton(false, ESlateVisibility::Collapsed);
UE_LOG(LogTemp, Log, TEXT(“debug TakeRecorderFinished”));
}
void UOurProjectFunction::OnTakeRecorderFinishedMulticast(ULevelSequence* SequenceAsset)
{
ShowHideRecordingButton(false, ESlateVisibility::Collapsed);
UE_LOG(LogTemp, Log, TEXT(“debug TakeRecorderFinishedMulticast”));
}`

再現手順

Hey there,

Yes this looks to be a bug on the engine side. We’ve logged it with the team. Could you do an overview of how this might be affecting you?

Dustin

We did make improve the speed overall, is the faster time causing you issues?