UE4中创建第一、第三人称角色,并进行角色间的切换
在游戏中经常会出现第一人称和第三人称的视角切换场景,笔者在这里简单介绍如何进行这步操作。
1.创建角色
在内容浏览器中添加2个Character蓝图,分别命名为FirstPersonalCharacter和ThirdPersonalCharacter


双击打开FirstPersonalCharacter蓝图编辑器,在组件窗口添加摄像机Camera组件,并调整到合适的位置,并勾选CameraSettings中的Use Pawn Control Rotation选项。

在事件图表中添加移动逻辑(这里不多解释其原理及运行机制)


在ThirdPersonalCharacter蓝图中进行相同设置,不过还需要几步额外的操作。在组件窗口添加SpringArm,将Camera拖放入其子项,之后调整摄像机位置。

在Mesh组件的Animation中将类设置为第三人称蓝图

将Mesh的骨骼设为SK_Mannequin(这是虚幻商城中一款免费的人物骨骼,下载后添加到指定工程即可),之后调整人物朝向和人物在胶囊体中的位置,如果读者有其他人物骨骼和动画,则可以随个人喜好设置


接下来是很重要的一步,在移动组件中搜索rotation,勾选Orient Rotation to Movement,在第三人称自身组件中搜索rotation,取消勾选Use Controller Rotation Yaw,在SpringArm组建中搜索rotation,勾选Use Pawn Control Rotation。



在这三步设置完成后,人物就可以正常转向了。
2.切换人称逻辑
打开关卡蓝图创建Event BeginPlay事件,在游戏开始时获取第三人称角色并保存,然后向场景中投放(创建)一个第一人称Character(如果在游戏模式中的设置默认游戏角色是第一人称,则创建一个第三人称角色,不过由于第一人称没有骨骼模型,是透明的,提前投放在关卡场景中不会显得异常),位置尽量避免碰撞(虽然没有骨骼模型,但胶囊体碰撞还是存在),将输出保存。

添加C键驱动事件,作为第三人称切换到第一人称的按键

先获取第三人称角色的位置并保存,在切换视角后调整第一人称角色的位置。同时添加了判断逻辑,避免在第一人称视角时触发事件(Is3P的初始值设为True,因为关卡运行时默认为第三人称角色视角)。
添加B键驱动事件,作为第一人称切换回第三人称的按键

由于第三人称角色的位置在场景中已经存在,所以不用再进行调整,而是将第一人称角色位置改回切换前的状态,保证场景中不会出现一个透明碰撞块。同样也添加了判断逻辑,避免重复触发事件。
运行关卡,C键,B键功能运行无误,切换功能正常。
UE4中创建第一、第三人称角色,并进行角色间的切换的更多相关文章
- 3D游戏开发之在UE4中创建非玩家角色(NPC)
接着上节我们继续学习,现在我们来创建一些NPC(non-playable characters,非玩家角色).在这个游戏中,当我们靠近NPC时,它们会做出相应的反应. 一 创建C++类 1) 在UE编 ...
- 如何将MagicaVoxel模型导入UE4中(2)
前言 当可以把MagicaVoxel的静态模型导入到UE4后,我又开始不满足了.默认第三人称蓝图的"汽车碰撞人偶(雾)"与场景中的体素画风格格不入,于是,我便想着用自己建造的体素画 ...
- [UE4]使用Is Locally Controlled解决第一人称和第三人称武器位置问题
一.在第一人称网络游戏中,自己看到的是第一人称,其他玩家看到的自己是第三人称. 二.由于第一人称和第三人称是不同的模型,所以枪在模型上面的插槽位置也会不一样. 三.在武器挂载在人物模型的使用,使用“I ...
- UE4编程之C++创建一个FPS工程(二)角色网格、动画、HUD、子弹类
转自:http://blog.csdn.net/u011707076/article/details/44243103 紧接上回,本篇文章将和大家一同整理总结UE4关于角色网格.动画.子弹类和HUD的 ...
- Unity3D中的第三人称镜头的脚本控制
原地址:http://blog.csdn.net/mobanchengshuang/article/details/27591271 好久没有敲Blog了,谢谢大家的留言.关注.私信等支持,但是我好像 ...
- 【Unity】第11章 第三人称角色控制器和碰撞体
分类:Unity.C#.VS2015 创建日期:2016-05-02 一.简介 第三人称视角控制器涉及的相关概念有: 1.刚体(Rigidbody). 2.碰撞体(Collider).包括球体碰撞体( ...
- 转 在SQL Server中创建用户角色及授权(使用SQL语句)
目录 要想成功访问 SQL Server 数据库中的数据 我们需要两个方面的授权 完整的代码示例 使用存储过程来完成用户创建 实例 要想成功访问 SQL Server 数据库中的数据, 我们需要两个 ...
- 在SQL Server中创建用户角色及授权
参考文献 http://database.51cto.com/art/201009/224075.htm 正文 要想成功访问 SQL Server 数据库中的数据, 我们需要两个方面的授权: 获得准许 ...
- 【转】在SQL Server中创建用户角色及授权(使用SQL语句)
1. 首先在 SQL Server 服务器级别,创建登陆帐户(create login) --创建登陆帐户(create login) create login dba with password=' ...
随机推荐
- Java 8新特性探究(二)类型注解和重复注解
本文将介绍java 8的第二个特性:类型注解. 注解大家都知道,从java5开始加入这一特性,发展到现在已然是遍地开花,在很多框架中得到了广泛的使用,用来简化程序中的配置.那充满争议的类型注解究竟是什 ...
- STL:deque用法详解
deque函数: deque容器为一个给定类型的元素进行线性处理,像向量一样,它能够快速地随机访问任一个元素,并且能够高效地插入和删除容器的尾部元素.但它又与vector不同,deque支持高效插入和 ...
- android:padding和android:margin的区别 详解
转载请说明博客地址:http://blog.csdn.net/qq_32059827/article/details/51487997 看了网上的类似博客,并没有给出确定的区别.现在具体分析一下pad ...
- python检测变量是否有定义(即使用前检查是否定义好)
http://www.cnblogs.com/starspace/archive/2008/12/03/1347007.html 第一种方法: 'var' in locals().keys() 第二种 ...
- AngularJS中的依赖注入
依赖注入 | Dependency Injection 原文链接: Angular Dependency Injection翻译人员: 铁锚翻译时间: 2014年02月10日说明: 译者认为,本文中所 ...
- (二十)即时通信的聊天气泡的实现I
Tip:通过xib和storyboard不可能将一个控件作为ImageView的子控件,只能通过代码的addSubview方法实现. 设置图片的细节:如果button比图片大(为了方便对齐),将图片设 ...
- Zigbee技术开发一 设置NV_RESTORE
需要试验一下设置NV_RESTORE之后,终端设备的处理逻辑,在IAR里面设置NV_RESTORE的地方如下
- STL - stack(栈)
Stack简介 stack是堆栈容器,是一种"先进后出"的容器. stack是简单地装饰deque容器而成为另外的一种容器. #include <stack> stac ...
- Jumpstart for Oracle Service Bus Development
http://www.oracle.com/technetwork/articles/jumpstart-for-osb-development-page--097357.html Tutorial ...
- linux设置系统时间
设置系统时间 - date命令:显示系统的时间,可以在直接输入"date"命令来查看系统的时间 - date+%y/%m/%d - ...