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=' ...
随机推荐
- android eclipse写layout文件失效问题解决
设置 xml 文件的代码提示功能 打开 Eclipse 依次选择 Window > Preferences > Xml > Editor > Content Assist &g ...
- 11、Libgdx的音频
(官网:www.libgdx.cn) Libgdx提供了简单的方法对较小的音效和磁盘中的音乐进行回放.它同样也提供了方便的针对音频硬件的读写权限. 所有的音频操作都通过audio模块来完成: Audi ...
- 从Perforce到Git的迁移
公司经过多次兼并.收购之后,开发团队使用的工具自然会出现鱼龙混杂的现象.就拿源代码管理工具来说,我们同时在使用的就有Perforce.Team Foundation.Subversion等.为了节省成 ...
- python面向对象小练习
就是几个动物,自动排列生成什么的 class Animal(object): def __init__(self,name,weight): self.name = name self.weight ...
- ValueError: setting an array element with a sequence.
http://blog.csdn.net/pipisorry/article/details/48031035 From the code you showed us, the only thing ...
- 11_Android中HttpClient的应用,读取网络xml及xml解析流,Handler的应用,LayoutInflater的使用,SmartImageView的使用
1 所需的web项目结构如下: 2 new.xml的文件内容如下: <?xml version="1.0" encoding="UTF-8" ?&g ...
- 安装nodejs中遇到的问题
make clean 出现时间不对的问题的时候,主要是系统时间设置错误. 用date -s 来分别设置日期和时间 用clock -w来写入CMS 安装g++ yum -y install gcc-c+ ...
- 【Linux 操作系统】vim编辑器配置及常用命令
最近工作不安分, 没有了刚入行时候的锐气, 不知道什么时候开始懈怠起来, 周末在电脑旁边看新闻, 搞笑图片, 追美剧, 一坐就是一天, 很是空虚. 我需要摆脱这种状态, 正好想学习一下安卓底层, An ...
- LeetCode之“动态规划”:Edit Distance
题目链接 题目要求: Given two words word1 and word2, find the minimum number of steps required to convert wor ...
- Unity PUN插件多人在线同步角色坐标旋转角度和动作
用PUN插件的话,就在OnJoinedRoom()回调函数里,表示加入房间,可以实例化角色,GameObject go=PhotonNetwork.Instantiate(prefabPlayer.n ...