星期三, 5月 30, 2007

reactor應用--物件散落盒內

目標
以reactor將一群複製物件掉入盒內,再製作出將它倒出的動畫。

觀念

物件要掉入盒內,以下的要點須注意:
  • 盒子的屬性要設為concave;其mass設為0;friction及elasticity須實驗。
  • 物件的mass要大於0;friction及elasticity須實驗;
  • 若物件是複合體(由二個或以上的物件組成),則要將它們群組(group)。
  • 盒子及物件均須加入Rigid Body Collection內。
步驟

一、製作不倒翁
不倒翁的質量分佈將不均勻,也就是說,它的重量會集中在不倒翁的底部。這樣會使不倒翁具備不滾動或不平躺的效果,它會試圖直立而搖幌。此一行為是可能的,因為在複合rigid body內,不同的體元可以有不同的質量。你要做是在不倒翁的底部增加一個體積小質量大的物件,而整個不倒翁的重量就落在該處。

二、幾何體模擬
現在你將繼續製作不倒翁,已做好的球體就當不倒翁的身子,下一步是用圓柱當手臂。你將複製這圓柱,並減少它的面數。此一複製的圓柱,因較容易且較快模擬,將被做為第一根圓柱 (比較複雜) 的模擬幾何體,該技術叫做使用代理幾何體 (proxy geometry)。
注意,如果你要將第一根圓柱仿製20根,並加入模擬動畫,這20根將全部使用這支簡化過的圓柱為其模擬幾何體。這意謂只有一根圓柱元件需要被做出物理模擬,如此,消耗的記憶體會較少,且模擬速度會加快。

三、將物件複製並化簡以便模
  1. 在Left觀視埠製作一根圓柱,將它放在球上方,但不與球接觸。
  2. 在Modify面板內圓柱的大小修改成Radius=6;Height=70;Sides=18。
  3. 在該圓柱被選取的狀態下,Edit > Clone。於Clone Options對話框內選Copy,再按OK。
    這根新複製的圓柱將被當成代理幾何體。
  4. 在Modify面板內,將新複製的圓柱之Sides (邊數) 改為12。
  5. 選取原始的圓柱,開啟Rigid Body Properties對話框。
  6. 將該圓柱的Mass值改為10。
  7. 將該圓柱的Simulation Geometry特性設為Proxy Convex Hull (代理凸型殼)。
    這意謂該圓柱將以另一物件的幾何體所做成的Convex Hull做為其物理表徵。
  8. 在Simulation Geometry下掛板內,點按Proxy鈕,並選取新複製的圓柱。
  9. 在場景內選取RB Collection助手物件,並將原始的圓柱加入。
  10. 在reactor工具列,點按Preview Animation,並播放其動畫。你將看到該圓柱的滾動流暢性不像畫面所顯示的那樣。
  11. 在Preview視窗內,選擇Display > Sim Edges以顯示該物件的模擬幾何體之稜線。
    你將看到該圓柱之模擬幾何體比觀視埠內展示的還粗糙。
四、完成不倒翁
  1. 首先,增加幾何體以完成不倒翁。用torus做腰環,用一顆球做頭;用兩顆小球做眼睛;用一顆球做鼻子。
  2. 選取前一步驟中的眼睛及鼻子,並開啟Rigid Body Properties對話框。
  3. Simulation Geometry下掛板內設為Bounding Box。
  4. 選取不倒翁的頭及身體,於Simulation Geometry下掛板內設為Bounding Sphere。
    腰環的simulation geometry能夠保留為Mesh Convex Hull,雖然你也能夠製作一個仿本,並將它簡化而做成一個proxy,一如之前為圓柱所做的。
  5. 一旦完成製作及安排這些物件,將它們加入Toy_Body群組內。為了做到這一點,選取每一物件,並從主選單選擇Group > Attach,然後點按Toy_Body。
五、改變rigid body的質量分佈
  1. 選取Toy_Body群組,並從主選單選擇Group > Open。
    這允許你去選取群組內的各別體元,俾編輯其rigid body properties。
  2. 改變該群組內的每個物件的mass值為1。
  3. 點按Preview Animation,你將看到所有的物件已加到這個複合rigid body。
    不倒翁會掉下,若它沒有正確的行為,則可能是你沒將該rigid body的每項組件mass值設好。補救之道是關閉Preview視窗,檢視該群組內每項組件的mass值。
  4. 在不倒翁的身子球體內部底側新增一個小方塊。
  5. Rigid Body Properties對話框內,設其mass值為300。
  6. 選取該群組的組件,從主選單選擇Group > Close以關閉該群組。
  7. 選取該小方塊,從主選單選擇Group > Attach,然後點按Toy_Body。
  8. 點按Preview Animation並檢視不倒翁的行為。
    不倒翁像之前那樣滑落,但會搖幌以求穩住,不倒翁底部的高質量小方塊已將其不倒翁的重心往下移。
