3.1. Python¶
次のスクリプトは、調整されたワークスペースでテストするのが最適です。
既存のビデオ編集プロジェクトから、[Scripting Workspace] に切り替えます (最終的には、メニュー バーの [Add Workspace] ボタンをクリックします)
3D エディタ ウィンドウ (左上) をビデオ シーケンサに置き換えます。
シーケンサーで適切なオブジェクト (ムービー ストリップなど) を選択します (図1)。このワークスペース内での作業については、 [Scripting Workspace] で説明しています。
図1 VSE スクリプト用に調整されたスクリプト ワークスペース¶
3.1.1. still_offset フィールドの追加 1¶
/video_editing/edit/montage/striptypes
Blender は UI で 9 つのタイム コードを公開します (参照 Movie strip )。 Python API を通じて利用できるものは他にもあります。表 1 に、使用可能なすべてのタイム コードを示します。2 列目はサイドバー (UI) からの名前で、3 列目は Python API からの名前です。
# |
UI field |
Python API (1) |
---|---|---|
0 |
Channel (2) |
channel |
1 |
Start |
frame_start |
2 |
Visible in strip (3) |
frame_final_start |
3 |
Duration |
frame_final_duration |
4 |
frame_duration |
|
5 |
End |
frame_final_end |
6 |
Strip Offset Start |
frame_offset_start |
7 |
Strip Offset End |
frame_offset_end |
8 |
Hold Offset Start |
animation_offset_start |
9 |
Hold Offset End |
animation_offset_end |
10 |
Current Frame |
calculated (4) |
11 |
frame_still_start |
|
12 |
frame_still_end |
これらの値をサイド パネルに表示したい場合は、既存のコードを拡張する必要があります。それはかなり簡単です。ムービー ストリップを選択し、タイムコード フィールドを右クリックします。たとえば、[Offset Start] を押したままにして、[Edit Source] を選択します。「space_sequencer.py」コードが表示されます(上部中央のリンクするテキストの参照ボタンで開きます)。このコード内で (Ctrl + F) 文字列「Hold Offset Start」を検索します。1607行目(Blender 3.1)についてです。Hold Offset セクション (1877 行目あたり) の後に次のコードを追加します。
split = sub.split(factor=0.5 + max_factor, align=True)
split.alignment = 'RIGHT'
split.label(text="Still Offset Start")
split.prop(strip, "frame_still_start", text=smpte_from_frame(strip.frame_still_start))
split = sub.split(factor=0.5 + max_factor, align=True)
split.alignment = 'RIGHT'
split.label(text="End")
split.prop(strip, "frame_still_end", text=smpte_from_frame(strip.frame_still_end))
Alt+P で コード を実行します。Sidebar が変更されます。 図 2 を参照してください。ファイルを再度開いたときに、このコードは自動的に実行されないことに注意してください。変更を永続的にしたい場合は、space_sequencer.py コードをアドオンに変換する必要があります。
図2 上記のスクリプトを実行した結果¶
脚注
- 1
still_offset は Blender4.0 は廃止されています。