2.初始化你的项目和第一个应用程序
在第一个教程中,你将开始从一个新 Unreal 项目着手,需启用 HoloLens 插件、创建和点亮关卡,以及添加棋子。 你可将我们预制的资产用于所有 3D 对象和材质,因此不必担心需自行建模的问题。 本教程结束时,你会有一个可用于混合现实的空白画布。
重要
请确保满足入门页面中的所有先决条件。
目标
- 为 HoloLens 开发配置 Unreal 项目
- 导入资产和设置场景
- 使用蓝图创建 Actor 和脚本级别事件
创建新的 Unreal 项目
首先需要一个待处理的项目。 如果你是刚接触的 Unreal 开发人员,则需要从 Epic Launcher 下载支持文件。
启动 Unreal Engine
在“新项目类别”中选择“游戏”,然后单击“下一步”。
- 选择“空白”模板,然后单击“下一步”。
- 在项目设置中选择“C++”、“可缩放的 3D 或 2D”、“移动/平板电脑”和“非初学者内容”,然后选择保存位置并单击“创建项目”。
注意
为了生成 UX Tools 插件,必须选择 C++ 项目而不是 Blueprint 项目,你稍后将在第 4 节中对此进行设置。
项目应在 Unreal 编辑器中自动打开,这意味着你已准备好进入下一部分。
启用所需插件
为了使用通过 Microsoft 混合现实平台提供的功能,你首先需要安装并启用 Microsoft OpenXR 插件。 若要了解有关插件的详细信息,可以在 GitHub 上查看该项目。
- 打开 Epic Games Launcher。 导航到 Unreal Engine Marketplace 并搜索“Microsoft OpenXR”。 将插件安装到引擎。
- 返回到 Unreal 编辑器,前往“项目设置”>“插件”,然后搜索“Microsoft OpenXR”。 如果出现提示,请确保已启用该插件,并重新启动编辑器。
启用 Microsoft OpenXR 插件将自动启用混合现实开发所需的所有其他插件。 请注意,必须禁用“Microsoft Windows Mixed Reality”插件才能使用 OpenXR。
创建关卡
下一个任务是创建具有可供参考和缩放的起点和立方体的玩家设置。
选择“文件”>“新关卡”,然后选择“空关卡”。 视口中的默认场景现在应为空。
从“模式”选项卡中选择“基本”,并将“PlayerStart”拖到场景中。
- 在“详细信息”选项卡中,将“位置”设置为“X = 0”、“Y = 0”和“Z = 0”,以便在应用启动时将用户设置到场景的中心。
- 将“立方体”从“基本”选项卡拖到场景中。
- 将“位置”设置为“X = 50”、“Y = 0”和“Z = 0”。 在启动时将立方体放在距离玩家 50 厘米的位置。
- 将“比例”更改为“X = 0.2”、“Y = 0.2”和“Z = 0.2”以缩小立方体。
除非向场景添加光源(这是测试场景前的最后一个任务),否则看不到立方体。
- 切换到“模式”面板上的“光源”选项卡,然后将“定向光源”拖到场景中。 将光源置于“PlayerStart”上方,以便可以看到该光源。
- 转到“文件”>“保存当前”,将关卡命名为“主”,然后选择“保存”。
设置场景后,按工具栏中的“开始”,以查看正在运行的立方体! 完成工作后,按 Esc 停止应用程序。
设置场景后,便可以开始在棋盘和棋子中进行添加以构成应用程序环境。
导入资产
场景目前看起来非常空,但通过将现成的资产导入到项目中,将解决此问题。
从“内容浏览器”中选择“导入”,选择解压缩的资产文件夹中的所有项目,然后单击“打开”。
- 资产包括棋盘和棋子的 3D 对象网格(采用 FBX 格式)和用于材质的纹理映射(采用 TGA 格式)。
弹出“FBX 导入选项”窗口后,展开“材质”部分,并将“材质导入方法”更改为“不创建材质”。
- 选择“全部导入”。
资产只需执行这些操作。 接下来的一组任务是使用蓝图创建应用程序的构建基块。
添加蓝图
- 在“内容浏览器”中选择“新增”>“新建文件夹”,然后将其命名为“Blueprints”。
注意
如果你不熟悉蓝图,这些蓝图为特殊资产,它们提供基于节点的接口来创建新类型的 Actor 和脚本级别事件。
- 双击“蓝图”文件夹,然后右键单击并选择“蓝图类”。
- 选择“Actor”并将蓝图命名为“棋盘”。
新的棋盘蓝图现在显示在“蓝图”文件夹中,如以下屏幕截图中所示。
你已经准备好开始向创建的对象添加材质。
使用材质
你创建的对象默认为灰色,这看上去太过普通。 向对象添加材质和网格是本教程中的最后一组任务。
双击“棋盘”以打开蓝图编辑器。
从“组件”面板中选择“添加组件”>“场景”,并将其命名为“Root”。 请注意,“Root”在下面的屏幕截图中显示为 DefaultSceneRoot 的子项:
- 单击“Root”并将其拖到 DefaultSceneRoot 中,以替换它并在视口中消除球面。
- 从“组件”面板中选择“添加组件”>“静态网格”,并将其命名为“SM_Board”。 它将在“Root”下显示为子对象。
- 选择“SM_Board”,向下滚动到“详细信息”面板的“静态网格”部分,并从下拉列表中选择“棋盘”。
- 继续在“详细信息”面板中,展开“材料”部分,然后从下拉列表中选择“新建资产”>“材料”。
- 将材质命名为“M_ChessBoard”,并将其保存到“ChessAssets”文件夹中。
- 双击“M_ChessBoard”材质映像以打开材质编辑器。
- 在材质编辑器中,单击右键并搜索“纹理示例”。
- 在“详细信息”面板中展开“材质表现纹理库”部分,然后将“纹理”设置为“ChessBoard_Albedo”。
- 将“RGB”输出引脚拖至“M_ChessBoard”的“基准颜色”引脚上。
- 再重复上述步骤 4 次以再创建四个具有以下设置的“纹理示例”节点:
- 将“纹理”设置为“ChessBoard_AO”,将“RGB”链接到“环境遮蔽”引脚。
- 将“纹理”设置为“ChessBoard_Metal”,将“RGB”链接到“金属”引脚。
- 将“纹理”设置为“ChessBoard_Normal”,将“RGB”链接到“正常”引脚。
- 将“纹理”设置为“ChessBoard_Rough”,将“RGB”链接到“粗糙度”引脚。
- 单击“ 保存”。
在继续之前,请确保材质设置看起来类似于以上屏幕截图。
填充场景
如果返回到“棋盘”蓝图,将会看到已应用刚创建的材质。 只需设置场景即可! 首先,更改以下属性,以确保在场景中放置棋盘时,它的大小和角度正确:
- 将“比例”设置为“(0.05, 0.05, 0.05)”并将“Z 旋转”设置为“90”。
- 单击顶部工具栏中的“编译”,然后单击“保存”并返回到主窗口。
右键单击“立方体”>“编辑”>“删除”并将“棋盘”从“内容浏览器”拖至视口中。
- 将“位置”设置为“X = 80”、“Y = 0”和“Z = -20”。
选择“开始”按钮,查看你所处关卡中的新棋盘。 按 Esc 返回到编辑器。
现在,你将按照与棋盘相同的步骤创建棋子:
转到“蓝图”文件夹,右键单击并选择“蓝图类”,然后选择“Actor”。 将 Actor 命名为“WhiteKing”。
双击“WhiteKing”以在蓝图编辑器中将其打开,选择“添加组件”>“场景”,并将其命名为“Root”。
- 将“Root”拖放到 DefaultSceneRoot 中来替换它。
单击“添加组件”>“静态网格”,并将其命名为“SM_King”。
- 在“详细信息”面板中,将“静态网格”设置为“Chess_King”,并将“材质”设置为名为“M_ChessWhite”的新材质。
在材质编辑器中打开“M_ChessWhite”,并将以下“纹理示例”节点连接到以下各项:
- 将“纹理”设置为“ChessWhite_Albedo”并将“RGB”链接到“基本颜色”引脚。
- 将“纹理”设置为“ChessWhite_AO”,将“RGB”链接到“环境遮蔽”引脚。
- 将“纹理”设置为“ChessWhite_Metal”,将“RGB”链接到“金属”引脚。
- 将“纹理”设置为“ChessWhite_Normal”,将“RGB”链接到“正常”引脚。
- 将“纹理”设置为“ChessWhite_Rough”,将“RGB”链接到“粗糙度”引脚。
- 单击“ 保存”。
在继续之前,“M_ChessKing”材质应与下图类似。
即将完成,只需将新棋子添加到场景中即可:
打开“WhiteKing”蓝图,并将“比例”更改为“(0.05, 0.05, 0.05)”,将“Z 旋转”更改为“90”。
- 编译并保存蓝图,然后返回到主窗口。
将“WhiteKing”拖到视口中,切换到“世界大纲视图”面板,将“WhiteKing”拖到“棋盘”上,使其成为子对象。
- 在“详细信息”面板中的“变形”下,将 WhiteKing 的“位置”设置为“X = -26”、“Y = 4”、“Z = 0”。
完成! 选择“开始”以查看正在运行中的已填充关卡,并在准备好退出时按 Esc。 只是创建一个简单项目就涉及了很多内容,你现在可以进入本系列的下一部分:设置混合现实。