UE 第三人称射击实例 #1

这个文章是给自己看的,因此步骤不会很详细,只记录项目大致流程。

学习了UE4差不多三个月了,官网里面的实例教程看了一多半,无论是跑酷的,捡电池的,multiplayer的,twin stick shooter 等都跟着坐了一遍,觉得是时候自己做一点东西试试了,毕竟看视屏一步一步跟着做和自己从零开始做肯定不一样,视频里看起来理所当然的事自己做起来如果不理解就会出问题。

想来想去还是先做一个第三人称射击类游戏,感觉上这类游戏会简单一些因为主体就是开枪射击嘛,比较好做,(做着做着就发现连想起来好做的都并不好做啊)。场景就设定为太空船里面了,毕竟科技感强的东西总是酷一些。然后项目是用蓝图做的,官方的蓝图教程比较多所以蓝图比较熟悉,感觉有些东西目前蓝图会做C++却不会做,等做完这个项目我大概试着用C++再做一遍。

既然想好要做什么了,第一步就是准备素材,UE4 launcher商店里面的东西真心贵,完全负担不起,不过还好中国人是很机智的,在虚幻中国论坛里面有很多官方商店里面的素材,都是别人买了拿来分享的,只需要一些积分就可以下载,非常方便,我在里面下载了一些素材包括场景,声音等备用。 人物的话没有找到科技感强的人物模型,想来想去暂时先用官方自带的机器人好了,看起来至少科技感还是有的,等以后找到合适的模型可以直接替换,对了引擎版本4.14。

人物的animation我用了官方商店的免费包,叫"aniamtion starter pack",以及第三人称模板自带的动画。

下面进入第一篇文章的主要内容,这篇文章主要讲的是project setup 以及 为character 绑定aniamtion。

首先新建一个第三人称蓝图项目,包含start content 包,万一用上里面的东西呢,游戏名我就叫INVADE了:

然后把content browser里面无关的东西都删掉,比如第三人称自带的地图还有一些几何体什么的,多余的文件看着好碍眼啊,然后新建Map和Blueprint文件夹,这个总是要建的。在Blueprint文件夹里面新建一个GameMode蓝图叫InvadeGameMode,以及一个继承MyCharacter(第三人称自带character蓝图)的蓝图,就叫HeroCaracter。进入InvadeGameMode

把默认Pawn改为HeroCaracter。

之后新建一个Map,用default的那个带一个地板和天空的,保存一下取名为MainMap. 然后进入Edit-》project settings -》Maps&Modes里面把游戏启动地图和编辑器启动地图都改为Main Map。DefaultGameMode 改为InvadeGameMode。然后进入input标签,设置一下这篇文章会用到的输入:

这个游戏目前就用键盘控制,于是我把其他的输入方式都给删了,等会再character蓝图里面也可以把无关的节点删除。

下一步是把动画结合到一个skeleton里,starter pack里面的动画都是持枪的,第三人称模板里面的动画是不持枪的,它们用的skeleton虽然本质上是相同的都是UE4标准skeleton,但是动画适合各自文件夹内的skeleton绑定的,为了把所有动画都绑定到一个skeleton上,需要在两个文件夹内的 “UE4_Mannequin_Skeleton” 都双击进入编辑界面,选择上方的retarget manager,然后set up rig里选择humanoid rig,保存。

然后选中第三人称模板里面的所有动画(Animation sequence),右键-》retarget anim assets-》duplicate anim assets and retarget,之后选中左边的UE4_Mannequin_Skeleton后点击retarget,这时左右的第三人称模板里的动画会被复制到content目录下,而且这些动画可以被Animation Starter pack里面的skeleton使用。

下一步是创建动画的blendSpace,我们需要三个在content brower里右键->animation->blend Space 1D一次,右键->animation->blend Space 两次,分别叫NotCombat_Idle_Run,Crouchwalk 以及 Rifle_Idle Run。然后编辑这三个文件,结果如下只给出参数以及使用的animation sequence,至于动画点是怎么放置的知道原理的话都可以放:

之后为角色创建一个animation blue print,就叫HeroAnimBP,然后在角色蓝图里面Mesh把使用的动画改成刚刚创建的这个。

下一步编辑角色蓝图:

创建要用到的

设置蹲和跳,注意蹲的时候是不能跳的

设置是否是战斗状态,这里需要注意,非战斗状态是的视角是普通第三人称视角,wasd控制人物移动,而且人物的朝向是会随wasd改变的,在战斗状态中类似于第一人称,wasd控制移动是人物永远是超前看的,这个需要设置movement component里面的舒心。这里调用了Animation 蓝图里实现的接口方法,animation BP的 event blueprint update animation是每帧都调用,使用接口可以不再那个方法里面获取IsCombat变量,而是在这个变量改变的时候发送一个消息给animation BP来设置这个变量.Enable~和Disable~都是接口里的方法,Mesh使用的animation BP则实现了这个接口。

用滚轮调整相机里角色的距离。

更改相机的pitch值范围

下面设置HeroAnimBP:

声明变脸和函数:

实现接口:

每一帧获取变量的值:

其他方法都很简单,get SpeedAndDirectin方法因为会很常用,所以贴出来:

之后进入Anim graph,新建一个State叫HeroState,连到Final Animation Pose,进入hero state 创建如下状态机:

这样一来,人物就可以执行普通站立,普通跑动,普通跳跃,下蹲,下蹲移动,持枪站立,持枪跑动,持枪跳跃这几种不同的动作了。 这篇文章就到这里。

