UE5 Lyra是虛幻引擎5中新出現的一種視覺編程語言。相較於傳統的代碼編程,用視覺編程可以讓你更直觀地編輯邏輯、操控遊戲。本文將從多個方面對UE5 Lyra進行詳細的闡述,並提供相應的代碼示例。
一、概述
UE5 Lyra建立在Blueprint的基礎上,是一種更加直觀、易於理解的視覺編程語言。與傳統的藍圖類比,Lyra可以使程序的可讀性和可維護性更高。Lyra是一個深度嵌入到虛幻引擎編輯器中的編程語言,拖放節點,連接它們,設置參數等操作,用於表達想要實現的邏輯,並生成可執行的代碼。
Lyra支持所有 Blueprint 的特徵,包括事件、變數、函數調用以及組件交互。Lyra自身特有的特點主要是分層模式。每個 Lyra 籃子都包含一個封裝的邏輯塊,這個塊可以被嵌套在另一個 Lyra 籃子中使用。這樣,程序可以很好地組織起來,更加模塊化。
二、基礎語法與概念
在我們深入了解 Lyra 之前,我們需要了解一些基礎知識。下面是一個簡單的代碼示例:
// 列印輸出文本 "Hello World!"
Print String("Hello World!");
// 表示注釋,Print String是一個函數調用,”Hello World!”是函數的參數。這個示例表明 Lyra 也支持與傳統編程語言一樣的語法。
當我們使用 Lyra 建立一個新的 Program 或創建一個 Lure 籃子時,我們會看到下面的界面:
如圖所示,我們可以選擇從空項目開始或者導入已有的 Lyra 籃子。在開始前,我們需要先理解一些 Lyra 的概念。
3.1 Program
一個 Program 就是一個 Lyra 程序,可以擁有多個 Lure 籃子。Program 就像一個傳統藍圖的 Level Blueprint,是程序的主入口。
下面是一個簡單的示例。創建一個新的 Program,然後拖入兩個 Lure 籃子:
在一個 Program 中,你可以執行以下操作:
- 添加、刪除或管理 Lure 籃子
- 設置程序、籃子或節點的說明信息
- 保存或導出程序和籃子
- 添加或編輯全局變數和宏
- 導入或導出 JSON 文件
3.2 Lure
Lure 代表著用戶在 Lyra 中編寫的邏輯。它可以嵌套在其他 Lure 中,在 Lyra 中形成複雜的邏輯層次結構。在Lure中,你可以執行以下操作:
- 添加或刪除節點
- 連接、斷開、編輯和刪除節點連接線
- 更改節點的名稱、參數值等等
- 撤銷和重做操作
下面是一個簡單的示例。創建一個空 Lure,然後從左側菜單欄拖動一個列印字元串節點到 Lure 籃子中:
3.3 節點
節點是 Lyra 中的基本操作單元。它只做一件事情,然後把結果傳遞給下一個節點。節點可以是函數的調用、變數的獲取、數組的操作等。在創建節點時需要選擇節點類型,每種類型都有對應的參數和功能。
下面是一個簡單的示例。在一個 Lure 籃子中,使用鍵盤輸入節點取得一個整數值,然後相乘後列印輸出:
首先,我們需要添加一個帶有輸出值的鍵盤輸入節點。然後,我們添加一個帶有兩個輸入和一個輸出的乘法節點。最後,我們添加一個列印輸出節點。
這些節點都使用默認的參數值。我們只需要連接所有節點,並將輸入框上的默認值改為我們所需的值,然後運行程序即可。
3.4 連接線
連接線連接了兩個節點,將第一個節點的輸出傳遞給第二個節點的輸入。然後第二個節點執行一些操作,並將輸出傳遞給下一個節點,這樣不斷的連接。在 Lure 中,你可以連接多個節點,形成功能複雜的邏輯結構。
下面是一個簡單的示例。創建兩個輸入節點,然後將它們相加後輸出:
三、使用示例
現在,我們來實現一個更實用的例子。在這個例子中,我們將創建一個東西西方向的相機,並實現玩家能夠通過滑鼠移動來控制攝像機的旋轉。代碼示例如下:
// 視角旋轉
// 得到滑鼠在視口中的位置
Get Mouse Position(X, Y);
// 移動攝像機垂直方向上
Add Controller Pitch Input(Y);
// 移動攝像機水平方向上
Add Controller Yaw Input(X);
這個示例中,我們使用了三個 Lyra 常用的節點:Get Mouse Position、Add Controller Pitch Input 和 Add Controller Yaw Input。按照我們上面的步驟,我們可以通過拖拽來建立這個 Lure 籃子,並連接這三個節點,加上一些參數值來運行我們的程序。
下面是這個例子的Lure示例圖:
運行程序之後,我們就可以使用滑鼠來移動攝像機了。
總體來說,Lyra 是一個易學易用的視覺編程語言。在虛幻引擎開發中,使用 Lyra 來建立邏輯可以大大提高代碼可讀性和可維護性,同時使遊戲開發變得更加高效。
原創文章,作者:KBLNO,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/372756.html