Skip to content

Sample : Record Animation in Sequencer With Editor Utility Widget

License

Notifications You must be signed in to change notification settings

pafuhana1213/RecordAnimEUWSample

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RecordAnimEUWSample

image

以前にツイートした、自作アニメーション録画ツールをサンプルとしてGithubに公開しました!https://t.co/lZLCMN1jq3

たぶん映像系のプロジェクトで役に立つ気がします。あと、EditorUtility機能を使ってSequencer作業を楽したい人にも参考になると思います。詳細はGithubのページで#UE5 #UE5Study https://t.co/fhnf33ccDJ pic.twitter.com/ANDIEyPMfX

— おかず (@pafuhana1213) July 22, 2022

UE標準のアニメーション録画機能であるAnimation Recorderを直接呼び出すことで、自分好みのアニメーション録画ツールを作るというサンプルです。

Take Recorder、Sequence Recorderなどアニメーションを録画するためのツールが標準でありますが、プロジェクトにあった形にカスタムしたり自動化するにはエンジン改造が必要になり少しハードルが高いです。 一方、Animation Recorderを直接呼び出せばプロジェクト側のBP・C++コードだけでオレオレアニメーション録画ツールを作ることができるはず…と思って作ってみました。

このサンプルではSequenerに対して再生処理を行ったり、LevelSequenceの内部データを元に処理を変更したりなども行っています。そのため、EditorUtility機能を使ってSequencer周りを便利に・自動化したいと考えている人にも多分参考になると思います。

こういったツールはプロジェクト毎にカスタムするものだと思うので、機能要望は基本的には受け付けていません。
このサンプルが少しでも参考になれば幸いです。

Animation Recorderについて:
https://qiita.com/EGJ-Kaz_Okada/items/7f91099e72f64c6c6285

使い方

  1. Contents/RecordAnimEUWSample/EUW_SimpleRecordAnimation を右クリックメニューのRun~から開く
  2. 録画したいLevel SequenceアセットをTarget Level Sequence に設定
  3. Openボタンを押して2で設定したLevelSequenceを開く(既に開いていたらこの操作はスキップ可)
  4. 録画対象のActorにBinding Tag Nameと同じ名前のTagを設定する。
    Binding Tagの設定方法:https://docs.unrealengine.com/5.0/ja/cinematic-tags-and-groups-in-unreal-engine/
  5. Output Folder Path に録画結果を出力するフォルダを、Output Asset Name Base にはアセット名を設定
  6. Recordボタンを押し、Sequencerの再生とアニメーション録画を開始
  7. 再生し終わると指定の場所に録画アニメーションアセットを保存

制限・注意

サンプル内にあるLevelSequenceのように、単独のLevelSequenceかShotTrackを複数持つLevelSequenceのみを想定しています。そのため、ShotTrackではなくSubSceneTrackで分けている場合は正常に動作しません。もしSubSceneも考慮したい場合はEUWのCollect Shot Track Infosをカスタムしてください。

複数のSkeletalMeshを同時に録画するのは試していませんが、多分うまくいきません。もし実現したい場合はCollect Record Targetをカスタムしてください

ShotTrackごとに録画・出力を行うため、「複数のShotTrackがあっても録画結果は1アセットにしたい」ということはできません。もし実現したい場合は、Collect Shot Track Infosにおける録画時間の設定処理やCheck Finish Record周りをいじればできるはずです。たぶん

おまけ

残念ながら、C++側で実装したUEditorUtilityWidgetの派生クラスはEditorUtilityWidgetアセットのClassSettingsの候補に出てきません。そのため、親クラスを自作のクラスに変えれません。こまった
image

ただ、EditorUtility系で使えるReparent Blueprintノードを使えば無理やり親クラスを変更できます。EUB_ReparentEUWClassアセットを見てください。
image

動作環境

UE5.0.3以上

ライセンス

MIT

作者

おかず@pafuhana1213

About

Sample : Record Animation in Sequencer With Editor Utility Widget

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published