【MotionBuilder】ScrollBoxについて
2021-02-24
MotionBuilderのPythonScriptでスクロールできるUIを作成する,つまりスクロールバー表示の方法
Env.
MotionBuilder 2019
Code
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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# -*- coding: utf-8 -*- from pyfbsdk import * from pyfbsdk_additions import * def PopulateLayout(mainLyt): mainLytName = "main" scrollContent = "scrollContent" x = FBAddRegionParam(0,FBAttachType.kFBAttachLeft,"") y = FBAddRegionParam(0,FBAttachType.kFBAttachTop,"") w = FBAddRegionParam(0,FBAttachType.kFBAttachRight,"") h = FBAddRegionParam(0,FBAttachType.kFBAttachBottom,"") # メインレイアウトの領域設定 mainLyt.AddRegion(mainLytName, mainLytName, x, y, w, h) # スクロールボックス作成 scroll = FBScrollBox() # メインレイアウトにスクロールボックス追加 mainLyt.SetControl(mainLytName, scroll) # スクロールボックスにもメインレイアウトと同じ領域を設定 scroll.Content.AddRegion( scrollContent, scrollContent, x, y, w, h ) # スクロールする要素を作る lyt = FBLayout() label = "label" x = FBAddRegionParam(20, FBAttachType.kFBAttachLeft, "") y = FBAddRegionParam(20, FBAttachType.kFBAttachTop, "") # ここで指定する大きさはあくまでも要素の大きさでありスクロールできる大きさではない w = FBAddRegionParam(500, FBAttachType.kFBAttachNone, "") h = FBAddRegionParam(500, FBAttachType.kFBAttachNone, "") lyt.AddRegion(label, label, x, y, w, h) l = FBLabel() l.FBTextJustify = FBTextJustify.kFBTextJustifyLeft l.WordWrap = True # 適当にテストとして文字列作成 text = 'This is test\n' for i in range(0, 5): text += text l.Caption = text lyt.SetControl(label, l) # スクロールするコンテンツとして作った要素を追加 scroll.Content.SetControl(scrollContent, lyt) # スクロールボックスの大きさを設定 # これよりも広く表示されている場合,スクロールバーは表示されない scroll.SetContentSize(100, 800) def CreateTool(): t = FBCreateUniqueTool("Scrollbox Tool") t.StartSizeX = 400 t.StartSizeY = 300 PopulateLayout(t) ShowTool(t) CreateTool() |
HorizontalScrollOnlyみたいなパラメータは存在しないっぽいな…