2018/04/04

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

0 comment
リアクション: 
ストーリーのカメラショットクリップを選択して実行です。
ついでに、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)

2017/12/12

maya : 選択しているチャンネルボックスで、グラフエディタのFCurve表示

0 comment
リアクション: 
こっちのほうが、使いやすいかも。
UIいらんな…。


# -*- coding: cp932 -*-
# FCurveSelectorChannelBox.py

import pymel.core as pm

# グラフエディタを取得。カスタムグラフエディタ対応で複数のエディタを見に行く
for ge in pm.getPanel(scriptType="graphEditor"):
    # グラフエディタ内アウトライナの選択を一度解除
    pm.selectionConnection(ge.name()+"FromOutliner",e=1,clr=1)
    for obj in pm.selected():
        for a in pm.channelBox("mainChannelBox",q=1,sma=1):
            # 各アトリビュートのFCurveを表示
            pm.selectionConnection(ge.name()+"FromOutliner",e=1,s=obj.attr(a))


2017/12/05

maya : 骨にヘアを揺れ物シミュレーションするツール YURAYURA.py

0 comment
リアクション: 

髪の毛などの数珠繋ぎ階層にヘアシミュレーションをかける揺れ物ツールです。

ダウンロード

使い方:

このスクリプトを、そのままシェルフ登録に出来ます。

プラグインとして使用する場合は、mayaのscriptsフォルダに
このファイルを入れます。
C:\Users\[user]\Documents\maya\scripts
もしくは、PYTHON_PATHが設定してある場所でもOKです。

実行コマンド
import YURAYURA;YURAYURA.YURAYURA()

ツールを実行するとUIが立ち上がります。

GENERATE:
髪の毛のルートを選択して、GENERATEボタンを押すと
YURAYURAシミュレーションセットが作られます。
複数選択でき、一度作成した後でも追加で使用できます。

MODIFY:
SETTING欄の数値を変更して、下にあるMODIFY SETTING ( REFRESH )
ボタンで適用できます。

COLLIDE:
コリジョンをセットしたい場合は、コリジョンオブジェクトを選択して
ADD COLLIDEボタンを押します。

BAKE:
シミュレーション結果が良さそうであれば、BAKEボタンを押すと
元に選択していた階層すべてのRotateにBake Simulationをかけます。
YURAYURAシミュレーションセットは消去され、UIも閉じます。


動画の途中で、ikHandleのInherits Transformをカチカチっとやってますが
ikHandleのリフレッシュがうまく行われず、なんらかのアトリビュートを
いじれば、ちゃんとした結果になるようです・・・。
自分のセットアップが悪いのかも知れませんが・・・。
解決法があれば、教えていただきたいです。


2017/11/29

maya : 選択しているFCurveをリダクション

0 comment
リアクション: 


自分でも書いてみました。
キャプチャエディットしてると使いたくなります。
やっぱり便利です。

YAMATANI.py