天天看點

3dsmax開發的快速入門

最近周圍很多朋友開始接觸3dsmax的相關開發,正好我以前剛入行的那會有過一些3dsmax相關的經驗是以在這分享給大家希望對大家有所幫助

Pymxs or MaxPlus?

很多剛接觸3dsmax相關開發的朋友會經常會疑惑我應該學

pymxs

還是

MaxPlus

.

我建議是學

pymxs

  • pymxs是一個對maxscript對象的動态綁定, 類似于

    Maya

    cmds

    ,對于有maxscript基礎的可以很容易上手
  • 3dsmax-2021以及以後的版本已經遺棄了

    MaxPlus

    https://forums.autodesk.com/t5/3ds-max-programming/maxplus-is-no-longer-available-in-2021/td-p/9407304

打開 Macro Recorder

3dsmax開發的快速入門

這樣我們每一步的操作都能在

Maxscript Listener

中顯示了

打開腳本編輯器

3dsmax開發的快速入門

快速開始maxscript

下面是maxscript的簡單用例

print "Hello Maxscript"
           

複制

再來一個建立一個

Box

并且存到一個叫box的變量中,我們未來調用

box

就等于調用了

Box()

這個對象

box = Box()
           

複制

列印目前box的名字

box = Box()
print box.name
           

複制

修改目前box的名字

box = Box()
print box.name
box.name = "renamed box"
print box.name
           

複制

看完上面的幾個簡單的例子是不是發現maxscript其實挺簡單?感覺就像在寫python一樣.

快速開始Pymxs

在編輯器中切換語言到python

3dsmax開發的快速入門

同樣我們先建立一個

box

from pymxs import runtime as mxs
box = mxs.Box()
           

複制

列印目前box的名字

from pymxs import runtime as mxs
box = mxs.Box()
print box.name
           

複制

修改目前box的名字

from pymxs import runtime as mxs
box = mxs.Box()
print box.name
box.name = "renamed box"
print box.name
           

複制

maxscript和pymxs的不同

從上面的例子看出來

maxscript

pymxs

的寫法很十分相近,基本都是需要在前面添加個

mxs.

就可以了

有些maxscript特殊的文法我們需要稍微轉換一下才行

請看下面的輸出FBX的代碼片段行

請看下面的輸出FBX的代碼片段

FBXExporterSetParam "Animmation" true
FBXExporterSetParam "BakeFrameStart" 0
FBXExporterSetParam "BakeFrameEnd" 100
FBXExporterSetParam "BakeResampleAnimation" true
FBXExporterSetParam "Shape" true
exportFile "your/output/file.fbx" #noPrompt using:#FBXEXP selectedOnly:true
           

複制

轉換成python

from pymxs import runtime as mxs
mxs.FBXExporterSetParam("Animation", True)
mxs.FBXExporterSetParam("BakeAnimation", True)
mxs.FBXExporterSetParam("BakeFrameStart", 1)
mxs.FBXExporterSetParam("BakeFrameEnd", 100)
mxs.FBXExporterSetParam("BakeResampleAnimation", True)
mxs.exportFile(
    "your/output/file.fbx", mxs.Name("noPrompt"), 
    using=mxs.Name("FBXEXP"), selectedOnly=True,
    )
           

複制

在3dsmax 2021之前的pymxs的文檔很少我們基本可以直接看maxscript的文檔去開發即可

下面是我為大家找的一些有用的參考:

  • http://help.autodesk.com/view/MAXDEV/2021/ENU/?guid=Max_Python_API_using_pymxs_html
  • https://github.com/ADN-DevTech/3dsMax-Python-HowTos