遊戲程式講義

Page 1

game
遊戲程式設計講義 u 1 1 1 1 1 1 NTUB DMD
pro g ramming

內容撰寫/二次審查/尋找資料

以初學著角度去分析

資料整合

影片剪輯/影片上傳

內容撰寫/一次審查/尋找資料

初步排版/圖片蒐集

錄製影片/爭取教學資源

排版編輯/線上電子書 尋找資料

工作分配 工作分配 ← ← ← ← ← ← ← ←
N112C410@NTUB.EDU.TW
唐湘婷
N112C423@NTUB.EDU.TW N112C401@NTUB.EDU.TW
黃冠智
辛柔槿
1 2 3
contents 前瞻免怕、Basic和Geometry差別............ 03 題目解析一.......................................... 04 創建材質與修改材質............................... 05 題目解析二 .......................................... 06 準備變量..............................................07 大家都長一樣,就它是九宮格....................08 生成方塊............................................. 09 設定材質在生成物上,並對答案顯示Win和Lost..... 12 謝致...................................................13

前瞻免怕、Basic和Geometry差別在:

它在Unreal裡面是一個「預先製作好的模型」, 就是一般的 方塊、圓形、圓錐柱等,課程教藍圖用Actor類型,就需一個淸 晰可見的載體,就是大家熟悉的拉方塊下去當載體,創建Actor 類別藍圖,以利後續做事。

Basic Geometry Basic

預先製作好的模型

創建Actor類別藍圖 1 2 3

以利後續做事

←←← ←←

Geometry幾何,是幫助你「原件製作的組件」,等於不需外 部建模軟體的「可朔地基」,常用於Level裡的「地板」和Unreal裡 大型建築結構用,也是期中考時會拉這一類方塊當地板編輯的原 因。

原件製作的組件 1

可朔地基
當地板編輯
03
2
3

題目解析一:

First 01

←←←

「存好Level是第一,題目出需求,想需求條件是第二 」 根據題目,會有參照圖,在翻出相同與不相同的塊,會顯示 Win和Lost。

即需要按一個開始鈕時,生成出一定數量的牌,再根據翻牌 結果顯示Win和Lost。

First 02

←←

依題目創建開始鈕、生成塊、對照體共三個方塊( 講義 範本取名CB:受擊後開始的按鈕、XO:被生成出的塊、ass :參照答案方塊,名字自訂,易分辨就好)

(題目有三種圖示,所以創建三種材質)

04

First 01

←←←

把圖片拖移進UE4裡,在介面下面空白處點右鍵, 找到Material,雙擊進入材質球設定。

提醒,

下面區域是整個包含專案 、Level等檔案存放各材料的存處區,

介面右上角的開啟對應level的載入區,一定要記得在下方按Save All, 才能保護好你的Level和藍圖喔!

First 02

←←

到材質修改介面,把剛剛拖進存處區的圖片也拖曳 進來,連上材質,Save後一樣做其餘的材質球, 講義 範例取名「M_01、M_2、M_3」。

創建材質與修改材質:
05

First 01

←←←

看題目,生成5乘5的塊,那麼「在哪裡生成」、「生成間 隔」就是第一個要淸楚的點。

提醒

01 在介面右側「Transform轉換」裡「Location座標 Z一般是上下,XY在鏡頭不同角度下左右和前後是不同的, 假如左右是X,確認正負數誰向左誰向右, Y就會是前後, Y的正負數誰向前向後,後續才不會搞混生成要編輯XY哪 一個節點的數値。

02 另外,老師的案例是用2D遊戲模板Puzzle去做,所 以大部分會使用到滑鼠點擊Actor觸發的事件節點。

如果自己開的是第一人稱射擊模板First Person,點擊 Actor觸發沒有效果很正常,因為滑鼠點它和開槍打到它 是不一樣的,下兩張是藍圖介面裡兩種受擊事件節點叫法。

02 02

01

題目解析二:
06

First 01

←←←

要在某位置生成一定數量的方塊並隔開並排,現在

