DaVinci Resolve 字幕をテキストファイルからスクリプトで追加する
前置き DaVinci Resolveで動画編集する際に、字幕の入力が面倒だった。字幕を1かたまり作成する時に以下の作業が必要になる。 Text+オブジェクトを配置 文字を設定 フォントを設定 サイズを設定 タイムライン上の位置、長さの設定 最後の項目は自動化が難しいが、他は自動化できないか調べたら、どうやらスクリプト機能で実現できるようだったので調べた。以下はその備忘録。 使用環境 Windows 11 DaVinci Resolve 20.2.1 Python 3.13.7 参考資料 C:\ProgramData\Blackmagic Design\DaVinci Resolve\Support\Developer\Scripting\README.txt が一次資料らしいのでそれを読んでいく。 LuaかPythonで書けるらしい。Luaであればインタプリタの導入は必要ないし、試しにLuaで書こうと思ったが、Luaの場合いまいちモジュール名がREADMEには書かれておらず不明瞭な点と、Pythonのほうが書き慣れているということでPythonを選択する。 またText+に関してはFusionの機能であり、Fusion関連であれば詳細なドキュメントがある。 Fusion8 Scripting Guide Pythonの導入 自分のWindows環境にはこの時点でPythonが入っていなかったため、Pythonを入れる。 https://www.python.org/ からインストーラをDLして来ればよい。 READMEには以下の変数を設定しろと書いてある。内容的にPythonのモジュールパス関連の設定のようだ。 1 2 3 RESOLVE_SCRIPT_API="%PROGRAMDATA%\Blackmagic Design\DaVinci Resolve\Support\Developer\Scripting" RESOLVE_SCRIPT_LIB="C:\Program Files\Blackmagic Design\DaVinci Resolve\fusionscript.dll" PYTHONPATH="%PYTHONPATH%;%RESOLVE_SCRIPT_API%\Modules\" GUIの場合はシステム環境変数の設定画面から環境変数を設定すればよいが、PowerShellの場合は以下のコマンドでシステム環境変数を追加できる(管理者権限で実行すること)。 1 2 3 4 5 6 7 $env:RESOLVE_SCRIPT_API="$env:PROGRAMDATA\Blackmagic Design\DaVinci Resolve\Support\Developer\Scripting" $env:RESOLVE_SCRIPT_LIB="C:\Program Files\Blackmagic Design\DaVinci Resolve\fusionscript.dll" $env:PYTHONPATH="$env:PYTHONPATH;$env:RESOLVE_SCRIPT_API\Modules\" [Environment]::SetEnvironmentVariable("RESOLVE_SCRIPT_API", "$env:RESOLVE_SCRIPT_API", 'Machine') [Environment]::SetEnvironmentVariable("RESOLVE_SCRIPT_LIB", "$env:RESOLVE_SCRIPT_LIB", 'Machine') [Environment]::SetEnvironmentVariable("PYTHONPATH", "$env:PYTHONPATH", 'Machine') これでDaVinci Resolveのコンソールから、関連モジュールがimportできるようになる。 下記redditによると、DaVinciのコンソールからならimport文は不要らしい。 https://www.reddit.com/r/davinciresolve/comments/1frb4lj/save_me_please_from_this_modulenotfound_error/?tl=ja コンソール画面を開く Workspace → Console を押す。 ...