六、另眼觀看
reactor允許你為物件使用display proxy (展示代理),這意謂一個rigid body能夠在preview視窗內用一個不同的展示體。這增加視窗的效能,特別是你以相同的展示體模擬一個物件時。如果你有許多看起完全相同的物件,那麼,當用上display proxy時,你的展示只需追蹤該展示體的元件 (instance) 即可。本節中,你將為不倒翁製作一個display proxy。

七、製作rigid body的display proxy
  1. 按住Shift鍵,並拖移不倒翁群組以複製之。
  2. 從主選單選擇Group > Ungroup。
    diplay proxy必須是單一網格體,要做到這一點,先將複製的不倒翁解散群組。
  3. 選擇代表不倒翁身子的球體,按滑鼠右鍵,在Transform的浮動選單內,選擇Convert To > Convert To Editable Mesh。
  4. 在Edit Geometry下掛板內,點按Attach List。
  5. 在Attach List對話框內,選取該群組的其它物件,然後點按Attach。
    現在,你有一個代表不倒翁的單一網格體,它能夠當做display proxy。
    小秘訣:為場景内的模型標上名稱,特別是當它們一模一樣時。因此,且為這個display proxy取名為Toy_Body_Proxy。
  6. 選取原始的Toy_Body群組,從主選單選擇Group > Open。
  7. 選取群組parent,即包住該群組物件的粉紅方體。
    你須選取群組parent而不是不倒翁的任何組件,那是因為群組的parent代表該rigid body,且diplay proxy是施用到rigid body而不是rigid body的組件。
  8. 打開Rigid Body Properties對話框,於Simulation Geometry下掛板的Display群內,鉤擇Use Display Proxy。
  9. 點按Display Proxy按鈕,並在觀視埠內選取單一網格體的不倒翁。
    按鈕內會呈現Toy_Body_Proxy。
  10. 在該網格不倒翁被選取的狀態下,點按右鍵,並從彈現的Display選單內選擇Hide Selection,將該網格體不倒翁隱藏。
  11. 選取不倒翁群組之任一組件,從主選單選擇Group > Close。
    你的不倒翁將使用新的網格物件為其展示物件,如果對該可編輯的網格物件施加改變,則只要使用Preview視窗,這些改變就會出現。
八、模擬的精確性
若物件的舉措怪異,你可能需要增加它的物理模擬精確性。其作法有二:一是從外部改變動作,這會影響關鍵影格的成立及preview視窗。二是從preview視窗裡頭改變。這兩種方法中,變更精確性需要調整名為Substeps/Keyframe的參數,你能夠在Utilities面板的Reactor下掛板內或在Preview視窗的Physics選單內編輯它。
當物理性被計算時,reactor將物件做小步驟的移動,步驟愈小,模擬愈精確。然而,你應注意模擬愈精確則速度會愈慢。預定的精確值是每個關鍵影格區間有10個substep (次步驟) ,這意謂reactor將每個關鍵影格區段分成10個。

九、改變模擬的精確性
  1. 在Utilities面板上,點按Reactor鈕,展開Preview及Animation下掛板。
  2. 將Substeps/Key值10變更為25。
  3. 點按Preview Animation。
    該模擬可能跑得更慢,但較不可能受到突然減速的影響。
十、設好模擬
本節中,你將製作一個玩具盒及39個不倒翁仿本。你將以Preview視窗讓這些仿本掉落盒內,再將它們的位置回送到3dsmax。如你將會看到的,Preview視窗充當一個互動的塑模工具,允許你物理性地重新按排及改變,然後再更新到3dsmax。

十一、製作玩具盒
  1. 在場景內,以box工具製作五片大小相同的平板。
  2. 將這五塊平板組成一個中空的盒小。
  3. 在Left觀視埠內,將之前傾斜的地板復原,並將其長寬加大。
  4. 選取盒子的底板,按滑鼠右鍵,於Transform選單內選擇Convert To > Convert To Editable Mesh。
  5. Modify面板之Edit Geometry下掛板內,點按Attach List。
  6. 在Attach List對話框內,選取盒子之其它四塊板,點按Attach鈕。
    現在,你有一個代表玩具盒的單一網格體。
  7. 打開Rigid Body Properties對話框,將Simulation Geometry特性更改為Concave Mesh。
