Unity技术手册 - Shader实现灵魂状态

1,774 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第10天,点击查看活动详情

👉关于作者

众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣!!!

专注于Android/Unity和各种游戏开发技巧,以及各种资源分享(网站、工具、素材、源码、游戏等)

欢迎关注公众号【空名先生】获取更多资源和交流!

👉前提

这是小空坚持写的Unity新手向系列,欢迎品尝。

小空为了方便更多的人(新手)看明白,使用的汉字,真实项目尽量使用英文规则昂。

新手(√√√)

大佬(√)

👉即将学会

利用AmplifyShaderEditor可视化Shader编辑工具快速创作一个模型灵魂效果,不需要写代码就能实现。

👉背景

这两天老头环很火,虽然我买不起但是我可以看别人玩。在B站看的过程中发现里面灵魂效果很棒,这也让我想起了魔兽世界的死亡效果,就准备自己练习实现下。

好啦,我们开整吧。

👉案例环境

Unity 2020.3 系列f1

AmplifyShaderEditor 1.8.9

👉实践过程

导入我们提前准备的【高质量-赏金猎人】模型和AmplifyShaderEditor插件。

image.png 给模型设置好动画(Animation),我们预览一下

Shader实现灵魂状态效果1.gif
创建一个材质我们命名为【材质_灵魂】,在已经导入AmplifyShaderEditor插件的前提下,我们右键【Project】窗口,选择【创建-着色器-Amplify Surface Shader】创建一个着色器,我们命名为【着色器_灵魂】。

image.png 将【材质_灵魂】的Shader选为【着色器_灵魂】,然后将【材质_灵魂】赋值给模型的Model里面的Skinned Mesh Renderer。

选中【着色器_灵魂】,点击【Open in Shader Editor】打开可视化shader编辑器。将左侧的一些属性设置下:

Light Model 改为Unlit

Render Type 改为 Custom-自定义

Render Queue 改为 Transparent-透明的

Blend RGB 改为 Particle Addtive

image.png
然后添加模块以及连线方式如下:

image.png 【World Normal】和【View Dir】做Dot运算结果限制在【Clamp0和1之间】然后被1减去得到结果A。

创建两个外部可空变量【RimLumlannce-边缘亮度】和【RimPower-边缘强度】,RimLumlannce越大越暗,RimPower越大越强。

好啦,我们运行下看看效果吧。

Shader实现灵魂状态效果2.gif

📢作者:小空和小芝中的小空

📢转载说明-务必注明来源:芝麻粒儿 的个人主页 - 专栏 - 掘金 (juejin.cn)

📢这位道友请留步☁️,我观你气度不凡,谈吐间隐隐有王者霸气💚,日后定有一番大作为📝!!!旁边有点赞👍收藏🌟今日传你,点了吧,未来你成功☀️,我分文不取,若不成功⚡️,也好回来找我。