DefaultEditorPerProjectUserSettings.iniで追加したVisibilityTrackのデフォルト値がfalseになる

この質問は、以下のスレッドに関連して作成されました: [Content removed]

<br/>

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

[/Script/LevelSequenceEditor.LevelSequenceEditorSettings]
+TrackSettings=(MatchingActorClass=/Script/Engine.Character,DefaultPropertyTracks=((PropertyPath="bHidden")))

DefaultEditorPerProjectUserSettings.iniで上記のように記述して、LevelSequenceにCharacterを追加したときに、VisibilityTrackも一緒に追加するようにしています。

<br/>

UE5.3のときは、VisibilityTrackのデフォルト値が true になっていたのですが、UE5.7にアップデートしたところ、デフォルト値が false になってしまいました。

<br/>

デフォルト値を true にするにはどうすればよいでしょうか?

<br/>

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

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

ご質問ありがとうございます。

本件ですが、Visibilityトラックは「Actor Hidden In Game(=bHidden)」プロパティをバインドし、特殊設定(Externally Inverted)により、トラック側の値のTrue/Falseを逆転させてbHiddenに流し込むことで動作を行っております。そのため、キーフレームを作成する際もBool値の反転操作が必要なのですが、UE5.6→UE5.7で行われたリファクタリング​でこの反転部分を請け負っていたコードがDeprecatedとなり、汎用処理に一本化された関係で、ご指摘のように処理がおかしくなってしまいました。

本件は社内のバグトラッカーに登録しました。Public Issueとして承認後(数営業日かかります)、下記URLより修正状況を追跡していただけるようになります。

https://issues.unrealengine.com/issue/UE\-379346

また、取り急ぎ当方で暫定パッチも作成しましたので、お試しいただけますでしょうか。

​Engine/Source/Runtime/MovieScene/Public/Sections/MovieSceneBoolSection.h L:62付近

 	UE_API void SetIsExternallyInverted(bool bInIsExternallyInverted);
 
+	// Externally Inverted フラグを外部より取得するための getter を追加
+	bool IsExternallyInverted() const { return bIsExternallyInverted; }

Engine/Source/Editor/MovieSceneTools/Private/TrackEditors/PropertyTrackEditors/RegisteredPropertyTrackEditor.cpp L:9付近

 #include "MovieSceneTracksComponentTypes.h"
 
+#include "Sections/MovieSceneBoolSection.h"
+#include "Channels/MovieSceneBoolChannel.h"

​同ファイル L:170付近

 		return;
 	}
 
+	if (UMovieSceneBoolSection* BoolSection = Cast<UMovieSceneBoolSection>(SectionToKey))
+	{
+		if (BoolSection->IsExternallyInverted())
+		{
+			const bool bKeyedValue = !PropertyChangedParams.GetPropertyValue<bool>();
+			OutGeneratedKeys.Add(FMovieSceneChannelValueSetter::Create<FMovieSceneBoolChannel>(0, bKeyedValue, true));
+			return;
+		}
+	}
+
 	if (PropertyDefinition.Handler->SupportsProperty(PropertyDefinition, *PropertyAndValue.Key))
 	{
 		// Coerce the value to its operating type

patch形式のファイルも添付いたします(EPSの添付フォーマット制限回避のため、軽量ファイルですが.zip圧縮をかけてあります)。​

一度ご確認ください。​

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

TemporaryFix.zip(815 Bytes)

ご回答ありがとうございます。

ご教示いただいたパッチを適用することで、デフォルト値が true になることを確認いたしました。

本件はクローズで問題ございません。

迅速なご対応ありがとうございました。

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

パッチのご確認ありがとうございました。

それではお言葉に甘えて本件Closeとさせていただきます。

近いうちに同様の修正がエンジン側に入る予定と聞いておりますが、今後の状況はPublic Issueから追跡していただけますと幸いです。

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