开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

蛮牛译馆

关注:537

当前位置:游戏蛮牛 技术专区 蛮牛译馆

查看: 1396|回复: 4

[Unreal教程] UE4教程-狙击枪瞄准器(1)

[复制链接]  [移动端链接]
排名
7465
昨日变化
4

174

主题

211

帖子

1215

积分

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

UID
159865
好友
9
蛮牛币
2703
威望
0
注册时间
2016-8-1
在线时间
580 小时
最后登录
2017-6-19

蛮牛译员

发表于 2016-12-7 11:53:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册帐号

x
本帖最后由 manew_JR 于 2016-12-8 16:55 编辑


本篇文章讲的是如何使用UE4制造狙击枪的瞄准器(传说中的爆头场景),在这里我们需要实现的功能就是在开第二枪的时候可以出现瞄准器,触发狙击手瞄准装置。
001.jpg
-狙击步枪应该有放大和狙击范围的功能

我想有时触发“子弹时间”的效果,(相机追逐子弹)
使用BaseWeapon来驱动武器
接下来有很多新的东西是你没见过的

狙击范围概述
很多年以前我就创建过两款第一人称设计游戏,就我所知,有三种办法在游戏中创建放大镜功能:
002.png

HUD覆盖
这种方法仅仅在屏幕的中心点位置绘制简单的纹理,这种方法主要用于GPU性能较低的情况,因为这种情况时对于GPU来说耗时最少的。
纹理渲染
瞄准器的镜片有着不同的材质然后在屏幕的某一部分上贴上纹理材质,再在镜头上显示出来。当镜头缩进的时候,瞄准器的镜片会更靠近主摄像机。在这里,你可以使用大量的特征值,因为这是在整个场景中被渲染的,所以所有的着色器都可以被你使用来驱动渲染效果。使用过多的渲染可能会在手机端使用时影响使用性能,但是在pc端完全没有问题。这个方法的工作量大于HUD覆盖。
003.png

后期处理材质
大体上来说,这种方法和HUD覆盖的方法一致,但是这种方法中你可以使用shader——你可以变形,绘制纹理,敌人以及各种各样的东西。
很难说和渲染纹理相比工作量有多大,这一点取决于引擎以及它如何执行开机自检过程。这种方法在移动平台上也不能使用,在我看来,使用这种方式,可以得到最好的游戏效果。
当然还有很多其他的方法可能是我不知道的,你知道的,游戏开发是不断进步的,每件事都在时时刻刻变化。
我会把这几种方法都呈现给你,告诉你如何实现这些方法

概论-准备游戏人物
一般来说,使用瞄准器功能的大多都是狙击枪。我们一般可以设置右键点击鼠标触发瞄准器。也许稍后我们还会使用连续两次开会触发瞄准器。
打开游戏人物的蓝图然后添加两个事件

OnSecondaryEnter,
OnSecondaryLeave,
创建Right Mouse Button事件然后连接刚才创建的两个调用函数
005.jpg
此功能是通用的,它在不同的武器之下可能会有不同的使用方式。这就是为什么我创建了调度员–武器将会使用这些调度器来获得最匹配的方式。
创建名称为 Set Fov. 的新函数,输入量为NewFov(float)
006.jpg
当缩放瞄准器时这个函数将被调用来改变视场,这个函数只由武器来驱动,这就是为什么我创造了这样的函数(我们不想改变其他类的变量)

BP_BaseWeapon概述
打开BP_BaseWeapon蓝图,在这里我们需要做一些改变。创建新的变量:
SpawnedProjectile (Actor)
Fire函数中将spawned projectile连接到这个变量
007.jpg
因为狙击枪使用的是上弹药而不是瞬间开火(有童年的都知道)
下面我们来讲讲如何一颗一颗的上弹药,而不是瞬间就可以开火

Projectile-概述
BP_BaseProjectile 蓝图创建新的延伸蓝图,命名为BP_Projectile_SniperWeapon
在细节面板中做如下设置:
ProjectileMovement Details:
Initial Speed: 10 000,
Maximum Speed: 10 000,
Projectile Gravity Scale: 0,
CollisionSphere Details:
Sphere Radius: 1,
Mesh Details:
Static Mesh: SniperRifle_A_Ammo,
Rotation: (Pitch=-90.000000,Yaw=0.633023,Roll=-0.632935)
现在创建新的相机组件并将它附加到CollisionSphere。这将是我们的相机的子弹时间。把它放在靠近子弹的地方
008.jpg
Camera Rotation: (Pitch=-10.000000,Yaw=0.000000,Roll=-0.000000)
Camera Location: (X=-36.583088,Y=0.000000,Z=14.872269)
现在在事件图表中将子弹的旋转以及停止上弹药通过set view Target with Blend连接到Player。如下图:
009.jpg

Creating Sniper Rifle blueprint.-概述
创建新的枚举类型的瞄准器蓝图并添加如下变量:

RenderToTexture,
HUDOverlay,
Postprocess,
打开WeaponType枚举然后将瞄准器添加到其中

BP_MainWeapon蓝图的基础上,创建新的蓝图命名为BP_Weapon_SniperRifle
添加这些变量:

SniperScopeType (Sniper Scope Type)
IsZooming (bool),
SniperScopeUI (user widget),
NormalFOV (float, default: 90),
ZoomedFOV (float, default: 20),
CanDoFinisher (bool),

填写如下数值:

Spread=0
ProjectileClass设置为BP_Projectile_SniperWeapon
FireType设置为 Projectile
WeaponTypeSniperRifle
WeaponMeshSniper_Rifle_A

有一部分内容是之前教程中的,如果你学习了之前的教程,做好以上步骤是没有问题的。
现在在shootergameinstance关卡中添加这个武器到之前的武器列表中,那么在以后你就能装备上这些武器。

Sniper Rifle and hands-概述
大体上,我们需要在游戏中用手势来放大步枪或者是狙击枪,从而触发瞄准器,所以就需要在触发瞄准器的时候添加一个手部的动画效果。为了实现这样的效果,打开FPP_LauncherAim动画然后在不移动的情况下记录新的动画,这样做不会产生任何空闲的运动。我们将它命名为FPP_LauncherAimPose。你也可以留下空闲运动,这将会使得玩家很难瞄准,因为武器将会像现实世界中一样慢慢移动。

从这个位置创建动画montage然后将slot设置为正常
010.jpg
最后一件事就是在这个montage中创建循环播放的动画,这有点儿棘手
011.jpg

012.jpg

013.jpg
现在打开HeroFPP_蓝图然后添加这些变量:
SniperRecoil (bool),
SniperRecoilAlpha (float),
SniperIsZooming (bool),
SniperZoomingAlpha (float),
现在在事件图表中CharacterFire事件连接到OnCharacterFireWeapon调度器。我们需要将Sniper Rifle连接到这里,如下图:
014.jpg
现在在更新的动画中我们需要确认狙击枪何时做缩放
015.jpg
多亏有了以上的蓝图,我们才能知道在动画蓝图中玩家什么时候在缩放瞄准器。现在我们需要从这个变量驱动缩放的alpha。仍然在Updatre Animation中做如下操作:
016.jpg
017.jpg
现在在Animation Graph中你需要创建三个pose:
for keeping the weapons in hands,
for recoil,
for zooming,
最后一个是最耗时的,因为你需要测试它在游戏中的位置距离等,找出最合适的,如果瞄准器靠近玩家的眼睛。这时我的图表可能会有帮助。、
018.jpg
确保在枚举中将结果连接到瞄准器上
019.jpg

020.jpg

我们基本上完成了我们的基础设置,接下来我们会用三种方法实现对敌人瞄准。


原文链接:http://shootertutorial.com/2015/06/22/creating-sniper-rifle/



     蛮牛译林军福利多多哦!
155547iluo7umxezrb2ekr.png                                                                                                       

[发帖际遇]: manew_JR 乐于助人,奖励 1 蛮牛币. 幸运榜 / 衰神榜

回复

使用道具 举报

3偶尔光临
286/300
排名
6731
昨日变化
4

2

主题

83

帖子

286

积分

Rank: 3Rank: 3Rank: 3

UID
173990
好友
1
蛮牛币
379
威望
0
注册时间
2016-10-8
在线时间
69 小时
最后登录
2017-6-20
发表于 2016-12-9 13:26:57 | 显示全部楼层
eeeeeeeeeeeeeeee

回复 支持 反对

使用道具 举报

6蛮牛粉丝
1484/1500
排名
2019
昨日变化
3

0

主题

313

帖子

1484

积分

Rank: 6Rank: 6Rank: 6

UID
138040
好友
0
蛮牛币
3086
威望
0
注册时间
2016-3-1
在线时间
667 小时
最后登录
2017-6-17
发表于 2016-12-11 18:36:00 | 显示全部楼层
感谢分享!!!!

回复

使用道具 举报

排名
25857
昨日变化
18

0

主题

6

帖子

15

积分

Rank: 1

UID
182962
好友
0
蛮牛币
23
威望
0
注册时间
2016-11-11
在线时间
3 小时
最后登录
2017-2-6
发表于 2016-12-11 20:00:32 | 显示全部楼层
感谢分享!!!!

回复

使用道具 举报

5熟悉之中
546/1000
排名
4863
昨日变化
1

5

主题

195

帖子

546

积分

Rank: 5Rank: 5

UID
187870
好友
0
蛮牛币
894
威望
0
注册时间
2016-11-29
在线时间
143 小时
最后登录
2017-6-20
发表于 2016-12-12 08:47:02 | 显示全部楼层
{:104:}{:104:}
感谢分享!!!!

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

快速回复 返回顶部 返回列表