天天看點

MAXScript入門

Part1前言

3ds max是目前國内動畫行業使用最普遍的、功能強大的三維動畫設計軟體,它除了具有互動操作方式外,還提供了程式設計開發工具——MAXScript腳本語言。MAXScript是3ds max衆多插件中最有特色的一個。可以這樣說,MAXScript把Max幾乎所有的功能重寫一遍(少數功能除外),而且能實作無法用滑鼠鍵盤實作的操作。

MAXScript入門

Part2MaxScript偵聽器

初次學習MaxScript,建議先從監聽器開始學習。打開界面如下:

MAXScript入門

然後啟用宏錄制器

MAXScript入門

之後我們通過界面的操作,就會自動被捕捉并顯示,我們可以這樣學習文法。例如我們建立一個球體,會在界面輸出如下指令

Sphere radius:24.7171 pos:[-8.16896,15.7796,0] isSelected:on      

我們在下面的腳本區域輸入同樣的指令,就會自動建立一個球體。

MAXScript入門

Part3建立腳本

當我們遇到複雜腳本的時候,偵聽器單行執行往往無法滿足需求,這個時候,我們可以建立一個腳本,點選計算所有,即可執行腳本

MAXScript入門

此時,監聽器還是需要打開,他可以監聽腳本執行的異常情況,并給出提示。示例如下:

MAXScript入門

Part4基本文法

1擷取對象

通過$可以擷取目前被選中的對象

$      

通過$+對象名稱 可以擷取指定的對象

$sphere002      

2添加注釋

有兩種添加注釋的方式,如下,分别為單行和多行的注釋。

#多行注釋
/*

*/

#單行注釋
--      

3定義函數

通過function關鍵字可以定義函數,參數直接跟在後面即可。調用方法的話,就是函數名然後後面跟着參數

#定義函數
function createSpheres count growth = 
(
  for i in 1 to count do
   Sphere radius:(i*growth) position:[i^2*growth,0,0]
)
#調用函數
createSpheres 25 10      

4定義數組

#定義數組并輸出
a = #(1,3,5,7,9)
for i in a do 
 print(i)
#輸出
1
3
5
7
9
#數組通路,從下标1開始
a[1]
#輸出
1

#通過collect關鍵字可以動态生成一個數組
a = for i in 1 to 5 collect i
#輸出
#(1, 2, 3, 4, 5)      

5循環

# 步長為5的循環
for t in 0 to 10 by 5 do
 print(t)
# 輸出
0
5
10      

6case轉換

case 有兩種判斷方法,分别如下

# 在後面判斷
exper =1
case of
(
 (exper  == 1):
  Sphere radius:20
 (exper  == 2):
  Sphere radius:40
)
# 在前面判斷
exper =2
case exper of
(
 1:
  Sphere radius:20
 2:
  Sphere radius:40
)      

7動畫

可以設定不同位置的關鍵幀,進而實作動畫。下面示例為0-100幀的小球沿着x軸移動的動畫。

Sphere radius:20  segs:30  pos:[0,0,0] name:"ball"
animate on
(

 at time 0 $ball.pos = [-100,0,0]
 at time 100 $ball.pos = [100,0,0]
)      

Part5總結

本文主要簡單總結了MaxScript腳本入門使用。