于舒婷, 謝伙生
(1. 福州大學數學與計算機科學學院,福建 福州 350116;2. 福建第二輕工業學校,福建 福州 350007)
基于MAXScript的立體構成插件研究及實現
于舒婷1,2, 謝伙生1
(1. 福州大學數學與計算機科學學院,福建 福州 350116;2. 福建第二輕工業學校,福建 福州 350007)
立體構成課程是藝術設計學科基礎課程三大構成之一?;谠撜n程教學常面臨取材難、加工難、學生三維意識薄弱等問題,采用主流三維軟件3ds Max和其自帶的腳本語言MAXScript對立體構成教學手段加以改進。通過分析并選取立體構成作品常用的構成要素,運用MAXScript腳本語言設計出一款能夠生成多種類型數字化立體構成造型的插件。利用MAXScript的批處理能力以及界面編輯功能使立體構成教學更便捷、直觀。本插件已應用于福州軟件職業技術學院數字媒體設計系以及福建第二輕工業學校的立體構成課程教學中,受到師生們的普遍好評。采用MAXScript輔助立體構成教學,為立體構成教學的數字化提供一種行之有效的新方法。
立體構成;3ds Max;MAXScript;數字化教學;數字藝術
立體構成是藝術設計學科的重要基礎課程,與平面構成、色彩構成被稱為藝術設計學科的三大構成。從 20世紀初設立至今,已經歷了近一個世紀的發展,其是三大構成中唯一一門研究三維造型構成法則和形式美的課程。傳統的立體構成課程主要以學生手工制作為學習手段,材料選擇的局限性和加工制作的局限性日益顯現,學生的三維意識薄弱,大大影響了立體構成課程的訓練效果。
近幾年,也有一些研究者開始嘗試采用現今應用最廣泛的三維制作軟件3ds Max推進立體構成數字化教學進程。3ds Max軟件的功能雖然強大,但對立體構成造型的針對性不強,眾多命令讓初學軟件的師生掌握起來有一定難度,對成百上千需手動調整的造型單體的規律變化更是難以實現。
本文采用3ds Max軟件及其腳本語言MAXScript編寫了一款立體構成插件。其共分成5個功能模塊,使用者完成全部模塊的設定,即可生成一個數字化立體構成模型。5個功能模塊力求屏蔽3ds Max軟件對操作技術的要求,增強對數字化立體構成造型的針對性,使沒有3ds Max軟件基礎的師生,將精力更多集中于造型的創作上,而非技術難題的解決上。師生們可以在3ds Max中多角度觀察立體構成作品,挑選最優的模型和角度渲染輸出,或根據該數字化模型,完成立體構成實物作品的制作。本文方法彌補了傳統立體構成課程和立體構成數字化教學的一些不足,實現讓立體構成課程更加生動、教學效果更加顯著的目標。
本文插件在福州軟件職業技術學院和福建第二輕工業學校的立體構成課程中試用,師生們受益匪淺,普遍反映本插件能夠較好地表現出立體構成造型所追求的形式美學法則,操作上不復雜,是一款容易上手、易出效果、能夠讓立體構成教學更加生動直觀的插件。
目前,國內也有部分研究者對立體構成的數字化教學手段進行研究,大部分研究集中于三維制作軟件3ds Max對立體構成造型進行模擬,實現立體構成數字化教學。例如北京工業大學的田培[1]所做的數字化立體構成研究,對將3ds Max軟件引入立體構成教學之中做了探討,詳細闡述了數字化和立體構成的結合點,認為“計算機三維建模及渲染技術使學生在觀察物體形態時,視點具有流動性,它能表現出形體各個側面的細節,同時也能在空間的視點中對形態進行構建和修改,這樣對問題的思考和評價就能從接近現實的三維空間考慮”。
對于MAXScript的研究,國內外則存在較大差距,國外對MAXScript的研究較多,利用其制作的插件數量大、種類多、功能全。國外的插件占有量為 86.2%。大型插件、常用插件全部來自國外[2]。而國內對MAXScript腳本插件的研究還比較少,可供學習的資料非常有限,插件的功能也相對較單一。目前,我國已經有一些研究者對3ds Max和其自帶的腳本語言MAXScript在教學上的應用、在動漫、仿真軟件、家具定制系統中的應用,做了一定的研究。陜西師范大學的劉紅霞[3]對3ds Max和其自帶的腳本語言 MAXScript在教學資源中的應用及適用范圍做了詳細闡述。合肥工業大學材料科學與工程學院對使用3ds Max研制注塑模動態演示多媒體教學系統的技術做了一定研究,并使用MAXScript腳本語言開發動畫管理器插件,用于播放注塑模型多媒體教學動畫。
目前在許多大中專院校中,利用3ds Max軟件進行藝術設計類課程的輔助教學的有室內設計、場景設計、角色設計等藝術設計專業課[4]。但是將這一工具應用于輔助藝術設計基礎課教學的案例卻為數不多,而利用MAXScript進行藝術設計基礎課教學的案例則更少。
立體構成這門學科,是要對各種“三維形態”的共性問題加以研究,探索立體形態各元素之間的構成法則,依照理性和美的法則對立體形態和空間形態進行設計[5]。通過對立體構成課程中的各構成要素進行整理歸納,可將其構成要素分為:形態要素、形式要素、材料要素、空間要素。形態要素主要指造型的基本要素,如:點、線、面、體、空間等。形式要素主要指造型的構成方法,如為造型提供優美的組合形式等。材料要素主要指造型所用到的材料,如:鐵線、小木塊、橡皮泥等,其涵蓋了材料的色彩、肌理和材質??臻g要素主要指造型所在的空間環境,只有空間的存在,才能讓造型體現出立體感。
另外,3ds Max中三維效果圖的制作主要遵循的流程如下:先建模,再對模型賦予一定的材質,然后調整其所在環境,包括燈光以及所在空間等,最后完成相應渲染器的設置并渲染輸出。
本插件設計思路主要以真實立體構成制作的流程并結合 3ds Max制作三維效果圖的步驟為依據,將立體構成插件分成“形態要素”、“形式要素”、“韻律變化”、“材料要素”、“空間要素和渲染” 5個功能模塊(如圖1所示)。