十二、從Preview視窗將場景更新
  1. 點按主工具列上的Select and Move。
  2. 將玩具移入盒內。
    注意:確保不倒翁沒碰到玩具盒。
  3. Left觀視埠內,按住Shift鍵並上移不倒翁,使高出原不倒翁的頭。
  4. 在Clone Options對話框內,設定Numbers of Copies值為39,點按OK。
  5. 選取RB Collection助手物件,並在Modify面板之RB Collection Properties下掛板內,點按Add。
  6. 選取所有新的不倒翁及玩具盒,點按Select將它們加入rigid body collection。
  7. 點按Preview Animation,讓不倒翁落掉盒內並停妥。
  8. 在所有不倒翁停妥於盒內後,從Preview Window的選單欄選擇Max > Update Max。
  9. Preview Window,並在觀視埠內點按以更新不倒翁的展示。
十三、使用Hand_Animated Rigid Bodies
之後你會常做的事情是在物理模擬中手動rigid body來產生動畫。這些rigid body被指涉為unyielding rigid body,且會在開啟的Rigid Body Properties對話內框內具備Unyielding特性。它們以關鍵影格所提示的訊息及其他rigid body反應到它們的訊息來動作。你不必賦予它質量。本例中,你將傾倒玩具盒,並使所有的不倒翁掉落在地板上。

十四、將手動的rigid body加入物理模擬
  1. 選取玩具盒。
  2. 打開Rigid Body Properties對話框,在Physical Properties下掛板內,開啟Unyielding。
  3. 開啟Auto Key模式,將時間滑桿移到第60影格。將玩具盒旋轉125度,使所有的不倒翁主動滑出。關閉Auto Key。要小心移動地板使其最終位置不會與玩具盒交叉。
    注意:當你動手轉盒子時,不倒翁可能呈現奇怪的行為,但不必介意。
  4. 點按Preview Animation。
注意:記得要改變物理特性時,必須打開group並改變group幫手的特性。你能夠一次更改數個物件的特性。

十五、準備輸出
既然模擬已無誤,你需為這些物件的動作製作關鍵影格。方法如之前所介紹,要利用工具列上的Create Animation來執行。
本範例中,你將為動作的前100個影格製作關鍵影格,然後,從第100格才進行模擬。這會顯示reactor的動態功能如何從場景中粹取初始速度,使得在一個步驟中從第0格到100格的模擬與從第0格到20格;然後第20到40格;40到60格;60到80格;80到100格的模擬相同。

十六、粹取rigid body的初始速度
  1. 在reactor工具列,點按Create Animation。
    你的rigid body的動作之第0格到100格間的關鍵影格被製作完成。
  2. 在Utilities面板點按reactor,然後在Preview & Animation下掛板內,設定Start Frame=100及End Frame=500。

  3. 點按Preview Animation。
  4. 在Time Control區,點按Time Configuration。
  5. 在Time Configuration對話框內,設End Time為500。
  6. 再度點按Create Animation。
    第100到500影格之關鍵影格將被製作完成。若在觀視埠內檢視關鍵影格的行為,你將看到所有物件的動作在通過第100影格後,會是流暢的,因為這些物件的初始速度被粹取及使用到這項模擬。
十七、減小檔案
現在,你有了所有物件的動作的關鍵影格,它們能夠被用來製作動畫或靜態的rendering。然而,當下每一物件有每一個關鍵影格,這意謂該作品的檔案相當大,同時也很難在這項模擬之後扭改一個物件的行為。
Reactor擁有為rigid body移除冗贅影格的門道。你能夠為運算式提供一個閥值以保證在這項減量後,物件的運動會在其原始值的因素之內。本節中,你將為你的rigid body減低其關鍵影格數。
模擬之後減少冗贅的關鍵影格
  1. 在Utilities面板點按reactor,並展開Preview及Animation下掛板。
  2. 在Preview及Animation下掛板內,設Start Frame為0及End Frame為100。
  3. 在Utilities面板將Utils下掛板展開,於Key Management群中,點按Reduce Now。
    這會減低模擬內有作用的rigid body之關鍵影格。本例中,用預設的閥值0.5。
  4. 再度看動畫。
    如你所看到的,場景中的rigid body之行為與未減少閥值之前幾乎完全相同,但每個不倒翁的關鍵影格量大為減少。全部的不倒翁的動作相當完整,但檔案則減小30%左右。
  5. 儲存檔案。
結論
本教案中,你已學會使用reactor去產生完整動畫的基本方法:
  • 用Rigid Body Properties對話框為動畫中的物件設定特性。
  • 用RB Collection物件去控制動畫。
  • 預看動畫,並將動畫轉換為3ds關鍵影格。

