Blender VSE Python から Strip を追加、キーフレーミング、グラフ修正

VideoSequenceEditor

参照元

結果

下記のコードについて記載

  • Image strip 追加
  • Transform strip 追加
  • Text strip 追加(サイズ、位置、blend type、align_x、テキストの内容の設定を含む)
  • Transform strip スケーリング、キーフレーミング、グラフ効果変更

Image Strip 追加

import bpy

context = bpy.context
scene = context.scene
sed = scene.sequence_editor
sequences = sed.sequences

IMG_STRIP_NAME = 'Image'
FILEPATH = 'test.png'
IMG_STRIP_CHANNEL = 2

frame_start = 1
frame_end = 24

# image strip   
 img_strip = sequences.new_image(
        IMG_STRIP_NAME,                     # ストリップの名前
        FILEPATH,                           # ファイルパス
        IMG_STRIP_CHANNEL,                  # 読み込み先のチャンネル
        frame_start                         # 開始フレーム
)
img_strip.frame_final_end = frame_end       # 終了フレーム
Code language: PHP (php)

Transform strip 追加

  • 既存のストリップを変形させる為、何かしら参照元が必要
  • 参照元seq1 パラメーターで渡す
  • ここでは 上記の img_strip を参照する前提
import bpy
TRN_STRIP_NAME = 'Transform'
TRN_STRIP_CHANNEL = 3
context = bpy.context
scene = context.scene
sed = scene.sequence_editor
sequences = sed.sequences
frame_start = 1
frame_end = 24
# tranform strip
trn_strip = sequences.new_effect(
TRN_STRIP_NAME,                 # ストリップの名前
'TRANSFORM',                    # effect の種類 = TRANSFORM
TRN_STRIP_CHANNEL,              # 読み込み先のチャンネル
frame_start = frame_start,      # 開始フレーム
frame_end = frame_end,          # 終了フレーム
seq1 = img_strip                # Transform させる strip
)Code language: PHP (php)

Text strip 追加(サイズ、位置、blend type、align_x、テキストの内容の設定を含む)

  • テキストも Transform同様で、effect の一種
import bpy

TEXT_STRIP_NAME = 'Text'
TEXT_STRIP_CHANNEL = 4
TIME_STRIP_LOC_X = 0.08
TIME_STRIP_LOC_Y = 0.85
TIME_STRIP_FONTSIZE = 120
context = bpy.context
scene = context.scene
sed = scene.sequence_editor
sequences = sed.sequences
frame_start = 1
frame_end = 24
txt_strip = sequences.new_effect(
    TEXT_STRIP_NAME,                 # ストリップの名前
    'TEXT',                          # effect の種類 = TEXT
    TEXT_STRIP_CHANNEL,              # 読み込み先のチャンネル
    frame_start = frame_start,       # 開始フレーム
    frame_end = frame_end            # 終了フレーム
)
txt_strip.font_size = TXT_STRIP_FONTSIZE    # フォントサイズ設定
txt_strip.location[0] = TIME_STRIP_LOC_X    # x の位置を設定
txt_strip.location[1] = TIME_STRIP_LOC_Y    # y の位置を設定
txt_strip.blend_type = 'ALPHA_OVER'         # Blend type を設定
txt_strip.align_x = 'LEFT'                  # align_x を設定
txt_strip.text = 'test text'                # テキストの内容を設定Code language: PHP (php)

Transform strip スケーリング、キーフレーミング、グラフ効果変更

  • キーフレームについて。ここでは 左隅の位置を変更
  • グラフについて
    • 'LINEAR', 'BEZIER', 'BOUNCE', 'ELASTIC', 'BACK' がある
    • シーンから編集する方法のみ判明。
    • シーンから修正する場合は、適切なシーン名を予め知っておかなければならない
    • シーンから修正する場合は、シーンに含まれる全グラフの内、何番目のグラフを修正するのか番号を知っておく必要がある
    • 番号(添字)は0から始まる
TRN_SCALE_X = 2
TRN_SCALE_Y = 1
TRN_LOCATE_X_FROM = 50
TRN_LOCATE_X_TO = -50
trn_strip.scale_start_x = TRN_SCALE_X         # Xのスケールを設定
trn_strip.scale_start_y = TRN_SCALE_Y         # Yのスケールを設定
# Transform strip 左端の位置を移動させるキーフレーム
frame_start = 1
second = 3
fps = 24
# 開始位置の設定
trn_strip.translate_start_x = TRN_LOCATE_X_FROM
trn_strip.keyframe_insert('translate_start_x', frame=frame_start )
# 終了位置の設定
trn_strip.translate_start_x = TRN_LOCATE_X_TO
trn_strip.keyframe_insert('translate_start_x', frame=frame_start + second * fps)
# グラフの設定
graph_index = 0
scene_name = 'SceneAction.001'
bpy.data.actions[scene_name].fcurves[graph_index].keyframe_points[0].interpolation = 'LINEAR'Code language: PHP (php)
タイトルとURLをコピーしました