ChihHuCheYeh's Blog

Unity3D FPS游戏中关于武器穿模的解决办法

2018/05/29 Share

在FPS中,玩家视角可以大致分为两个部分:玩家视角摄像机/武器摄像机。

这两者之间是完全分离开来的,以Source Engine为例子,以第三人称查看玩家的时候玩家是这个样子的:

注意,此刻拿在玩家手里的武器模型实则是2个不同的模型。

玩家的第一人称视角:

这两者之间毫无任何的干涉,因为他们完全处在两个不同的摄像机层级之中。如果他们两个都在一个层级中,那么,图1中的玩家身上会叠着两个模型。
这样做的好处是,可以节省资源,以第一人称的视角中可以看到更精细的模型,第三人称也不失妥当,并且最重要的一点是,第一人称视角中的模型不会与世界中的任何物体发生透视现象。

这种原理的示意图(Half Life 1)

假如产生了透视,则会像这样:

可以看到,半支枪被“怼”进了正方体中,效果非常差,如果在复杂的场景中,特别是茂密的丛林,掩体四布的战场,枪几乎会被完全的盖住。

如何解决这种问题?非常简单。

1.创建2个摄像机,第一关作为主摄像机,另一个可以命名为 WeaponCamera,这个摄像机,专门用来拍武器。

2.选中武器模型,在Inspector选项卡下为它添加一个新的Layer,可以命名为 Weapon View,讲武器设定为这一项Layer。

3.WeaponCamera下将Clear Flags设定为Depth Only,Culing Mask设定为刚刚设定的 Weapon View,Field of View适量设置。

4.Scene视图中调节一下WeaponCamera或武器模型的位置,让它合适一些。

emmmm….好像有2重模型…一个依旧穿模….另一个没有问题.

5.这其实是主摄像机的锅,修改一下Culing Mask,取消勾选掉Weapon View即可。

6.接下来你怎么浪他都不会穿模了。

CATALOG