編者按:這是一個令人激動的三維虛擬大製作,在這個實例中我們將使用3DS MAX、Photoshop、Director和Cult3D,製作一輛虛擬跑車。你可以從任何方位觀察這輛汽車,甚至可以通過單擊某個按鈕來動態改變汽車的顏色(圖1)。
在製作的過程中你將學會如何讓這4個功能強大的軟件默契地配合起來。本實例我們將在3DS MAX中創建汽車模型;在Cult3D製作可交互的汽車場景,最後在Director中進行媒體交互合成。在Director中不僅可以創建平麵的演示文檔,而且可以利用虛擬現實技術實現三維的演示空間。下麵我們就開始動手吧!
具體建模的過程不是本實例的重點,大家可以參考一些網站的教學內容。如果怕麻煩的話,你也可直接下載汽車的三維模型。www.the3dstudio.com提供了不少精美的汽車模型,建議大家去看看。
由於Cult3D並不渲染陰影,因此我們在3DS MAX中設置的燈光效果將會失去作用。因為陰影的著色需要耗費大量的計算量,增加著色的時間。對於Cult3D這樣的實時渲染引擎來說,增加著色時間將會產生災難性的後果,因為漫長的等待將會使用戶對你的產品失去耐心,現在我們采用一些的技巧來實現陰影效果。
一、在3DS MAX中創建汽車模型
(一)製作陰影圖片
1.啟動3DS MAX5,選擇“Rendering→Enviroment”選項,設置背景色為R=99G=115B=151。此顏色為演示屏幕的背景色。
2.在Top視圖中,按F10打開著色窗口。單擊著色窗口中的Files按鈕,設置輸出文件名為car保存類型為tga,單擊保存按鈕。彈出Targa Image Control窗口,設置輸出32位的帶Alpha通道的tga文件。Alpha通道可以讓我們很容易從背景中選擇汽車的輪廓。單擊Render按鈕進行著色(圖2)。
3.啟動Photoshop7.0,打開著色後生成的car.tga文件,將圖層Layer 0更名為Shadow,選擇“Select →Load Selection”選項,如圖3設置好後,單擊OK按鈕,則汽車輪廓被選中,這就是Alpha通道的神奇所在。
4.選擇“Select → Modify →Expand”選項,將選區擴大10個像素。以黑色填充選區,按“Ctrl+D”撤銷選區。
5.選擇“Filter → Blur → Gaussian Blur”,調整模糊的範圍,使輪廓看起來像陰影的效果,單擊OK按鈕。
6.新建圖層Background,在圖層麵板中,將Background層移動到Shadow圖層的下麵。選擇前景色為R=99G=115B=151,即我們在3DS MAX中設定的背景色,以該顏色填充Background圖層,這樣可以使背景能夠和陰影很好地融合在一起。
7.調整Shadow圖層的Fill為50%,這樣使陰影看起來更加柔和一點。合並兩個圖層,將文件另存為car_shadow.psd。
(二)賦予陰影材質
1.啟動3DS MAX5,在Top視圖的麵板中選擇創建按鈕進入命令麵板。單擊下麵的幾何體按鈕,並在Object Type麵板中選擇Plane按鈕,在汽車下方創建一個Plane對象,將它調整到汽車的下方如(圖4)。
2.按M鍵打開材質編輯器,選中一個新的材質”shadow”,單擊材質分配 按鈕,將它指定給Plane對象。設置材質的Self-illumination值為100,這樣能夠使Plane對象和背景融合在一起。
3.展開Blinn Basic Parameters麵板,在Diffuse最右邊小方框上單擊,打開材質瀏覽窗口,選擇Bitmap貼圖,然後按下OK按鈕。在彈出的“Select Bitmap Image File”窗口中選擇car_shadow.psd文件,單擊打開按鈕。
4.彈出“PSD Input Options”窗口,選中Collapsed選項,單擊OK按鈕。這樣便完成了陰影的製作。其效果如圖5所示。
(三)給車身賦予材質
1.首先利用Photoshop製作四幅同樣大小的圖片,分別以藍色、紅色、灰色、黃色填充。並分別以blue.jpg、red.jpg、gray.jpg、yellow.jpg作為文件名存盤。這四幅圖片用於實現車身顏色的動態改變。
2.在3DS MAX5中,按M鍵打開材質編輯器。選中車身所使用的材質,展開Maps麵板,選中Diffuse貼圖,單擊Diffuse右側的None按鈕,選擇Bitmap貼圖,然後按下OK按鈕。在彈出的“Select Bitmap Image File”窗口中選擇blue.jpg,單擊打開按鈕。
3.單擊工具欄上的連接按鈕 ,單擊Plane對象,然後向上拖動鼠標,將連接線牽引至車身上時鬆開左鍵確認,車身會閃一下表示連接完成。重複上述步驟,將四個車輪和車身連接起來。這樣我們在轉動車身時,車輪和陰影將會跟著移動。
好了,下麵我們可以將汽車模型輸出為C3D文件了,在Right視圖中,選擇“File → Export”,輸入文件名為car_model,輸出類型為Cult3D Designer(C3D),單擊保存按鈕。彈出Cult3D輸出窗口(圖6),展開Materials節點,設置陰影材質的材質屬性為Constant,單擊Apply按鈕,提交修改。按Save按鈕保存C3D文件。OK,保存好文件,下期我們將在Cult3D Designer和Direcotr繼續完成剩下的操作。
我們在3DS MAX和Photoshop中對跑車的建模已經完成了,現在我們將繼續在Cult3D Designer(以下簡稱Cult3D)製作可交互的汽車場景,然後在Direcotr MX中完成媒體合成。
二、用Cult3D製作可交互的汽車場景
1.運行Cult3D,選擇“File →Add Cult3D Designer File”,在彈出的打開文件對話框中,選擇Car_model.c3d文件。
2.拖動Event Map窗口中的 World Start事件至右側的空白區域。創建一個新的World Start_1事件。
3.選擇Action窗口,展開Object Motion節點,從中拖動Arcball圖標到World Start_1事件上,然後鬆開鼠標。這樣兩者之間就建立了連接關係。
4.選擇Scene Graph窗口,展開RootNode節點,從中拖動“汽車” 圖標至Event Map窗口中的Arcball圖標上。
5.單擊預覽窗口的Run按鈕,你就可以任意拖動汽車,從不同的方位觀察汽車模型了(圖7)。下麵我們要來施加紋理行為,使汽車的顏色能夠動態地改變。
6.選擇Scene Graph窗口,展開Textures節點,從中找到Bule節點,Bule節點就是我們給車身賦予的紋理貼圖(圖8)。
7.在Bule節點圖標上雙擊,顯示紋理編輯窗口。此時藍色圖片就顯示在此窗口的下方(圖9),拖動Quality滑塊至最右邊,以最好的質量來顯示紋理。
8.分別選中Show Hotspots(顯示熱點)和Show Alter Ego(顯示改變的圖片)複選框,將打開Hotspots窗口和文件選擇窗口。
9.單擊File按鈕右側的Texture下拉按鈕。從下拉按鈕中選擇Blue紋理,則Blue紋理就顯示在文件選擇窗口中(圖9)。
10.單擊Hotspots窗口中的Add按鈕,將當前的紋理加為熱點。此時在Texture窗口中就出現了一個方框,這代表熱點範圍。
11.分別用鼠標向右下角拖動圖上的方框,使它正好和圖片大小一致。
12.單擊Hotspots窗口中的Acquire按鈕,把Blue圖片加入到Alter Ego框中。好了,第一種顏色我們已經設置好了,下麵我們要把紅色、灰色、黃色也加入進來。
13.單擊Texture窗口中的File按鈕,打開圖片選擇窗口,選中Red.jpg文件。
14.單擊打開按鈕,返回到紋理設置窗口。在File按鈕下,紅色的圖片就顯示出來了。
15.單擊Hotspots窗口中的Add按鈕,增加新的熱點,調整熱點區域大小與藍色圖片一致。單擊Actuire按鈕,加入紅色圖片。
16.重複8~10步驟,將Gray.jpg和Yellow.jpg文件也加入進來。
現在,Scene Graph窗口中的Textures節點下的Blue紋理就有了四個新的紋理節點,分別是我們前麵加入的藍色、紅色、灰色和黃色,效果如圖10所示。
17. 從Event Map窗口中,依次拖動四個Manual事件至窗口右側的空白區域,並分別更名為Event_blue、Event_red、Event_gray和Event_yellow。我們將在Director中利用腳本觸發這些事件。Cult3D的事件中,隻有Manual事件可以在外部程序(如Director)中觸發。
18.拖動Action窗口中Textures節點下的Toggle Hotspot’s Alter Ego圖表分別至Event Map窗口中的Event_blue,Event_red,Event_gray和Event_yellow事件上。
19.從Scene Graph窗口中的Textures節點下分別拖動Hotspot、Hotspot_1、Hotspot_2和Hotspot_3上,建立聯係,最後結果如圖10所示。
下麵就可以輸出為.co文件了,選擇“File →Save Internet file”選項,在彈出的保存文件窗口中設置文件名為CAR.co,單擊保存按鈕。
在彈出的保存設置窗口中,單擊Geometries標簽,選擇Select All按鈕。在Compression下拉菜單中選擇壓縮方式為Mesh Level 2,選中窗口下方的Use “Smart Save”選項,單擊Save按鈕進行保存。
三、在Direcotr中進行媒體合成
Cult3D場景製作好了後,剩下的事情交給Direcotr MX來完成。
1.啟動Direcotr MX,在電影屬性麵板中設置電影的大小和背景
2.選擇“Insert → Control → ActiveX”。
3.在控件選擇對話框中,選擇Cult 3D ActiveX Player控件(圖11),單擊OK按鈕。如果找不到該控件,請正確安裝Cult3D Viewer Plug-in。
4.彈出ActiveX屬性對話框,這裏可以定製控件的相關屬性。
5.單擊Custom按鈕,彈出屬性設置對話框(圖12)。該對話框提供了兩種連接到Cult3D場景的方式:嵌入方式(Embed)和鏈接方式。使用嵌入方式,Cult3D場景發布後將嵌入在可執行文件中,無須另外提供co文件,而使用鏈接方式,必須提供相應的.co文件。但是使用嵌入方式將增加可執行文件的大小,一般不提倡這麼做。
6.單擊Filename/URL後麵的瀏覽按鈕,選擇所需的場景文件,單擊打開按鈕。
7.選中View when Finished選項,當Cult完成著色後,將自動顯示。點擊 OK 回到編輯界麵,Cult3D物件已經顯示在角色麵板裏。
8.把Internal Cast 麵板裏Cult3D 物件的名字改為“3DCar”。
9.至此我們完成了控件屬性的設置。拖動ActiveX演員至舞台上,調整好精靈的尺寸。
10.設置第10幀的幀腳本為:
on exitFrame me
go to the frame
end
11.分別製作紅色、藍色、灰色和黃色四種顏色的圖片按鈕_red、按鈕_blue、按鈕_gray、按鈕_yellow,用於改變汽車的顏色。將這四個按鈕布置到舞台上的相應位置。
12.為“按鈕_red”演員添加演員腳本:
on mouseUp
TriggerEvent sprite“1”“event_red”
end
其中sprite1為Cult3D物體所在的通道,event_red是我們在Cult3D中定義的事件。
13.重複上述步驟,為每個演員都添上相應的腳本。
單擊播放按鈕,就可以在Direcotr中操作了,按鼠標右鍵可以放大或縮小看,按鼠標左鍵可以旋轉,左右鍵同時按下則可以移動汽車,感覺好像是在操縱真正的汽車(圖13)一樣,至此整個製作結束。