圖1 立體構成插件功能模塊架構設計
根據以上構架,需將本插件設計成浮動的應用程序界面,寬和高的尺寸類似3ds Max的材質編輯器,并按照不同功能模塊建立相應卷簾窗。其主界面的截圖如圖2所示。

圖2 立體構成插件主界面設計
“形態要素”模擬真實立體構成制作時選定一定數量的素材。其具有形態要素類型、形態要素數量、形態要素尺寸、形態要素長度設定等功能。在“形態要素數量”、“形態要素尺寸”、“形態要素長度”采用“微調器(spinner)”設計,在其中可以輸入相應的數值,如“形態要素類型” 包含了立體構成中常用的塊體、線體、面片等基本造型,又如:小球體、小方塊、線材、面材等,采用“下拉列表(dropdownList)”設計(如圖3所示)。

圖3 形態要素界面設計
“形式要素” 采用“按鈕(button)”設計,將許多優美的數學曲線內置于按鈕之中,數字化立體構成素材按一定的數學曲線排列,使立體構成作品更具數理之美(見圖4),其界面設計如圖5所示。

圖4 具有數理之美的數字化立體構成作品
“韻律變化”可以設定立體構成作品完成規律性變化,如:彎曲、旋轉、錐化等功能。漸變,如:半徑漸變、長度漸變;隨機變化,如:噪波、扭轉和彎曲等功能。參數的調整采用“滑塊(slider)”和“按鈕(button)”相結合的方式設計。使用者需要先使用滑塊設定好變化的參數,再點擊按鈕完成相應變化,其界面設計如圖6所示。

圖5 形式要素界面設計

