假設一個情況. 我們要在一個區域建立一個柵欄. 我們建立了20個box當作柵欄, 但是看起來都一樣, 這時可以用MAXScript來做一些變化
亂數函式 random
打開listener,輸入 random 1.0 35.0
將會產生一個數值介於浮點數 1.0 ~ 35.0 之間.
若要求得一個整數值介於 1 ~ 6 , 輸入 diceThrow = random 1 6
diceThrow是自訂變數, dice(骰子)值是1~6
現在我們可以取用diceThrow.
用手動在座標地面上建立20個box, 若用複製記得選Copy方式, 長寬為10x10, 高度為100, 間距150單位. 然後選取所有box
for obj in $ do ( -- obj變數依序儲存所選物件$
randHeight = random 90.0 110.0 -- 變數randHeight值介於90.0~110.0之間
obj.height = randHeight -- 值設定給物件的高度(height)
)
Position(位置)
建立一顆球,並選取球.
可以用 .position 或 .pos來存取.
如果你輸入 $.pos 會輸出 Point 3 (3維陣列)的資料型態, 包含了X,Y,Z值.
如果指定一個變數
ourPoint3variable = [5,4,1]
然後再輸入
ourPoint3variable.y
會輸出 4 , 是Point3 資料型態中的y值.
3D物件位置通常需要xyz, 當作其中的值, 這是非常有用的資料型態
Moving Objects(移動物件)
現在設定物件的位置,輸入
$.pos = [0,0,0]
將球移到世界座標原點, 但是要如何才能做相對位置的移動呢? 可以這樣輸入.
move $ [3,2,0]
這是移動所選物件球 $ 的相對距離 [3,2,0]
移動完後,輸入
$.pos
可以看到現在位置是[6,4,0]
Randomizing Position (亂數調整位置)
選取所有物件, 輸入程式碼後, 圈選程式碼, 按下小Enter執行.
for obj in $ do (
randX = random -5.0 5.0 -- randX變數儲存-5~5的值
randY = random -5.0 5.0 -- randY變數儲存-5~5的值
move obj [randX,randY,0] --亂數位移obj
)
結論
現在柵欄的高度與位置有一些變化了, 接下來會做方向的亂數調整.
randX = random -5.0 5.0 -- randX變數儲存-5~5的值
randY = random -5.0 5.0 -- randY變數儲存-5~5的值
move obj [randX,randY,0] --亂數位移obj
)
結論
現在柵欄的高度與位置有一些變化了, 接下來會做方向的亂數調整.
MAX Script 教學-4
沒有留言:
張貼留言