DaVinchi ResolveではOpenFXというapiに対応したプログラムであればプラグインとして扱えますが、あまり日本語では資料が見つからなかったので情報をまとめてみました。
OpenFXプラグインとは、すごくざっくり言うとDaVinchi Resolveのエフェクト欄で使えるツール群のことです。
一応自作プラグインを作ってDaVinchi Resolveで使うのが目的のシリーズです。
ちなみにOpenFXはDaVinchi Resolve以外のビデオ編集ソフトウェアでもサポートされています。
公式情報
Github : https://github.com/AcademySoftwareFoundation/openfx/tree/main
文章資料 : https://openfx.readthedocs.io/en/latest/
DaVinch Resolveのインストールフォルダにもサンプルコードがあります : C:\ProgramData\Blackmagic Design\DaVinci Resolve\Support\Developer\OpenFX
また、公式では無いですが、DaVinchi Resolve Raddit WikiにてOpenFX系ツールのまとめ情報が記載されています。
今回参考になりそうなのはBaldavengerPluginsというプラグインで、既にコンパイルされているものとソースコードがそれぞれ公開されています。
(code : https://github.com/baldavenger/BaldavengerOFX/tree/master)
(build : https://github.com/baldavenger/BaldavengerPlugins)
プラグインの概要
2024/04現在、公式のgithubプロジェクトではCMakeを使ったビルドシステムを開発中のようで参照するときはDaVinchi Resolveが対応しているバージョン1.4(OFX_Release_1_4_TAGブランチ)を参照するようにします。
とりあえずダウンロードしてみます。
git clone --branch OFX_Release_1_4_TAG https://github.com/AcademySoftwareFoundation/openfx.git
ざっくりとプロジェクトの構成を説明すると
・Examples : プラグインの開発サンプル
・include : サンプルプログラム開発時に使用するofxUtilities.Hのフォルダ
・include : OpenFXの本体。apiなので全てヘッダー
・HostSupport : OpenFX対応のビデオ編集ソフト側の開発支援用ライブラリ
・Support : プラグイン開発支援用ライブラリ
・include : ヘッダファイル
・Library : ソースファイル
・Plugins : 旧プラグインサンプル。一つ上のExampleフォルダが新サンプル?
プラグインのフォルダ構成
OpenFX対応のビデオ編集ソフトにプラグインを認識させるために下記のようにファイル名やディレクトリがルール化されています。
BaldavengerPluginsのConvolution[Convolution.Win10.DR16.CUDA.OpenCL]フィルタを例に説明します。
(参照 : https://openfx.readthedocs.io/en/main/Reference/ofxPackaging.html)
NAME.ofx.bundle : プラグインフォルダ名、osx系のフォーマットを採用。Convolution.ofx.bundleなど。
・Contents : プラグインのコンテンツを格納するメインフォルダ。
・Win64 : プラグインの本体。(他のOSのファイル名:MacOS/Linux-x86)。 windowsの場合は.dllファイルであるが、プラグインとして認識させるために.ofx拡張子にリネームする。Convolution.ofxなど。
・Resources : 画像ファイルや言語リソースなど、プラグインに必要な追加リソースを含むフォルダ。
・Info.plist :プラグインに関するメタデータを含むファイル(主にOSX用)
OpenFX互換のあるビデオエディタは”OFX_PLUGIN_PATH”という環境変数で定義されたパス、又は「C:\Program Files\Common Files\OFX\Plugins」*1以下のフォルダにあるプラグインをロードしにいくことになっています。
したがってDaVinchi Resolveにプラグインを認識させるときはとりあえずC:\Program Files\Common Files\OFX\Plugins以下にConvolution.ofx.bundleなどの目的のプライグインをコピペして保存したのちに立ち上げると自動でロードされます。
*1 : OSX”/Library/OFX/Plugins” , Linux”/usr/OFX/Plugins“
まずはここまで。