不说废话,先上个演示图

最终成果(脚印,雪地可慢慢恢复,地形可控制)

主要原理(白话文):

假如你头上是块白色并且可以透视的平地,来了个非洲兄弟踩上面,你拿起单反对着上面拍了一张,照片如下

把脚印稍作翻转(因为需要的是从上往下看的图),然后用打印机打印照片,垫在黑人兄弟脚下之后得到

黑人兄弟弹跳就是好

再试试用3D打印机,白色的地方堆高点,脚印的地方留个黑色凹槽,然后变成了

没错,原理就是这么简单,你可以开始跟着做了。

完整实现:

1.先新建一个新的ThirdPerson蓝图项目,把建筑都删掉,新建一个中心在原点的地形
(我们先把地形中心,人物,SceneCapture都放在原点位置,这样翻转UV的时候会好理解一点,后面我们再考虑上坐标的偏移)

  • UE4的项目名和项目文件名一定要用英文,之前我的项目总文件夹名是中文,创建C++项目一直报错

2.新建一个SceneCapture2D蓝图类,将SceneCaptur2D蓝图类拖入到场景中,设置坐标(0,0,-500),Y轴旋转90度,这样就使其在地面下并且镜头朝上了。

  • SceneCapture2D:相当于一个相机,每帧拍一张照片提供给你,你可以拿来放到材质里或者直接摆UI上,大部分游戏的小地图都是用这个做的

3.进入蓝图,将CaptureComponent2D组件的投射类型改为正交,宽度可以暂时设为2048(也就是之后雪地的最大宽度)

  • 投射类型(Projection Type)
    透视(Perspective)就是类似人眼,看到的是近大远小。
    正交(Orthographic)就像数学老师黑板上画的效果,不会因为投影而改变物体比例。
a为透视,b为正交

4.在资源管理器中新建两个RenderTarget,按1,2排序,2会用到。然后在CaptureComponent2D中绑定RendetTarget1,并将CaptureSource改为Final Color。

  • RenderTarget(渲染目标):用来保存渲染的缓存,类似拍张照片存在这里。

5.新建一个材质名为Depth,将MaterialDomain改为Post Process(后期处理),添加到CaptureComponent2D的后效材质数组中

6.新建一个材质Snow,将其设置为Two Sided(两面的),然后放到地形上。如果不设置成两面的,等会在地形下方的相机就看不到地形,捕捉不到地形的场景深度。

7.Depth材质解析

  • 记得先开启Player的自定义深度
    (关于自定义深度和相关材质基础知识请先看这两篇
    [UE4蓝图][Materials]虚幻4中用自定义深度完整实现描边材质(一) - 架狙只打脚
    [UE4蓝图][Materials]虚幻4中用自定义深度完整实现描边材质(二) - 架狙只打脚)
Depth材质
  • 先介绍下Saturate节点,这个节点等同于Math.Clamp(0,1)。
    当输入值小于0时,输出0。
    当输入值大于1时,输出1。
    当输入值在0到1之间时,直接输出这个值。
  • 因为SceneCapture2D是从下往上拍的,所以获得Player的自定义深度是大于场景深度的,也就是Player离相机的距离大于地面离相机的距离。
  • 这里用(CustomDepth-SceneDepth)/自定义参数Depth=Result,那么有三种情况没有人站的地方:CustomDepth为正无穷,所以Result为正无穷,Saturate处理后为1,显示白色。人的脚底到离地面Depth高度的这一段(图中红色示意部分):CustomDepth大于SceneDepth并且小于参数Depth,所以Result为0~1的值,Saturate处理后值不变,那么根据离地越近的部分越黑。人从Depth高度往上的部分:Result为大于1的值,也是显示白色。

8.现在新建一个UserInterface-WidgetBlueprint(控件蓝图),也就是一个UI界面,拖入一个Image,并将其的Image引用选为RenderTarget1,然后记得编译。

9.打开一开始创建的SceneCapture2D蓝图,在GameBegin时将这个UI添加到视窗上。

现在运行游戏应该可以看到我们要的初步照片了

这里为了看得清楚,我把相机的OrthoWidth调成512了,所以脚印看起来比你的大

我们再把检测的深度参数Depth由20改为200试试

(这里注意:这里相机从下往上每个像素点检测到的自定义深度是取离相机最近的一个,也就是说从下往上看被脚掌挡住的部分,比如脚脖子,跟腱等等,检测到的自定义深度就是脚掌离相机的距离,显示黑色,只有在脚掌之外的部位被检测到,才会显示更淡的颜色。)

下一篇:

[UE4蓝图][Materials]虚幻4中可互动的雪地材质完整实现(二)​zhuanlan.zhihu.com

本篇到此结束了,因为想记录的细致一点,所以会比较慢,感谢关注评论点赞收藏!

