UsingCustomControllers_译

UsingCustomControllers_译

在这个教程,你会学到怎样设置控制器而不是Cesium的FlatingPawn,并基于输入的摄影测量影像建立关卡。
你会学到怎样:
1)输入一个ContentPack
2)在你的关卡改变游戏模式
3)在Cesium3DTiles上使用基于物理的控制器
4)为流畅的体验优化关卡设置

预备:
1)知道怎样设置一个CesiumforUnreal应用。在开始hi使用CesiumforUnreal插件时看
CesiumforUnrealQuickstartguide

2)知道怎样从Cesiumion输入摄影测量影像。阅读
AddingDatasets
向导。

步骤1:设置关卡和摄影测量数据
CesiumforUnrealSamples中用01_CesiumWorld开始。或者用一个CesiumWorldTerrain和CesiumSunSky设置一个新的世界,像在CesiumforUnrealQuickstartguide
1)这个关卡将使用美国科罗拉多州丹佛市的高分辨率数据集。打开Cesiumion窗口并点击Add按钮。在你的ion资产中搜索“Aerometrex Denver Photogrammetry”,然后点击AddtoLevel按钮。
在这里插入图片描述
!)如果AerometrexDenverPhotogrammetry从资产列表消失?看AerometrexDenverPhotogrammetry资产页并Addtomyassets。然后返回UnrealEngine,关闭CesumionAssets面板,再次点击Add按钮重打开且更新资产表。
2)有两种方式设置地理参考。如果你有想要的经纬度,你可以直接设置:在WorldOutliner选择CesiumGeoreference角色对象然后在Details面板找到Origin Latitude, Origin Longitude, Origin
Height参数。设置它们在丹佛为以下坐标开始:
Origin Latitude = 39.75282
Origin Longitude = -104.999689
Origin Height = 1570.879421
在这里插入图片描述
代替地,你可以在WorldOutliner双击AerometrexDenverPhotogrammetry。这样将移动场景视口到摄影影像的位置。你可以使用场景视角导航到到你想要世界原点在的位置,再使用PlaceGeoreferenceOriginHere按钮。
3)你会看到CesiumWorldTerrain通过丹佛影像正在剪切。
在这里插入图片描述
4)在WorldOutliner,选择AerometrexDenverPhotogrammetry角色对象并设置z位置到600.这将升高高度让CesiumWorldTerrain和摄影影像不再相交。
在这里插入图片描述

步骤2:输入一个第三人称角色
CesiumforUnrealSamples已经包含一个ThirdPersonCharacter和ThirdPersonGameMode。如果你正在使用示例关卡,你可以跳过这步。示例项目的ThirdPersonCharacter可以在
CesiumSamples/Maps/03/ThirdPersonController中找到。
1)在ContentBrowser窗口,选择绿色的Add/Import按钮,然后,选择在出现的顶端菜单AddFeatureorContentPack。
在这里插入图片描述
2)一个新的窗口会出现去添加内容到项目。对于这个教程,选择ThirdPerson输入第三人称模板。然后绿色的AddtoProject按钮。你可以随意导入其他模板,或者构建您自己的模板。
在这里插入图片描述
导入此内容会将四个新文件夹添加到项目content文件夹的顶层:Geometry, Mannequin, ThirdPerson, ThirdPersonBP。根据需要重新组织这些以适应项目的组织系统。

步骤3:在世界中放置一个角色控制器。
在这步,你会学到怎样在世界中放置你的卒,如果你希望
开始玩时有一个卒生成,你可以在关卡中放置一个PlayerStart并且在WorldSettings面板中改变游戏模式重载到想要的游戏模式。
1)在PlaceActor面板,搜索“ThirdPersonCharacter”。拖拉这个角色对象到场景。聚焦到这个卒,在WorldOutliner双击它。
在这里插入图片描述
!)有时候ThirdPersonCharacter可能没在PlaceActor面板显示。如果这个发生,在ContentBrower找到角色对象。如果你使用示例项目,这个对象在CesiumSamples/Maps/03/ThirdPersonController。否则,输入第三人称模板之后默认的位置是ThirdPersonBP/Blueprints。
2)在Details面板选择ThirdPersonCharacter,找到Transform,点击位置轴边上的黄色的箭头重置它的位置。在这里插入图片描述
进入游戏模式确保玩家面向正确的方向,设置第三个旋转值为220。现在ThirdPersonCharacter应该面对联合车站。
3)在Details面板,搜索“possess”。AutoPossessPlayer选择AutoPossessPlayer的下拉并选择Player0。
在这里插入图片描述
现在在游戏模式,你将能够用鼠标和WASD键或者一个手持游戏控制器控制ThirdPersonCharact。er。
!)现在如果你试图播放关卡,你会注意到丹佛影像没有完全加载前你的对象可能开始落下。继续读下去,看看如何解决这个问题。对于这个原因,推荐你禁用当前未与任何物理对象交互的物理。

