《精通Unreal游戏引擎》一第8步 创建摄像机

本节书摘来异步社区《精通Unreal游戏引擎》一书中的第8步,作者: 【英】Ryan Shah(沙哈)译者: 王晓慧 责编: 陈冀康,更多章节内容可以访问云栖社区“异步社区”公众号查看。

第8步 创建摄像机

精通Unreal游戏引擎
在接下来的任务中,为了保证叙述的清晰,我们仅仅使用地图的一部分。除非我额外强调,否则我们的工作区就是地图右下角的方形房间,如图50所示。


50

如果PlayerStart当前不在这个房间,那么将其拖进房间,方便下面的操作。

下面我们新建一个Blueprint(蓝图),它是一个可以重复摆放多次的摄像机。无论玩家在地图上的哪个位置,摄像机都会跟随他。想象一下Telltale点击冒险类游戏或者生化危机游戏中的摄像机。

如图51所示,使用简笔画的形式来快速示意。当玩家在房间的左手边时,摄像机面向左侧;当玩家在房间的右手边时,摄像机面向右侧。想象CCTV正在拍摄一个演员,演员扮演的是糖果店里的一个失足青年。

下面重新回到Unreal Engine 4,创建摄像机。前往编辑器左下方的Content Browser(内容浏览器),如图52所示。

在这里可以访问到项目的所有文件。直接拖拽就可以将物体放置到场景中,物体可以是Materials(材质)、Blueprints(蓝图)等。在Content Browser(内容浏览器)中可以导入、编辑和导出文件,这是一个重要功能。


51_52

下面创建一个蓝图。首先,新建一个文件夹来存储我们的蓝图,以确保Game文件夹是高亮显示的,这样新建的文件夹就在Game文件夹下,方便查找。单击Game文件夹,它被黄色高亮显示,说明被选中,如图53所示。

单击Content Browser(内容浏览器)上方的Create(创建)按钮,弹出一个下拉菜单,选择Create Folder(新建文件夹),在Game文件夹中出现了一个新文件夹,如图54所示。


53_45

文件夹刚刚新建时处于选中状态,如图55所示。此时可以编辑文件夹的名字,这里命名为ArtOfBP。


55

注意:
如果不小心点击了文件夹,文件夹的名字不再处于编辑状态了。右键(Mac上是Ctrl键+鼠标左键)单击文件夹,在弹出菜单中选择Rename(重命名)即可。或者选中该文件夹,然后单击F2键。

双击打开该文件夹,如图56所示。


56

因为当前在文件夹下,所以使用Create(创建)按钮创建蓝图时,新建的蓝图将位于该文件夹下,节省了文件夹之间移动的时间。单击Create(创建)按钮选择Blueprint(蓝图),如图57所示。


57

这时弹出一个Pick Parent Class(选择父类)窗口,如图58所示,选择新建蓝图的父类。


58

乍一看这个窗口,您可能会有点困惑,下面简单解释一下:如果您选择一个苹果作为父类,那么创建蓝图时会自带一颗苹果核;如果您选择一个橘子,那么苹果核会换成橘子的种子。这种创建方式简单易于操作,与某些时候要花费一整天时间从头创建相比,选择一种风格作为父类来创建蓝图将大大节省时间。

每一个父类都有简单扼要的描述,说明该父类是什么,可以实现什么功能。所以花一两分钟阅读一下描述内容,在您之后的项目中会有很大帮助。

在我们的项目中,需要Actor类的蓝图。这是因为Actor是一个可以在游戏世界中独立生存的对象,场景中的每一个对象(这里不包括BSP)都被称为Actor(而不是objects)。选择Actor按钮创建蓝图。将该蓝图命名为BP_Camera,如图59所示,表示一个摄像机的蓝图,方便将来查找。这仅仅是我个人项目的命名方式。

当我创建材质时,以“M”为前缀命名,Animation Blueprints以“AnimBP”为前缀。当我需要查找它们,但是又记不清它们的名字时,只要我记得文件类型,就可以使用Content Browser(内容浏览器)的内置搜索功能很容易找到它们。

已经创建好蓝图,下面按照我们需要的功能编辑它。

双击BP_Camera打开蓝图编辑器,界面默认处于Component(组件)视图。蓝图编辑器分为3部分:Defaults(默认值)、Component(组件)和Graph(图表)。Defaults(默认值)视图是用来设置蓝图的默认选项的;Component(组件)视图是在蓝图中设置对象的;Graph(图表)视图是为蓝图编写代码的。有一个简单的方法可以记住这些,就是Settings(设置)—Objects(对象)—Code(代码)。


59

确保当前处于Component(组件)视图。为了找到当前处于哪种视图,查看蓝图编辑器窗口的右上方。有一些导航按钮,其中橘黄色高亮显示的就是当前被激活的按钮,如图60所示。


60

在屏幕的左边,有一个类似Content Browser(内容浏览器)的窗口,叫做Components(组件),是用来为蓝图添加组件和对组件排序的。

现在,有一个Root组件叫做[ROOT] DefaultSceneRoot。什么意思呢?Root组件是所有组件的HomeBase(根容器)。打个比方,扔一个拴着绳子的球,HomeBase就是抛出去的那只手。但是为什么要把球拴在绳子上呢?因为这个绳子将会告诉我们球在哪里(这时球已经飞出了我们的视线),以及球如何再回到手中(如果您想再抛一次球的话)。

现在我要抛一个曲线球:只要我们添加一个组件,DefaultSceneRoot就会被重写,“绳子”就丢失了。您一定会问:为什么在删除DefaultSceneRoot时没有提示我?很简单,即使丢失了DefaultSceneRoot,我们也可以手动将其添加回来,所以可以选择是否需要“绳子”。

您知道系统为什么是这样设置的吗?乍一看似乎很复杂,但当你将其分解,它又非常简单。当没有组件的时候,蓝图系统给我们一个Root组件,这样在不需要组件的情景中,我们可以编写其他任何代码。然而,当您创建一个蓝图,在该蓝图下您需要组件时,蓝图系统会删除这个Root组件,然后让您选择是否需要“绳子”。

回到我们的项目中,前往Component(组件)视图,单击Add Component(添加组件)按钮。在弹出的下拉菜单中搜索Scene,选择插入一个Scene组件,如图61所示。Scene组件就好比绳子。


61


可以选择为它重命名或者使用默认值。当您看到[ROOT] Scene1(或者您的命名),表示Scene组件已经创建成功,下面我们继续添加Camera(摄像机)。

如何添加Camera组件呢?与添加Scene组件一样,单击Add Component(添加组件)按钮,选择Camera,如图62所示。


62

同样,您可以选择为它重命名或者使用默认值。此刻,您的Components(组件)窗口如图63所示。


63

什么意思呢?Root scene是Home Base(根容器),Camera是根的“孩子”。孩子最终要离开家。正如我们之前讨论的,Root是绳子,Camera是球。无论ROOT Scene在游戏世界的哪里,Camera会一直与Root保持同样的距离,Scene总是知道Camera在哪里,反之亦然。

现在,在我们蓝图中已经有了组件,下一步就是为蓝图编写代码,告诉蓝图要做什么。在没编写代码之前,如果我们将组件拖拽到场景中,它只会待在那里什么也不做。

到屏幕的右上方,使用导航按钮前往Graph(图表)视图,如图64所示。


64

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值