UE5 Lyra:从基础到实践

发布时间:2023-05-24

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 来建立逻辑可以大大提高代码可读性和可维护性,同时使游戏开发变得更加高效。