时间: 2024-08-01 10:31:20

UE 第三人称射击实例 #1的相关文章

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

分类:Unity.C#.VS2015 创建日期:2016-05-02 一.简介 第三人称视角控制器涉及的相关概念有: 1.刚体(Rigidbody). 2.碰撞体(Collider).包括球体碰撞体(Sphere Collider).箱体碰撞体(Box Collider).网格碰撞体(Mesh Collider).物理材质(Physics Material).铰链关节(Hinge Joint).弹簧关节(Spring Joint)等. Unity内置了 NVIDIA PhysX 物理引擎.要控制

Unity3D第三人称摄像机控制脚本

好久没有敲Blog该.感谢您的留言.注意.私人信件和其他支持,但我似乎没有办法继续自己曾经写了一篇博客系列,因为我在网上找到有关unity3D太少的内容,U3D相关的文章!.. 第三人称视角 第三人称视角是什么?非常easy,CS就是一种第一人称视角游戏,玩家没有办法看到自己的角色形象,仅仅能观察除开自己之外的游戏内容.第三人称视角那么就明显是可以看到玩家所控制的角色的一种视角. 并且大部分游戏的镜头不能固定不动,肯定是要尾随猪脚.能看到猪脚,可是保持一定的高度和距离,这种视角才是最好的. U3

Unity3D用初中数学方法解决第三人称视角变换

鉴于博主的数学只有初中水平(博主是初中生),又想实现第三人称的摄像机位置角度变换,所以博主搞了个最多用到初三四点共园基础知识的算法,还没实现..先写个思想看看 蛤蛤先上图 好了这就是全部算法的核心思想,我们下期再见 还有几个问题需要解决. 问题一:如果在视角变换中摄像机在地形内部怎么办? 这个很好办,如果摄像机不断与地形产生trigger函数,只要不断减少r就行了.当r过小被物体基本碰撞时,将摄像机置于物体上方.在公式中可以看出除了r其他参数是不变的. 问题二:我们考虑的屏幕是一维的,那如何处理

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

原地址:http://blog.csdn.net/mobanchengshuang/article/details/27591271 好久没有敲Blog了,谢谢大家的留言.关注.私信等支持,但是我好像已经没有办法让自己继续写以前的博客系列了,因为我发现网上关于unity3D的内容太少了,所以我无法自拔地想写U3D相关的文章!!! 第三人称视角 第三人称视角是什么?很简单,CS就是一种第一人称视角游戏,玩家没有办法看到自己的角色形象,只能观察除开自己之外的游戏内容.第三人称视角那么就明显是能够看到

Unity3d--摄像机跟随 第三人称常用方式

1 using UnityEngine; 2 using System.Collections; 3 /* 4 * 摄像机跟随 第三人称常用方式 5 */ 6 public class CameraCS : MonoBehaviour { 7 8 private Transform player; 9 private Vector3 offsetPosition; 10 // Use this for initialization 11 12 void Awake(){ 13 player =

Unity3D导入自带Character Controller的Package第三人称一直跑步解决方案!

大家导入Unity3D自带Character Controller的Package第三人称时,发现Play时人物一直在跑步,大家看下人物的Inspector下的内容,如图: 在Animation中已有idle等动作,但是在Third Person Controller的Script中却没有Animation Clip,所以我们要做的就是点击后面的设置按键,把相对应的Animation添加上即可,如图:

Unity游戏开发第三人称摄像机跟随

在第三人称游戏开发中,因为我们的人物是会不断移动的,所以我们的相机需要保持合适的角度跟随我们的人物进行移动,最简单的一种实现方法是先在unity场景中将摄像机调整到合适的位置,然后将它放到我们的人物下面,让他成为人物的子物体,这样做也可以达到摄像机跟随的目的.如果对摄像机跟随的要求不高的话可以临时采用这种方法 为了实现第三人称摄像机跟随的功能,大部分情况先我们都是采用编写代码的方法来实现的.下面是本人实现的一种摄像机跟随的方法,仅供参考,实现的功能是按住键盘AD键可以让摄像机视野围绕人物左右移动

Unity 中简单的第三人称摄像机跟随

先说较为简单的一种: 一.将摄像机作为人物角色的子对象,设置好相对距离和偏移量即可,但这种方法弊端较多,一般不采用. 二. 设置好摄像机跟物体的相对距离,之后利用插值让摄像机平滑跟随. 原理:摄像机与player以向量(有大小,有方向)相连,这样就可以确定摄像机与player的相对距离了,这样人物走动,摄像机也会跟随移动. 将下列代码与camera绑定就可以实现第三人称摄像机跟随.代码: public class CameraFollow : MonoBehaviour { // 摄像机跟随的对

第三人称角色移动及自由移动视野(RigidBody实现)

重点:向量的运算.在获得水平及垂直方向的速度之后,将方向进行重设,让方向与视野同步(即:相机的方向与人物方向相同) 下面以一个实例来说明如何操作: 1.如图创建一个地形(Terrain),两个正方体(Cube)(参照物),胶囊(Capsule).把主摄像机放到Capsule下面当作子物体并且重置一下位置信息. (为了方便观察可以创建几个材质球给物体附上) 2.把摄像机往后来在Game视图下可以达到如图效果即可: 3.创建两个脚本一个用来控制移动另外一个控制视野转动:(我创建的move和freeL