第六章 遊戲引擎導論

25
第第第 第第第第第第 第第第 第第第第第第 第第第第 第第第第第 第第第第第第 第第第第第第第第 第第第第第第 第第第 第第第 第第第 第第第第第第第 一,體、、、、 第第第第第第第第第第第第第第第第第 第第第第第第第第第 3D 第第 第第第第第第 (Quake3) 第第第第 (Doom3) 第第 第第第第第第第第第第第 第第第第第第第第第 。, 第第第 第第第第第第第第第第第第第第第第第第第第 3D 第第第第第第第 第第第第第第第第第第第 第第第第第第

Upload: september-harrington

Post on 03-Jan-2016

67 views

Category:

Documents


1 download

DESCRIPTION

第六章 遊戲引擎導論. 課前指引 遊戲引擎是一種概略名稱,玩家在遊戲中所體驗到的劇情、角色、美工、音樂、動畫及操作方式等內容都是經由遊戲引擎所直接所控制。有些引擎只負責處理3 D 圖像,比如雷神之槌( Quake3)、 毀滅戰士( Doom3) 遊戲。例如在遊戲開發過程中,如果提供繪圖引擎函式庫外,程式設計師就不需浪費大量時間去處理繁雜的3 D 繪圖與成像工作,可以專注於遊戲程式的細節與效能設計。. 章節大綱. 6-1 遊戲引擎簡介. 6-2 遊戲引擎發展史. 6-3 遊戲引擎功能簡介. 備註:可依進度點選小節. 6-1 遊戲引擎簡介. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第六章 遊戲引擎導論

第六章 遊戲引擎導論 第六章 遊戲引擎導論

課前指引遊戲引擎是一種概略名稱,玩家在遊戲中所體驗到的劇情、角色、美工、音樂、動畫及操作方式等內容都是經由遊戲引擎所直接所控制。有些引擎只負責處理 3D 圖像,比如雷神之槌(Quake3)、毀滅戰士 (Doom3)遊戲。例如在遊戲開發過程中,如果提供繪圖引擎函式庫外,程式設計師就不需浪費大量時間去處理繁雜的 3D 繪圖與成像工作,可以專注於遊戲程式的細節與效能設計。

Page 2: 第六章 遊戲引擎導論

章節大綱

備註:可依進度點選小節

6-1 遊戲引擎簡介

6-2 遊戲引擎發展史

6-3 遊戲引擎功能簡介

Page 3: 第六章 遊戲引擎導論

3

遊戲引擎在一套遊戲扮演的角色,和汽車引擎類似。 經過多年來的不斷演進變化,如今的遊戲引擎已經被發展成一種由許多子系統所共同構成的複雜框架系統。其系統從建立模型、畫面成像、行為動畫、光影處理、分子特效、物理演算、碰撞偵測、資料管理、網路連線。以及其它專業性的編輯工具與套件等等,它幾乎可以涵蓋了整個開發過程中所有的重要環節。

6-1 遊戲引擎簡介

Page 4: 第六章 遊戲引擎導論

4

遊戲引擎的特性一些遊戲開發者開始著手研究較為節省成本的方式。就是將前一款類似題材遊戲中某些部分的程式碼,拿來作爲新遊戲的基本框架,以降低開發時間與成本,這也是早期發展遊戲引擎的主要目的。 由於早期引擎開發的難度不高,遊戲公司通常都選擇自行開發符合自己產品製作需求的遊戲引擎。

6-1 遊戲引擎簡介

Page 5: 第六章 遊戲引擎導論

5

儘管 2D 引擎也有著相當久遠的歷史,例如「 Planescape : Torment 」 ( 中譯名為「異域鎮魂曲」 ) 、「 Baldur’s Gate 」 ( 中譯名為「博德之門」 ) 。上述這些遊戲引擎的應用範圍畢竟還是被侷限在『龍與地下城』風格的角色扮演遊戲。雖然都有著獨特的玩法與目的,但是這對於整個遊戲引擎的技術發展而言,尚且起不了什麼作用。

6-2 遊戲引擎發展史

Page 6: 第六章 遊戲引擎導論

6

遊戲引擎的推手遊戲引擎的真正誕生是起源於西元 1992 年。當時「德軍總部」這款遊戲開創了第一人稱射擊遊戲的大門。 由遊戲引擎歷經十多年的發展歷程來看,可以瞭解到推動遊戲引擎最大的功臣是來自於 3D 遊戲,特別就是第一人稱的 3D射擊遊戲。雖然 Doom 引擎在遊戲畫面上缺乏了足夠的細膩感,但是卻可以表現出驚人的臨場環境特效。

