當前位置:首頁 >教程首頁 > 遊戲程序 > Unity3D遊戲開發工程師班 >UDK引擎介紹和模型導入(一)

UDK引擎介紹和模型導入(一)

發布時間:2018-11-17 19:57:24

 



        UnrealDevelopmentKit(虛幻引擎開發工具包),簡稱UDK,是一套強大並免費的遊戲引擎開發套件,可以用來製作高端的3D遊戲或者場景展示。不過,如果你要製作商業遊戲,並且獲得不錯的收益,UDK官方會樂於找你分享所得。

 

 

        UDK直接支持針對蘋果Iphone平台的遊戲開發。
        有關UDK的強大功能和一些基本操作,都能在網上找到不少資料,這裏我僅簡介UDK的基本構造,以及UDK和Maya的一些交互操作。

 

        教程思路

 

 

        【UDK的構成】
        【Maya靜態模型導入UDK中】
        1.UDK對應Maya的接口插件的使用。
        2.導入ase格式的靜態模型文件。
        3.創建UDK材質紋理。
        4.賦予模型材質。
        5.UDK場景中使用模型。
        6.添加模型碰撞包裹盒。
        7.材質的雙麵顯示設置。
        8.遊戲測試。


        【UDK的構成】

 

        雖然UDK官方提供了中文界麵,但是由於軟件內核對中文支持仍不完善,某些時候會出現不識別的方塊,因此建議使用英文界麵,包括工程名稱也要使用英文字母或數字。

 

 #p#e#

 

 

        順帶一提,UDK官方也提供了中文頁麵的在線幫助文檔,但使用拚音輸入法的漢化人員經常會打出些啼笑皆非的怪詞組……當然,官方也一直在完善。

 

 

        UDK遊戲編輯器的界麵很像流行的三維軟件界麵,如maya,3dsMax(個人看來,更類似Maya)。UDK的視圖操作比較個性,它的移動、旋轉、縮放快捷鍵是通過空格鍵來切換的;場景的瀏覽,由鼠標左鍵和右鍵的組合來完成。不過按住左鍵然後拖動鼠標的方式會顯得不便,因此通常按住鼠標右鍵不放,配合鍵盤的QWEASDZC鍵會更實用,就好象是第一人稱FPS遊戲中控製角色在場景中行進一樣。右鍵+(Q:下降;E:上升;W:前進;A:左移;D:右移;S:後退;Z:縮小鏡頭焦距(增大透視);C:拉大鏡頭焦距(長焦鏡頭)。按住鍵盤的U鍵,拖動左中右鍵,是視圖的移動,旋轉,縮進操作;按住L鍵,鼠標左鍵拖動可以圍繞所選物體進行觀察。
        鍵盤的大小寫狀態對快捷鍵操作無影響。
        UDK中創建幾何體,一個重要的概念就是Brush(筆刷)。字麵意思上是筆刷,但其實是一些虛擬的網格線,必須通過UDK左邊工具欄的CSG功能才能轉為幾何實體。CSG功能其實也就類似三維動畫軟件中的布爾運算。UDK具備一定的建模功能,但是使用起來不是很方便,因此除了一些地形和大麵積圍牆,多數情況下,我們會通過其他三維動畫軟件來構建場景模型。

 

  #p#e#

 

        UDK中通過類似Maya的筆刷工具,繪製複雜的地形起伏和紋理疊加,可以達到高精度的畫麵效果。

 

 

        與三維動畫軟件一樣,UDK對場景的渲染,也是需要加入材質,貼圖,燈光的設定。而除了實時預覽效果,UDK的環境處理能力也是十分的強大(大氣,薄霧,景深,閉塞,畫麵後處理等),它甚至可以直接進行影視級的CG動畫渲染。

 

 

 #p#e#

 

 

        在遊戲渲染前,UDK會將燈光及陰影效果烘焙到場景物體上,這樣可以節省遊戲時的計算,因此在執行遊戲測試時必須先對模型和燈光執行重建命令(BuildGeometry和BuildLighting)--這包括模型位置的改變,新建,刪除,以及燈光設置的改變。

 

 

        UDK提供了很多遊戲常用的功能,多數集中在內容瀏覽器的Actor欄中。在構建場景中的遊戲元素時,我們會經常使用到Actor窗口中的各種功能節點。

 

 #p#e#

 

        UDK對材質和觸發事件的編輯是通過節點連接實現的。UDK的事件編輯器稱為Kismet,就像Maya的節點連接操作一樣,我們通過節點的組合就能完成多數遊戲係統的構建,可以在不使用代碼編寫的情況下製作出一款個性的遊戲。

 

 

 

        Kismet中,有一個稱為Matinee的節點,它類似maya的驅動關鍵幀功能:通過設置條件,觸發預設的動畫。例如,創建一個Trigger,可設定當角色經過時發生某個事件動畫。不過要注意,UDK添加動畫關鍵幀和通常的三維軟件不太一樣,它是先設置關鍵幀,然後再改變當前幀的物體形態。

 

 #p#e#

 

        UDK中有屬於自己的粒子特效係統,使用上和maya的粒子係統相似,可為遊戲提供豐富的粒子特效。

 

 

        個人認為UDK更適合於3D美工人員--編程人員往往會表示無趣,盡管UDK也提供了強大的腳本語言。
        UDK中的組可以多次使用同樣的名稱,因為引擎不會引用這些組名稱,而是直接調用資源包。因此,資源包的內容必須使用唯一的名稱。並且,為了更好的兼容各個遊戲平台,一個資源包盡量不要大於2G。

 

 

 #p#e#

 

        【Maya靜態模型導入UDK中】

 

 

        雖然UDK能直接導入FBX這個常用的模型格式(注:這裏說的FBX不包含骨骼動畫),但是一般不建議那麼做,因為導入後的模型會自動分塊。

 

        1.UDK對應Maya的接口插件的使用


        在UDK的安裝目錄中,例如C:ProgramFilesUDK_2011_06BinariesActorXMaya2011_x64中,找到名稱為“ActorX.mll”的文件,將它複製到Maya的插件目錄中:C:Program FilesAutodeskMaya2011inplug-ins。

 

 

        當通過Maya的插件管理器加載ActorX.mll後,在maya的MEL命令輸入欄中輸入:axmesh,即可調用接口的控製麵板。
        注意,當調用UDK的Maya接口麵板,是不能再選擇場景中的模型的,因此要在開啟該麵板前完成模型選擇。
        要導出選擇的場景模型,勾選SelectedItemsOnly,Auto triangulate,Obey hard edges(convert to smoothing groups),點擊SetDefaultOutputPath按鈕選擇文件導出路徑,然後執行ExportMesh,完成Maya模型到UDK網格的構建。

 

 

        2.導入ase格式的靜態模型文件


        點擊內容瀏覽器左下角的Import按鈕,導入創建好的ase文件。導入的路徑和名稱設置要遵循UDK資源包的命名規則。

 

 #p#e#

 

        雙擊導入的模型,可以查看模型的外觀。

 

 

        通過接口將Maya中的模型導入UDK場景中,對應的尺寸比例是1:1的,也就是maya中物體是10厘米,導入UDK中也是10厘米長。為了能在導入模型後使之位於地形之上,maya中的模型應處於世界網格的向上一側,也就是translateY>=0。


        3.創建UDK材質紋理


        新建一個材質,然後分別導入貼圖。

 

 

        漫反射貼圖使用默認設置即可(仍要注意命名),而法線貼圖,則應將CompressionSettings設置為TC_Normalmap,同時勾選CompressionNoAlpha,忽略透明通道的計算。

 

#p#e#

 


        雙擊之前新建的材質,將導入的兩張貼圖分別連接到材質的相應屬性上,然後點擊左上角的綠色小勾按鈕,執行材質更新。
        將漫反射貼圖的Alpha屬性連接到材質的OpacityMask屬性,然後將材質的BlendMode設置為BlendMasked。

 

 

        4.賦予模型材質


        雙擊模型,在彈出的網格編輯器中,找到LODInfo->...->Material,可以賦予模型新的材質:先在內容瀏覽器中選擇新建的材質,然後點擊綠色小箭頭按鈕(或者通過Ctrl+C和Ctrl+V的快捷鍵操作,將材質名稱粘貼到文本框中)。

 

 #p#e#

 

        5.UDK場景中使用模型


        在ContentBrowser中,將賦予了材質的模型直接用鼠標左鍵拖入場景中。

 

 

        6.添加模型碰撞包裹盒


        默認情況下,導入的模型可進行粒子碰撞,但不具備角色碰撞屬性,角色會穿透物體。在網格編輯器中,執行Collsion,選擇合適的碰撞類型即可(取決於模型的外輪廓)。顯示碰撞框可查看物體的碰撞包裹範圍。

 

 

        還有一種創建模型碰撞包裹盒的方法,那就是在導入模型到UDK前,通過Maya建立。在maya中創建一個簡單幾何體,將物體包裹,然後在該幾何體的名稱後加入後綴“_UCX”,按之前axmesh導出模型即可(注意,字母是大寫,下劃線為英文輸入法狀態輸入)。

 

 #p#e#


        包裹用的幾何體不會在遊戲中被渲染,並且可以刪除部分麵實現特殊的碰撞效果,如木桶。但要注意,盡量保證碰撞幾何體不發生重疊,也不包含凸麵(內夾角大於180度),否則碰撞會計算出錯。

 

  


        當將網格編輯器中的SourceFileTimestamp下的UseSimpleBoxCollision,UseSimpleLineCollision,UseSimpleRigidBodyCollision關閉,UDK將會按照每一個多邊形麵進行碰撞計算,這會極大的消耗資源,因此要慎重;如果沒有碰撞盒或碰撞模型,則不會發生碰撞。UDK對於軟件接口的碰撞盒製作有如下規則:
        UBX 盒子圖元:盒子可以使用 MAX 中的 Box(盒子) 物體類型或者使用 Maya 中的 Cube(立方體) 多邊形圖元來創建。 您不能以任何方式移動頂點或者使其發生變形來使它成為不是正規圖元的其它形狀,否則它將不能正常工作。
USP 球體圖元:球體可以使用 Sphere(球體) 物體類型進行創建。 球體根本不需要有太多的分段(分為 8 段比較合適),它將會為碰撞轉換為真正的球體。 就像盒子一樣,您不能到處移動單獨的頂點。
        UCX 凸麵網格物體圖元:凸麵體可以是任何完全閉合的凸麵 3D 圖形。 比如,一個盒子可以是一個凸麵物體。 下麵的圖表解釋了什麼是凸麵體及什麼不是凸麵體:

 

 

 

        7.材質的雙麵顯示設置


        遊戲默認的背麵是隱藏的,如果不想讓模型出現單麵消失的現象,可以勾選啟用材質的TwoSided功能。

 

 #p#e#

 

 

        8.遊戲測試


        加入燈光,構建場景元素,測試遊戲。

 

 

 

 

        本教程完。

 

华体会hth体育网 賞析
  • 2101期學員李思庭作品

    2101期學員李思庭作品

  • 2104期學員林雪茹作品

    2104期學員林雪茹作品

  • 2107期學員趙淩作品

    2107期學員趙淩作品

  • 2107期學員趙燃作品

    2107期學員趙燃作品

  • 2106期學員徐正浩作品

    2106期學員徐正浩作品

  • 2106期學員弓莉作品

    2106期學員弓莉作品

  • 2105期學員白羽新作品

    2105期學員白羽新作品

  • 2107期學員王佳蕊作品

    2107期學員王佳蕊作品

專業問題谘詢

你擔心的問題,火星幫你解答

微信掃碼入群領福利

掃碼領福利最新AI資訊

點擊谘詢
添加老師微信,馬上領取免費課程資源

1. 打開微信掃一掃,掃描左側二維碼

2. 添加老師微信,馬上領取免費課程資源

×

同學您好!

您已成功報名0元試學活動,老師會在第一時間與您取得聯係,請保持電話暢通!
確定