在游戏中经常会出现第一人称和第三人称的视角切换场景,笔者在这里简单介绍如何进行这步操作。

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中创建第一、第三人称角色,并进行角色间的切换的更多相关文章

  1. 3D游戏开发之在UE4中创建非玩家角色(NPC)

    接着上节我们继续学习,现在我们来创建一些NPC(non-playable characters,非玩家角色).在这个游戏中,当我们靠近NPC时,它们会做出相应的反应. 一 创建C++类 1) 在UE编 ...

  2. 如何将MagicaVoxel模型导入UE4中(2)

    前言 当可以把MagicaVoxel的静态模型导入到UE4后,我又开始不满足了.默认第三人称蓝图的"汽车碰撞人偶(雾)"与场景中的体素画风格格不入,于是,我便想着用自己建造的体素画 ...

  3. [UE4]使用Is Locally Controlled解决第一人称和第三人称武器位置问题

    一.在第一人称网络游戏中,自己看到的是第一人称,其他玩家看到的自己是第三人称. 二.由于第一人称和第三人称是不同的模型,所以枪在模型上面的插槽位置也会不一样. 三.在武器挂载在人物模型的使用,使用“I ...

  4. UE4编程之C++创建一个FPS工程(二)角色网格、动画、HUD、子弹类

    转自:http://blog.csdn.net/u011707076/article/details/44243103 紧接上回,本篇文章将和大家一同整理总结UE4关于角色网格.动画.子弹类和HUD的 ...

  5. Unity3D中的第三人称镜头的脚本控制

    原地址:http://blog.csdn.net/mobanchengshuang/article/details/27591271 好久没有敲Blog了,谢谢大家的留言.关注.私信等支持,但是我好像 ...

  6. 【Unity】第11章 第三人称角色控制器和碰撞体

    分类:Unity.C#.VS2015 创建日期:2016-05-02 一.简介 第三人称视角控制器涉及的相关概念有: 1.刚体(Rigidbody). 2.碰撞体(Collider).包括球体碰撞体( ...

  7. 转 在SQL Server中创建用户角色及授权(使用SQL语句)

     目录 要想成功访问 SQL Server 数据库中的数据 我们需要两个方面的授权 完整的代码示例 使用存储过程来完成用户创建 实例 要想成功访问 SQL Server 数据库中的数据, 我们需要两个 ...

  8. 在SQL Server中创建用户角色及授权

    参考文献 http://database.51cto.com/art/201009/224075.htm 正文 要想成功访问 SQL Server 数据库中的数据, 我们需要两个方面的授权: 获得准许 ...

  9. 【转】在SQL Server中创建用户角色及授权(使用SQL语句)

    1. 首先在 SQL Server 服务器级别,创建登陆帐户(create login) --创建登陆帐户(create login) create login dba with password=' ...

随机推荐

  1. UIPassValue页面传值 UI_08(下)

    2.从前一个界面到后一个界面 注意:解题思路  葵花宝典:属性传值  第一步:在下一个界面视图控制器的.h文件中定义一个属性  第二步:在push之前将数据存储到属性中  第三步:取出属性中的值让控件 ...

  2. Linux 学习笔记_12_Windows与Linux文件共享服务_1.1_--Samba(上)

    Samba简介:在UNIX系统中,Samba是通过服务器消息块协议(SMB)在网络上的计算机之间,共享文件和打印服务的软件包. SMB简介:Server Message Block,SMB协议是一种服 ...

  3. 【翻译】在Ext JS和Sencha Touch中创建自定义布局

    原文:Creating Custom Layouts in Ext JS and Sencha Touch 布局系统是Sencha框架中最强大和最独特的一部分.布局会处理应用程序中每个组件的大小和位置 ...

  4. Using PL/SQL APIs as Web Services

    Overview Oracle E-Business Suite Integrated SOA Gateway allows you to use PL/SQL application program ...

  5. Cocos2D的随机数生成函数

    有很多种方法生成随机数.但是只有arc4random函数生成的最接近于"真随机(truly random)"数.(而且不需要种子) 其变体函数arc4random_uniform生 ...

  6. 【64】Spring mvc详解

    Spring mvc框架 Spring web MVC 框架提供了模型-视图-控制的体系结构和可以用来开发灵活.松散耦合的 web 应用程序的组件.MVC 模式导致了应用程序的不同方面(输入逻辑.业务 ...

  7. Android UI技巧(一)——Android中伸缩自如的9patch图片切法,没有美工自给自足

    Android UI技巧(一)--Android中伸缩自如的点9图片切法,没有美工自给自足 相信大家对.9 图片应该都很熟悉吧,有些人可能自己都会了,此篇献给那些不会的同学,咱们一起来聊聊.9图片的切 ...

  8. ubuntu下搭建gtk+编程环境

    首先gtk+项目主页为: http://www.gtk.org/ gtk+现在有2和3两种版本,使用 sudo apt-get install gnome-core-devel 可以一次性安装2个版本 ...

  9. android studio比较长用的几款插件

    不懂安装studio插件,看参考博文:android stuido插件安装:http://blog.csdn.net/liang5630/article/details/46372447 1.Butt ...

  10. ruby抓取web页面

    一种方法是Net::HTTP.new方法,返回resp码和实际的data: require 'net/http' h = Net::HTTP.new("www.baidu.com" ...