Autodesk Developer Networkの工藤 暁です。今回はAutodesk® MotionBuilder®にてTipsになる様な御質問に頂きましたので此方にて御紹介させて頂きます。
MotionBuilderにて取り扱うデータが大きくなるとアニメーションの再生がスムーズに行われなくなるといった現象に遭遇されたご経験は無いでしょうか。この問題に遭遇されたユーザー様が偶然Storyタブを閉じるとこの現象が起こらなくなる事を発見され、アニメーションを再生した際に自動でStoryタブを閉じたい旨ご要望を受けました。残念ながら通常のオペレーションにてこの指定を行う事は出来ません。そこでプログラムで解決されたいというご質問でした。
Python又はAPIにてこのタブを変更するには,FBPopNormalTool()を御利用頂きます。引数として変更したいタブ名を下記の様にご指定頂きます。
FBPopNormalTool("Story")
FBPopNormalTool("Navigator")
このコマンドを下記のスクリプトの様にユーザーインターフェイスのアイドル時に再生ボタンのON/OFFを確認して切り替えられては如何でしょうか。
<code_begin>
from pyfbsdk import *
from datetime import *
from time import *
import threading
lSystem = FBSystem()
lSysOnUIIdle = lSystem.OnUIIdle
lSysOnUIIdle.RemoveAll()
lPlayer = FBPlayerControl()
lPlayMode = -1
def test(pOjbect, pEventName):
global lPlayMode
if lPlayMode == -1:
if lPlayer.IsPlaying:
lPlayMode = 0
FBPopNormalTool("Navigator")
print "Play Start"
else:
lPlayMode = -1
else:
if lPlayer.IsPlaying:
lPlayMode = 0
else:
#lSysOnUIIdle.Remove(test)
lPlayMode = -1
FBPopNormalTool("Story")
print "Play Stop"
lSysOnUIIdle.Add(test)
<code_end>
何かのお役に立てば幸いです。
コメント
コメントフィードを購読すればディスカッションを追いかけることができます。