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_allCode 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 + 10Code 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をコピーしました