【unity3d】复刻刺客信条鹰眼效果

简介

今天看到国外的一个大佬做的一个魔方刺客信条鹰眼的效果,我看着不错,就学着做了一下,秉着取其精华去其糟粕的原则进行了自己的复刻,并介绍一下我的制作步骤.大佬的视频地址我真的已经不知道了,所以也就不在这里发,只是在这里进行说明,这个思路不是我的思路,只是按照我自己的使用习惯进行了自己的改变.

效果演示

官方效果

image-20200320165355597

复刻效果

点击v的时候屏幕会暗一下,再亮起来的时候就变成了鹰眼模式,但是不好的地方就是unity渲染是我无法控制,我每次有限渲染他的时候总会出现屏幕上的这种先后渲染级别错误的情况.

鹰眼效果

步骤

创建工程

选择Universal Project Template,里面带的Packages方便我们使用,不用再packageManager里面安装

image-20200320165520967

创建高亮层

我们只要添加一个高亮的涂层就行,我只是把这个层的名字叫做高亮而已

image-20200320165829200

创建PBR_shader

使用unity自带的shadergraph制作一个高亮的shader效果,这里面唯一要注意的就是高光,最好使用hdr的color

image-20200320165926862

创建高亮材质球/默认材质球

制作一个高亮的材质球使用的就是上述的那个shader

制作一个默认的材质球,使用的是自己喜欢的一个材质球,主要是看自己的感觉,没什么特别指定的,也可以不用

image-20200320170025260

创建Post-process Volume

常规模式

这个就是制作一个简单的volume,看自己的习惯

image-20200320170310383

高亮模式

虽然叫做高亮模式,但是需要把整个的亮度变暗,因为我们要让高亮的物体亮一些,对比之下效果更强

image-20200320170406750

创建UniversalRenderPipelineAsset

这个是显然管线的管理资源,我们要做的这个功能主要使用的就是这里面的功能

录屏01

创建两个Forward Renderer

创建的方法也不难,和上面差不多,主要是点对,因为毕竟属性太多了.

创建Forward Renderer

normal

没什么需要改的,尤其是layermask

image-20200320171008244

highlight

  1. 第一个要改的就是layermask,要去除我们要使用的层
  2. 然后添加两个renderfeatures
  3. 把layermask选为我们要看效果的层
  4. 把overrides的material选为我们上面做的高亮材质球
  5. 打开depth
  6. 并根据自己的喜好,选择depthtest
  7. 下面的normal同样使用上述的方法设置

截图4

设置UniversalRenderPipelineAsset

把我们的UniversalRenderPipelineAsset的两个属性分别为普通的效果和鹰眼的效果

并把UniversalRenderPipelineAsset添加到projectSettings的Graphics中

image-20200320171645949

加入黑屏效果

添加一个panel,并加入一个黑屏的动画

image-20200320171757262

写一个控制脚本

在update进行轮询,只要点击V就可以转换

using UnityEngine;
using UnityEngine.Rendering;
using UnityEngine.Rendering.Universal;

public class Fuck : MonoBehaviour
{
    public Camera m_camera;
    public UniversalAdditionalCameraData m_uacd;
    public int m_nIndex = 0;
    public Volume m_volume;
    public VolumeProfile vp1;
    public VolumeProfile vp2;
    public Animator m_anor;

    // Update is called once per frame
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.V))
        {
            m_anor.SetTrigger("fuck");
            Invoke("change", 0.1f);
        }
    }

    void change()
    {
        if (m_nIndex == 0)
        {
            m_nIndex = 1;
            m_uacd.SetRenderer(m_nIndex);
            m_volume.profile = vp2;
        }
        else
        {
            m_nIndex = 0;
            m_uacd.SetRenderer(m_nIndex);
            m_volume.profile = vp1;
        }
    }
}

填入属性

把脚本挂到一个自己相信的gameobject上,然后按照下图的方式去修改属性

image-20200320172214674

完成了

这样就完成了鹰眼效果的复刻

结束

先关注我 然后给我点赞 你今年就会
在这里插入图片描述 序列-01 img

git地址:https://gitee.com/asiworld

csdn博客地址:https://blog.csdn.net/JianShengShuaiest

bilibili地址:https://space.bilibili.com/15766978

发布了21 篇原创文章 · 获赞 21 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/JianShengShuaiest/article/details/104995409