ue4 改变枢轴位置_[UE4蓝图][Materials]虚幻4中可互动的雪地材质完整实现(一)相关推荐

  1. ue4 改变枢轴位置_[UE4蓝图][Materials]虚幻4中可互动的雪地材质完整实现(二)

    上一篇: [UE4蓝图][Materials]虚幻4中可互动的雪地材质完整实现(一)​zhuanlan.zhihu.com 10.新建一个MaterialParameterCollection(材质参 ...

  2. 蓝图解锁怎么用_[UE4蓝图][Materials]虚幻4中可互动的雪地材质完整实现(一)

    不说废话,先上个演示图 最终成果(脚印,雪地可慢慢恢复,地形可控制) 主要原理(白话文): 假如你头上是块白色并且可以透视的平地,来了个非洲兄弟踩上面,你拿起单反对着上面拍了一张,照片如下 把脚印稍作 ...

  3. ue4 改变枢轴位置_[UE4]偏门实用技巧合集

    前言: 不论是玩游戏,还是玩软件,我对操作和技巧都有着痴迷的追求.而且是个快捷键狂魔. 从这个工具就能看出来,我对快捷键的执着,对工作效率极致提升的吹毛求疵. 戴巍:[SD Plugin] 快捷键创建 ...

  4. ue4 改变枢轴位置_【UE4地形】轻松实现UE4自动地貌和自动植被分布

    今天是2020年11月09日  星期一 正文共:2624字 48图  预计阅读时间7分 首先介绍下我们制作自动地貌所需要的节点顺序不分先后 Break MaterialAttributes(中断材质属 ...

  5. ue4 改变枢轴位置_houdini+ue4道路(2):思路

    最近在搞道路生成,终于完成了一版demo,主参考了一些3A大厂的分享,自己补全了一些细节. 由于本人贴图制作水平所限,效果还远没有达到最优. 后面计划做个分享,先打个草稿. 一,背景 道路生成,目前最 ...

  6. ue4 改变枢轴位置_UE4-构建更好的静态网格体

    在本文中,我们会讨论包括系统单位.三角面数量.材质ID.枢轴点,我们会学习什么是光照贴图,然后介绍如何创建光照贴图.我们将学习碰撞网格体的创建和使用,细节层级或 LOD,最后介绍如何限制过度绘制. 1 ...

  7. ue4 改变枢轴位置_UE4实时渲染深入探究----学习总结【上篇】

    写在前边 周末学习了下UE4实时渲染的视频,看完后觉得收获颇多,为了以后自己复习方便,记录于此,如果能帮助到大家,则再好不过了.为了以后复习的准确性和深刻,在这里我力求写的尽可能的详细,同时尽可能的保 ...

  8. ue4 改变枢轴位置_System Era Softworks如何利用UE4创作Astroneer的精彩宇宙

    太空沙盒游戏<Astroneer>是一款开发多年的高人气独立作品.这款游戏首次公布于2015年10月,并在次年发行了抢先体验版.凭借System Era Softworks在这个项目中注入 ...

  9. ue4 改变枢轴位置_UE4渲染模块概述(四)---反射

    在前一文中介绍了像素着色器与material,大概知道了UE4材质的生产管线: Jerry:UE4渲染模块概述(三)---Pixel Shader & Material Rendering​z ...

最新文章

  1. iOS应用程序生命周期(前后台切换,应用的各种状态)详解
  2. 不得自行对涉密计算机进行格式化,保密资格认证-涉密人员考试试题
  3. 对于analyze table使用
  4. 【MFC】可调整按钮位置的工具栏
  5. ubuntu服务器ssh登录密码修改,Ubuntu-18.04 下修改root用户密码,安装SSH服务,允许root用户远程登录,安装vsftp服务器...
  6. JenKins自动化构建部署流程参考
  7. 杂谈!了解一些额外知识,让你的前端开发锦上添花
  8. Nginx 笔记与总结(12)Nginx URL Rewrite 实例(ecshop)
  9. P4822 [BJWC2012]冻结
  10. 100天python、github_GitHub - 1392792445/Python-100-Days: Python - 100天从新手到大师
  11. Python代码编辑器jupyter的安装
  12. android启动序列帧动画,关于 Lottie 动画的说明及应用
  13. c# 中通快递对接_中通快递-单号查询接口-物流路由跟踪信息快递鸟api对接教程...
  14. catch小说内容-从gui到爬虫(2)
  15. 二月,劝程序员不要跳槽!
  16. deepin20.3 的问题
  17. 关于软考证书专项扣除填报抵扣个税
  18. 数字化开采|AIRIOT智慧矿山自动化生产解决方案
  19. c语言球球半径,C/C++编程笔记:C语言开发球球大作战(源码分享),你想试试吗?...
  20. 用AHP层次分析法挑选最佳结婚对象

热门文章

  1. 《计算机操作系统(计算机)》
  2. 《高质量C/C++编程指南》摘要
  3. python中将科学计数法转数字
  4. matlab处理时间数据绘图
  5. xampp 64位 php5.2,XAMPP 64位
  6. 如何在博客园中自定义背景
  7. 通信原理 | 波段的划分
  8. php文件上传思想,php之文件上传
  9. java调用帆软cpt文件_报表中心FineReport中java如何直接调用报表打印
  10. 眼镜计算机检查,电脑验光