UE5——UMG——分析4

在这里插入图片描述

Brush

lmage:需要绘制的贴图或材质
Tint:1.图片叠加颜色 2.Brush的最终颜色=lmage*Tint

DraW As
1.Image 普通贴图/材质,4个顶点
2.Border 九宫格边框贴图/材质,32个顶点,可单独控制tiling
3.Box 九宫格贴图/材质,常用于绘制窗口面板背景,16个顶点
4.RoundedBox圆角9宫格贴图/材质,常用于绘制圆角按钮等

Margin(Box/Border专用)

0utline Settings(RoundedBox专用)
设置圆角,描边宽度/颜色,圆角直接在shader里绘制

Brush材质

UV0:九宫格UV
UV1:九宫格UV无Tiling
UV2:Tiling/instanceXY
UV3:PixelSize/instanceZW
UV4:TextureUV
在这里插入图片描述

Slate Shader

SlateVertexShader.usf

1.非Instance绘制,(0,0,PixelSize.xy)通过UV2/UV3传入PS
2.Instance绘制,PerInstanceData通过UV2/UV3[4float]传入PS

SlateElementPixelShader.usf

1.Brush的不同绘制类型,有单独的GetColor函数[Border/RoundedBox]

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

边框(UV0)叠加lcon(uV4)材质

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Draw As lmage

原图平铺绘制,UV0和UV4一致(4个顶点)
在这里插入图片描述

Draw As Box (Margin = 0.5]

图片使用UV4,不受九宫格拉伸影响
边框使用UV0,材质中得到的是拉伸后的UV(16个顶点),边框宽高=ImageSize*Margin
在这里插入图片描述

ScreenPosition

UI材质可以自定义ScreenPosition,和普通材质的WPO不同,这里不是偏移量
如下图,需要在WP0的基础上加上当前的WorldPosition才是实际的偏移坐标

在这里插入图片描述
在这里插入图片描述

材质绘图:圆形

本质是算UV到圆心0.5的距离
SphereMask
原理完全相同,只用1个节点
在这里插入图片描述

材质绘图:方形

方形效果
十字效果
选中框效果
在这里插入图片描述

材质绘图:三角形

直角三角形效果
等腰三角形效果
在这里插入图片描述

材质绘图:弧度

以0.5为圆心,一圈从0~1的值
使用举例:
做技能冷却效果
做QTE按钮进度
金色传说物品的背景
Loading菊花
在这里插入图片描述
在这里插入图片描述

材质绘图:数字

参考Lyra的整数材质,如下图所示:通过frac拆分区域,再拼合数字每一位的UV来采样图集
绘制带小数的材质可以参考引擎DebugScalarValues函数,原理基本一致
文字做法和数字相同,将数字输入换为字符编码,字符图集也按照编码顺序排列即可实现
比如英文可以简单26进制编码,需要控制一次批量处理的位数,通过power[26,位数]分隔uv,
位数过多可能会丢精度
在这里插入图片描述
在这里插入图片描述

  • 12
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值