作業
以reactor模擬市售之透明容器,內有不規則填塞的散粒狀內容物如下圖。


繳期
  • 6月9日
繳項
  • 市售商品之實物照,640x480pixel。
  • 模擬該作品之3ds max流水號原始檔(即xx01.max,xx02.max...;能適當記錄完成該作品的各重要過程)及該檔render好之tga檔(640x480pixel)。
  • 須善用燈光、材質及相機。
  • 成果彩色A4相紙印出,
  • 貼圖在部落格。

星期二, 5月 29, 2007

reactor初試

目標
學習reactor(反應器)的基本用法

觀念
使用reactor時須先設好rigid body及其屬性,再依作業流程則可產生有效的動態動。

練習
本教案是球落地板的可能性演練,係當之後物件掉入盒內作法的暖身。
在reactor物理模擬中的物件,如本教案中的球及地板,稱之為rigid body。它們是物理場景的組成塊件,可用一個或更多的幾何體來完成,你能夠用任何的幾何體製作之。

一、製作rigid body
  1. 新建一個3dsmax檔。
  2. 在Create面板,點按Sphere。
  3. 在Perspective觀視埠,拖曳出一個球體,在Create面板,設其Radius為25。
  4. 在Create面板,點按Box。
  5. 在觀視埠內於球體之下方,拖曳出一方塊。在Create面板,設其Width、Length為200;Height為5。
  6. 選取球體,從主選單選擇reactor > Open Property Editor
  7. 查看該Editor內的Physical Properties下掛板,將其Mass值改為50。
    由於你不要讓平板有物理特性,所以它就援用預設的Mass值0。
二、建立Rigid Body Collection
若你有一個可行的rigid body要模擬,你必須把它加入rigid body collection。在模擬一開始,場景內所有可行的rigid body collection會被檢視,然後,rigid body被取自collection並加入模擬,本例中,你將製作一個collection,並將球及板子加入這個collection以便將它們加入模擬。
補充:rigid body collection是助手物件,充當rigid body的收納器。場景中一旦新增rigid body collection,則場景內的任何有效rigid body即可放入該rigid body collection。執行模擬時,場景中的rigid body collection會被檢視,若rigid body collection未失能,則它所包含的rigid body會被加入模擬中。

三、製作物件並將它加入rigid body collection
  1. reactor工具列點按Create Rigid Body Collection
  2. 在觀視埠內點按一下,建立一個Rigid Body Collection。
  3. Modify指令面板上,於RB Collection Properties下掛板內點按Pick,並選取觀視埠內的方形板。
  4. 點按Add。
    標準的選取對話框出現。
  5. 從名單內選擇球體。然後點按Select以關閉該對話框,並將球加入collection內。
四、模擬入門
既然你已做好可行的模擬場景,那麼,就可以試試該模擬。模擬動畫的方法有兩種,其一是使用Preview Window;其二是Create Animation

五、在Preview視窗內檢視場景
  1. reactor工具列點按Preview Animation
  2. 從視窗的Simulation主選單選擇Play/Pause,或按P鍵。
    球會下墜迄碰板為止。
  3. 完成模擬探索後,關閉視窗並回到3dsmax。
六、做出以物理為基礎的影格
接下來,你將為眾物件的互動製作關鍵影格。球落在水平的方形板上,乏趣可陳,因此,你將方形板傾斜,如此,球可以順著板面滾落。
  1. 在Left觀視埠,選取方形板並將它逆時鐘旋轉30度。
    (注意:板子與球不可交叉。)
  2. reactor工具列,點按Create Animation
    Reactor對話框出現,點按OK
  3. 在觀視埠內點按Play Animation觀看動畫。
    你應看到球落到方形板並往下滾。
  4. 在球被選取的狀態下,於時間軸框選所有的關鍵影格,按Delete鍵將其刪除。
七、幾何體類型
Simulation Geometry (模擬幾何) 放置在Rigid Body Properties對話框的第二個下掛板,它處理物件在物理模擬的表現方式。
reactor內,凸型體 (convex) 是沒有洞或下陷的物件,例如,乒乓球是凸型體,高爾夫球是凹型體 (concave) 。凸型體比凹型體容易模擬。基於此一理由,當你模擬一物件時,即便該3dsmax物件是凹型體,reactor還是以預定的凸型體來處理。要做到這一點,reactor使用專門的運算式去產生凸型體版本來模擬。然而,在3dsmax內該物件還是沒改變。這叫做為該物件製作凸型殼 (convex hull) ,係由Rigid Body Properties對話框之Simulation Geometry下掛板內的Mesh Convex Hull選項來表現。
然而,有時候,你要模擬一個物件的真實網格體,你可特別指定Concave Mesh選項。
本教案中,你將模擬一個真實的球,這意謂該球不是被模擬的,相反地,一個數學的球被當模擬用,這不僅速度快,又較精確 (該物件會完美滾動),且比以幾何體為基底球體的模擬耗掉較少的記憶體。

