如果你是Python或Maxscript的新手,你現在可以跟著這篇文章開始做一些代碼了,本文將讓我們從非常基本的東西開始學習。
如何在3dmax中獲取選定的節點并打印出它們的名稱?所有場景對象如何?我們直接看代碼:
import MaxPlusdef getselectednodenames():for node in MaxPlus.SelectionManager.Nodes:print node.Namedef getscenenodenames():for node in MaxPlus.Core.GetRootNode().Children:print node.Nameif __name__ == '__main__':getselectednodenames()getscenenodenames()
看起來很容易,現在,讓我們看一看如何將修改器添加到選擇中:
import MaxPlus
import MaxPlusdef addmodifier(nodes):for node in nodes:mod = MaxPlus.Factory.CreateObjectModifier(MaxPlus.ClassIds.Noisemodifier)for param in mod.ParameterBlock:print param.Namemod.ParameterBlock.seed.Value = 12345node.AddModifier(mod)if __name__ == '__main__':addmodifier(MaxPlus.SelectionManager.Nodes)
請一定要查看MaxPlus.py中ClassId的類定義,在那里你可以找到當前可用于python的所有修改器(以及其他類)的名稱。此外,這里我們使用的是CreateObjectModifier,但如果要添加WSM修改器,則需要使用CreateWorldSpaceModifier。
另外,訪問參數仍然不是那么容易,因此我包含了ParameterBlock的打印輸出,修改器的所有參數都存儲在這里。要訪問這些參數,更改它們,你需要使用“modifier.parametername.Value”,注意Value中的大寫字母,應該就是它,現在您只需要使用AddModifier()將修改器添加到對象中。
在3dMax中執行Python腳本的方法:
點擊3dMax主菜單->腳本->新建腳本,將Python腳本復制粘貼到腳本編輯器中,然后選擇“語言”為“Python”,同時按下“Ctrl+e”鍵執行Python腳本。