美文网首页工具癖
MotionBuilder Python Script14 -

MotionBuilder Python Script14 -

作者: Houdinini | 来源:发表于2019-07-31 08:59 被阅读9次
miaomiaomiao~
昨天把猴弄好了,这昨天准备搬家,却又忘了写文章。。

今天我们来看一下MotionBuilder中的 Editor Connection!

一、PropertyConnectioneEditor

衔接编辑器,进行属性操作

先来看一下UI效果


UI_FBMConnectionEditor.gif

这里展示了选择和remove,以及Remove All,来看一下代码

#!/usr/bin/env python
# -*- coding: utf-8 -*-

# Copyright 2009 Autodesk, Inc.  All rights reserved.
# Use of this software is subject to the terms of the Autodesk license agreement
# provided at the time of installation or download, or which otherwise accompanies
# this software in either electronic or hard copy form.
#
# Script description:
# Shows how to use a FBPropertyConnectionEditor to edit FBPropertyListObject of an object
#
# Topic: FBPropertyConnectionEditor, FBTool
#


from pyfbsdk import *
from pyfbsdk_additions import *


def PopulateLayout(mainLyt):
    x = FBAddRegionParam(0, FBAttachType.kFBAttachLeft, "")
    y = FBAddRegionParam(0, FBAttachType.kFBAttachTop, "")
    w = FBAddRegionParam(0, FBAttachType.kFBAttachRight, "")
    h = FBAddRegionParam(0, FBAttachType.kFBAttachBottom, "")
    global lConnEditor
    lConnEditor = FBPropertyConnectionEditor()
    mainLyt.AddRegion("main", "main", x, y, w, h)
    mainLyt.SetControl("main", lConnEditor)

    # Create Dummy cube that you will be able to set as Camera "Interest": Look at object
    cube = FBModelCube("mycube")

    # Create Camera
    camera = FBCamera("mycamera")
    camera.Interest = cube

    # IMPORTANT: a FBPropertyConnectionEditor allow edition of a FBPropertyListObject in an object.
    # A FBPropertyListObject is anywhere in the UI where you can specify another object as a "source".
    # A good example is the "Interest" of a camera (see in the UI of a camera object).

    # PYTHON IMPLEMENTATION NOTE:
    # you CANNOT make lConnEditor.Property = camera.Interest
    # This doesn't work because camera.Interest doesn't return the FBPropertyListObject, it returns
    # the object referred by the property (in this case it's cube).
    # To be able to get the PropertyListObject you need to use the .PropertyList.Find idiom.
    # The name of this property is "Look At Object". You can see this name if you look in the Properties tab
    # in the UI when the camera is selected.
    lConnEditor.Property = camera.PropertyList.Find("Look At Object")


def CreateTool():
    # Tool creation will serve as the hub for all other controls
    t = FBCreateUniqueTool("PropertyConnectionEditor")
    t.StartSizeX = 300
    t.StartSizeY = 300
    PopulateLayout(t)
    ShowTool(t)


tool = CreateTool()

这里注释非常详细,decomposition and refactor!

二、结语

之后还是要即使自我督促, 不能忘了更新!

继续!

共勉!

相关文章

网友评论

    本文标题:MotionBuilder Python Script14 -

    本文链接:https://www.haomeiwen.com/subject/qqdorctx.html