6-2 遊戲引擎發展史

Page 7: 第六章 遊戲引擎導論

7

遊戲引擎的授權風潮 1994 年, 3D Realms(原名為 Apogee) 公司使用了一個名為 Build 的引擎,並且該公司以 Build 引擎開發了毀滅公爵 (Duke Nukem 3D) 遊戲 。 由於 ID Software 公司在製作「毀滅戰士」系列的時候,它本身在引擎與遊戲市場上就獲得相當大的成功。而授權費又爲其公司帶來了一筆可觀的收入。 Quake 引擎不但是當時第一款完全支援多邊形模型、動畫和粒子特效的 3D 引擎。它所支援的效果不像是 Doom 和 Build那樣只有 2.5D 的效果而已,此外 Quake 引擎還是連線遊戲的始祖。

6-2 遊戲引擎發展史

Page 8: 第六章 遊戲引擎導論

8

遊戲引擎的未來趨勢目前引擎的發展重點放在單機版遊戲上。 好玩的遊戲不一定需要最好的引擎。因為最後決定一款遊戲是否成功的因素,是在於使用技術的人而不是技術本身。現今的遊戲研發商有了兩種分類:一種是完全投入遊戲引擎的開發;另一種則購買現成的引擎來製作遊戲。許多優秀的遊戲開發者正在退出遊戲開發的市場,並轉而進入引擎授權的時代。遊戲引擎只能為我們帶來遊戲技術的提升,而不能決定遊戲是否更加地好玩。

6-2 遊戲引擎發展史

Page 9: 第六章 遊戲引擎導論

9

遊戲引擎在遊戲中必須要處理一些複雜運算,而設計時所選用的演算法的優劣,會直接影響引擎的執行效能,並表現在整體遊戲的品質與執行流暢度。每一個遊戲引擎所提供的功能和特性都不盡相同,不過大致上來說,大部分的遊戲引擎都會具備以下功能。

6-3 遊戲引擎功能介紹

Page 10: 第六章 遊戲引擎導論

10

光影效果處理光影處理是指光源對遊戲中的人、地、物所展現的方式。也就是利用明暗法來處理畫面,這對於遊戲中所要呈現的美術風格有相當的影響力。 例如許多遊戲為了達到半透明效果,都會採用AlphaBlend 技術。也就是按照 "Alpha"混合向量的值來混合來源像素和目標像素。

6-3 遊戲引擎功能介紹

Page 11: 第六章 遊戲引擎導論

11

光學行為各物體間光線折射與反射,及光源的追蹤,都是光影處理的一環。一些優異的引擎還可以做到動態光源、彩色光源等進階的光學行為。 例如當遊戲中光線照射在遊戲人物皮膚上的透射與複雜的光線反應與質感表現。甚至於光源移動時,還能觀察到光線穿透人物皮肉較薄部分的差別,會呈現粉色的半透光現象。

6-3 遊戲引擎功能介紹

Page 12: 第六章 遊戲引擎導論

12

行為動畫系統功能完備的遊戲引擎也必須包含行為動畫系統,因為現實中角色的行為模式也被實現在遊戲,包含人物的行為模型。而且具有路徑規劃及人物間的感情交流等。通常可以將行為動畫系統區分成以下兩種,使得動畫設計者可以方便爲角色設計一些豐富動作造型。

6-3 遊戲引擎功能介紹

Page 13: 第六章 遊戲引擎導論

13

骨骼行為動畫系統是利用內建的骨骼資料來帶動物體而産生行為運動,也就是骨骼系統視為人體運動模擬的對象。例如人體是由頭、軀幹、手臂、腿等部分所組成 而這些部分又可區分成更小的單元,如果分別為這些單元定義出相關的可能運動模式,就可以組成整個人體複雜的運動行為。

6-3 遊戲引擎功能介紹

骨骼系統視為人體運動模擬的對象,引擎中要說明網格上的各支點的骨骼牽動與控制骨骼系統視為人體運動模擬的對象,引擎中要說明網格上的各支點的骨骼牽動與控制

Page 14: 第六章 遊戲引擎導論

14

機器人的骨架與反向動作物件通常這對於視覺效果要求不高的 3D 遊戲畫面,這種骨骼行為動畫系統比較節省電腦系統資源,而且運算速度快。

