2018/04/04

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)

Perforce: 複数のワークスペースを更新するバッチ

batを叩けば全部更新。 @echo off set P4PORT=x.x.x.x:xxxx set P4USER=user set P4PASSWD=password echo %P4PORT% echo %P4USER% echo %P4PASSWD% echo %P4PAS...