步骤4:设置一个安全的开始位置
因为3DTiles包含了相当多的数据并被流送到UnrealEngine,所以它们可能需要一些时间才能完全加载。
这个可能给角色对象造成问题比如你的角色的物理特性。这一步,你会在摄影测量影像下放置一些几何确保安全生成。
1)在PlaceActor面板,拖一个Cube到游戏世界。
2)重置Cube的位置,并设置比例为4,4,0.5。
在这里插入图片描述
3)用变换小工具,在Z轴上向下移动立方体,直到它刚好隐藏在地板下,或者将Z位置设置为-130.0。
在这里插入图片描述
4)按下Play。ThirdPersonCharacter应该已经在世界加载的位置。
!)在一个关卡中放置角色对象是安全的只要你不改变CesiumGeoreference原点。现在改变CesiumGeoreference原点将导致所有角色对象移动到新的原点。为了学到更多安全放置和地理定位角色对象,阅读PlacingObjectsontheGlobeBuildingGlobalSceneswithSublevels

步骤5:设置一个车辆控制器
1)按照步骤2中列出的步骤导入Vehicle Advanced模板。
在这里插入图片描述
2)拖VehicleBlueprint到场景。在ThirdPersonCharacter前面街道放置它。
在这里插入图片描述
3)创建另一个立方体作为VehicleBlueprint的起始平台。把它放在VehicleBlueprint的摄影测量影像下。
4)不像ThirdPersonCharacter,这个卒不自动控制。代替地,你会在游戏设置一个简单的蓝图图转换控制的卒。使用顶部工具条打开LevelBlueprint。
在这里插入图片描述
5)从WorldOutliner,在LevelBlueprint中拖拉VehicleBlueprint和ThirdPersonCharacter角色对象到EventGraph。你会在EventGraph中看到一个每个角色对象创建一个节点。
6)在EventGraph空白区域右击拉出一个菜单并添加节点。搜索“keyboard c”找到c按键事件。点击这个创建一盒键盘事件。
在这里插入图片描述
7)从键盘事件上的“Released”引脚,拖到图形上的一个空点上释放鼠标。搜索菜单将再次出现。取消勾选“ContextSensitive”框,并搜索UnPossess找到UnPossess节点。
在这里插入图片描述
8)添加一个Possess节点和一个GetPlayerController节点。像下边图片一样连接它们。
在这里插入图片描述
9)c键将转换控制到ThirdPersonCharacter。在Possess节点连接ThirdPersonCharacter到空的InPawn输入。
在这里插入图片描述
10)选择完整图并复制粘贴它。选择新的键盘事件节点。在Details面板,改变输入键为v。
在这里插入图片描述11)将新的v键盘事件连接到重复的事件图上,并将Possess节点的典当替换为VehicleBlueprint。
在这里插入图片描述
12)在顶部工具条按下Compile按钮和Save按钮。现在,如果你玩关卡,你将能够通过按下v键转换VehicleBlueprint,按下c键转换ThirdPersonCharacter。
13)你将会注意到如果你用一个车离开并转换带一个角色控制器,因为瓦片没有加载车可能会落下世界。当你的视线离开汽车时,如果你开启了“FrustrumCulling”,也会发生这种情况。不控制车时你将需要禁用物理。返回LevelBlueprint,创建一个新的SetSimulatePhysics节点。
!)为学到更多FrustrumCulling,看PlaceObjectontheGlobe页。这个教程也会解释一点。
14)为ThirdPersonCharacter连接SetSimulatePhysics节点到Possess节点。复制VehicleBlueprint节点并连接到SetSimulatePhysics节点的输入“Target”。蓝图编辑将自动创建一个转换节点器获取VehicleBlueprint的格网。
15)在SetSimulatePhysics节点确保“Simulate”输入设置为false。
在这里插入图片描述
16)复制并粘贴新节点,并将副本连接到v键盘事件图。这次,确保SetSimulatePhysics节点上的“simulate”输入设置为true。
在这里插入图片描述
17)按下Play,车辆现在会在你让它在的位置。

步骤6:优化游戏关卡
这一步,你会调整两个可用设置确保流畅的体验。虽然你需要根据性能需求为项目确定最佳设置,但您将了解这些设置及其优缺点。
1)选择AerometrexDenverPhotogrammetry角色对象,在Details面板找到Cesium。打开第一节,LevelofDetail去显示MaximumScreenSpaceError设置。
在这里插入图片描述
2)MaximumScreenSpaceError设置允许你控制你的3DTileset的LevelofDetail。较高的数字对应较低的细节级别和更好的性能。默认,它设置到16。试着把它降低到2 -你会看到一个更高的分辨率,但是场景将需要更长的时间来完全加载。
在这里插入图片描述
3)在你玩游戏的时候,你可能会注意到视野之外的贴图停止渲染,当你四处转时可能需要一些时间才能再次加载。在Detail面板打开TileCuiling节找到设置EnableFrustrumCulling。
在这里插入图片描述禁用此设置将确保当你转动的相机时瓦片将不再卸载。然而,您可能会注意到,禁用此设置后,瓦片的整体质量可能会下降。

下步:
想要试一个不同的项目?看BuildaFlightTrackerwithCesiumforUnreal教程。或者在创建世界教程看看。

PS:
原文地址:https://cesium.com/learn/unreal/unreal-custom-controllers/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jennifer33K

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值