Blender VSE Python から イメージシーケンス追加、選択中ストリップ取得、全ストリップ取得、開始/終了フレーム引き伸ばし

VideoSequenceEditor

結果

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

  • Image sequence strip 追加
  • 選択中 strip 選択
  • 全ての strip を取得
  • 開始/終了フレーム引き伸ばし

Image Sequence Strip 追加

参照元

コード

前回のブログでは単一のイメージだったけど今回はイメージシーケンスの追加方法

import os import glob import bpy IMG_STRIP_NAME = 'Image' IMG_STRIP_CHANNEL = 1 context = bpy.context scene = context.scene sed = scene.sequence_editor sequences = sed.sequences dir = "*" # ファイルの一覧を取得 files = glob.glob(os.path.join(dir, "*.png")) # 最小インデックスの為必要 path = os.path.join(dir, files[0]) frame_start = 1 # image ストリップを追加 img_strip = sequences.new_image( IMG_STRIP_NAME, # ストリップの名前 path, # ファイルパス IMG_STRIP_CHANNEL, # 読み込み先のチャンネル frame_start # 開始フレーム ) # 以降のファイルを append で追加 for f in files[1:]: # フルパスからファイル名だけを取るため os.path.split を使用 strip.elements.append(os.path.split(f)[1])
Code language: PHP (php)

選択中 strip 選択

参照元

コード

import os import glob import bpy context = bpy.context scene = context.scene sed = scene.sequence_editor sequences = sed.sequences strip = sed.active_strip
Code language: JavaScript (javascript)

全ての strip を取得

コード

import bpy context = bpy.context scene = context.scene sed = scene.sequence_editor strips = sed.sequences_all
Code language: JavaScript (javascript)

開始/終了フレーム引き伸ばし

  • 開始フレームを引き伸ばす場合 frame_final_start
  • 終了フレームを引き伸ばす場合 frame_final_end
  • 引き伸ばす場合は frame_final_end+ 引き伸ばしたいフレーム数とする
    • 最終的なフレーム長は、frame_final_endに入っている
    • 開始フレームを前方に引き伸ばす場合は frame_final_start – 引き伸ばしたいフレーム数
import bpy context = bpy.context scene = context.scene sed = scene.sequence_editor sequences = sed.sequences strip = sed.active_strip # 終了フレームを 10 frame 引き伸ばす例 strip.frame_final_end = strip.frame_final_end + 10
Code language: PHP (php)

seq_slide の仕様の助けとなったページ

scripting – Help me understand crossfade info pulled via Python – Blender Stack Exchange

import bpy context = bpy.context scene = context.scene sed = scene.sequence_editor sequences = sed.sequences strip = sed.active_strip print(str(strip.frame_final_end)) # 最終フレーム引伸し print(str(strip.frame_final_start)) # 開始フレーム引伸し print(str(strip.frame_start)) # 開始フレームの開始位置 print(str(strip.frame_offset_end)) # ? print(str(strip.frame_offset_end)) # ? print(str(strip.frame_final_duration)) # ストリップのフレーム長 print(str(strip.frame_duration)) # 動画のフレーム長
Code language: PHP (php)

コメント

タイトルとURLをコピーしました