UE4中多方向抖动的射击准心



为不涉及多余内容放在后处理中,实际应在ui中较好


基本思路:通过旋转uv让屏幕不同方向上的区域采样贴图的同一个地方


首先①中把uv的0点挪到屏幕中心的位置,然后再缩放让-1到1更接近屏幕中心(用于后面采样时超出1的部分为0值,贴图的tiling method需设置成clamp并且贴图边缘需要预留几像素为全黑),最后乘以屏幕的约束比例保持正方形;
将得到的uv先连接到CustomRotator的输入uv上,再用uv转化极坐标除以2Π+0.5,得到从中心向各个方向上0-1的值;
通过将这个值加上一个0-1值后frac,可将起始的0的位置挪到任一方向,用于分配切割屏幕的角度;
再将此值乘上为N的正整数后floor再除以N,这就是我们需要旋转的角度,如③所示需将每个区域的uv旋转不同的角度(在CustomRotator内部乘上一个旋转矩阵)从而让采样值都变成和第一块区域一样;
最后可以加上一个AngleAdjust值来调整所采样的贴图的区域;
再最终采样之前我减掉了一个②区域的值,这段是用来模拟枪射击时偏移大小的曲线,实际因由事件触发从蓝图或c++传值过来;
ps:双方向和4方向可简单通过绝对值来实现如图中间所示



不清晰可右击查看图像