從零開始學虛幻4遊戲開發系列23

從零開始學虛幻4遊戲開發系列23

來自專欄笨貓快樂學編程

歡迎繼續我們的學習。

在這一課的內容中,我們將添加一些障礙物,讓遊戲增加點挑戰性~

下面是我們用作障礙物的紋理貼圖:

打開BP_Tunnel,在Components面板處添加一個Static Mesh組件,並將其命名為WallMesh。

接下來在Details面板中將Static Mesh的屬性更改為SM_Hole_01。

然後將Location屬性設置為(2470,0,0)。這樣就會讓障礙物出現在隧道的末端。

為了讓遊戲變得更加有趣一點,作為障礙物的牆最好可以旋轉。

在My Blueprint面板處添加一個新的Float類型的變數,並將其命名為RotateSpeed。將Default Value設置為30。

接下來切換到Event Graph視圖,找到Event Tick節點,並創建以下的設置:

這樣一來,就可以讓WallMesh每幀旋轉指定的次數。

點擊藍圖編輯器上的Compile按鈕,然後返回到主編輯器。按下Play按鈕來查看旋轉的牆壁。

接下來讓我們給這些牆加點花樣。

創建不一樣的牆

說到創建不一樣的牆,或許你第一時間想到的是為每個不同的牆創建一個新的藍圖。其實不然,只需要將當前的WallMesh隨機化就好。

打開BP_Tunnel,創建一個新的函數,將其命名為RandomizeWall。接下來創建如下的連線:

顧名思義,Set Static Mesh節點的作用就是將WallMesh設置為所提供的mesh。

為了創建一系列的static mesh,我們需要用到Select 節點。

左鍵從New Mesh埠拖出一條線,然後添加一個Select 節點如下:

使用Select節點,可以讓我們設置一系列的選項。其中Index處的輸入值決定了Select節點的輸出選項。

因為我們現在有四種wall mesh可以用,所以需要再創建兩個選項埠。只需在Select節點上右鍵單擊,然後選擇Add Option Pin即可。重複這個操作,直到Select節點上出現四種選項。

接下來將每個選項分別按照如下方式來設置:

Option 0: SM_Hole_01

Option 1: SM_Hole_02

Option 2: SM_Hole_03

Option 3: SM_Hole_04

好了,現在可以讓我們選擇其中的一種隨機選項。

隨機生成牆

我們可以使用Random Integer in Range節點來獲取一個隨機數,該節點將返回在Min和Max之間的一個隨機數。

在視圖中添加一個Random Integer in Range節點,然後將其連接到Select節點的Index埠。

將Max的數值設置為3,這樣我們就得到了四種可能的數字:0,1,2和3。

為了讓牆的顯示更加隨機,讓我們再給WallMesh添加一個隨機選中。

在Set Static Mesh節點之後添加以下節點:

通過這樣的方式,我們給WallMesh添加了0到360度的隨機旋轉角度。

好了,現在來看看當前的連線圖:

簡單總結下我們已經完成的工作:

1.Select節點用於選擇不同的mesh紋理

2.使用Random Integer in Range節點來選擇一個隨機的mesh

3.使用Set Static Mesh節點將WallMesh設置為所選擇的mesh

4.使用AddLocalRotation節點給WallMesh添加一個隨機的旋轉偏移

點擊藍圖編輯器工具欄上的Compile按鈕,然後關閉RandomizeWall視圖。

打開BP_TunnelSpawner,切換到SpawnTunnel視圖,添加下圖中用黃色標出的節點:

好了,現在當隧道生成的時候,會顯示一個隨機的牆的紋理。

點擊藍圖編輯器上的Compile按鈕。然後返回到主編輯器,並按下Play按鈕來預覽遊戲的效果!

當我們碰到某個牆的時候,就會停止向前運動。不過當我們左右移動並穿過某個洞時,就會再次向前運動。

在下一課的內容中,我們需要實現以下的效果。當玩家碰到某個牆的時候,停止向前運動。

好了,本課的內容就到這裡了,我們下一課再見~


推薦閱讀:

從零開始寫引擎(OPENGL)(四)-後處理實現
從零開始手敲次世代遊戲引擎(五十一)
[GDC16] Optimizing the Graphics Pipeline with Compute
pixi-action - 一個類似 cocos2d-x 使用方法的 Pixi.js 動畫插件
從零開始手敲次世代遊戲引擎(五十二)

TAG:遊戲開發 | 遊戲引擎 | 虛幻4遊戲引擎 |