UE4衣服材质换色

游戏中衣服换色是个很普遍的需求, 除直接替换贴图外, 还有使用程序参数来控制颜色的做法. 原理就是使用一张灰白Mask图, 乘一个颜色, 替换原Diffuse贴图上的颜色

效果如下:

这种制作方式有两个缺点: 一是换色区域只能换一个固定颜色, 只有明亮不一样; 二是如果让玩家来自定义颜色, 总会出现一些亮瞎眼的配色, 影响整个游戏的画面美感.

那有没有一种方法可以同时更换多种颜色, 并且保证颜色搭配不要反差太大呢? 之前在天涯明月刀中看到过类似的实现, 后来一想就明白了, 把颜色转换到HSV空间就可以:

看上面这个色环, 每个颜色的色调其实可以定义成一个角度, 如果把想换色调的话, 其实只需要旋转这个色环, 相当于我们对整张图定义了一个调节板(或者叫颜色查找表), 每个颜色加个角度偏移就实现色调的调整, 同时又能保证颜色的亮度不会发生变化, 与之搭配的颜色也能同步调节到一个合适的色调上. 参考RGB to HSV to RGB – for Shaders, 可以实现RGB与HSV分量的互换转换, 那思路就是在转换到HSV空间后, 针对H加一个偏移值, 然后再转换回RGB空间, 在UE4中可以使用Custom Shader Node来实现:

定义成一个Material Function后就可以在每个材质中进行复用了:

最终效果如下:

实际使用时仍然可以搭配mask贴图来控制换色的区域, 但是免去了灰度图的制作和调色板的控制, 开放给玩家随意调节也没有大的风险, 颜色的搭配总是能控制在一个比较和谐的范围内.

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏BestSDK

最实用的6个设计排版准则

作为一个设计师的最重要技能之一就是你要学习如何去选择排版。这是因为文本是设计师与用户沟通的主要方式之一。排版能成就你的设计,也能毁灭你的设计。 一个美观又复杂的...

31740
来自专栏我和未来有约会

Silverlight 4 中摄像头的运用—part1

入的视频 摄像头经过一个Video对象就能让你看到视频,而这个对象是一个显示对象,所以显示对象能做得事情,它都能做,比如滤镜,变形,混合模式等等。当然最强大的还...

215100
来自专栏HT

透过HT for Web 3D看动画Easing函数本质

http://www.hightopo.com/guide/guide/plugin/form/examples/example_easing.html 50年...

22560
来自专栏编程

伪元素动画和转换的例子

一些创造性的实验使用伪元素上的动画和转换来创建有趣的效果。 ? 今天,我们将尝试动画和伪元素(:之前和之后)的转换,我们将发现它们的潜力。我们将讨论一下关于动画...

20550
来自专栏hightopo

透过HT for Web 3D看动画Easing函数本质

11730
来自专栏hightopo

原 透过WebGL 3D看动画Easing

10410
来自专栏MixLab科技+设计实验室

用代码生成Glitch Art风格的抖音字体

最近看到不少文章教大家用 photoshop 实现抖音的 logo 跟字体,我也非常喜欢这种风格的字体,于是趁着晚上的时间,动手用代码实现了下此类风格的字体特效...

54280
来自专栏数据结构与算法

cf540D. Bad Luck Island(概率dp)

还是想复杂了啊,我列的状态时$f[i][j], g[i][j],t[i][j]$分别表示第$i$天,$j$个$s, r, p$活着的概率

8610
来自专栏宋凯伦的技术小栈

Android - 开发页面需了解的dip,sp,px知识,以及它们的转换

工作中,时常会有任务要求开发新页面,这时一般的流程是产品经理确定要开发的页面和功能,然后设计师提供设计稿,之后由我们开发人员完成开发工作。 通常,设计师提供的设...

21780
来自专栏数据小魔方

think-cell char 4——瀑布图案例应用

今天要分享的是瀑布图的两个案例应用。 因为瀑布图的用法比较特殊,在数据组织方面需要很强的技巧,所以这里再用两个案例来讲解瀑布图的用法。 ? ? 首先来看第一个案...

73170

扫码关注云+社区

领取腾讯云代金券