3.1. Python

次のスクリプトは、調整されたワークスペースでテストするのが最適です。

  1. 既存のビデオ編集プロジェクトから、[Scripting Workspace] に切り替えます (最終的には、メニュー バーの [Add Workspace] ボタンをクリックします)

  2. 3D エディタ ウィンドウ (左上) をビデオ シーケンサに置き換えます。

  3. シーケンサーで適切なオブジェクト (ムービー ストリップなど) を選択します (図1)。このワークスペース内での作業については、 [Scripting Workspace] で説明しています。

Adapted 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 からの名前です。

Table 1: Time code fields in UI and from 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 コードをアドオンに変換する必要があります。

Script

図2 上記のスクリプトを実行した結果

脚注

1

still_offset は Blender4.0 は廃止されています。