🎞️

UE5.1でOTIOを使う

2022/12/20に公開

UEアドカレ その4、12/19の記事です。
今回もノンゲーム寄りです。
今回は OpenTimelineIO です。
https://opentimelineio.readthedocs.io/

Dev Communityの記事によると、「将来のリリースでは対応予定だけどまだサポートしてなくて、公開されているのを手動で使うことはできるよ」とのこと。
https://dev.epicgames.com/community/learning/tutorials/aaW9/unreal-engine-editorial

その公開されているプラグインとはこちらなようです。

OpenTimelineIO-Unreal-Plugin
https://github.com/OpenTimelineIO/OpenTimelineIO-Unreal-Plugin

今回はこれを使ってみようと思います。

pip install

こちらの解説を参考にインストールを試みます。

https://youtu.be/Qt0AW08REKg

\Engine\Binaries\ThirdParty\Python3\Win64\python.exe -m pip install pyside2
\Engine\Binaries\ThirdParty\Python3\Win64\python.exe -m pip install opentimelineio


importできるようになりました。

Pluginsに設置

ダウンロードしてきたOpenTimelineIOUtilitiesを
プロジェクト以下にPluginsフォルダを作って設置します。

一応さきほどのgithub記事によると
当該プラグインフォルダのコンテンツ以下に ~site-packages作ってそこに依存モジュールを置いてもいいみたいです。手元にモジュールがあれば、前段のpip installはパスできますね。

プロジェクト起動


起動したらプラグインが有効状態になってました。

Actions

プラグイン有効状態で二つのアクションが使えるようになります。

  • OTIO書き出し (OTIO Export)
  • OTIOからシーケンスを更新 (OTIO Import)



この二つは、レベルシーケンスアセットのコンテキストメニューから、
もしくはツールバーのシーケンスオブジェクトメニューから使えます。

あとフックが四つ、

  • otio_ue_pre_import
  • otio_ue_pre_import_item
  • otio_ue_post_export
  • otio_ue_post_export_clip

環境変数が三つ、

  • OTIO_UE_REGISTER_UCLASSES
  • OTIO_UE_IMPORT_SUFFIXES
  • OTIO_UE_EXPORT_SUFFIX

あるようで、このあたりは追って勉強という感じです。

https://github.com/OpenTimelineIO/OpenTimelineIO-Unreal-Plugin#hooks

まとめ

タイムラインを .otio で外部化して、「外部ツールでタイムライン編集 > UE内シーケンスを更新」または「シーケンサー編集 > 外部編集ツールのタイムラインも更新」みたいなのがダイナミックにできるようになったら楽しそうですね。

一応将来リリース時にとのことでしたが、これだけ導入が容易だったらじきにExperimentalとかで組み込まれそうな気がしますね。

Discussion