いつもお世話になっております。
UE5.6からシーケンサーの挙動が正しく動作していないようなのでご確認をお願いします。
UE5.6からフォルダを含む形でコピー&ペーストを行うとUE5.5とは違う挙動をします。
再現手順は下記の画像の構成をシーケンサーで作ってもらってから、全選択→コピー→ペーストで再現出来ます。
[Image Removed]
<br/>
UE5.5だと下記の添付画像の様に新たにNewFolderが作られてCube(2)という名前で新たに作られます
[Image Removed]
UE5.6だとNewFolderとCube2とCube3が作られます。
1個Cubeが多いようですし、Cube2はStaticMeshComponent0以下のトラックが作成されていません。
正常な動作では無いように思えますのでご確認お願い致します。
[Image Removed]
<br/>
<br/>
以上になります
お手数ですが、ご確認お願い致します。
<br/>
<br/>
お世話になっております。
コピーペーストのクリップボードをここで提供していただけませんか?
お手数ですが、よろしくお願いします。
お疲れ様です
検証に使ったUnrealEngineのバージョンはUE5.5.4とUE5.6.0です
プロジェクトを添付します。
クリップボードに関しては添付が一投稿で1個までしか上手くいかなかった為分割投稿させていただきます。
コチラで調査した所下記の実装に関しては怪しいかと思われます。
> Sequencer.cpp
void FSequencer::CopySelectedFolders(const TArray<UMovieSceneFolder*>& Folders, FString& FoldersExportedText, FString& TracksExportedText, FString& ObjectExportedText);
void FSequencer::CopySelection()
{
// 省略
if (FoldersToCopy.Num())
{
// 引数の順番が違う
CopySelectedFolders(FoldersToCopy, FoldersExportedText, ObjectsExportedText, TracksExportedText);
}
}
}
> SequencerUtilities.cpp
void GatherFolderContents(UMovieSceneFolder* Folder, TArray<UMovieSceneFolder*>& Folders, TArray<UMovieSceneTrack*>& Tracks, TArray<FMovieSceneBindingProxy>& Bindings)
{
// 省略
for (const FGuid& ObjectBinding : Folder->GetChildObjectBindings())
{
Bindings.AddUnique(FMovieSceneBindingProxy(ObjectBinding, Sequence));
// オブジェクトはここでコピーされるが、ComponentやAnimInstanceなどの子要素はコピーされない
}
UE5.5.4のクリップボードを添付させていただきます。
UE5.6.0のクリップボードを添付させていただきます。
引き続きよろしくお願いいたします。
お疲れ様です。
確認した所提供したプロジェクトのパターンでは正常に動作しました。
しかし、フォルダ外にもトラックやオブジェクトがある添付画像の様なパターンだと正常に動作しませんでした。
[Image Removed]
プロジェクトを添付しますのでご確認をお願いします。
再現プロジェクト、ありがとうございます。
現在確認しているため、もうしばらくお待ちください。
お世話になっております。
念の為、クリップボードの情報もいただいてもいいですか?
お世話になっております。
UE5.6に44254396をマージしたエンジンでクリップボードを添付いたします
お手数をおかけしますがよろしくお願いいたします。
お世話になっております。
トラッキングのためこちらの件を一旦クローズさせていただきます。
追加情報があったら、いつでも気軽に再オープンしたいただけたらと思います。
お手数ですが、よろしくお願いします。
確認ありがとうございます。
Ctrl+Aで全選択して貼り付けた時のケースの話です。
貼り付けには新規作成した空のシーケンサーでテストして貰うと分かり易いかと思います。
フォルダ内の項目に対しては正常にコピーされるようになっていましたが…
フォルダの外にある項目は正常にコピーされないようです。
今回の例だとフォルダ外のフェードトラックとActorトラックがコピーされません
[Image Removed]
お手数をおかけしますが確認をお願いします
確認しました。
CL.45069585
上記だと、フォルダ外のフェードトラックはコピーされましたが、Actorはコピーされませんでした。
トラック側同様にCopySelectedFoldersに渡す変数を別変数を用意した所治りました。
FString ObjectsExportedText;
FString TracksExportedText;
FString ObjectsFoldersExportedText; // 足りたないのでは?
FString TracksInFoldersExportedText;
FString FoldersExportedText;
if (ObjectsToCopy.Num())
{
CopySelectedObjects(ObjectsToCopy, FoldersToCopy, ObjectsExportedText);
}
if (TracksToCopy.Num())
{
CopySelectedTracks(TracksToCopy, FoldersToCopy, TracksExportedText);
}
if (FoldersToCopy.Num())
{
CopySelectedFolders(FoldersToCopy, FoldersExportedText, ObjectsFoldersExportedText, TracksInFoldersExportedText); // 修正
}
FString ExportedText;
ExportedText += ObjectsExportedText;
ExportedText += TracksExportedText;
ExportedText += FoldersExportedText;
ExportedText += ObjectsFoldersExportedText; // 足りないのでは?
ExportedText += TracksInFoldersExportedText;
FPlatformApplicationMisc::ClipboardCopy(*ExportedText);
よろしくお願いいたします。
すいません
上記の修正だと、フォルダ外のアクターはコピーされるようになりましたが、フォルダ内のアクターが複数コピーされるようになりました。
その為、適切な修正方法ではありませんでした
お世話になっております。
CL45242810で調整ができていると思いますが、ご確認お願いできますか?
お世話になっております。
申し訳ありません。まだ再現できていないです。
「フォルダ外にもトラックやオブジェクトがある」のもしっかり理解できていなくて申し訳ありません。
画像でコピーとペーストするものと場所の指示をお願いできますか?
再現しようとしたら、
上の画像:赤い矢印の付いたフォルダを選択します。
下の画像:カメラとカメラコンポーネントのトラックが貼り付けられたフォルダにペースト。
[Image Removed][Image Removed]
が問題なくできています。
お手数ですが、よろしくお願いします。