UE5.8で追加された"DefaultWidgetAnimationFrameRate"の対応漏れについての報告となります

お世話になっております。

<br/>

UE5.8でウィジェットアニメーションのデフォルトフレームレートを設定できるDefaultWidgetAnimationFrameRateが追加されましたが、

UWidgetAnimation::GetNullAnimation()にも同様の処理があり、そちらの変更が漏れているようです。(もともと20というマジックナンバーで設定されていた為、対応漏れと思われます)

<br/>

こちらの関数はアニメーションの非選択状態での表示となる為、実際の処理には影響無い状態ではあります。

[Attachment Removed]

再現手順
1.[プロジェクト設定]-[エディタ]-[ウィジェットデザイナー(チーム)]-[デフォルトウィジェットアニメーションフレームレート]を変更

2.ユーザーウィジェットアセットを作成

3.アニメーションタブを表示する

4.表示が「20fps」となっている事を確認(1で変更した数値ではない)

[Attachment Removed]

処理を確認したところ"UMGEditorProjectSettings.h"がUMGEditorモジュールに存在していますが、UWidgetAnimationはUMGモジュールとなっており、UMGモジュールからUMGEditorモジュールが参照できない(循環参照となってしまう)ので、現状の構成or処理では対応が難しいようにも思えます。

[Attachment Removed]

お世話になっております。

ご指摘ありがとうございます。確かに実装漏れと思われます。

対処法としましては、WidgetBlueprintEditor側でUMGモジュール側のNullAnimationをつかみ、SetPlaybackRange()などを呼び出しているコードがありますので、同様にしてSetDisplayRate()で設定値を注入​するという方法が考えられます。以下に暫定パッチを準備いたしました。

Engine\Source\Editor\UMGEditor\Private\WidgetBlueprintEditor.cpp

// include群にこれを追加
#include "UMGEditorProjectSettings.h"
 
// L1654付近
	FSequencerInitParams SequencerInitParams;
	{
		UWidgetAnimation* NullAnimation = UWidgetAnimation::GetNullAnimation();
 
+		const UUMGEditorProjectSettings* UMGEditorSettings = GetDefault<UUMGEditorProjectSettings>();
+		NullAnimation->MovieScene->SetDisplayRate(FFrameRate(UMGEditorSettings->DefaultWidgetAnimationFrameRate, 1));

​​本件は準備ができ次第、社内のバグトラッカーに報告を行います。

以上、よろしくお願いいたします。​

[Attachment Removed]