6-3 遊戲引擎功能介紹

Page 15: 第六章 遊戲引擎導論

15

模型行為動畫系統遊戲中還設計了一套人物的模型屬性發展系統,也就是「模型行為動畫系統」。對於一個遊戲中虛擬人物的模擬系統而言,最重要的核心技術就是如何在 3D世界中有效的呈現與控制一個虛擬人物的行為模型。如果想讓遊戲中的任何物體有逼近真實的行為與動作,就要更正確地模型化物體。

6-3 遊戲引擎功能介紹

人物動作編輯器可以協助美工人員編輯動作人物動作編輯器可以協助美工人員編輯動作

Page 16: 第六章 遊戲引擎導論

16

畫面成像畫面成像在遊戲引擎的所有環節中最複雜,而且它的運算結果是可以直接影響到我們最後所輸出的遊戲畫面。也就是說,擁有更細緻的成像引擎會讓遊戲畫面有更真實的刺激感,包括真實的天氣變化如刮風下雪和各種全新的地形環境。

6-3 遊戲引擎功能介紹

Page 17: 第六章 遊戲引擎導論

17

何謂畫面成像的 2D 視覺效果2D 的畫面是以固定正視角為主,並且人物的移動通常只有水平左右、垂直上下之分,像棒打豬頭、超級瑪莉二代、三代,以及早期任天堂的絕大多數遊戲都是 2D 遊戲的例子。

6-3 遊戲引擎功能介紹

Page 18: 第六章 遊戲引擎導論

18

何謂畫面成像的 2.5D 視覺效果2.5D 遊戲是利用某種視角來欺騙人類的視覺,就像下圖的小恐龍,它並不是正視角,而是採取 45度視角。

6-3 遊戲引擎功能介紹

2.5D 遊戲畫面呈現可以帶來 3D 視覺效果2.5D 遊戲畫面呈現可以帶來 3D 視覺效果

Page 19: 第六章 遊戲引擎導論

19

何謂畫面成像的 3D 視覺效果3D 遊戲會提供固定的幾個角度供玩家進行切換,在切換到 45 度角時,如果只單看一張畫面是很難去分別 2.5D 與 3D 的,當然必要時也能平視遊戲中的角色。

6-3 遊戲引擎功能介紹

45 度角俯視 80 度角俯視 平視

Page 20: 第六章 遊戲引擎導論

20

物理系統遊戲引擎中的物理系統可以讓遊戲中的物體在運動時,遵循某些自然界中特定的物理規律。 對於一套遊戲來說,物理系統可以增添遊戲的真實性及豐富程度。 在物理系統中會套用符合物理原理的演算法,並在遊戲中表達出自己所要效果。例如,粒子爆炸、碰撞、風動效果、重力加速度等物理現象之模擬。

6-3 遊戲引擎功能介紹

Page 21: 第六章 遊戲引擎導論

21

能量守恆定理

6-3 遊戲引擎功能介紹

視窗左缘,臨界座標 0

x <= 0,超出視窗 調整 x

x = 0

調整 x

視窗右缘,臨界座標 rect.right

x = rect.right-26

26 26

x >= rect.right-26 ,超出視窗

Page 22: 第六章 遊戲引擎導論

22

能量守恆定理執行結果

6-3 遊戲引擎功能介紹

Page 23: 第六章 遊戲引擎導論

23

碰撞偵測也是由遊戲引擎中的物理系統所切割出來的。主要用來偵測遊戲中各物體是否碰撞,並在某個有障礙物環境中,透過碰撞偵測與路徑搜尋,計畫可移動物體的移動路徑。 碰撞偵測在遊戲中應用的時機很多,比方說人物走到視窗的盡頭,或者碰觸到了其它的物體,會停住或往回走。碰撞偵測就是當遊戲中的兩個物體接觸後,遊戲引擎所作出的反應。

6-3 遊戲引擎功能介紹

Page 24: 第六章 遊戲引擎導論

24

網路與輸入裝置遊戲的輸入是來自玩家們的鍵盤、滑鼠、搖桿或其他外部的輸入信號。所以遊戲引擎就必須要包含處理玩家們輸入信號的技術。 如果某些遊戲還支援網路互連的話,網路功能也就會被包含在遊戲引擎之中。功能是用來管理伺服端 (Server) 與用戶端 (Client)之間的網路通訊。

6-3 遊戲引擎功能介紹

Page 25: 第六章 遊戲引擎導論

25

Q&A討論時間

本章結束