有三個變量是我們要確定的座標數値、間距數値、 生

成5乘5共25個可塡入値(後面翻牌套材質用)等。

First 03

First 02

←←

剛才提醒的確認左右軸是X或Y軸,現在將確定生 成的位置數入在「Vector向量」變量裡, 要往確定座標 的左右和向上生成,前後軸的數値後續不會做加減, 要分淸楚喔!

間距數値,在開始鈕的藍圖裡新增浮點數的變量, 講義範例命名「dis」

(通常100、120、200的數値,自行調整即可)

此作為備忘錄,後續會使用其他變量和輸入座標的方式 01 02 03 04 07

First 04

間距數値,在開始鈕的藍圖裡新增浮點數的變量, 講義範例命名「dis」

3

(通常100、120、200的數値,自行調整即可)

準備變量:

大家都長一樣,就它是九宮格:

First 01

←←←

大家從藍圖裡的Variables變量處新增各種變量,在選 擇類型旁邊,類似膠囊圖案下選九宮格圖案。

First 02

什麼是Array變量?

←←

和一個淸單類似,排列從0開始計數,所以0算第一個値, 1算第二個値,2是第三個値,以此類推。

它的作用是方便使用者在變量做設定時,不用重複操作大量 的單一操作,直接計大量內容有條序地在變數裡,

所以Array不是單一個値,是一組數値。

因為Array是一組値而不是單一的,它連其他工具時,會被要 求讀取出哪一個値,才能用它去連其他東西。

指定的方式是叫出Get a copy,Get a copy生出的大方塊, 幫助你讀取裡面的所有値,讓它可以配合組件去連其他工具

不是單一個値

是一組數値 ← ←

Array
08

生成方塊:

First 01

←←←←←

已知我們有25個方塊,每個材質都是隨機,所以在「開 始鈕」藍圖(講義範例CB)先把材質隨機順序列出來, 並空 白處右鍵新增一個Custom Event儲存,命名自取, 講義 範例取「int_random」

First 03

←←←

For loop的後面數値(綠色線)連上Get a copy, 代表 迴圈跑出來的數値,會載入Array變量裡,剛叫出的變量再 拉線空白處叫出Add和Set Arrat Elem

For Loop的Index也接上Add,意思是把迴圈的 數値與25個値加混在一起變為一個値。

First 05

「隨機生成材質數値」的事件做完後(講義範例 int_random事件), 一樣在「開始鈕」藍圖(講義範例CB)來用迴圈製作生成25方塊。

First 02

←←←←

即這個事件裡, 我們需要25個方塊的數値被發布隨機 跑3次(材質的)

For loop輸入0到24,共25値, 剛才創建Array變量get出 來,拉線叫出Get a copy

First 04

←←

再將Add的數値接上Set Arrat Elem,等於把Array變量 內的東西與迴圈加總等於的數値載入至 Set Arrat Elem 工具 裡,再創建一個 Random Integer in Range於範圍內的隨機 數,輸入0到2共三個値,連上 Set Arrat Elem 剛才輸入進的 數値就會在隨機0道2三個値間跑

3
09

First 01

←←←

一樣先創建Custom Event命名自取,講義範例取「XOC」 創兩個迴圈與Spawn Actor工具,Spawn Actor選「被生 成方塊」的藍圖並對Spawn Actor的座標右鍵拆開 (Split Struct Pin)

First 03 生成方塊:

←←

左右軸處理好,換向上生成5排方塊了, 按上面原理也 將第二個迴圈與Get間距出來後相乘再相加Z軸的數値,因 為是向上加,數値一定是正數,(如果是向下生那就是負數的道理) 相加工具再連上Spawn Actor的Z軸。

First 02

←←←

因為5乘5,用兩個迴圈跑0到4,一個迴圈等於一個5値 ,要往左右生長的迴圈與間距變量互乘,先把間距變量get 出來,拉線打出「*」相乘工具,再拉出「+」並將座標左右軸 的數値打在相加的欄位裡,連上Spawn Actor的XYZ中「你 當作左右軸」的數値,而另一個塡上對應的數。