圖6 韻律變化界面設計
“材料要素”模塊在按鈕中內置了多種實物立體構成作品的常用材質,如:卡紙、木條等;除此以外,還內置了立體構成作品中常見,但在教學中學生取材和加工較難的材質,如:金屬、陶瓷、玻璃等。并通過建立“顏色拾取器(colorPicker)”,讓使用者能夠調節物體表面的顏色,為其既屏蔽了眾多復雜的材質設定參數,又保留了一定手動調整的自由度。為了配合渲染時所采用的VRay渲染器,“材料要素”內的材質采用VRay標準材質,其中諸如“木質”中的木頭紋理等主要采用相應的程序貼圖實現。VRay渲染器是現今廣泛應用于三維效果圖渲染的插件,其渲染效果比3ds Max默認的掃描線渲染器逼真,且渲染速度大大優于 Brazil等真實感渲染器。“材料要素”模塊界面設計如圖7所示。
“空間要素和渲染”包含了對空間要素設定,如:渲染背景和平面的設定、燈光設定,以及渲染前的專業參數設定,如:VRay渲染設定。此類設定,將3ds Max中眾多復雜而專業的參數集成于相應的按鈕之上,讓使用者能夠一鍵完成眾多相關參數設定,讓對3ds Max不太熟悉甚至不會的使用者,能夠快速掌握本插件的使用方法。其界面設計如圖8所示。

圖8 空間要素和渲染界面設計
3.1插件實現的相關腳本說明
MAXScript是面向對象的程序語言,3ds Max中的大多數功能能夠通過MAXScript編程實現。以下就對本插件中應用的重要語句進行說明。
(1) 建立主浮動卷簾窗的語句:
marine_函數名=newrolloutfloater “主卷簾窗名”…
(2) 建立子卷簾窗的函數語句:
rollout 函數名 “卷簾窗名稱” width:height:
(3) 建立物體的語句:
以建立膠囊體capsule()為例,如果要讓膠囊體產生變化,則可以在 capsule后加上相應參數,例如半徑、高度、位置等,具體格式如下:
capsule radius:height:pos:[,] …
(4) 建立微調器函數的語句:
Spinner 函數名 “微調器名” pos:[,] width:height:range:[, ,]
(5) 建立按鈕的函數語句:
button 函數名“按鈕名稱” pos:[,] width:height:
(6) 建立按鈕按下事件語句:
on 按鈕名 pressd do (函數體)
(7) 建立下拉列表的語句:
dropdownList 函數名 “下拉列表名”
pos:[,] width: height: items:#(選擇項…)
(8) 材質賦予語句:
meditMaterials[] =
(9) 顏色拾取語句:
colorPicker函數名 "顏色拾取器名稱" pos:[,] width: height: color:(color)[6]
3.2插件主界面的實現
根據以上對主浮動卷簾窗函數的定義方法,將本插件的主浮動卷簾窗定義如下:marine_主浮動卷簾窗函數名=newrolloutfloater“立體構成插件”width:400 height:600。在主卷簾窗內,根據制作思路所提出的架構圖,將5大功能模塊用5個子卷簾窗表現出來,子卷簾窗采用rollout控件實現,其實現的主要代碼和格式如下:
rollout 函數名“子卷簾窗名稱” width: height:
( … )
addrollout函數名marine_主浮動卷簾窗函數名rolledup:true
3.3插件各功能模塊的實現
內部子卷簾窗中的界面設定,采用的是Visual MAXScript編輯器結合直接輸入代碼的方式完成。Visual MAXScript是3ds Max腳本語言的強大接口,使用Visual MAXScript可以快速、直觀地創建腳本的UI元素和布局。鑒于其可見性,開發者可以更加直觀地使用MAXScript編輯界面,節約較多開發時間。本插件先使用Visual MAXScript編輯界面的整體外觀,再使用直接編寫代碼的方法對代碼的冗余部分手動調整,這樣即節約了界面編輯的時間,又保證了代碼編寫的靈活性。
3.3.1“形態要素”功能模塊實現
(1) 以“形態要素數量”為例,其實現代碼為:
spinner sucaishuliang “形態要素數量” pos:[h1,h2] width:uheight:vrange:[k1,k2,] type:#integer scale:1 type:#integer scale:1
其含義為建立一個名為“形態要素數量”的微調器,它的位置為[h1,h2],寬度為u px,高度為v px,取值范圍為在k1–k2之間的整數,每次變化的值為1。
(2) “形態要素類型”實現代碼為:
dropdownList sucaileixing “形態要素類型” pos:[ ] width: height: items:#(“小方塊”,“小球體”,“球形結”,“小異面體1”,…)
采用if選擇語句,在下拉列表內建立相應幾何體,以“直線1”為例,其實現代碼為:
on sucaileixing selected sel do
(ifsucaileixing.selected==“直線 1” then for i=1 to sucaishuliang.value do Capsule radius:sucaichicun.value height:xiandechangdu.value pos:[(random –m m ),(random–m m),(random –m m)]…)[7-13]
其含義為當“形態要素類型”中選擇“直線 1”選項,則生成相應素材數量,半徑為“形態要素尺寸”大小的直線材,其位置在x,y,z軸上的–m至m之間。
通過這些設定,能夠生成指定數量的數字化立體構成的基本素材。以生成數量為700的直線材為例,生成后結果如圖9所示。
3.3.2“形式要素”功能模塊實現
以“四連正切”為例,其排列方式代碼為:

其含義為通過一個for循環讓選中的物體按一定的位置進行排列。選擇的物體有多少個,循環就做多少次。
以上生成的直線材按一定方式排列后,生成結果如圖10所示。
3.3.3“韻律變化”功能模塊實現
以“旋轉角度”設定為例,其代碼為:
slider xuanzhuanjiaodu “旋轉角度” pos:[ ] width: height: range:[–n,n,0] type:#integer
其含義為設定“旋轉角度”滑塊的取值范圍在-n至n之間,其數值的類型為整數。其中,取值范圍的選擇主要通過不斷調試,找到合理的參數范圍,讓數字化立體構成作品發生一定的變化,又不至于變化過度,導致作品產生缺陷。以上生成的直線材按一定角度彎曲后,生成結果如圖11所示。
3.3.4“材料要素”功能模塊實現
以“淺色木質”為例,其實現主要代碼和含義如下:

Vray材質;
meditMaterials[ ].texmap_diffuse = Wood ()——將表面紋理指定為木頭程序紋理;
meditMaterials[ ].texmap_diffuse.color= color ——指定木頭紋理的表面色;
meditMaterials[ ].texmap_diffuse. … =…——指定表面紋理的各種細節;
meditMaterials[ ].texmap_reflection_multiplier = …——指定材質表面的反射值;
meditMaterials[ ].reflection_glossiness = ——指定材質表面的反射模糊;
$.material = meditMaterials[ ] ——將材質指定給相應對象;
)[7-12]

圖11 韻律變化設定結果
設定好的“淺色木質”材質,其結果如圖12所示。

圖12 材料要素設定結果
采用“材質要素”輸出的部分材質如圖 13~14所示。

圖13 將造型賦予黃銅材質

圖14 將造型賦予 不銹鋼材質
3.3.5“空間要素和渲染”功能模塊實現
以“VRay渲染設定”為例,其實現主要代碼和含義如下:
vr.gi_on=true——開啟 Vray渲染中的間接照明,這樣可以使整個空間的光照更均勻;
vr.gi_primary_type=——設定間接照明中的光線首次反彈類型;
vr.gi_secondary_type=——設定間接照明中的光線二次反彈類型;
vr.gi_primary_multiplier=——設定間接照明中的光線首次反彈強度;
vr.gi_secondary_multiplier=——設定間接照明中的光線二次反彈強度;
vr.gi_irradmap_subdivs=——設定光子貼圖的細分值;
vr.environment_gi_on=——設定環境光是否開啟,開啟此項可以讓虛擬場景中的物體受到環境光的影響,場景會顯得更加自然;
vr.lightcache_sampleSize=——設定燈光緩沖采樣大??;
vr.gi_irradmap_interpSamples=——設定光子貼圖的插補采樣值;
vr.lightcache_subdivs=——設定燈光緩沖細分[6]。
以上造型指定“空間要素和渲染”設置后,渲染輸出結果如圖15~16所示。

圖15 渲染結果