八、改變球的Simulation Geometry
  1. 選取該球。
  2. 打開Rigid Body Properties對話框。
  3. Simulation Geometry下掛板內,選擇Bounding Sphere (彈性球)。
  4. 點按Create Animation為該模型重新產生關鍵影格。這個球會滾得更順暢,雖然,若球面比較多,就不明顯。
  5. 在球被選取的狀態下,於時間軸選框選所有的關鍵影格,按Delete鍵將其刪除。
下一單元
物件散落盒內

星期二, 5月 15, 2007

隨身碟設計

目標
學習創新隨身碟的造形與動畫表現。

造形
為實現創新的造形,你可以使用以下的技巧
  • Editable Poly→Extrude/Bevel→ Meshsmooth
  • 利用a spline及b spline,利用Bevel Profile修改器堆疊。
  • 利用數個shape及一條路徑,利用Compounds→Loft,製作出立體。
  • 利用Shell修改器堆疊,做出瞉形。
  • 利用Compounds→Boolean→Pick B Operand將兩個重疊物件,將重疊挖掉。
  • 利用UVW map→Unwarp UVWmap進行細部貼圖
動畫
  • 影格總數為700格
  • 動畫的分配如下:
  1. 000-080格為靜態的透視圖。
  2. 080-100從透視圖轉成正投影視圖1。
  3. 000-180格為靜態正投影視圖1。
  4. 180-200從透視圖轉成正投影視圖2。
  5. 200-280格為靜態正投影視圖2。
  6. 280-300從透視圖轉成正投影視圖3。
  7. 300-380格為靜態正投影視圖3。
  8. 380-400從透視圖轉成正投影視圖4。
  9. 400-480格為靜態正投影視圖4。
  10. 480-500從透視圖轉成正投影視圖5。
  11. 500-580格為靜態正投影視圖5。
  12. 580-600從透視圖轉成正投影視圖6。
  13. 600-680格為靜態正投影視圖6。
  14. 680-700從正投影視圖6轉成影格0處之透視圖。
輸出
  • mov格式如下圖設定。

星期二, 5月 08, 2007

可撓性包裝材質

目標
模擬可撓性包裝材質的動畫

觀念
可撓性材質﹣如布或薄紙﹣在包裝結構上所扮演的角色雖不及玻璃容器或模造塑膠產品那般顯性,但它用在輔助包裝設計則可表現出襯托的功能。要表現可撓性材質的模擬應用,除較普遍的Editable Polygon、Editable Path之外,尚可利用Flex及Conform。
本教案旨在以Flex配合wind(風)及delector(變流器)等指令來形成可撓性包裝的模擬。

步驟
建立基本物件
  1. 建立一個plane,在修改器面板內設定其大小及分段數。
  2. 在控制面板點選Create> Space Warps > Forces >Wind。
  3. 在Perspective視窗加入一個Wind。
  4. 以旋轉工具將Wind的箭頭與所要施力同向。
加入FLex
  1. 點按Plane物件,加上Mesh Select修改器,並進入Vertext次物件。
  2. 選取受力會變形的節點。
  3. 從控制面板的修改器選單中點按Flex修改器以加入該修改器。
  4. 將控制面板下捲到Forces and Deflectors項,並點按位於 Forces下緣的Add鈕。
  5. 按H鍵,於對話框內選擇Wind01,並點按Pick鈕。
  6. 點按動畫區的播放鈕。
  7. 布料略微抽動一下。
調整參數
  1. 上捲到Simple Soft Bodies,調整Strength及Stiffness的值。
  2. 點選視窗內的Wind Space Warp。調整Parameter下的Force群內的Strength值及 Wind群內的Turbulence的值。
加入deflector (變流器)
  1. 關閉Flex。
  2. Create面板 > Space Warps > Deflectors,並點按SDeflector。
  3. 在Top觀視埠內,於布料物件略下方處,拖移出一個半徑75.0的deflector。
  4. 將它的方位安置如圖。
  5. 選取物布料物件。
  6. 在 Forces And Deflectors下掛板內,把 SDeflector 新增為一個 deflector.。
  7. 設定動畫的影格數為400。
  8. 播放動畫。