意思是左右軸的座標一直加對應間隔,連續5次動作, 往 旁邊生成5個方塊

(講義範例Y軸是左右X是前後,相加工具連Y軸,X打上座標對應數)

First 04

←←

要將生成的25個方塊上材質,把生出的25方塊的値給 Array並送給「被生成方塊」的藍圖操作,需要左右軸迴圈乘 上5次,並與向上的迴圈相加,載進Array叫出的Get a copy。

First 05

切換至「被生成方塊」的藍圖新增一個變量,用來接收迴圈生 成出方塊的數値,數値為初始狀態,並將「Instance Editable」、 「Expose on Spawn」打開,一個是我們熟悉的眼睛,一個是可 在Spawn工具上編輯,命名自取,講義範例取「st」

10

←←←

回到「開始鈕」藍圖,可以看見 Spawn Actor 工具 上已有剛新建的變量, 沒有的話除了檢查是否選擇被 生成方塊的藍圖外,也可以對Spawn Actor工具右鍵 刷新。

First 02

First 01 ←←

並將剛才兩個迴圈相加到Array拉出的Get値, 連 到出現的變量値上。

First 03

現在已經完成「生成25方塊」和「取出25方塊的値」 兩件事,現在一樣在開始鈕的藍圖創建一個Component Hit 事件,拉出白線輸入存儲隨機材質順序和生成的兩個 事件名稱。

(講義範例取名:Int_Random、XOC,打出事件名稱即可)

02 03

生成方塊:
11
01

設定材質在生成物上,並對答案顯示Win和Lost:

First 01

←←←

有生成出方塊後,到「被生成出的方塊」藍圖裡,一樣創建Component Hit 事件,創建並連上Set Material工具,其中Material拉線出來打Select叫出工 具, 並輸入好三個材質進去,位置不夠按旁邊Add pin增加。

First 02

←←

之前有在「開始鈕」藍圖裡,將兩個迴圈加進Array叫出Get a copy並載入進 一個在「被生成出方塊」藍圖裡新增的變量中(講義範例取名st變量), 將這個裝 著載路Array數値的變量連上Select工具的Index裡 意思是將之前混和好對應進Array的値(順序),作為選擇貼上材質的數値。

接下來要來對答案,來到「參照答案方塊」的藍圖內,新增一個變量 (講義範例命名Axo)一樣接上Random Integer in Range設定0到2共三個値, 創建並連上Material和Select。

12

設定材質在生成物上,並對答案顯示Win和Lost:

此舉動是設置材質到題目裡參照的方塊上,接著回到「被生成出的方塊」藍圖 裡,要與參照對應能顯示Win或Lost,我們在Material後面接上

Get All Actor of Class,把參照答案方塊的藍圖載入進來。

叫出Get a copy讀出剛才在參照答案方塊新建的變量(講義範例命名Axo), 再 空白處右鍵打「==」叫出等於,另外一端接Array接進的變量(講義範例命名st), 等於後面接Branch分支。

意思是只要翻出排隨機跑出的値,與參照答案的隨機値是否完全相同

如果是相同,即Branch上的True,接一個Print String印出文字,寫Win, 相反不是相同,即False接上Print String打出Lost

(講義範例接上Set Text在方塊上顯示Y或N一樣是指Win或Lost) 在這裡全部Compile串接上,

記得全部Save好到播放Play測試看看, 並多添加自己的創意吧! ← ← ←

←←←
First 01 ←← First 02
13

謝致

感謝學長用心的教我們程式作業,也感謝 兩位同學花費他們的業餘時間去處力龐大 學習資料及重點筆記。

製作這本書的目的也只是想要讓大家能更 好的理解解題思路讓大家能更快找到問題 去解決在此我再次感謝學長以及兩位同學 願意花費時間的教學及指導謝謝!您辛苦 了

14

thanks

NTUB DMD

Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.