{"id":374,"date":"2017-06-29T07:27:51","date_gmt":"2017-06-29T11:27:51","guid":{"rendered":"http:\/\/www.vicdebaie.com\/blog\/?p=374"},"modified":"2018-03-14T21:18:08","modified_gmt":"2018-03-15T01:18:08","slug":"motionbuilder-python-script-markertool-v01","status":"publish","type":"post","link":"http:\/\/www.vicdebaie.com\/blog\/motionbuilder-python-script-markertool-v01\/","title":{"rendered":"MotionBuilder Python Script &#8211; MarkerTool v0.1 &#8211; Easily Create Markers In MotionBuilder Through Python Sripting"},"content":{"rendered":"<p><img data-attachment-id=\"376\" data-permalink=\"http:\/\/www.vicdebaie.com\/blog\/motionbuilder-python-script-markertool-v01\/2017-06-22_16-47-51\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.vicdebaie.com\/blog\/wp-content\/uploads\/2017\/06\/2017-06-22_16-47-51.jpg?fit=269%2C332\" data-orig-size=\"269,332\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/www.vicdebaie.com\/blog\/wp-content\/uploads\/2017\/06\/2017-06-22_16-47-51.jpg?fit=243%2C300\" data-large-file=\"https:\/\/i0.wp.com\/www.vicdebaie.com\/blog\/wp-content\/uploads\/2017\/06\/2017-06-22_16-47-51.jpg?fit=269%2C332\" decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-376\" src=\"https:\/\/i0.wp.com\/www.vicdebaie.com\/blog\/wp-content\/uploads\/2017\/06\/2017-06-22_16-47-51.jpg?resize=269%2C332\" alt=\"\" width=\"269\" height=\"332\" srcset=\"https:\/\/i0.wp.com\/www.vicdebaie.com\/blog\/wp-content\/uploads\/2017\/06\/2017-06-22_16-47-51.jpg?w=269 269w, https:\/\/i0.wp.com\/www.vicdebaie.com\/blog\/wp-content\/uploads\/2017\/06\/2017-06-22_16-47-51.jpg?resize=243%2C300 243w\" sizes=\"(max-width: 269px) 100vw, 269px\" data-recalc-dims=\"1\" \/><\/p>\n<p>I created a Python script that would allow MotionBuilder to quickly create Markers (or nulls\/helpers depending on what package you started out with). It is a simple script that creates a floating window that will list all Marker visual types, by checking off the type you want an hitting the button it will generate the helper in the center of the world.<\/p>\n<p>This is tool is in its basic form right now, I hope later to allow for size adjustment through user input as well as some other features like auto align to selected object, parent to auto selected object, transfer animation from selected object to newly created marker, etc.<\/p>\n<p>Below you will find a link to the tool as well as the script itself in full form, I have also sectioned off parts of the script that I think would be interesting to anyone who has been following this blog and is trying to learn more about Python scripting within MotionBuilder.<\/p>\n<p>You can down load the MarkerTool through this <a href=\"https:\/\/drive.google.com\/file\/d\/1LBCM-hSjwsd3hUM21jKjg1EdzkPAVlCq\/view?usp=sharing\">Link Here<\/a><\/p>\n<p>Full script for Marker Tool v0.1<\/p>\n<pre class=\"brush: python; title: ; notranslate\" title=\"\">\r\n\r\nfrom pyfbsdk import *\r\nfrom pyfbsdk_additions import *\r\nfrom random import *\r\n\r\nMarkerTools = FBLabel()\r\nMarkerCreateButton = FBButton()\r\nSizeLabel = FBLabel()\r\nSizeInput = FBEdit()\r\n\r\nbMarkerCreateButton = FBButton()\r\n\r\n## Check Boxes ---------------------\r\nbMarkCube = FBButton()\r\nbMarkHardCross = FBButton()\r\nbMarkLightCross = FBButton()\r\nbMarkSphere = FBButton()\r\nbMarkCapsule = FBButton()\r\nbMarkBox = FBButton()\r\nbMarkBone = FBButton()\r\nbMarkCircle = FBButton()\r\nbMarkSquare = FBButton()\r\nbMarkStick = FBButton()\r\nbMarkNone = FBButton()\r\nbMarkRigidgoal = FBButton()\r\nbMarkRotationgoal = FBButton()\r\nbMarkAimRollgoal = FBButton()\r\n\r\n## Create Marker Button\r\ndef BtnCallbackbMarkerCreateButton(control, event):\r\nlR = random()\r\nlG = random()\r\nlB = random()\r\n\r\n## Create Helper\r\nlHelper = FBModelMarker('Helper_Mark 1')\r\nlHelper.Show = True\r\nlHelperSize = 1000\r\nlHelper.Size = lHelperSize\r\n\r\n## Define the look of the Marker\r\nif bMarkCube.State == True:\r\nlMarkerLook = 0\r\nif bMarkHardCross.State == True:\r\nlMarkerLook = 1\r\nif bMarkLightCross.State == True:\r\nlMarkerLook = 2\r\nif bMarkSphere.State == True:\r\nlMarkerLook = 3\r\nif bMarkCapsule.State == True:\r\nlMarkerLook = 4\r\nif bMarkBox.State == True:\r\nlMarkerLook = 5\r\nif bMarkBone.State == True:\r\nlMarkerLook = 6\r\nif bMarkCircle.State == True:\r\nlMarkerLook = 7\r\nif bMarkSquare.State == True:\r\nlMarkerLook = 8\r\nif bMarkStick.State == True:\r\nlMarkerLook = 9\r\nif bMarkNone.State == True:\r\nlMarkerLook = 10\r\nif bMarkRigidgoal.State == True:\r\nlMarkerLook = 11\r\nif bMarkRotationgoal.State == True:\r\nlMarkerLook = 12\r\nif bMarkAimRollgoal.State == True:\r\nlMarkerLook = 13\r\n\r\n## Fail safe for if no check boxes are marked (default to cube)\r\nif bMarkCube.State == bMarkHardCross.State == bMarkLightCross.State == bMarkSphere.State == bMarkCapsule.State == bMarkBox.State == bMarkBone.State == bMarkCircle.State == bMarkSquare.State == bMarkStick.State == bMarkNone.State == bMarkRigidgoal.State == bMarkRotationgoal.State == bMarkAimRollgoal.State == False:\r\nlMarkerLook = 0\r\n\r\nprint 'No Marker Choice Made - Defaulting to &quot;Cube&quot; visual'\r\n\r\n## Set LookUi to be that of the users choice\r\nlHelper.PropertyList.Find('LookUi').Data = lMarkerLook\r\n\r\n## Set the color for the helper using our random generated numbers defined above\r\nlHelper.Color = FBColor(lR,lG,lB)\r\n\r\n## ui look check box decision\r\n\r\n## Cube\r\ndef BtnCallbackbMarkCube(control, event):\r\nif bMarkCube.State == True:\r\nbMarkHardCross.Enabled = False\r\nbMarkLightCross.Enabled = False\r\nbMarkSphere.Enabled = False\r\nbMarkCapsule.Enabled = False\r\nbMarkBox.Enabled = False\r\nbMarkBone.Enabled = False\r\nbMarkCircle.Enabled = False\r\nbMarkSquare.Enabled = False\r\nbMarkStick.Enabled = False\r\nbMarkNone.Enabled = False\r\nbMarkRigidgoal.Enabled = False\r\nbMarkRotationgoal.Enabled = False\r\nbMarkAimRollgoal.Enabled = False\r\nelse:\r\nbMarkHardCross.Enabled = True\r\nbMarkLightCross.Enabled = True\r\nbMarkSphere.Enabled = True\r\nbMarkCapsule.Enabled = True\r\nbMarkBox.Enabled = True\r\nbMarkBone.Enabled = True\r\nbMarkCircle.Enabled = True\r\nbMarkSquare.Enabled = True\r\nbMarkStick.Enabled = True\r\nbMarkNone.Enabled = True\r\nbMarkRigidgoal.Enabled = True\r\nbMarkRotationgoal.Enabled = True\r\nbMarkAimRollgoal.Enabled = True\r\n\r\n## Hard Cross\r\ndef BtnCallbackbMarkHardCross(control, event):\r\nif bMarkHardCross.State == True:\r\nbMarkCube.Enabled = False\r\nbMarkLightCross.Enabled = False\r\nbMarkSphere.Enabled = False\r\nbMarkCapsule.Enabled = False\r\nbMarkBox.Enabled = False\r\nbMarkBone.Enabled = False\r\nbMarkCircle.Enabled = False\r\nbMarkSquare.Enabled = False\r\nbMarkStick.Enabled = False\r\nbMarkNone.Enabled = False\r\nbMarkRigidgoal.Enabled = False\r\nbMarkRotationgoal.Enabled = False\r\nbMarkAimRollgoal.Enabled = False\r\nelse:\r\nbMarkCube.Enabled = True\r\nbMarkLightCross.Enabled = True\r\nbMarkSphere.Enabled = True\r\nbMarkCapsule.Enabled = True\r\nbMarkBox.Enabled = True\r\nbMarkBone.Enabled = True\r\nbMarkCircle.Enabled = True\r\nbMarkSquare.Enabled = True\r\nbMarkStick.Enabled = True\r\nbMarkNone.Enabled = True\r\nbMarkRigidgoal.Enabled = True\r\nbMarkRotationgoal.Enabled = True\r\nbMarkAimRollgoal.Enabled = True\r\n\r\n## Lighgt Cross\r\ndef BtnCallbackbMarkLightCross(control, event):\r\nif bMarkLightCross.State == True:\r\nbMarkCube.Enabled = False\r\nbMarkHardCross.Enabled = False\r\nbMarkSphere.Enabled = False\r\nbMarkCapsule.Enabled = False\r\nbMarkBox.Enabled = False\r\nbMarkBone.Enabled = False\r\nbMarkCircle.Enabled = False\r\nbMarkSquare.Enabled = False\r\nbMarkStick.Enabled = False\r\nbMarkNone.Enabled = False\r\nbMarkRigidgoal.Enabled = False\r\nbMarkRotationgoal.Enabled = False\r\nbMarkAimRollgoal.Enabled = False\r\nelse:\r\nbMarkCube.Enabled = True\r\nbMarkHardCross.Enabled = True\r\nbMarkSphere.Enabled = True\r\nbMarkCapsule.Enabled = True\r\nbMarkBox.Enabled = True\r\nbMarkBone.Enabled = True\r\nbMarkCircle.Enabled = True\r\nbMarkSquare.Enabled = True\r\nbMarkStick.Enabled = True\r\nbMarkNone.Enabled = True\r\nbMarkRigidgoal.Enabled = True\r\nbMarkRotationgoal.Enabled = True\r\nbMarkAimRollgoal.Enabled = True\r\n\r\n## Sphere\r\ndef BtnCallbackbMarkSphere(control, event):\r\nif bMarkSphere.State == True:\r\nbMarkCube.Enabled = False\r\nbMarkHardCross.Enabled = False\r\nbMarkLightCross.Enabled = False\r\nbMarkCapsule.Enabled = False\r\nbMarkBox.Enabled = False\r\nbMarkBone.Enabled = False\r\nbMarkCircle.Enabled = False\r\nbMarkSquare.Enabled = False\r\nbMarkStick.Enabled = False\r\nbMarkNone.Enabled = False\r\nbMarkRigidgoal.Enabled = False\r\nbMarkRotationgoal.Enabled = False\r\nbMarkAimRollgoal.Enabled = False\r\nelse:\r\nbMarkCube.Enabled = True\r\nbMarkHardCross.Enabled = True\r\nbMarkLightCross.Enabled = True\r\nbMarkCapsule.Enabled = True\r\nbMarkBox.Enabled = True\r\nbMarkBone.Enabled = True\r\nbMarkCircle.Enabled = True\r\nbMarkSquare.Enabled = True\r\nbMarkStick.Enabled = True\r\nbMarkNone.Enabled = True\r\nbMarkRigidgoal.Enabled = True\r\nbMarkRotationgoal.Enabled = True\r\nbMarkAimRollgoal.Enabled = True\r\n\r\n## Capsule\r\ndef BtnCallbackbMarkCapsule(control, event):\r\nif bMarkCapsule.State == True:\r\nbMarkCube.Enabled = False\r\nbMarkHardCross.Enabled = False\r\nbMarkLightCross.Enabled = False\r\nbMarkSphere.Enabled = False\r\nbMarkBox.Enabled = False\r\nbMarkBone.Enabled = False\r\nbMarkCircle.Enabled = False\r\nbMarkSquare.Enabled = False\r\nbMarkStick.Enabled = False\r\nbMarkNone.Enabled = False\r\nbMarkRigidgoal.Enabled = False\r\nbMarkRotationgoal.Enabled = False\r\nbMarkAimRollgoal.Enabled = False\r\nelse:\r\nbMarkCube.Enabled = True\r\nbMarkHardCross.Enabled = True\r\nbMarkLightCross.Enabled = True\r\nbMarkSphere.Enabled = True\r\nbMarkBox.Enabled = True\r\nbMarkBone.Enabled = True\r\nbMarkCircle.Enabled = True\r\nbMarkSquare.Enabled = True\r\nbMarkStick.Enabled = True\r\nbMarkNone.Enabled = True\r\nbMarkRigidgoal.Enabled = True\r\nbMarkRotationgoal.Enabled = True\r\nbMarkAimRollgoal.Enabled = True\r\n\r\n# Box\r\ndef BtnCallbackbMarkBox(control, event):\r\nif bMarkBox.State == True:\r\nbMarkCube.Enabled = False\r\nbMarkHardCross.Enabled = False\r\nbMarkLightCross.Enabled = False\r\nbMarkSphere.Enabled = False\r\nbMarkCapsule.Enabled = False\r\nbMarkBone.Enabled = False\r\nbMarkCircle.Enabled = False\r\nbMarkSquare.Enabled = False\r\nbMarkStick.Enabled = False\r\nbMarkNone.Enabled = False\r\nbMarkRigidgoal.Enabled = False\r\nbMarkRotationgoal.Enabled = False\r\nbMarkAimRollgoal.Enabled = False\r\nelse:\r\nbMarkCube.Enabled = True\r\nbMarkHardCross.Enabled = True\r\nbMarkLightCross.Enabled = True\r\nbMarkSphere.Enabled = True\r\nbMarkCapsule.Enabled = True\r\nbMarkBone.Enabled = True\r\nbMarkCircle.Enabled = True\r\nbMarkSquare.Enabled = True\r\nbMarkStick.Enabled = True\r\nbMarkNone.Enabled = True\r\nbMarkRigidgoal.Enabled = True\r\nbMarkRotationgoal.Enabled = True\r\nbMarkAimRollgoal.Enabled = True\r\n\r\n## Bone\r\ndef BtnCallbackbMarkBone(control, event):\r\nif bMarkBone.State == True:\r\nbMarkCube.Enabled = False\r\nbMarkHardCross.Enabled = False\r\nbMarkLightCross.Enabled = False\r\nbMarkSphere.Enabled = False\r\nbMarkCapsule.Enabled = False\r\nbMarkBox.Enabled = False\r\nbMarkCircle.Enabled = False\r\nbMarkSquare.Enabled = False\r\nbMarkStick.Enabled = False\r\nbMarkNone.Enabled = False\r\nbMarkRigidgoal.Enabled = False\r\nbMarkRotationgoal.Enabled = False\r\nbMarkAimRollgoal.Enabled = False\r\nelse:\r\nbMarkCube.Enabled = True\r\nbMarkHardCross.Enabled = True\r\nbMarkLightCross.Enabled = True\r\nbMarkSphere.Enabled = True\r\nbMarkCapsule.Enabled = True\r\nbMarkBox.Enabled = True\r\nbMarkCircle.Enabled = True\r\nbMarkSquare.Enabled = True\r\nbMarkStick.Enabled = True\r\nbMarkNone.Enabled = True\r\nbMarkRigidgoal.Enabled = True\r\nbMarkRotationgoal.Enabled = True\r\nbMarkAimRollgoal.Enabled = True\r\n\r\n## Circle\r\ndef BtnCallbackbMarkCircle(control, event):\r\nif bMarkCircle.State == True:\r\nbMarkCube.Enabled = False\r\nbMarkHardCross.Enabled = False\r\nbMarkLightCross.Enabled = False\r\nbMarkSphere.Enabled = False\r\nbMarkCapsule.Enabled = False\r\nbMarkBox.Enabled = False\r\nbMarkBone.Enabled = False\r\nbMarkSquare.Enabled = False\r\nbMarkStick.Enabled = False\r\nbMarkNone.Enabled = False\r\nbMarkRigidgoal.Enabled = False\r\nbMarkRotationgoal.Enabled = False\r\nbMarkAimRollgoal.Enabled = False\r\nelse:\r\nbMarkCube.Enabled = True\r\nbMarkHardCross.Enabled = True\r\nbMarkLightCross.Enabled = True\r\nbMarkSphere.Enabled = True\r\nbMarkCapsule.Enabled = True\r\nbMarkBox.Enabled = True\r\nbMarkBone.Enabled = True\r\nbMarkSquare.Enabled = True\r\nbMarkStick.Enabled = True\r\nbMarkNone.Enabled = True\r\nbMarkRigidgoal.Enabled = True\r\nbMarkRotationgoal.Enabled = True\r\nbMarkAimRollgoal.Enabled = True\r\n\r\n## Square\r\ndef BtnCallbackbMarkSquare(control, event):\r\nif bMarkSquare.State == True:\r\nbMarkCube.Enabled = False\r\nbMarkHardCross.Enabled = False\r\nbMarkLightCross.Enabled = False\r\nbMarkSphere.Enabled = False\r\nbMarkCapsule.Enabled = False\r\nbMarkBox.Enabled = False\r\nbMarkBone.Enabled = False\r\nbMarkCircle.Enabled = False\r\nbMarkStick.Enabled = False\r\nbMarkNone.Enabled = False\r\nbMarkRigidgoal.Enabled = False\r\nbMarkRotationgoal.Enabled = False\r\nbMarkAimRollgoal.Enabled = False\r\nelse:\r\nbMarkCube.Enabled = True\r\nbMarkHardCross.Enabled = True\r\nbMarkLightCross.Enabled = True\r\nbMarkSphere.Enabled = True\r\nbMarkCapsule.Enabled = True\r\nbMarkBox.Enabled = True\r\nbMarkBone.Enabled = True\r\nbMarkCircle.Enabled = True\r\nbMarkStick.Enabled = True\r\nbMarkNone.Enabled = True\r\nbMarkRigidgoal.Enabled = True\r\nbMarkRotationgoal.Enabled = True\r\nbMarkAimRollgoal.Enabled = True\r\n\r\n## Stick\r\ndef BtnCallbackbMarkStick(control, event):\r\nif bMarkStick.State == True:\r\nbMarkCube.Enabled = False\r\nbMarkHardCross.Enabled = False\r\nbMarkLightCross.Enabled = False\r\nbMarkSphere.Enabled = False\r\nbMarkCapsule.Enabled = False\r\nbMarkBox.Enabled = False\r\nbMarkBone.Enabled = False\r\nbMarkCircle.Enabled = False\r\nbMarkSquare.Enabled = False\r\nbMarkNone.Enabled = False\r\nbMarkRigidgoal.Enabled = False\r\nbMarkRotationgoal.Enabled = False\r\nbMarkAimRollgoal.Enabled = False\r\nelse:\r\nbMarkCube.Enabled = True\r\nbMarkHardCross.Enabled = True\r\nbMarkLightCross.Enabled = True\r\nbMarkSphere.Enabled = True\r\nbMarkCapsule.Enabled = True\r\nbMarkBox.Enabled = True\r\nbMarkBone.Enabled = True\r\nbMarkCircle.Enabled = True\r\nbMarkSquare.Enabled = True\r\nbMarkNone.Enabled = True\r\nbMarkRigidgoal.Enabled = True\r\nbMarkRotationgoal.Enabled = True\r\nbMarkAimRollgoal.Enabled = True\r\n\r\n## None\r\ndef BtnCallbackbMarkNone(control, event):\r\nif bMarkNone.State == True:\r\nbMarkCube.Enabled = False\r\nbMarkHardCross.Enabled = False\r\nbMarkLightCross.Enabled = False\r\nbMarkSphere.Enabled = False\r\nbMarkCapsule.Enabled = False\r\nbMarkBox.Enabled = False\r\nbMarkBone.Enabled = False\r\nbMarkCircle.Enabled = False\r\nbMarkSquare.Enabled = False\r\nbMarkStick.Enabled = False\r\nbMarkRigidgoal.Enabled = False\r\nbMarkRotationgoal.Enabled = False\r\nbMarkAimRollgoal.Enabled = False\r\nelse:\r\nbMarkCube.Enabled = True\r\nbMarkHardCross.Enabled = True\r\nbMarkLightCross.Enabled = True\r\nbMarkSphere.Enabled = True\r\nbMarkCapsule.Enabled = True\r\nbMarkBox.Enabled = True\r\nbMarkBone.Enabled = True\r\nbMarkCircle.Enabled = True\r\nbMarkSquare.Enabled = True\r\nbMarkStick.Enabled = True\r\nbMarkRigidgoal.Enabled = True\r\nbMarkRotationgoal.Enabled = True\r\nbMarkAimRollgoal.Enabled = True\r\n\r\n## Rigid Goal\r\ndef BtnCallbMarkRigidgoal(control, event):\r\nif bMarkRigidgoal.State == True:\r\nbMarkCube.Enabled = False\r\nbMarkHardCross.Enabled = False\r\nbMarkLightCross.Enabled = False\r\nbMarkSphere.Enabled = False\r\nbMarkCapsule.Enabled = False\r\nbMarkBox.Enabled = False\r\nbMarkBone.Enabled = False\r\nbMarkCircle.Enabled = False\r\nbMarkSquare.Enabled = False\r\nbMarkStick.Enabled = False\r\nbMarkNone.Enabled = False\r\nbMarkAimRollgoal.Enabled = False\r\nbMarkRotationgoal.Enabled = False\r\nelse:\r\nbMarkCube.Enabled = True\r\nbMarkHardCross.Enabled = True\r\nbMarkLightCross.Enabled = True\r\nbMarkSphere.Enabled = True\r\nbMarkCapsule.Enabled = True\r\nbMarkBox.Enabled = True\r\nbMarkBone.Enabled = True\r\nbMarkCircle.Enabled = True\r\nbMarkSquare.Enabled = True\r\nbMarkStick.Enabled = True\r\nbMarkNone.Enabled = True\r\nbMarkRotationgoal.Enabled = True\r\nbMarkAimRollgoal.Enabled = True\r\n\r\n## Rotational Goal\r\ndef BtnCallbackbMarkRotationgoal(control, event):\r\nif bMarkRotationgoal.State == True:\r\nbMarkCube.Enabled = False\r\nbMarkHardCross.Enabled = False\r\nbMarkLightCross.Enabled = False\r\nbMarkSphere.Enabled = False\r\nbMarkCapsule.Enabled = False\r\nbMarkBox.Enabled = False\r\nbMarkBone.Enabled = False\r\nbMarkCircle.Enabled = False\r\nbMarkSquare.Enabled = False\r\nbMarkStick.Enabled = False\r\nbMarkNone.Enabled = False\r\nbMarkRigidgoal.Enabled = False\r\nbMarkAimRollgoal.Enabled = False\r\nelse:\r\nbMarkCube.Enabled = True\r\nbMarkHardCross.Enabled = True\r\nbMarkLightCross.Enabled = True\r\nbMarkSphere.Enabled = True\r\nbMarkCapsule.Enabled = True\r\nbMarkBox.Enabled = True\r\nbMarkBone.Enabled = True\r\nbMarkCircle.Enabled = True\r\nbMarkSquare.Enabled = True\r\nbMarkStick.Enabled = True\r\nbMarkNone.Enabled = True\r\nbMarkRigidgoal.Enabled = True\r\nbMarkAimRollgoal.Enabled = True\r\n\r\n## Aim Roll Goal\r\ndef BtnCallbackbMarkAimRollgoal(control, event):\r\nif bMarkAimRollgoal.State == True:\r\nbMarkCube.Enabled = False\r\nbMarkHardCross.Enabled = False\r\nbMarkLightCross.Enabled = False\r\nbMarkSphere.Enabled = False\r\nbMarkCapsule.Enabled = False\r\nbMarkBox.Enabled = False\r\nbMarkBone.Enabled = False\r\nbMarkCircle.Enabled = False\r\nbMarkSquare.Enabled = False\r\nbMarkStick.Enabled = False\r\nbMarkNone.Enabled = False\r\nbMarkRotationgoal.Enabled = False\r\nbMarkRigidgoal.Enabled = False\r\nelse:\r\nbMarkCube.Enabled = True\r\nbMarkHardCross.Enabled = True\r\nbMarkLightCross.Enabled = True\r\nbMarkSphere.Enabled = True\r\nbMarkCapsule.Enabled = True\r\nbMarkBox.Enabled = True\r\nbMarkBone.Enabled = True\r\nbMarkCircle.Enabled = True\r\nbMarkSquare.Enabled = True\r\nbMarkStick.Enabled = True\r\nbMarkNone.Enabled = True\r\nbMarkRigidgoal.Enabled = True\r\nbMarkRotationgoal.Enabled = True\r\n\r\n## Tool Window Creation\r\ndef PopulateTool(t):\r\n\r\n#populate regions here\r\n\r\n# Checkboxs for Character Process Type\r\nx = FBAddRegionParam(15,FBAttachType.kFBAttachNone,&quot;&quot;)\r\ny = FBAddRegionParam(20,FBAttachType.kFBAttachNone,&quot;&quot;)\r\nw = FBAddRegionParam(260,FBAttachType.kFBAttachNone,&quot;&quot;)\r\nh = FBAddRegionParam(35,FBAttachType.kFBAttachNone,&quot;&quot;)\r\ntMark.AddRegion(&quot;bMarkCube&quot;,&quot;bMarkCube&quot;, x, y, w, h)\r\n\r\ntMark.SetControl(&quot;bMarkCube&quot;, bMarkCube)\r\nbMarkCube.Visible = True\r\nbMarkCube.ReadOnly = False\r\nbMarkCube.Enabled = True\r\nbMarkCube.Hint = &quot;&quot;\r\nbMarkCube.Caption = &quot;Cube&quot;\r\nbMarkCube.State = 0\r\nbMarkCube.Style = FBButtonStyle.kFBCheckbox\r\nbMarkCube.Justify = FBTextJustify.kFBTextJustifyLeft\r\nbMarkCube.Look = FBButtonLook.kFBLookNormal\r\nbMarkCube.OnClick.Add(BtnCallbackbMarkCube)\r\n\r\nx = FBAddRegionParam(15,FBAttachType.kFBAttachNone,&quot;&quot;)\r\ny = FBAddRegionParam(50,FBAttachType.kFBAttachNone,&quot;&quot;)\r\nw = FBAddRegionParam(260,FBAttachType.kFBAttachNone,&quot;&quot;)\r\nh = FBAddRegionParam(35,FBAttachType.kFBAttachNone,&quot;&quot;)\r\ntMark.AddRegion(&quot;bMarkHardCross&quot;,&quot;bMarkHardCross&quot;, x, y, w, h)\r\n\r\ntMark.SetControl(&quot;bMarkHardCross&quot;, bMarkHardCross)\r\nbMarkHardCross.Visible = True\r\nbMarkHardCross.ReadOnly = False\r\nbMarkHardCross.Enabled = True\r\nbMarkHardCross.Hint = &quot;&quot;\r\nbMarkHardCross.Caption = &quot;Hard Cross&quot;\r\nbMarkHardCross.State = 0\r\nbMarkHardCross.Style = FBButtonStyle.kFBCheckbox\r\nbMarkHardCross.Justify = FBTextJustify.kFBTextJustifyLeft\r\nbMarkHardCross.Look = FBButtonLook.kFBLookNormal\r\nbMarkHardCross.OnClick.Add(BtnCallbackbMarkHardCross)\r\n\r\nx = FBAddRegionParam(15,FBAttachType.kFBAttachNone,&quot;&quot;)\r\ny = FBAddRegionParam(80,FBAttachType.kFBAttachNone,&quot;&quot;)\r\nw = FBAddRegionParam(260,FBAttachType.kFBAttachNone,&quot;&quot;)\r\nh = FBAddRegionParam(35,FBAttachType.kFBAttachNone,&quot;&quot;)\r\ntMark.AddRegion(&quot;bMarkLightCross&quot;,&quot;bMarkLightCross&quot;, x, y, w, h)\r\n\r\ntMark.SetControl(&quot;bMarkLightCross&quot;, bMarkLightCross)\r\nbMarkLightCross.Visible = True\r\nbMarkLightCross.ReadOnly = False\r\nbMarkLightCross.Enabled = True\r\nbMarkLightCross.Hint = &quot;&quot;\r\nbMarkLightCross.Caption = &quot;Light Cross&quot;\r\nbMarkLightCross.State = 0\r\nbMarkLightCross.Style = FBButtonStyle.kFBCheckbox\r\nbMarkLightCross.Justify = FBTextJustify.kFBTextJustifyLeft\r\nbMarkLightCross.Look = FBButtonLook.kFBLookNormal\r\nbMarkLightCross.OnClick.Add(BtnCallbackbMarkLightCross)\r\n\r\nx = FBAddRegionParam(15,FBAttachType.kFBAttachNone,&quot;&quot;)\r\ny = FBAddRegionParam(110,FBAttachType.kFBAttachNone,&quot;&quot;)\r\nw = FBAddRegionParam(260,FBAttachType.kFBAttachNone,&quot;&quot;)\r\nh = FBAddRegionParam(35,FBAttachType.kFBAttachNone,&quot;&quot;)\r\ntMark.AddRegion(&quot;bMarkSphere&quot;,&quot;bMarkSphere&quot;, x, y, w, h)\r\n\r\ntMark.SetControl(&quot;bMarkSphere&quot;, bMarkSphere)\r\nbMarkSphere.Visible = True\r\nbMarkSphere.ReadOnly = False\r\nbMarkSphere.Enabled = True\r\nbMarkSphere.Hint = &quot;&quot;\r\nbMarkSphere.Caption = &quot;Sphere&quot;\r\nbMarkSphere.State = 0\r\nbMarkSphere.Style = FBButtonStyle.kFBCheckbox\r\nbMarkSphere.Justify = FBTextJustify.kFBTextJustifyLeft\r\nbMarkSphere.Look = FBButtonLook.kFBLookNormal\r\nbMarkSphere.OnClick.Add(BtnCallbackbMarkSphere)\r\n\r\nx = FBAddRegionParam(15,FBAttachType.kFBAttachNone,&quot;&quot;)\r\ny = FBAddRegionParam(140,FBAttachType.kFBAttachNone,&quot;&quot;)\r\nw = FBAddRegionParam(260,FBAttachType.kFBAttachNone,&quot;&quot;)\r\nh = FBAddRegionParam(35,FBAttachType.kFBAttachNone,&quot;&quot;)\r\ntMark.AddRegion(&quot;bMarkCapsule&quot;,&quot;bMarkCapsule&quot;, x, y, w, h)\r\n\r\ntMark.SetControl(&quot;bMarkCapsule&quot;, bMarkCapsule)\r\nbMarkCapsule.Visible = True\r\nbMarkCapsule.ReadOnly = False\r\nbMarkCapsule.Enabled = True\r\nbMarkCapsule.Hint = &quot;&quot;\r\nbMarkCapsule.Caption = &quot;Capsule&quot;\r\nbMarkCapsule.State = 0\r\nbMarkCapsule.Style = FBButtonStyle.kFBCheckbox\r\nbMarkCapsule.Justify = FBTextJustify.kFBTextJustifyLeft\r\nbMarkCapsule.Look = FBButtonLook.kFBLookNormal\r\nbMarkCapsule.OnClick.Add(BtnCallbackbMarkCapsule)\r\n\r\nx = FBAddRegionParam(15,FBAttachType.kFBAttachNone,&quot;&quot;)\r\ny = FBAddRegionParam(170,FBAttachType.kFBAttachNone,&quot;&quot;)\r\nw = FBAddRegionParam(260,FBAttachType.kFBAttachNone,&quot;&quot;)\r\nh = FBAddRegionParam(35,FBAttachType.kFBAttachNone,&quot;&quot;)\r\ntMark.AddRegion(&quot;bMarkBox&quot;,&quot;bMarkBox&quot;, x, y, w, h)\r\n\r\ntMark.SetControl(&quot;bMarkBox&quot;, bMarkBox)\r\nbMarkBox.Visible = True\r\nbMarkBox.ReadOnly = False\r\nbMarkBox.Enabled = True\r\nbMarkBox.Hint = &quot;&quot;\r\nbMarkBox.Caption = &quot;Box&quot;\r\nbMarkBox.State = 0\r\nbMarkBox.Style = FBButtonStyle.kFBCheckbox\r\nbMarkBox.Justify = FBTextJustify.kFBTextJustifyLeft\r\nbMarkBox.Look = FBButtonLook.kFBLookNormal\r\nbMarkBox.OnClick.Add(BtnCallbackbMarkBox)\r\n\r\nx = FBAddRegionParam(15,FBAttachType.kFBAttachNone,&quot;&quot;)\r\ny = FBAddRegionParam(200,FBAttachType.kFBAttachNone,&quot;&quot;)\r\nw = FBAddRegionParam(260,FBAttachType.kFBAttachNone,&quot;&quot;)\r\nh = FBAddRegionParam(35,FBAttachType.kFBAttachNone,&quot;&quot;)\r\ntMark.AddRegion(&quot;bMarkBone&quot;,&quot;bMarkBone&quot;, x, y, w, h)\r\n\r\ntMark.SetControl(&quot;bMarkBone&quot;, bMarkBone)\r\nbMarkBone.Visible = True\r\nbMarkBone.ReadOnly = False\r\nbMarkBone.Enabled = True\r\nbMarkBone.Hint = &quot;&quot;\r\nbMarkBone.Caption = &quot;Bone&quot;\r\nbMarkBone.State = 0\r\nbMarkBone.Style = FBButtonStyle.kFBCheckbox\r\nbMarkBone.Justify = FBTextJustify.kFBTextJustifyLeft\r\nbMarkBone.Look = FBButtonLook.kFBLookNormal\r\nbMarkBone.OnClick.Add(BtnCallbackbMarkBone)\r\n\r\nx = FBAddRegionParam(140,FBAttachType.kFBAttachNone,&quot;&quot;)\r\ny = FBAddRegionParam(20,FBAttachType.kFBAttachNone,&quot;&quot;)\r\nw = FBAddRegionParam(260,FBAttachType.kFBAttachNone,&quot;&quot;)\r\nh = FBAddRegionParam(35,FBAttachType.kFBAttachNone,&quot;&quot;)\r\ntMark.AddRegion(&quot;bMarkCircle&quot;,&quot;bMarkCircle&quot;, x, y, w, h)\r\n\r\ntMark.SetControl(&quot;bMarkCircle&quot;, bMarkCircle)\r\nbMarkCircle.Visible = True\r\nbMarkCircle.ReadOnly = False\r\nbMarkCircle.Enabled = True\r\nbMarkCircle.Hint = &quot;&quot;\r\nbMarkCircle.Caption = &quot;Circle&quot;\r\nbMarkCircle.State = 0\r\nbMarkCircle.Style = FBButtonStyle.kFBCheckbox\r\nbMarkCircle.Justify = FBTextJustify.kFBTextJustifyLeft\r\nbMarkCircle.Look = FBButtonLook.kFBLookNormal\r\nbMarkCircle.OnClick.Add(BtnCallbackbMarkCircle)\r\n\r\nx = FBAddRegionParam(140,FBAttachType.kFBAttachNone,&quot;&quot;)\r\ny = FBAddRegionParam(50,FBAttachType.kFBAttachNone,&quot;&quot;)\r\nw = FBAddRegionParam(260,FBAttachType.kFBAttachNone,&quot;&quot;)\r\nh = FBAddRegionParam(35,FBAttachType.kFBAttachNone,&quot;&quot;)\r\ntMark.AddRegion(&quot;bMarkSquare&quot;,&quot;bMarkSquare&quot;, x, y, w, h)\r\n\r\ntMark.SetControl(&quot;bMarkSquare&quot;, bMarkSquare)\r\nbMarkSquare.Visible = True\r\nbMarkSquare.ReadOnly = False\r\nbMarkSquare.Enabled = True\r\nbMarkSquare.Hint = &quot;&quot;\r\nbMarkSquare.Caption = &quot;Square&quot;\r\nbMarkSquare.State = 0\r\nbMarkSquare.Style = FBButtonStyle.kFBCheckbox\r\nbMarkSquare.Justify = FBTextJustify.kFBTextJustifyLeft\r\nbMarkSquare.Look = FBButtonLook.kFBLookNormal\r\nbMarkSquare.OnClick.Add(BtnCallbackbMarkSquare)\r\n\r\nx = FBAddRegionParam(140,FBAttachType.kFBAttachNone,&quot;&quot;)\r\ny = FBAddRegionParam(80,FBAttachType.kFBAttachNone,&quot;&quot;)\r\nw = FBAddRegionParam(260,FBAttachType.kFBAttachNone,&quot;&quot;)\r\nh = FBAddRegionParam(35,FBAttachType.kFBAttachNone,&quot;&quot;)\r\ntMark.AddRegion(&quot;bMarkStick&quot;,&quot;bMarkStick&quot;, x, y, w, h)\r\n\r\ntMark.SetControl(&quot;bMarkStick&quot;, bMarkStick)\r\nbMarkStick.Visible = True\r\nbMarkStick.ReadOnly = False\r\nbMarkStick.Enabled = True\r\nbMarkStick.Hint = &quot;&quot;\r\nbMarkStick.Caption = &quot;Stick&quot;\r\nbMarkStick.State = 0\r\nbMarkStick.Style = FBButtonStyle.kFBCheckbox\r\nbMarkStick.Justify = FBTextJustify.kFBTextJustifyLeft\r\nbMarkStick.Look = FBButtonLook.kFBLookNormal\r\nbMarkStick.OnClick.Add(BtnCallbackbMarkStick)\r\n\r\nx = FBAddRegionParam(140,FBAttachType.kFBAttachNone,&quot;&quot;)\r\ny = FBAddRegionParam(110,FBAttachType.kFBAttachNone,&quot;&quot;)\r\nw = FBAddRegionParam(260,FBAttachType.kFBAttachNone,&quot;&quot;)\r\nh = FBAddRegionParam(35,FBAttachType.kFBAttachNone,&quot;&quot;)\r\ntMark.AddRegion(&quot;bMarkNone&quot;,&quot;bMarkNone&quot;, x, y, w, h)\r\n\r\ntMark.SetControl(&quot;bMarkNone&quot;, bMarkNone)\r\nbMarkNone.Visible = True\r\nbMarkNone.ReadOnly = False\r\nbMarkNone.Enabled = True\r\nbMarkNone.Hint = &quot;&quot;\r\nbMarkNone.Caption = &quot;None&quot;\r\nbMarkNone.State = 0\r\nbMarkNone.Style = FBButtonStyle.kFBCheckbox\r\nbMarkNone.Justify = FBTextJustify.kFBTextJustifyLeft\r\nbMarkNone.Look = FBButtonLook.kFBLookNormal\r\nbMarkNone.OnClick.Add(BtnCallbackbMarkNone)\r\n\r\nx = FBAddRegionParam(140,FBAttachType.kFBAttachNone,&quot;&quot;)\r\ny = FBAddRegionParam(140,FBAttachType.kFBAttachNone,&quot;&quot;)\r\nw = FBAddRegionParam(260,FBAttachType.kFBAttachNone,&quot;&quot;)\r\nh = FBAddRegionParam(35,FBAttachType.kFBAttachNone,&quot;&quot;)\r\ntMark.AddRegion(&quot;bMarkRigidgoal&quot;,&quot;bMarkRigidgoal&quot;, x, y, w, h)\r\n\r\ntMark.SetControl(&quot;bMarkRigidgoal&quot;, bMarkRigidgoal)\r\nbMarkRigidgoal.Visible = True\r\nbMarkRigidgoal.ReadOnly = False\r\nbMarkRigidgoal.Enabled = True\r\nbMarkRigidgoal.Hint = &quot;&quot;\r\nbMarkRigidgoal.Caption = &quot;Rigid goal&quot;\r\nbMarkRigidgoal.State = 0\r\nbMarkRigidgoal.Style = FBButtonStyle.kFBCheckbox\r\nbMarkRigidgoal.Justify = FBTextJustify.kFBTextJustifyLeft\r\nbMarkRigidgoal.Look = FBButtonLook.kFBLookNormal\r\nbMarkRigidgoal.OnClick.Add(BtnCallbMarkRigidgoal)\r\n\r\nx = FBAddRegionParam(140,FBAttachType.kFBAttachNone,&quot;&quot;)\r\ny = FBAddRegionParam(170,FBAttachType.kFBAttachNone,&quot;&quot;)\r\nw = FBAddRegionParam(260,FBAttachType.kFBAttachNone,&quot;&quot;)\r\nh = FBAddRegionParam(35,FBAttachType.kFBAttachNone,&quot;&quot;)\r\ntMark.AddRegion(&quot;bMarkRotationgoal&quot;,&quot;bMarkRotationgoal&quot;, x, y, w, h)\r\n\r\ntMark.SetControl(&quot;bMarkRotationgoal&quot;, bMarkRotationgoal)\r\nbMarkRotationgoal.Visible = True\r\nbMarkRotationgoal.ReadOnly = False\r\nbMarkRotationgoal.Enabled = True\r\nbMarkRotationgoal.Hint = &quot;&quot;\r\nbMarkRotationgoal.Caption = &quot;Rotational goal&quot;\r\nbMarkRotationgoal.State = 0\r\nbMarkRotationgoal.Style = FBButtonStyle.kFBCheckbox\r\nbMarkRotationgoal.Justify = FBTextJustify.kFBTextJustifyLeft\r\nbMarkRotationgoal.Look = FBButtonLook.kFBLookNormal\r\nbMarkRotationgoal.OnClick.Add(BtnCallbackbMarkRotationgoal)\r\n\r\nx = FBAddRegionParam(140,FBAttachType.kFBAttachNone,&quot;&quot;)\r\ny = FBAddRegionParam(200,FBAttachType.kFBAttachNone,&quot;&quot;)\r\nw = FBAddRegionParam(260,FBAttachType.kFBAttachNone,&quot;&quot;)\r\nh = FBAddRegionParam(35,FBAttachType.kFBAttachNone,&quot;&quot;)\r\ntMark.AddRegion(&quot;bMarkAimRollgoal&quot;,&quot;bMarkAimRollgoal&quot;, x, y, w, h)\r\n\r\ntMark.SetControl(&quot;bMarkAimRollgoal&quot;, bMarkAimRollgoal)\r\nbMarkAimRollgoal.Visible = True\r\nbMarkAimRollgoal.ReadOnly = False\r\nbMarkAimRollgoal.Enabled = True\r\nbMarkAimRollgoal.Hint = &quot;&quot;\r\nbMarkAimRollgoal.Caption = &quot;Aim\/Roll goal&quot;\r\nbMarkAimRollgoal.State = 0\r\nbMarkAimRollgoal.Style = FBButtonStyle.kFBCheckbox\r\nbMarkAimRollgoal.Justify = FBTextJustify.kFBTextJustifyLeft\r\nbMarkAimRollgoal.Look = FBButtonLook.kFBLookNormal\r\nbMarkAimRollgoal.OnClick.Add(BtnCallbackbMarkAimRollgoal)\r\n\r\n## ----------------------------------------------------------------\r\n\r\nx = FBAddRegionParam(0,FBAttachType.kFBAttachNone,&quot;&quot;)\r\ny = FBAddRegionParam(0,FBAttachType.kFBAttachNone,&quot;&quot;)\r\nw = FBAddRegionParam(270,FBAttachType.kFBAttachNone,&quot;&quot;)\r\nh = FBAddRegionParam(30,FBAttachType.kFBAttachNone,&quot;&quot;)\r\ntMark.AddRegion(&quot;MarkerTools&quot;,&quot;MarkerTools&quot;, x, y, w, h)\r\n\r\ntMark.SetControl(&quot;MarkerTools&quot;, MarkerTools)\r\nMarkerTools.Visible = True\r\nMarkerTools.ReadOnly = False\r\nMarkerTools.Enabled = True\r\nMarkerTools.Hint = &quot;&quot;\r\nMarkerTools.Caption = &quot;MarkerTool&quot;\r\nMarkerTools.Style = FBTextStyle.kFBTextStyleBold\r\nMarkerTools.Justify = FBTextJustify.kFBTextJustifyCenter\r\nMarkerTools.WordWrap = False\r\n\r\nx = FBAddRegionParam(4,FBAttachType.kFBAttachNone,&quot;&quot;)\r\ny = FBAddRegionParam(240,FBAttachType.kFBAttachNone,&quot;&quot;)\r\nw = FBAddRegionParam(260,FBAttachType.kFBAttachNone,&quot;&quot;)\r\nh = FBAddRegionParam(55,FBAttachType.kFBAttachNone,&quot;&quot;)\r\ntMark.AddRegion(&quot;MarkerCreateButton&quot;,&quot;MarkerCreateButton&quot;, x, y, w, h)\r\n\r\ntMark.SetControl(&quot;MarkerCreateButton&quot;, MarkerCreateButton)\r\nMarkerCreateButton.Visible = True\r\nMarkerCreateButton.ReadOnly = False\r\nMarkerCreateButton.Enabled = True\r\nMarkerCreateButton.Hint = &quot;&quot;\r\nMarkerCreateButton.Caption = &quot;Create&quot;\r\nMarkerCreateButton.State = 0\r\nMarkerCreateButton.Style = FBButtonStyle.kFBPushButton\r\nMarkerCreateButton.Justify = FBTextJustify.kFBTextJustifyCenter\r\nMarkerCreateButton.Look = FBButtonLook.kFBLookNormal\r\nMarkerCreateButton.OnClick.Add(BtnCallbackbMarkerCreateButton)\r\n\r\ndef CreateTool():\r\nglobal tMark\r\ntMark = FBCreateUniqueTool(&quot;MarkerTool v 0.1&quot;)\r\ntMark.StartSizeX = 285\r\ntMark.StartSizeY = 340\r\nPopulateTool(tMark)\r\nShowTool(tMark)\r\nCreateTool()\r\n<\/pre>\n<p>Here are some of the more interesting parts of the script:<\/p>\n<p>The tool needed a fail safe for if and when the user does not chose a visual style for the marker. When there is no decision made by the user we will then generate a default marker visual style &#8211; a &#8220;Cube&#8221; look:<\/p>\n<pre class=\"brush: python; title: ; notranslate\" title=\"\">\r\n## Fail safe for if no check boxes are marked (default to cube)\r\nif bMarkCube.State == bMarkHardCross.State == bMarkLightCross.State == bMarkSphere.State == bMarkCapsule.State == bMarkBox.State == bMarkBone.State == bMarkCircle.State == bMarkSquare.State == bMarkStick.State == bMarkNone.State == bMarkRigidgoal.State == bMarkRotationgoal.State == bMarkAimRollgoal.State == False:\r\nlMarkerLook = 0\r\n<\/pre>\n<p>Every state is equal (using the &#8220;==&#8221;) to each other which is then equal to &#8220;False&#8221;, when this happens we set the &#8220;lMarkerLook&#8221; to be &#8220;0&#8221; which is the Cube visual style.<\/p>\n<p>Below we have the decision for the check boxes, when one is selected the other check boxes will be greyed out preventing multiple boxes form being selected. The below lines could be cleaned up a lot and I look forward to doing the in the next version.<\/p>\n<pre class=\"brush: python; title: ; notranslate\" title=\"\">\r\n\r\n## ui look check box decision\r\n\r\n## Cube\r\ndef BtnCallbackbMarkCube(control, event):\r\n    if bMarkCube.State == True:\r\n        bMarkHardCross.Enabled = False\r\n        bMarkLightCross.Enabled = False\r\n        bMarkSphere.Enabled = False\r\n        bMarkCapsule.Enabled = False\r\n        bMarkBox.Enabled = False\r\n        bMarkBone.Enabled = False\r\n        bMarkCircle.Enabled = False\r\n        bMarkSquare.Enabled = False\r\n        bMarkStick.Enabled = False\r\n        bMarkNone.Enabled = False\r\n        bMarkRigidgoal.Enabled = False\r\n        bMarkRotationgoal.Enabled = False\r\n        bMarkAimRollgoal.Enabled = False\r\n    else:\r\n        bMarkCube.Enabled = True\r\n        bMarkHardCross.Enabled = True\r\n        bMarkLightCross.Enabled = True\r\n        bMarkSphere.Enabled = True\r\n        bMarkCapsule.Enabled = True\r\n        bMarkBox.Enabled = True\r\n        bMarkBone.Enabled = True\r\n        bMarkCircle.Enabled = True\r\n        bMarkSquare.Enabled = True\r\n        bMarkStick.Enabled = True\r\n        bMarkNone.Enabled = True\r\n        bMarkRigidgoal.Enabled = True\r\n        bMarkRotationgoal.Enabled = True\r\n\r\n## Hard Cross\r\ndef BtnCallbackbMarkHardCross(control, event):\r\n    if bMarkHardCross.State == True:\r\n        bMarkCube.Enabled = False\r\n        bMarkLightCross.Enabled = False\r\n        bMarkSphere.Enabled = False\r\n        bMarkCapsule.Enabled = False\r\n        bMarkBox.Enabled = False\r\n        bMarkBone.Enabled = False\r\n        bMarkCircle.Enabled = False\r\n        bMarkSquare.Enabled = False\r\n        bMarkStick.Enabled = False\r\n        bMarkNone.Enabled = False\r\n        bMarkRigidgoal.Enabled = False\r\n        bMarkRotationgoal.Enabled = False\r\n        bMarkAimRollgoal.Enabled = False\r\n    else:\r\n        bMarkCube.Enabled = True\r\n        bMarkHardCross.Enabled = True\r\n        bMarkLightCross.Enabled = True\r\n        bMarkSphere.Enabled = True\r\n        bMarkCapsule.Enabled = True\r\n        bMarkBox.Enabled = True\r\n        bMarkBone.Enabled = True\r\n        bMarkCircle.Enabled = True\r\n        bMarkSquare.Enabled = True\r\n        bMarkStick.Enabled = True\r\n        bMarkNone.Enabled = True\r\n        bMarkRigidgoal.Enabled = True\r\n        bMarkRotationgoal.Enabled = True\r\n\r\n## Lighgt Cross\r\ndef BtnCallbackbMarkLightCross(control, event):\r\n    if bMarkLightCross.State == True:\r\n        bMarkCube.Enabled = False\r\n        bMarkHardCross.Enabled = False\r\n        bMarkSphere.Enabled = False\r\n        bMarkCapsule.Enabled = False\r\n        bMarkBox.Enabled = False\r\n        bMarkBone.Enabled = False\r\n        bMarkCircle.Enabled = False\r\n        bMarkSquare.Enabled = False\r\n        bMarkStick.Enabled = False\r\n        bMarkNone.Enabled = False\r\n        bMarkRigidgoal.Enabled = False\r\n        bMarkRotationgoal.Enabled = False\r\n        bMarkAimRollgoal.Enabled = False\r\n    else:\r\n        bMarkCube.Enabled = True\r\n        bMarkHardCross.Enabled = True\r\n        bMarkLightCross.Enabled = True\r\n        bMarkSphere.Enabled = True\r\n        bMarkCapsule.Enabled = True\r\n        bMarkBox.Enabled = True\r\n        bMarkBone.Enabled = True\r\n        bMarkCircle.Enabled = True\r\n        bMarkSquare.Enabled = True\r\n        bMarkStick.Enabled = True\r\n        bMarkNone.Enabled = True\r\n        bMarkRigidgoal.Enabled = True\r\n        bMarkRotationgoal.Enabled = True\r\n\r\n## Sphere\r\ndef BtnCallbackbMarkSphere(control, event):\r\n    if bMarkSphere.State == True:\r\n        bMarkCube.Enabled = False\r\n        bMarkHardCross.Enabled = False\r\n        bMarkLightCross.Enabled = False\r\n        bMarkCapsule.Enabled = False\r\n        bMarkBox.Enabled = False\r\n        bMarkBone.Enabled = False\r\n        bMarkCircle.Enabled = False\r\n        bMarkSquare.Enabled = False\r\n        bMarkStick.Enabled = False\r\n        bMarkNone.Enabled = False\r\n        bMarkRigidgoal.Enabled = False\r\nbMarkRotationgoal.Enabled = False\r\nbMarkAimRollgoal.Enabled = False\r\n    else:\r\n        bMarkCube.Enabled = True\r\n        bMarkHardCross.Enabled = True\r\n        bMarkLightCross.Enabled = True\r\n        bMarkSphere.Enabled = True\r\n        bMarkCapsule.Enabled = True\r\n        bMarkBox.Enabled = True\r\n        bMarkBone.Enabled = True\r\n        bMarkCircle.Enabled = True\r\n        bMarkSquare.Enabled = True\r\n        bMarkStick.Enabled = True\r\n        bMarkNone.Enabled = True\r\n        bMarkRigidgoal.Enabled = True\r\n        bMarkRotationgoal.Enabled = True\r\n\r\n## Capsule\r\ndef BtnCallbackbMarkCapsule(control, event):\r\n    if bMarkCapsule.State == True:\r\n        bMarkCube.Enabled = False\r\n        bMarkHardCross.Enabled = False\r\n        bMarkLightCross.Enabled = False\r\n        bMarkSphere.Enabled = False\r\n        bMarkBox.Enabled = False\r\n        bMarkBone.Enabled = False\r\n        bMarkCircle.Enabled = False\r\n        bMarkSquare.Enabled = False\r\n        bMarkStick.Enabled = False\r\n        bMarkNone.Enabled = False\r\n        bMarkRigidgoal.Enabled = False\r\n        bMarkRotationgoal.Enabled = False\r\n        bMarkAimRollgoal.Enabled = False\r\n    else:\r\n        bMarkCube.Enabled = True\r\n        bMarkHardCross.Enabled = True\r\n        bMarkLightCross.Enabled = True\r\n        bMarkSphere.Enabled = True\r\n        bMarkCapsule.Enabled = True\r\n        bMarkBox.Enabled = True\r\n        bMarkBone.Enabled = True\r\n        bMarkCircle.Enabled = True\r\n        bMarkSquare.Enabled = True\r\n        bMarkStick.Enabled = True\r\n        bMarkNone.Enabled = True\r\n        bMarkRigidgoal.Enabled = True\r\n        bMarkRotationgoal.Enabled = True\r\n\r\n# Box\r\ndef BtnCallbackbMarkBox(control, event):\r\n    if bMarkBox.State == True:\r\n        bMarkCube.Enabled = False\r\n        bMarkHardCross.Enabled = False\r\n        bMarkLightCross.Enabled = False\r\n        bMarkSphere.Enabled = False\r\n        bMarkCapsule.Enabled = False\r\n        bMarkBone.Enabled = False\r\n        bMarkCircle.Enabled = False\r\n        bMarkSquare.Enabled = False\r\n        bMarkStick.Enabled = False\r\n        bMarkNone.Enabled = False\r\n        bMarkRigidgoal.Enabled = False\r\n        bMarkRotationgoal.Enabled = False\r\n        bMarkAimRollgoal.Enabled = False\r\n    else:\r\n        bMarkCube.Enabled = True\r\n        bMarkHardCross.Enabled = True\r\n        bMarkLightCross.Enabled = True\r\n        bMarkSphere.Enabled = True\r\n        bMarkCapsule.Enabled = True\r\n        bMarkBox.Enabled = True\r\n        bMarkBone.Enabled = True\r\n        bMarkCircle.Enabled = True\r\n        bMarkSquare.Enabled = True\r\n        bMarkStick.Enabled = True\r\n        bMarkNone.Enabled = True\r\n        bMarkRigidgoal.Enabled = True\r\n        bMarkRotationgoal.Enabled = True\r\n\r\n## Bone\r\ndef BtnCallbackbMarkBone(control, event):\r\n    if bMarkBone.State == True:\r\n        bMarkCube.Enabled = False\r\n        bMarkHardCross.Enabled = False\r\n        bMarkLightCross.Enabled = False\r\n        bMarkSphere.Enabled = False\r\n        bMarkCapsule.Enabled = False\r\n        bMarkBox.Enabled = False\r\n        bMarkCircle.Enabled = False\r\n        bMarkSquare.Enabled = False\r\n        bMarkStick.Enabled = False\r\n        bMarkNone.Enabled = False\r\n        bMarkRigidgoal.Enabled = False\r\n        bMarkRotationgoal.Enabled = False\r\n        bMarkAimRollgoal.Enabled = False\r\n    else:\r\n        bMarkCube.Enabled = True\r\n        bMarkHardCross.Enabled = True\r\n        bMarkLightCross.Enabled = True\r\n        bMarkSphere.Enabled = True\r\n        bMarkCapsule.Enabled = True\r\n        bMarkBox.Enabled = True\r\n        bMarkBone.Enabled = True\r\n        bMarkCircle.Enabled = True\r\n        bMarkSquare.Enabled = True\r\n        bMarkStick.Enabled = True\r\n        bMarkNone.Enabled = True\r\n        bMarkRigidgoal.Enabled = True\r\n        bMarkRotationgoal.Enabled = True\r\n## Circle\r\ndef BtnCallbackbMarkCircle(control, event):\r\n    if bMarkCircle.State == True:\r\n        bMarkCube.Enabled = False\r\n        bMarkHardCross.Enabled = False\r\n        bMarkLightCross.Enabled = False\r\n        bMarkSphere.Enabled = False\r\n        bMarkCapsule.Enabled = False\r\n        bMarkBox.Enabled = False\r\n        bMarkBone.Enabled = False\r\n        bMarkSquare.Enabled = False\r\n        bMarkStick.Enabled = False\r\n        bMarkNone.Enabled = False\r\n        bMarkRigidgoal.Enabled = False\r\n        bMarkRotationgoal.Enabled = False\r\n        bMarkAimRollgoal.Enabled = False\r\n    else:\r\n        bMarkCube.Enabled = True\r\n        bMarkHardCross.Enabled = True\r\n        bMarkLightCross.Enabled = True\r\n        bMarkSphere.Enabled = True\r\n        bMarkCapsule.Enabled = True\r\n        bMarkBox.Enabled = True\r\n        bMarkBone.Enabled = True\r\n        bMarkCircle.Enabled = True\r\n        bMarkSquare.Enabled = True\r\n        bMarkStick.Enabled = True\r\n        bMarkNone.Enabled = True\r\n        bMarkRigidgoal.Enabled = True\r\n        bMarkRotationgoal.Enabled = True\r\n\r\n## Square\r\ndef BtnCallbackbMarkSquare(control, event):\r\nif bMarkSquare.State == True:\r\nbMarkCube.Enabled = False\r\nbMarkHardCross.Enabled = False\r\nbMarkLightCross.Enabled = False\r\nbMarkSphere.Enabled = False\r\nbMarkCapsule.Enabled = False\r\nbMarkBox.Enabled = False\r\nbMarkBone.Enabled = False\r\nbMarkCircle.Enabled = False\r\nbMarkStick.Enabled = False\r\nbMarkNone.Enabled = False\r\nbMarkRigidgoal.Enabled = False\r\nbMarkRotationgoal.Enabled = False\r\nbMarkAimRollgoal.Enabled = False\r\n    else:\r\n        bMarkCube.Enabled = True\r\n        bMarkHardCross.Enabled = True\r\n        bMarkLightCross.Enabled = True\r\n        bMarkSphere.Enabled = True\r\n        bMarkCapsule.Enabled = True\r\n        bMarkBox.Enabled = True\r\n        bMarkBone.Enabled = True\r\n        bMarkCircle.Enabled = True\r\n        bMarkSquare.Enabled = True\r\n        bMarkStick.Enabled = True\r\n        bMarkNone.Enabled = True\r\n        bMarkRigidgoal.Enabled = True\r\n        bMarkRotationgoal.Enabled = True\r\n\r\n## Stick\r\ndef BtnCallbackbMarkStick(control, event):\r\nif bMarkStick.State == True:\r\nbMarkCube.Enabled = False\r\nbMarkHardCross.Enabled = False\r\nbMarkLightCross.Enabled = False\r\nbMarkSphere.Enabled = False\r\nbMarkCapsule.Enabled = False\r\nbMarkBox.Enabled = False\r\nbMarkBone.Enabled = False\r\nbMarkCircle.Enabled = False\r\nbMarkSquare.Enabled = False\r\nbMarkNone.Enabled = False\r\nbMarkRigidgoal.Enabled = False\r\nbMarkRotationgoal.Enabled = False\r\nbMarkAimRollgoal.Enabled = False\r\n    else:\r\n        bMarkCube.Enabled = True\r\n        bMarkHardCross.Enabled = True\r\n        bMarkLightCross.Enabled = True\r\n        bMarkSphere.Enabled = True\r\n        bMarkCapsule.Enabled = True\r\n        bMarkBox.Enabled = True\r\n        bMarkBone.Enabled = True\r\n        bMarkCircle.Enabled = True\r\n        bMarkSquare.Enabled = True\r\n        bMarkStick.Enabled = True\r\n        bMarkNone.Enabled = True\r\n        bMarkRigidgoal.Enabled = True\r\n        bMarkRotationgoal.Enabled = True\r\n\r\n## None\r\ndef BtnCallbackbMarkNone(control, event):\r\nif bMarkNone.State == True:\r\nbMarkCube.Enabled = False\r\nbMarkHardCross.Enabled = False\r\nbMarkLightCross.Enabled = False\r\nbMarkSphere.Enabled = False\r\nbMarkCapsule.Enabled = False\r\nbMarkBox.Enabled = False\r\nbMarkBone.Enabled = False\r\nbMarkCircle.Enabled = False\r\nbMarkSquare.Enabled = False\r\nbMarkStick.Enabled = False\r\nbMarkRigidgoal.Enabled = False\r\nbMarkRotationgoal.Enabled = False\r\nbMarkAimRollgoal.Enabled = False\r\n    else:\r\n        bMarkCube.Enabled = True\r\n        bMarkHardCross.Enabled = True\r\n        bMarkLightCross.Enabled = True\r\n        bMarkSphere.Enabled = True\r\n        bMarkCapsule.Enabled = True\r\n        bMarkBox.Enabled = True\r\n        bMarkBone.Enabled = True\r\n        bMarkCircle.Enabled = True\r\n        bMarkSquare.Enabled = True\r\n        bMarkStick.Enabled = True\r\n        bMarkNone.Enabled = True\r\n        bMarkRigidgoal.Enabled = True\r\n        bMarkRotationgoal.Enabled = True\r\n\r\n## Rigid Goal\r\ndef BtnCallbMarkRigidgoal(control, event):\r\nif bMarkRigidgoal.State == True:\r\nbMarkCube.Enabled = False\r\nbMarkHardCross.Enabled = False\r\nbMarkLightCross.Enabled = False\r\nbMarkSphere.Enabled = False\r\nbMarkCapsule.Enabled = False\r\nbMarkBox.Enabled = False\r\nbMarkBone.Enabled = False\r\nbMarkCircle.Enabled = False\r\nbMarkSquare.Enabled = False\r\nbMarkStick.Enabled = False\r\nbMarkNone.Enabled = False\r\nbMarkAimRollgoal.Enabled = False\r\nbMarkRotationgoal.Enabled = False\r\n    else:\r\n        bMarkCube.Enabled = True\r\n        bMarkHardCross.Enabled = True\r\n        bMarkLightCross.Enabled = True\r\n        bMarkSphere.Enabled = True\r\n        bMarkCapsule.Enabled = True\r\n        bMarkBox.Enabled = True\r\n        bMarkBone.Enabled = True\r\n        bMarkCircle.Enabled = True\r\n        bMarkSquare.Enabled = True\r\n        bMarkStick.Enabled = True\r\n        bMarkNone.Enabled = True\r\n        bMarkRigidgoal.Enabled = True\r\n        bMarkRotationgoal.Enabled = True\r\n\r\n## Rotational Goal\r\ndef BtnCallbackbMarkRotationgoal(control, event):\r\n    if bMarkRotationgoal.State == True:\r\n        bMarkCube.Enabled = False\r\n        bMarkHardCross.Enabled = False\r\n        bMarkLightCross.Enabled = False\r\n        bMarkSphere.Enabled = False\r\n        bMarkCapsule.Enabled = False\r\n        bMarkBox.Enabled = False\r\n        bMarkBone.Enabled = False\r\n        bMarkCircle.Enabled = False\r\n        bMarkSquare.Enabled = False\r\n        bMarkStick.Enabled = False\r\n        bMarkNone.Enabled = False\r\n        bMarkRigidgoal.Enabled = False\r\n        bMarkAimRollgoal.Enabled = False\r\n    else:\r\n        bMarkCube.Enabled = True\r\n        bMarkHardCross.Enabled = True\r\n        bMarkLightCross.Enabled = True\r\n        bMarkSphere.Enabled = True\r\n        bMarkCapsule.Enabled = True\r\n        bMarkBox.Enabled = True\r\n        bMarkBone.Enabled = True\r\n        bMarkCircle.Enabled = True\r\n        bMarkSquare.Enabled = True\r\n        bMarkStick.Enabled = True\r\n        bMarkNone.Enabled = True\r\n        bMarkRigidgoal.Enabled = True\r\n        bMarkRotationgoal.Enabled = True\r\n\r\n## Aim Roll Goal\r\ndef BtnCallbackbMarkAimRollgoal(control, event):\r\n    if bMarkAimRollgoal.State == True:\r\n        bMarkCube.Enabled = False\r\n        bMarkHardCross.Enabled = False\r\n        bMarkLightCross.Enabled = False\r\n        bMarkSphere.Enabled = False\r\n        bMarkCapsule.Enabled = False\r\n        bMarkBox.Enabled = False\r\n        bMarkBone.Enabled = False\r\n        bMarkCircle.Enabled = False\r\n        bMarkSquare.Enabled = False\r\n        bMarkStick.Enabled = False\r\n        bMarkNone.Enabled = False\r\n        bMarkRotationgoal.Enabled = False\r\n        bMarkRigidgoal.Enabled = False\r\n    else:\r\n        bMarkCube.Enabled = True\r\n        bMarkHardCross.Enabled = True\r\n        bMarkLightCross.Enabled = True\r\n        bMarkSphere.Enabled = True\r\n        bMarkCapsule.Enabled = True\r\n        bMarkBox.Enabled = True\r\n        bMarkBone.Enabled = True\r\n        bMarkCircle.Enabled = True\r\n        bMarkSquare.Enabled = True\r\n        bMarkStick.Enabled = True\r\n        bMarkNone.Enabled = True\r\n        bMarkRigidgoal.Enabled = True\r\n        bMarkRotationgoal.Enabled = True\r\n<\/pre>\n<p>A simpler way would be to define the &#8220;else&#8221; conditions once and then call that multiple times. I believe I could of made the above cleaner by doing the following:<\/p>\n<pre class=\"brush: python; title: ; notranslate\" title=\"\">\r\n\r\n## Instead of using this:\r\nelse:\r\n    bMarkCube.Enabled = True\r\n    bMarkHardCross.Enabled = True\r\n    bMarkLightCross.Enabled = True \r\n    bMarkSphere.Enabled = True\r\n    bMarkCapsule.Enabled = True\r\n    bMarkBox.Enabled = True\r\n    bMarkBone.Enabled = True\r\n    bMarkCircle.Enabled = True\r\n    bMarkStick.Enabled = True\r\n    bMarkNone.Enabled = True\r\n    bMarkRigidgoal.Enabled = True\r\n    bMarkRotationgoal.Enabled = True\r\n    bMarkAimRollgoal.Enabled = True\r\n\r\n## I should of done:\r\ndef lAllTrue:\r\n    bMarkCube.Enabled = True\r\n    bMarkHardCross.Enabled = True\r\n    bMarkLightCross.Enabled = True\r\n    bMarkSphere.Enabled = True\r\n    bMarkCapsule.Enabled = True\r\n    bMarkBox.Enabled = True\r\n    bMarkBone.Enabled = True\r\n    bMarkCircle.Enabled = True\r\n    bMarkStick.Enabled = True\r\n    bMarkNone.Enabled = True\r\n    bMarkRigidgoal.Enabled = True\r\n    bMarkRotationgoal.Enabled = True\r\n    bMarkAimRollgoal.Enabled = True\r\n\r\n## Then Used something like:\r\n## Cube\r\ndef BtnCallbackbMarkCube(control, event):\r\n    if bMarkCube.State == True:\r\n        bMarkHardCross.Enabled = False\r\n        bMarkLightCross.Enabled = False\r\n        bMarkSphere.Enabled = False\r\n        bMarkCapsule.Enabled = False\r\n        bMarkBox.Enabled = False\r\n        bMarkBone.Enabled = False\r\n        bMarkCircle.Enabled = False\r\n        bMarkSquare.Enabled = False\r\n        bMarkStick.Enabled = False\r\n        bMarkNone.Enabled = False\r\n        bMarkRigidgoal.Enabled = False\r\n        bMarkRotationgoal.Enabled = False\r\n        bMarkAimRollgoal.Enabled = False\r\n    else:\r\n        lAllTrue\r\n\r\n<\/pre>\n<p>This script was a quick and dirty tool that i wanted for my day to day work flow, in later version I would like features such as:<\/p>\n<ul>\n<li>User input for marker size<\/li>\n<li>User input value for number of markers to be created (with positional off set so that they are all viewable within the view port)<\/li>\n<li>On creation automatically align to currently selected object<\/li>\n<li>On Creation automatically constrain to currently selected object<\/li>\n<li>On Creation Transfer Animation data from currently selected object onto created Marker<\/li>\n<\/ul>\n<p>I will see how much time I have to investigated the above options, most are easy enough to do. For a challenge you could set up\/add the Automatic alignment, Automatic Constraint and Transfer Animation by going through my blog and reading\u00a0<a href=\"http:\/\/www.vicdebaie.com\/blog\/motionbuilders-constraint-system-and-python\/\">MotionBuilder&#8217;s Constraint system and Python<\/a>. \ud83d\ude42<\/p>\n<p>I hope this has helped.<\/p>\n<p><\/p>","protected":false},"excerpt":{"rendered":"<p>I created a Python script that would allow MotionBuilder to quickly create Markers (or nulls\/helpers depending on what package you started out with). It is a simple script that creates a floating window that will list all Marker visual types, by checking off the type you want an hitting the button it will generate the [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false}}},"categories":[4],"tags":[5,7,8],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p8pltq-62","jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":566,"url":"http:\/\/www.vicdebaie.com\/blog\/motionbuilder-python-parent-constraint-tool\/","url_meta":{"origin":374,"position":0},"title":"MotionBuilder Python Parent Constraint Tool","author":"admin","date":"June 18, 2018","format":false,"excerpt":"Here is a quick post to share a tool I created a little while back. It is designed to help to quickly create Parent Constraints between two objects as well as easily allow the user to bake that constraint down. The script can be found HERE and there are a\u2026","rel":"","context":"In &quot;Python&quot;","block_context":{"text":"Python","link":"http:\/\/www.vicdebaie.com\/blog\/category\/python\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.vicdebaie.com\/blog\/wp-content\/uploads\/2017\/02\/img_3937.jpg?fit=443%2C364&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":645,"url":"http:\/\/www.vicdebaie.com\/blog\/motionbuilder-python-a-better-way-to-create-constraints\/","url_meta":{"origin":374,"position":1},"title":"MotionBuilder Python &#8211; A Better Way To Create Constraints","author":"admin","date":"November 14, 2018","format":false,"excerpt":"Update Thanks to\u00a0kilianeczka\u00a0for the heads up, there is even an EASIER easy way to create a constraint using MotionBuilder and Python [code language=\"python\"] import pyfbsdk as fb fb.FBConstraintManager().TypeCreateConstraint('Parent\/Child') [\/code] This omits the need to find the number of constraints and then search all the constraints for one that has the\u2026","rel":"","context":"In &quot;Python&quot;","block_context":{"text":"Python","link":"http:\/\/www.vicdebaie.com\/blog\/category\/python\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.vicdebaie.com\/blog\/wp-content\/uploads\/2018\/11\/Think^_Is_There_a_Better_Way_to_Do_it^_-_NARA_-_534256.jpg?fit=400%2C204&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":83,"url":"http:\/\/www.vicdebaie.com\/blog\/using-python-to-create-a-layer-on-the-current-selected-take-in-motionbuilder\/","url_meta":{"origin":374,"position":2},"title":"Using Python to Create a layer on the Current Selected Take in MotionBuilder.\u00a0","author":"admin","date":"February 9, 2017","format":false,"excerpt":"In MotionBuilder using animation layers are great for edits, blending, additives and in general adding quality passes to your animations. So below I'm going to demo how I learned to add layers\u00a0using Python. To create an Animation Layer on the Current Take script: [code language=\"python\"] from pyfbsdk import * lSystem\u2026","rel":"","context":"In &quot;Python&quot;","block_context":{"text":"Python","link":"http:\/\/www.vicdebaie.com\/blog\/category\/python\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":175,"url":"http:\/\/www.vicdebaie.com\/blog\/%ef%bb%bfplotting-selected-properties-using-motionbuilders-python\/","url_meta":{"origin":374,"position":3},"title":"\ufeffPlotting selected properties using MotionBuilder&#8217;s Python.","author":"admin","date":"February 17, 2017","format":false,"excerpt":"I ran\u00a0the script I created in \"Animating and setting keys with MotionBuilder's Python Editor\"\u00a0and decided that I would use the scene it creates\u00a0to learn how to plot on selected properties in MotionBuilder's Python Editor. Update: I found a work around for the bug and it is covered in my \"lock-and-plot-selected-properties-using-motionbuilders-python\"\u2026","rel":"","context":"In &quot;Python&quot;","block_context":{"text":"Python","link":"http:\/\/www.vicdebaie.com\/blog\/category\/python\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":711,"url":"http:\/\/www.vicdebaie.com\/blog\/using-motionbuilder-python-to-cast-real-time-shadows\/","url_meta":{"origin":374,"position":4},"title":"Using MotionBuilder Python To Cast Real-Time Shadows","author":"admin","date":"September 18, 2019","format":false,"excerpt":"Using Python To Quickly Add A Real Time Shadow To Your MotionBuilder Scene.","rel":"","context":"In &quot;Python&quot;","block_context":{"text":"Python","link":"http:\/\/www.vicdebaie.com\/blog\/category\/python\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.vicdebaie.com\/blog\/wp-content\/uploads\/2019\/09\/ShadowCube.png?fit=1157%2C526&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.vicdebaie.com\/blog\/wp-content\/uploads\/2019\/09\/ShadowCube.png?fit=1157%2C526&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.vicdebaie.com\/blog\/wp-content\/uploads\/2019\/09\/ShadowCube.png?fit=1157%2C526&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.vicdebaie.com\/blog\/wp-content\/uploads\/2019\/09\/ShadowCube.png?fit=1157%2C526&resize=1050%2C600 3x"},"classes":[]},{"id":747,"url":"http:\/\/www.vicdebaie.com\/blog\/motionbuilder-python-mirror-character-animation-through-story-mode\/","url_meta":{"origin":374,"position":5},"title":"MotionBuilder Python &#8211; Mirror Character Animation Through Story Mode","author":"admin","date":"November 21, 2019","format":false,"excerpt":"A quick script that will mirror animations via Story Mode.","rel":"","context":"In &quot;Python&quot;","block_context":{"text":"Python","link":"http:\/\/www.vicdebaie.com\/blog\/category\/python\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.vicdebaie.com\/blog\/wp-content\/uploads\/2019\/11\/Mirror-Cap.jpg?fit=960%2C640&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.vicdebaie.com\/blog\/wp-content\/uploads\/2019\/11\/Mirror-Cap.jpg?fit=960%2C640&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.vicdebaie.com\/blog\/wp-content\/uploads\/2019\/11\/Mirror-Cap.jpg?fit=960%2C640&resize=700%2C400 2x"},"classes":[]}],"_links":{"self":[{"href":"http:\/\/www.vicdebaie.com\/blog\/wp-json\/wp\/v2\/posts\/374"}],"collection":[{"href":"http:\/\/www.vicdebaie.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.vicdebaie.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.vicdebaie.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.vicdebaie.com\/blog\/wp-json\/wp\/v2\/comments?post=374"}],"version-history":[{"count":9,"href":"http:\/\/www.vicdebaie.com\/blog\/wp-json\/wp\/v2\/posts\/374\/revisions"}],"predecessor-version":[{"id":504,"href":"http:\/\/www.vicdebaie.com\/blog\/wp-json\/wp\/v2\/posts\/374\/revisions\/504"}],"wp:attachment":[{"href":"http:\/\/www.vicdebaie.com\/blog\/wp-json\/wp\/v2\/media?parent=374"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.vicdebaie.com\/blog\/wp-json\/wp\/v2\/categories?post=374"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.vicdebaie.com\/blog\/wp-json\/wp\/v2\/tags?post=374"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}