MotionBuilder : カメラショットクリップを選択して実行するとインアウトを合わせる

ストーリーのカメラショットクリップを選択して実行です。
ついでに、Mergeで増えーる増えーる空トラックを全消し


# -*- coding: utf-8 -*-
from pyfbsdk import *

# クリップのフレームインとフレームアウト用のリスト
lIn = []
lOt = []
# 空のトラックをあとで消す用のリスト
lDel = []

# ショットトラック処理
for track in FBStory().RootEditFolder.Tracks:
    # 空のトラックなら、消す用リストに追加
    if not len(track.Clips):
        lDel.append(track)

    print track.Name
    # トラックにあるクリップ処理
    for clip in track.Clips:
        # クリップが選択されていたら
        if clip.Selected:
            # インとアウトの値をリストにそれぞれ追加 クリップ選択複数対応
            lIn.append(clip.ShotActionStart.GetFrame())
            lOt.append(clip.ShotActionStop.GetFrame())

# インとアウトのリストから、Transport ControlsのZoomWindowの値をセットする
if lIn and lOt:
    mn = min(lIn)
    mx = max(lOt)-1
    print "in %s - out %s" % (mn,mx)
    
    if FBPlayerControl().LoopStart.GetFrame() > mn:
        FBPlayerControl().LoopStart = FBTime(0,0,0,mn)
    if FBPlayerControl().LoopStop.GetFrame() < mx:
        FBPlayerControl().LoopStop = FBTime(0,0,0,mx)
    
    FBPlayerControl().ZoomWindowStart = FBTime(0,0,0,mn)
    FBPlayerControl().ZoomWindowStop = FBTime(0,0,0,mx)
    
# 取得した空のリストを消去
map(FBComponent.FBDelete,lDel)

コメント

人気の投稿