當前位置:
首頁 > 最新 > 這是講maxscript腳本語言的,慎入。圖文教程674

這是講maxscript腳本語言的,慎入。圖文教程674

【每日一歌】

每天發一首歌曲,已經持續一段時間了。可能很多同學因為流量的問題都沒有聽,但是我想和大家說的是,這些音樂真的很好聽,而且蠻有趣的。如果你身邊有WiFi的話,建議大家欣賞一下!

本來是查找一首名為《1965》的好聽歌,結果QQ音樂沒有。隨意翻閱了一下,聽到這首還不錯,分享給大家。

【大胖說段子】

昨天下班的時候,總務的美女跟我一起去我家拿一個工作u盤,她身上好聞的味道熏得我心猿意馬的,迷迷糊糊的把一個私人珍藏u盤(咳咳,你懂的)給了她。

今天換回來的時候,我看著她意味深長的眼神,真特么想找個地縫鑽進去……

大胖感悟:

意味深長的眼神?那說明看過了。還過來還你,說明。。。。你想找什麼縫鑽,我沒聽清?

【正文】

昨天的圖文,隨機空洞的部分是手動調節的。我昨天說了,那個部分其實用腳本寫也就一句話的事,但事實上我搞錯了,是三句話。

哈哈哈,我幽默吧。今天就來說一下,用腳本怎麼解決這個問題。

首先創建一個平面

我們要做的是條狀孔洞,所以先要做好豎條的分割。

轉成poly,選擇豎向的邊。

切角斷開:

現在添加橫向上的線:

現在我們要解決的問題,就是需要腳本來解決的了。我們要讓選中的橫線,進行上下位置的隨機移動。

那麼我們需要解決的是兩個問題:

一,怎麼讓電腦識別我們選中的這些線

二,怎麼移動poly物體的子層級這些元素(點、線、開放邊、多邊形、元素)

我們按F11,打開偵聽器,看看電腦是怎麼記錄我們現在選中的這些邊的:

因為我是一排一排選的,所以偵聽器里會有三次選擇的記錄。

最後一排,我畫紅線的那排是最終的。

看不清是吧,我們拷貝出來,放大給大家看一下:

直譯過來是:

選中的是編輯中的多邊形物體,獲得的是它的第605-754條邊。

好了,邊已經獲得了,要怎樣進行隨機移動呢?

我們回到場景中,隨便移動一條邊,看看偵聽器是如何記錄的。

可以看到,我們的一條邊已經移動了,在偵聽器中也出現了一條宏記錄是吧。

還是看不清,放大了給大家看一下:

直譯過來:

移動,選擇的邊,沿著Y軸移動72.8909個距離。

好,選邊的語句和移動的語句我們都得到了,測試一下。

我們將選中的第605到754這些邊,進行一個隨機上下一百的移動。

運行腳本,看一下效果:

你會看到,所有的邊都隨機移動的相同的位置。而不是我們想像的,隨機上下移動。

原因是什麼呢?我們寫的就是一次性的語句,而不是一個循環語句。

那麼循環語句要怎麼寫呢?

經過視頻的學習,我研究出來一種比較笨的寫法。

來看一下:

這裡面需要循環的就是從605到754的邊,那麼我們把605-754這個值付給一個變數 i ,這樣我們在依次循環調用 i 的值就好了。

測試一下效果:

運行腳本後,確實得到了隨機移動的邊。

可以說我們的需求實現了。但是這個需求實現的。。。

如果我們想要隔一個選擇一個,或者隨機選擇的一些邊怎麼辦呢?

所以,昨晚雖然已經通過這樣的寫法,解決了這個問題。但是這並不是最終的解決方案啊。

所以昨晚我分別給我的兩位良師益友留了言(利斧的創造者陳雲龍和A_C_E系列腳本的作者Ace)

在他們的指導下,我終於寫出了隨機移動邊的最終寫法:

這個 polyop.GetEdgeSelection $ as array 的語句直譯過來是:

獲取選擇的多邊形物體的選中的那些邊的ID編號轉換成數組,並賦予給 i 作為值。

這樣無論你怎麼選擇,有沒有規律都沒有問題了。

你只要選上了這條邊,這個邊的ID編號就被賦予 i 做值用了。

運行腳本測試:

可以看到,得到了同樣的隨機移動效果。

但是新的問題出現了,我們隨機後,就沒辦法橫向選擇這些邊了,能不能快速的到原來隨機移動前的邊的選擇呢?

這個我們要退回去,先做好一個邊的預存儲。

選中邊,點開石墨工具,進入選擇的菜單欄:

點擊圖中框選的兩個預存儲,這些本來是做面的加減法的,在這裡我們臨時作為預存儲使用。現在我們選中的邊,就存到石墨工具里了。

再次運行腳本:

我們又一次得到了全新的隨機移動邊,但是發現只有右上角的邊處於選擇狀態。

這是點擊石墨工具裡面選擇內容的1+2

你會發現,剛才的那些線又處於選中狀態了。

下午下班時,還有學員問,這個邊要怎麼快速選擇呢。這回自己看吧。

好了,接下來的步驟就簡單了,我們快點說:

切角,斷開

加殼:

問題完美解決!

延伸思考:

我們現在做的是隨機在平面上移動,靠著世界坐標系就好。如果是在曲面上呢?要怎麼寫?

先來看看我做的最終效果吧:

其實就是將移動限定到邊上,poly是提供這個功能的,關鍵是怎麼寫:

其實偵聽器上有明確的記錄。

看不清,我給你放大一下。直接寫在腳本里了。

直譯過來:

約束類型為1

(0是沒有約束,1是約束到邊,2是約束到面,3是約束到法線)

好了,逼裝完了。不知道大家學會了沒有。

很多學員問我,老師寫好的腳本那麼多,我們學習腳本有啥用?

我想這個例子就是很好的回答了這個問題。

遇到如此具體的需求,你敢保證一定有合適你的腳本嗎?就算有,你真的找的到嗎?

就算找到了你敢保證和你的需求百分百一致嗎?都不敢保證。

而你只需要學習一些簡單的腳本知識,就可以解決這些非常具體的問題。不好嗎?

長按下圖選擇【識別圖中的二維碼】關注大胖開心課堂


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 大胖開心課堂 的精彩文章:

神奇的程序貼圖紋理篇:有了節點鏈接的調節方式,這樣的紋理不算難。圖文教程664
不定期異形建築:不要做太多奇奇怪怪的建築,比如這隻鯨魚圖文教程659
遲來的教程,傾斜的三角結構。圖文教程165
不定期異形建築:費時間就在中間的那個孔洞上圖文教程673
為了把這個門做好,我開始講解UVlayout了

TAG:大胖開心課堂 |