当前位置: 首页 > news >正文

【UE4 RTS游戏】02-摄像机运动_完成摄像机在X轴上运动的相关步骤

效果

通过控制键盘WS键使得“CameraPawn”进行前后移动

步骤

  1. 将landscape的Z轴位置更改为0

删除“PostProcessVolume”

将“LightmassImportanceVolume”移入Lighting文件夹内

  1. 新建一个蓝图类,父类是Pawn,命名为“CameraPawn”

将“MyController”重命名为“CameraPawnController”

  1. 双击打开“MyGameMode”

默认Pawn类改为“CameraPawn”

  1. 打开“CameraPawn”,添加一个场景组件

将场景组件作为根组件

添加一个静态网格体组件

重命名为“Sphere”

再添加一个弹簧臂组件个摄像机组件,层级关系如下:

选中“Sphere”,静态网格体设置为“MaterialSphere”

再更改其大小

Z轴位置设置为100,Y轴旋转设为-70

此时摄像机就是一个斜向下的视角

  1. 打开“CameraPawnController”

新建一个变量,命名为“CameraPawnRef”

变量类型为“CameraPawn”的对象引用

  1. 新建一个宏,命名为“ReferenceCast”

在“ReferenceCast”中创建如下节点

在事件图表中添加如下节点:

  1. 为了能够控制“CameraPawn”在世界中移动,我们继续在“CameraPawn”中进行如下操作:

首先创建一个布尔型变量“DisableCamNav”,表示是否禁用“CameraPawn”的移动,如果为Ture表示禁止移动。

创建如下节点:

创建一个函数,命名为“MoveSpeedCalculation”,用于计算“CameraPawn”的移动速度(我们希望相机升高时加快移动速度,相机降低时减缓移动速度)

添加一个输出节点,命名为“MobileSensitivity”,浮点类型,意思是移动灵敏度

访问说明符设置为受保护,勾选纯函数

获取到弹簧臂的长度,将这个数值÷100作为镜头的灵敏度,并且限制灵敏度的范围在5~20之间。

  1. 在事件图表中继续新建一个浮点型变量,命名为“FastMoveMultiplier”,可以理解为当“CameraPawn”进行快速移动时的倍数

默认值设为1,也就是正常的移动倍数,如果后面我想增加移动速度,只需将这个值调大即可。

在事件图表中创建如下节点,将移动灵敏度与移动倍数相乘在乘输入轴映射的倍数来得到“CameraPawn”最终在X轴上的每帧的移动距离

YZ轴上的值不变,只改变X,将新的向量组合起来:

输出该向量的值

输出的值命名为“Transform”

将节点折叠到宏

重命名宏为“MovementX”

双击打开“MovementX”,修改输入节点的命名分别为“AxisValue”,“MoveSensitivity”,“SpeedMultiplier”和“CameraRef”

回到事件图表中,将新变换设置给“CameraPawn”

  1. 在项目设置中将玩家状态类改为“GameStateBase”

此时运行游戏,我们就可以控制“CameraPawn”进行前后移动了,效果如文章开头所示。

http://www.lryc.cn/news/34868.html

相关文章:

  • Kubernetes学习(五)持久化存储
  • 下一个7年,保持期待、持续思考,酷雷曼继续向前!
  • 天梯赛训练L1-010--L1-012
  • 三分钟完成Stable Diffusion本地安装(零基础体验AI绘画)
  • 电子台账:教程目录及软件下载
  • 多态的优势和弊端
  • android h5考勤管理系统myeclipse开发mysql数据库编程服务端java计算机程序设计
  • 第二道pwn题:shellcode
  • 《华为数据之道》读书笔记
  • C++源码pcl1.13.0库编译环境搭建及配置
  • Idea工具单工程使用卡顿设置
  • Android 9.0 Camera2退出时屏幕旋转为横屏
  • 【云原生】rancher2.6部署MySQL—2023.03
  • 行测-判断推理-图形推理-样式规律-空间重构-立体拼合
  • 细说蛮力法(一)
  • 关于推荐系统的详细介绍
  • leetCode刷题笔记
  • 数学小课堂:数学和哲学的互动关系(自洽的哲学思想受益于数学思维)
  • 大聪明教你学Java | 带你了解 Redis 的三种集群模式
  • Java中异常(异常的处理方式(JVM默认的处理方式、自己处理(灵魂四问)、抛出异常(throws、throw))、异常中的常见方法、小练习、自定义异常)
  • 液氮恒温器概述
  • Shiro核心——Realm
  • 开发钉钉微应用,实现免登+调试
  • 0308java基础-注解,反射
  • 【鸿蒙应用ArkTS开发系列】- 页面跳转及传参
  • StringBuilder 类
  • kubectl-k8s用户切换
  • 【面试题】三道面试题让你掌握JavaScript中的执行上下文与作用域以及闭包
  • 计算机网络-- 应用层(day08)
  • English Learning - L2-5 英音地道语音语调 弹力双元音 [ɪə] [ʊə] [eə] 2023.03.6 周一