內容撰寫/二次審查/尋找資料
以初學著角度去分析
資料整合
影片剪輯/影片上傳
內容撰寫/一次審查/尋找資料
初步排版/圖片蒐集
錄製影片/爭取教學資源
排版編輯/線上電子書 尋找資料
前瞻免怕、Basic和Geometry差別在:
它在Unreal裡面是一個「預先製作好的模型」, 就是一般的 方塊、圓形、圓錐柱等,課程教藍圖用Actor類型,就需一個淸 晰可見的載體,就是大家熟悉的拉方塊下去當載體,創建Actor 類別藍圖,以利後續做事。
內容撰寫/二次審查/尋找資料
以初學著角度去分析
資料整合
影片剪輯/影片上傳
內容撰寫/一次審查/尋找資料
初步排版/圖片蒐集
錄製影片/爭取教學資源
排版編輯/線上電子書 尋找資料
前瞻免怕、Basic和Geometry差別在:
它在Unreal裡面是一個「預先製作好的模型」, 就是一般的 方塊、圓形、圓錐柱等,課程教藍圖用Actor類型,就需一個淸 晰可見的載體,就是大家熟悉的拉方塊下去當載體,創建Actor 類別藍圖,以利後續做事。
預先製作好的模型
創建Actor類別藍圖 1 2 3
以利後續做事
Geometry幾何,是幫助你「原件製作的組件」,等於不需外 部建模軟體的「可朔地基」,常用於Level裡的「地板」和Unreal裡 大型建築結構用,也是期中考時會拉這一類方塊當地板編輯的原 因。
原件製作的組件 1
題目解析一:
「存好Level是第一,題目出需求,想需求條件是第二 」 根據題目,會有參照圖,在翻出相同與不相同的塊,會顯示 Win和Lost。
即需要按一個開始鈕時,生成出一定數量的牌,再根據翻牌 結果顯示Win和Lost。
依題目創建開始鈕、生成塊、對照體共三個方塊( 講義 範本取名CB:受擊後開始的按鈕、XO:被生成出的塊、ass :參照答案方塊,名字自訂,易分辨就好)
(題目有三種圖示,所以創建三種材質)
把圖片拖移進UE4裡,在介面下面空白處點右鍵, 找到Material,雙擊進入材質球設定。
提醒,
下面區域是整個包含專案 、Level等檔案存放各材料的存處區,
介面右上角的開啟對應level的載入區,一定要記得在下方按Save All, 才能保護好你的Level和藍圖喔!
到材質修改介面,把剛剛拖進存處區的圖片也拖曳 進來,連上材質,Save後一樣做其餘的材質球, 講義 範例取名「M_01、M_2、M_3」。
看題目,生成5乘5的塊,那麼「在哪裡生成」、「生成間 隔」就是第一個要淸楚的點。
提醒
01 在介面右側「Transform轉換」裡「Location座標 Z一般是上下,XY在鏡頭不同角度下左右和前後是不同的, 假如左右是X,確認正負數誰向左誰向右, Y就會是前後, Y的正負數誰向前向後,後續才不會搞混生成要編輯XY哪 一個節點的數値。
02 另外,老師的案例是用2D遊戲模板Puzzle去做,所 以大部分會使用到滑鼠點擊Actor觸發的事件節點。
如果自己開的是第一人稱射擊模板First Person,點擊 Actor觸發沒有效果很正常,因為滑鼠點它和開槍打到它 是不一樣的,下兩張是藍圖介面裡兩種受擊事件節點叫法。
02 02
01
要在某位置生成一定數量的方塊並隔開並排,現在
有三個變量是我們要確定的座標數値、間距數値、 生
成5乘5共25個可塡入値(後面翻牌套材質用)等。
剛才提醒的確認左右軸是X或Y軸,現在將確定生 成的位置數入在「Vector向量」變量裡, 要往確定座標 的左右和向上生成,前後軸的數値後續不會做加減, 要分淸楚喔!
間距數値,在開始鈕的藍圖裡新增浮點數的變量, 講義範例命名「dis」
(通常100、120、200的數値,自行調整即可)
此作為備忘錄,後續會使用其他變量和輸入座標的方式 01 02 03 04 07
間距數値,在開始鈕的藍圖裡新增浮點數的變量, 講義範例命名「dis」
3
(通常100、120、200的數値,自行調整即可)
大家從藍圖裡的Variables變量處新增各種變量,在選 擇類型旁邊,類似膠囊圖案下選九宮格圖案。
什麼是Array變量?
和一個淸單類似,排列從0開始計數,所以0算第一個値, 1算第二個値,2是第三個値,以此類推。
它的作用是方便使用者在變量做設定時,不用重複操作大量 的單一操作,直接計大量內容有條序地在變數裡,
所以Array不是單一個値,是一組數値。
因為Array是一組値而不是單一的,它連其他工具時,會被要 求讀取出哪一個値,才能用它去連其他東西。
指定的方式是叫出Get a copy,Get a copy生出的大方塊, 幫助你讀取裡面的所有値,讓它可以配合組件去連其他工具
不是單一個値
是一組數値 ← ←
已知我們有25個方塊,每個材質都是隨機,所以在「開 始鈕」藍圖(講義範例CB)先把材質隨機順序列出來, 並空 白處右鍵新增一個Custom Event儲存,命名自取, 講義 範例取「int_random」
For loop的後面數値(綠色線)連上Get a copy, 代表 迴圈跑出來的數値,會載入Array變量裡,剛叫出的變量再 拉線空白處叫出Add和Set Arrat Elem
For Loop的Index也接上Add,意思是把迴圈的 數値與25個値加混在一起變為一個値。
「隨機生成材質數値」的事件做完後(講義範例 int_random事件), 一樣在「開始鈕」藍圖(講義範例CB)來用迴圈製作生成25方塊。
即這個事件裡, 我們需要25個方塊的數値被發布隨機 跑3次(材質的)
For loop輸入0到24,共25値, 剛才創建Array變量get出 來,拉線叫出Get a copy
再將Add的數値接上Set Arrat Elem,等於把Array變量 內的東西與迴圈加總等於的數値載入至 Set Arrat Elem 工具 裡,再創建一個 Random Integer in Range於範圍內的隨機 數,輸入0到2共三個値,連上 Set Arrat Elem 剛才輸入進的 數値就會在隨機0道2三個値間跑
一樣先創建Custom Event命名自取,講義範例取「XOC」 創兩個迴圈與Spawn Actor工具,Spawn Actor選「被生 成方塊」的藍圖並對Spawn Actor的座標右鍵拆開 (Split Struct Pin)
左右軸處理好,換向上生成5排方塊了, 按上面原理也 將第二個迴圈與Get間距出來後相乘再相加Z軸的數値,因 為是向上加,數値一定是正數,(如果是向下生那就是負數的道理) 相加工具再連上Spawn Actor的Z軸。
因為5乘5,用兩個迴圈跑0到4,一個迴圈等於一個5値 ,要往左右生長的迴圈與間距變量互乘,先把間距變量get 出來,拉線打出「*」相乘工具,再拉出「+」並將座標左右軸 的數値打在相加的欄位裡,連上Spawn Actor的XYZ中「你 當作左右軸」的數値,而另一個塡上對應的數。
意思是左右軸的座標一直加對應間隔,連續5次動作, 往 旁邊生成5個方塊
(講義範例Y軸是左右X是前後,相加工具連Y軸,X打上座標對應數)
要將生成的25個方塊上材質,把生出的25方塊的値給 Array並送給「被生成方塊」的藍圖操作,需要左右軸迴圈乘 上5次,並與向上的迴圈相加,載進Array叫出的Get a copy。
切換至「被生成方塊」的藍圖新增一個變量,用來接收迴圈生 成出方塊的數値,數値為初始狀態,並將「Instance Editable」、 「Expose on Spawn」打開,一個是我們熟悉的眼睛,一個是可 在Spawn工具上編輯,命名自取,講義範例取「st」
回到「開始鈕」藍圖,可以看見 Spawn Actor 工具 上已有剛新建的變量, 沒有的話除了檢查是否選擇被 生成方塊的藍圖外,也可以對Spawn Actor工具右鍵 刷新。
並將剛才兩個迴圈相加到Array拉出的Get値, 連 到出現的變量値上。
現在已經完成「生成25方塊」和「取出25方塊的値」 兩件事,現在一樣在開始鈕的藍圖創建一個Component Hit 事件,拉出白線輸入存儲隨機材質順序和生成的兩個 事件名稱。
(講義範例取名:Int_Random、XOC,打出事件名稱即可)
02 03
設定材質在生成物上,並對答案顯示Win和Lost:
有生成出方塊後,到「被生成出的方塊」藍圖裡,一樣創建Component Hit 事件,創建並連上Set Material工具,其中Material拉線出來打Select叫出工 具, 並輸入好三個材質進去,位置不夠按旁邊Add pin增加。
之前有在「開始鈕」藍圖裡,將兩個迴圈加進Array叫出Get a copy並載入進 一個在「被生成出方塊」藍圖裡新增的變量中(講義範例取名st變量), 將這個裝 著載路Array數値的變量連上Select工具的Index裡 意思是將之前混和好對應進Array的値(順序),作為選擇貼上材質的數値。
接下來要來對答案,來到「參照答案方塊」的藍圖內,新增一個變量 (講義範例命名Axo)一樣接上Random Integer in Range設定0到2共三個値, 創建並連上Material和Select。
設定材質在生成物上,並對答案顯示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測試看看, 並多添加自己的創意吧! ← ← ←
感謝學長用心的教我們程式作業,也感謝 兩位同學花費他們的業餘時間去處力龐大 學習資料及重點筆記。
製作這本書的目的也只是想要讓大家能更 好的理解解題思路讓大家能更快找到問題 去解決在此我再次感謝學長以及兩位同學 願意花費時間的教學及指導謝謝!您辛苦 了