【MotionBuilder Script】オブジェクトやコンストレインを取得する
2019-12-09
Viewer上で選択しているオブジェクトを取得する方法.
Env.
- MotionBuilder 2018
- Windows10 64bit
Method
現在選択しているオブジェクトを取得
FBGetSelectedModels()
で現在選択しているオブジェクトをリストとして取得する.
1 2 3 4 5 6 |
from pyfbsdk import FBGetSelectedModels, FBModelList lModelList = FBModelList() FBGetSelectedModels(lModelList) for i in range(len(lModelList)): print lModelList[i].Name |
上記のメソッドで取得が可能.以下のようにボタンなどから呼び出すと現在選択しているオブジェクトを出力する.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
from pyfbsdk import * from pyfbsdk_additions import * from pyfbsdk import FBGetSelectedModels, FBModelList # Callback def BtnCallback(control, event): lModelList = FBModelList() FBGetSelectedModels(lModelList) for i in range(len(lModelList)): print lModelList[i].Name # Layout def PopulateLayout(mainLyt): x = FBAddRegionParam(0, FBAttachType.kFBAttachLeft, "") y = FBAddRegionParam(0, FBAttachType.kFBAttachTop, "") w = FBAddRegionParam(0, FBAttachType.kFBAttachRight, "") h = FBAddRegionParam(25, FBAttachType.kFBAttachNone, "") mainLyt.AddRegion("main", "main", x, y, w, h) lyt = FBHBoxLayout() mainLyt.SetControl("main", lyt) b = FBButton() b.Caption = "BasicButton" # Button Text b.Justify = FBTextJustify.kFBTextJustifyLeft # Left justified lyt.Add(b, 100) # set width b.OnClick.Add(BtnCallback) # Add Callback def CreateTool(): t = FBCreateUniqueTool("Basic Button eg") t.StartSizeX = 100 t.StartSizeY = 100 PopulateLayout(t) ShowTool(t) CreateTool() |
FBSystem().Scene.Constraints
でnavigator上に存在するコンストレインを取得できる.キャラクタライズしたキャラなどの一括取得にも使える.
1 2 3 4 5 |
from pyfbsdk import FBGetSelectedModels, FBModelList, FBSystem lConsts = FBSystem().Scene.Constraints for i in range(len(lConsts)): print lConsts[i].Name |
Ref.
http://download.autodesk.com/us/motionbuilder/sdk-documentation/PythonSDK/namespacepyfbsdk.html
選択したオブジェクトが一覧でコンソール上に出力されている.