UE4 交互雪 学习笔记

首先创建:

UE4 交互雪 学习笔记_第1张图片

一个蓝图,一个材质,一个Render Target 

UE4 交互雪 学习笔记_第2张图片

UE4 交互雪 学习笔记_第3张图片

UE4 交互雪 学习笔记_第4张图片

A就是在一个范围内中的,中点B上,在范围0.8倍的A范围内外加0.1的外部弱化为返回结果,结果内部返回值为1,外部返回值为0,用于绘制部分玩家行走而画的轨迹

材质模块:

UE4 交互雪 学习笔记_第5张图片

UE4 交互雪 学习笔记_第6张图片

下面是世界坐标转换UV的材质逻辑


蓝图:

UE4 交互雪 学习笔记_第7张图片

和材质同步,世界场景位置转化为UV的位置只需要除以2000

UE4 交互雪 学习笔记_第8张图片

在世界中画玩家位置的痕迹

UE4 交互雪 学习笔记_第9张图片

如何计算屏幕位置:用玩家位置转化成UV位置,再乘以分辨率即可变成屏幕左上角的位置,再减去画笔大小的一半,即可在玩家的中心位置进行绘制玩家轨迹

效果如图:

UE4 交互雪 学习笔记_第10张图片


让范围跟到玩家动(全世界都支持画轨迹)

UE4 交互雪 学习笔记_第11张图片

首先声明位置和大小,通过这两个值动态控制其位置

UE4 交互雪 学习笔记_第12张图片

创建一个材质函数,将世界位置的任何位置都支持一个Location对应其UV 

UE4 交互雪 学习笔记_第13张图片

原理图如上

然后将函数替代之前的世界位置转化UV位置(M_Snow)

UE4 交互雪 学习笔记_第14张图片

既然材质的位置转换UV位置的方法变了,那么蓝图的也要相应的变化,不然不能互相转化出正确的位置:

UE4 交互雪 学习笔记_第15张图片

然后制作一个可以显示的范围用于观看:

材质:

UE4 交互雪 学习笔记_第16张图片

UE4 交互雪 学习笔记_第17张图片

将材质赋给测试用的Plane里面

UE4 交互雪 学习笔记_第18张图片

最后在构造内将之位置和大小初始化

效果如下:


UE4 交互雪 学习笔记_第19张图片

 UE4 交互雪 学习笔记_第20张图片

将位置信息全部每帧更新,让画板一直追随着玩家,那么就可以在任何地方去绘制轨迹,绘制轨迹时需要有像素偏移

这里需要对像素进行对齐,不然画出来的图像不清晰 

UE4 交互雪 学习笔记_第21张图片

所以在材质里面绘制偏移:

UE4 交互雪 学习笔记_第22张图片

偏移过后,由于不想要范围以外的颜色,则将之BoxMask掉,就看不见了

再由于RT不能在采样的同时进行绘制,所以我们做两张RT,一张采样,一张绘制

UE4 交互雪 学习笔记_第23张图片

将最开始的RT存在另一张RT上

再对新的一张RT上进行做偏移,最后再将新的RT画在最开始的RT上,最开始的RT再绘制最新玩家画的轨迹

UE4 交互雪 学习笔记_第24张图片

最后在Tick里面写主画布清空,更新世界转化UV的位置

效果如下: 


制作SceneComponent组件,方便去使用它

UE4 交互雪 学习笔记_第25张图片

UE4 交互雪 学习笔记_第26张图片

在人的脚下放两个该插件 

射线检测,如果检测到有物体的话就加入画点让画布去绘制,我这里给的Snow Height为30

UE4 交互雪 学习笔记_第27张图片

这里进行将组件内的绘制信息进行绘制

UE4 交互雪 学习笔记_第28张图片

在画布的Tick内

效果如下:

UE4 交互雪 学习笔记_第29张图片

为防止画多个图片后,图片与图片之间过度不平滑,所以:

UE4 交互雪 学习笔记_第30张图片

再写一个材质,取最大值,就不会有黑色的分界面了

UE4 交互雪 学习笔记_第31张图片

最后把它替换掉

效果如下图:


UE4 交互雪 学习笔记_第32张图片

UE4 交互雪 学习笔记_第33张图片

最后设置雪的深度

再对Snow的材质颜色反转:

UE4 交互雪 学习笔记_第34张图片

效果如下:

UE4 交互雪 学习笔记_第35张图片

最后对像素大小进行设置,像素大小等于能够行走的范围除以RT的分辨率


最后做图片的法线效果:

UE4 交互雪 学习笔记_第36张图片

雪材质最后节点为上方 

UE4 交互雪 学习笔记_第37张图片

改成次表面

UE4 交互雪 学习笔记_第38张图片

单独再画一个场景雪地

UE4 交互雪 学习笔记_第39张图片

制作完成:

UE4 交互雪 学习笔记_第40张图片


虚拟高度网格体:

UE4 交互雪 学习笔记_第41张图片

首先开启该插件 

UE4 交互雪 学习笔记_第42张图片

然后自己随便画一个地形

你可能感兴趣的:(ue4,学习)