表達式控制器製作正弦線動畫
利用3dsmax內置的“表達式控制器”的變數和函式製作”單位圓中的正弦線”動畫的過程。
球體動點模型
設定其“半徑”為 2.5,並將”名稱“改為“動點”。為了使“動點“沿著“單位圓”作精確的勻速圓周運動,採用3dsmax內置的“表達式控制器”進行設定,對“動點”進行動畫設定:打開選單“圖表編輯器”的”軌跡視圖-曲線編輯器“視窗,在此視窗的左窗格中找到“對象”項目下一層級的“動點”項目,打開“動點”的層級樹,選擇“變換”下面的“位置”,在視窗中打開選單”控制器”下的“指定”子選單,彈出“指定位置控制器”視窗,選中其中的“位置表達式”。
在設定“動點”模型的“位置”的“表達式控制器”視窗中,在“名稱”項目中輸入自定義變數pos,確定為“向量”類型,點擊“創建”按鈕,在“向量”列表框中選定pos,點擊“指定到控制器”按鈕,在彈出的“軌跡視圖拾取”視窗中選中“對象”項目下一層級的“單位圓”項目的“位置:位置XYZ”,即用pos向量表示”單位圓”的空間位置,按“確定”按鈕返回。由於“動點”在“單位圓”確定的平面上繞其軸心點作勻速圓周運動,而在世界坐標系中其位置僅僅在x 軸和z 軸方向上改變,故在計算“動點”位置時應在“單位圓”的空間位置加上“動點”沿”單位圓”運動的軌跡,在”表達式”文本框中輸入:[100*cos(360*NT), 0,100*sin(360*NT)]+pos,其中系統變數NT表示將整個動畫時間作為一個標準次數,按下“計算”按鈕進行計算,這時“動點”就沿著”單位圓”作勻速圓周運動了。
圓半徑模型
設定該圓柱體的”半徑“為1,“高度”為100,並將其“名稱”改為“圓半徑”。為了使模型“圓半徑”能繞著“單位圓”的軸心點進行勻速的旋轉運動,首先使用”對齊”工具將兩者的軸心點對齊,再對其旋轉角度進行精確設定:同上打開 “軌跡視圖-曲線編輯器”視窗,在世界坐標系中”圓半徑”模型應該繞Y軸旋轉,故在左窗格中找到”圓半徑”項目的“Y 軸旋轉”,打開選單“控制器”下的”指定”子選單,彈出“指定浮點控制器”視窗,選擇“浮點表達式”,按”確定”按鈕打開設定”圓半徑”模型的“Y 軸旋轉”的“表達式控制器”,由於3dsmax以順時針旋轉為正方向,而”圓半徑”模型要求按逆時針方向旋轉,故在計算旋轉角度時應在表達式前加負號,所以在”表達式“文本框中輸入”-2*p*NT+1.5708”,其中系統常量pi表示圓周率π ,偏移量1.5708為π/2,按“計算”按鈕,“圓半徑”就繞“單位圓”的軸心進行勻速旋轉並指向“動點”。
圓柱體正弦線模型
設定該圓柱體的“半徑“為1,“高度”為100,並將其“名稱”改為“正弦線”。為了使模型”正弦線“能隨“動點”的位置移動而同步移動自己的位置並且進行相應的尺寸縮放,首先進行跟“動點”類似的位移變換設定來設定“正弦線”的位移動畫,再對“正弦線”的縮放進行精確設定:打開“軌跡視圖-曲線編輯器”視窗,在左窗格中找到“正弦線”項目的”縮放”,打開選單”控制器”下的”指定”子選單,彈出“指定縮放控制器”視窗,選擇“縮放表達式”,按”確定”按鈕後打開設定“正弦線”模型的“縮放”的“表達式控制器”,在世界坐標系中“正弦線”模型應該在Z軸方向上進行縮放,故在”表達式”文本框中輸入“[1, 1, sin(360*NT)]”,按“計算”按鈕,“正弦線”就跟蹤“動點”的位置進行往返運動及相應的尺寸縮放變換。
給“正弦線”與”x軸”的交點和“動點”分別加上文本標記M和P,並給文本標記設定相應的動畫,這樣 ”單位圓中的正弦線MP”的動畫製作就完成了,通過“渲染”選單將其效果輸出生成動畫檔案。
數學教學中的動畫課件要求課件中的各模型變換精度很高,要求各模型能精確地反映出其中數與形的轉換關係,而一般手動調節課件中模型的變換很難滿足課件的要求,利用“表達式控制器”中的變數和函式能輕而易舉地實現模型的位置、旋轉和縮放變換,精確的控制動畫的變換,製作出精美的數學動畫課件。
表達式控制器的轉子運動仿真
介紹了在3DSMAX下對單圓盤轉子系統的建模,包括實體製作和材質的選用技巧,利用表達式控制器精確控制轉子轉速的方法製作轉子運動動畫,從而實現對轉子運動的仿真。
實體製作
在三維動畫設計領域,最大的難點就在於實體的建模,在3DSMAX中產生三維實體主要有以下幾種方式:
(1)直接生成法 ;
(2)Extrude拉伸生成法 ;
(3)Revolve旋轉生成法 ;
(4)Loft 放樣生成法。
對於轉子系統的建模採用直接生成法,該方法是利用3DSMAX提供的三維圖形製作工具,輸入一定的數據參數,直接生成三維實體。3DSMAX中提供了豐富的基本幾何體:長方體、圓柱、台、錐等,但是現實生活中存在的物體,幾乎都是各種複雜形狀的形體,這樣遠遠超出了簡單幾何體的製作能力,這時就要通過把2個或更多的對象組合 成一個對象來生成各種複雜的對象。即運用布爾運算(並、交、差)操作,實現對轉子系統的建模。要使用布爾運算,首先在視圖中選擇一個對象,然後進入Creat 創建面板,並且在Geometry下拉列表中選擇Compound Objects,單擊Boolean按鈕,將彈出用於布爾運算的幾個卷展欄。布爾運算的Pick Boolean卷展欄中,單擊卷展欄中的Pick Operand B按鈕來選擇另一個用於布爾運算的對象B,卷展欄中的Reference、Copy、Move和Instance用來定義所選擇的 B對象如何轉化為布爾對象,其中Move為默認選項。在製作轉子系統的時候,如:需要在支承上開個孔用於放轉軸,先選支承為 A,然後選轉軸為 B。如果轉化方式為Move,則支承上開過孔後,轉軸 B也消失了,所以此時要將轉化方式選為Copy,因為Copy表示還可以將 B用在其他的地方,而Move是不會生成複製體的。在建立支承的過程中也是如此。
動畫製作
轉子運動動畫的製作,可以通過動畫記錄調整轉子的旋轉角度。但是如果想要獲得精確的轉動速度,手動調整是做不到的。因此利用軌跡視窗和表達式控制器精確地設定轉子的運動速度,從而進行轉子轉動動畫的製作。對於轉子系統,希望通過轉子的運動帶動圓盤運動,所以要進行父子關係約束,父子的層級關係在動畫製作中很重要,將一個物體連線到另一個物體上,可以建立一個父子關係,當變換作用在父物體上時,也通過連結關係將變化傳輸給子物體。而正向運動是指父物體運動時,子物體跟著運動,子物體運動時,父物體不動,反向運動則正好相反,對於這種簡單的轉子系統,只需要將圓盤和轉子建立父子關係即可,讓轉子成為父物體,圓盤成為子物體,這樣就可以通過轉子的運動帶動圓盤運動了。
轉子動畫的製作共分以下幾步:
(1)選中轉子,在Motion命令面板的Assign Con-troller卷展欄中選擇Rotation項目,單擊Assign Con-troller按鈕打開動畫控制對話框,從中選擇EulerXYZ控制器,單擊OK回到命令面板(之所以先指定Euler XYZ控制器,是為了分離轉子的 X、 Y、 Z三個旋轉軌跡,以便對單個坐標軸進行旋轉設定)。
(2)在面板中展開Rotation節點,選中Y Rotation分支,單擊Assign Controller按鈕,在彈出的動畫控制器中選擇Float Expression控制器,單擊OK按鈕回到命令面板。
(3)此時系統會自動彈出表達式控制器的設定對話框,在Expression欄目中輸入轉子的運動表達式,例如:要求轉子的轉速為200rmin,則表達式為 S200×2 pi60,單擊對話框中的Evaluate(執行)按鈕,執行設定的表達式,然後單擊Close按鈕關閉該對話框,這樣就設定好了轉子的運動表達式。注意其中字母 S要大寫,如果小寫則會出現錯誤信息, S代表當前秒數乘以旋轉周數,3dS會自動計算運行的時間,2pi表示旋轉 一周的弧度數, S200×2 pi60則表示對應於 S( s)時轉子總共轉過的弧度數。因此返回的單位為rad。此時轉子為逆時針轉動,如果希望轉子為順時針轉動,則在表達式前面加“-”。