圖16 虛擬線構成造型及營造空間
本文采用 MAXScript腳本語言設計出一款能生成數字化立體構成作品的插件,以輔助立體構成的常規教學。本插件在經過福州軟件職業技術學院和福建第二輕工業學校師生們的試用,受到廣大師生的廣泛好評。其結果表明利用MAXScript模擬立體構成作品具有直觀、快速、易操作的特點。藝術設計的教學方式越來越趨于多樣化、數字化。在此大背景下,利用計算機三維模擬的方法進行立體構成教學研究順應了數字化教學發展的需求。接下來,還需對藝術設計的其他基礎課程的數字化教學繼續展開研究,將這個課題繼續深入探討下去。相信在藝術設計基礎課程教學中,計算機以不同的方法輔助教學,將會得到更深入而廣泛的應用。
[1] 田培. 立體構成數字化教學研究[D]. 北京: 北京工業大學, 2012.
[2] 楊彩英. 基于MAXScript的海洋動漫制作插件的研究與應用[D]. 青島: 中國海洋大學, 2010.
[3] 劉紅霞. MAXScript語言在教學資源中的應用[D]. 西安: 陜西師范大學, 2007.
[4] 朱明秀. 基于3DS MAXScript語言的汽車仿真系統設計與研究[J]. 計算機與數字工程, 2011, 39(7): 87.
[5] 俞愛芳. 立體構成教程[M]. 杭州: 浙江人們美術出版社, 2004: 12-13.
[6] 亓鑫輝, 張漢平. 3ds Max影視特效火星課堂腳本應用篇[M]. 北京: 人民郵電出版社, 2011: 111-123, 226-231, 250-255.
[7] 江媛媛. 基于MAXScript的三維場景快速建模算法研究及應用[D]. 青島: 中國海洋大學, 2013.
[8] 李瑩, 王哲. 基于MAXScript的建筑虛擬場景設計探討[J]. 電子測試, 2013, (10): 113.
[9] 王少偉. 基于3Ds MaxScript三維角色動畫與庫插件的設計與開發[D]. 上海: 上海師范大學, 2012.
[10] 趙革委, 高海靜. 3DSMAX腳本語言創建批量物體動畫方法初探[J]. 成功教育, 2012, (12): 280.
[11] 何昌霖. 用MaxScript從3DS Max導出骨骼動畫數據[J].電腦編程技巧與維護, 2011, (9): 73.
[12] 徐瑾, 蔡秀云. 用MAXScript腳本語言生成分形圖形[J]. 工程圖學學報, 2003, 24(3): 96-97.
The Research and Application of Teaching of Three-Dimensional Constitutes Plugin Based on MAXScript
Yu Shuting1,2,Xie Huosheng1
(1. College of Mathematics and Computer Science, Fuzhou University, Fuzhou Fujian 350116, China; 2. Fujian Second Light Industry School, Fuzhou Fujian 350007, China)
Three-dimensional constitution is one of the most important fundamental courses of art design subjects. Currently, the course face the difficulties of getting and processing materials and the students? poor sense of space and so on. In order to improve three-dimensional construction teaching, this paper tries to use 3ds Max and its built-in scripting language MAXScript to design a three-dimensional construction plugin. First of all, analysing the constitutes elements and selecting the commonly-used three-dimensional constitution models. Secondly, using MAXScript to make the beautiful three-dimensional models in 3ds Max. And then using MAXScript language and visual MAXScript Editor to design a plugin which can make a lot of virtual three-demensional models. MAXScript is good at batch processing and interface edit. This plugin is applied in art design class in Fuzhou Software Technology Vocational College and Fujian Second Light Industry School. In practice, the teachers and students benefit from the plugin. Using MAXScript to write a plugin for aidding the teaching of three-dimensional constitution can make the teaching more convenient and visual. And it also offers a viable method for the teaching of digital three-dimensional constitution.
three-demensional constitution; 3ds Max; MAXScript; digital teaching; digital art
TP 37
A
2095-302X(2015)06-0966-07
2014-09-19;定稿日期:2014-12-13
福建省自然基金資助項目(2014J01229);福建省教育廳A類科技項目(JA15874)
于舒婷(1984–),女,福建福州人,助教,碩士。主要研究方向為數字媒體技術與藝術。E-mail:1401318737@qq.com
謝伙生(1964–),男,福建寧化人,副教授,碩士。主要研究方向為智能圖形圖像處理。E-mail:xiehs@qq.com