いつもお世話になっております。
AnimMontageの編集エディタにて
トラック上に配置されているセクションの詳細タブに表示されているプロパティを更新するたびに
セクションの選択状態が解除されてしまい、詳細タブの表示が消えてしまいます。
状況としましては添付した動画をご確認頂ければと思います。
こちらはサンプルプロジェクトの「Lyra Starter Game」を元に確認しています。
動画の挙動ですが、セクションのプロパティを更新しても選択状態を解除されず
詳細タブの情報が表示されたままにすることは可能でしょうか。
既に先のバージョンで修正されている場合は修正箇所をマージしたいと思いますので
修正内容をご共有頂ければと思います。
以上、ご確認の程よろしくお願い致します。
bandicam 2026-01-30 17-35-15-535.mp4(3.38 MB)
お世話になっております。
ご報告いただいた症状は、最新のUE5.7でも変更されておらず、モンタージュの構成に影響のある変更が出た場合はUIそのものを再構築するという実装からくる制約となっております。
理想的には、UIを再構築する際に詳細パネルで選択されているセクションの指定情報を退避させておき、UI再構築後に復元できればよい(AnimNotifyなどはこのように実装されています)のですが、UI再構築時に詳細パネル自体が破棄・新規作成されてしまうことと、編集後に時間差をつけて詳細パネルのリセットが呼び出される構造が2箇所にわたって仕込まれているなど根が深く、詳細パネル側で編集再構築の文脈を的確にとらえて復元処理を書くことが容易でない状況です。
一方、UIの再構築はモンタージュの順序に影響が出ない場合は安全にスキップできるとされていることから、EditorCompositeSection.h / .cppに以下のコードを追加いただくことで、MetaDataプロパティ編集時限定ながら、詳細パネルの中身が消える現象を抑制可能です。
// EditorCompositeSection.hのクラスに下記のオーバーライド宣言を追加
virtual bool PropertyChangeRequiresRebuild(FPropertyChangedEvent& PropertyChangedEvent) override;
// .cpp側に下記の実装を追加
bool UEditorCompositeSection::PropertyChangeRequiresRebuild(FPropertyChangedEvent& PropertyChangedEvent)
{
const FName PropertyName = PropertyChangedEvent.Property ? PropertyChangedEvent.Property->GetFName() : NAME_None;
if (PropertyName == GET_MEMBER_NAME_CHECKED(FCompositeSection, MetaData))
{
return false;
}
return Super::PropertyChangeRequiresRebuild(PropertyChangedEvent);
}
以上、よろしくお願いいたします。
ご回答ありがとうございます。
ご提案頂いた修正案で問題が問題が解消されるのを確認できました。
MetaData限定の回避案でもかなり効果的でしたので、こちらの対応を反映したいと思います。
回答のご確認ありがとうございました。
またご提案したアプローチでそれなりに効果があるとのこと、確認ありがとうございます。
今回ご報告いただきました、詳細パネルから簡単に選択中のセクションが外れてしまう操作性の悪さについては、何らかの形で開発チームにフィードバックいたします。
それでは今回は回答済みとして、チケットをCloseさせていただきます。
以上、よろしくお願いいたします。