两个牛叉哄哄的Unity3d Shader编辑器






【AssetStore经验分享】今天遭吓到了。。

 
楼主#
更多 发布于:2013-02-27 22:31
自己做的插件 Xffect Editor Pro ,去年8月放到AssetStore上卖,75美刀一份,断断续续每个月也可以卖10来份。。这份收入对我来说已经很可观了,没有祈求更多了。。

直到上周那边发个邮件问我需不需要做减价促销,起初我并没怎么在意,随口回了句yes, I'd like to。

今天因为月底了,心血来潮登陆上去看了下。。。如图:
两个牛叉哄哄的Unity3d Shader编辑器_第1张图片

幸福来得太突然。。。收入居然挤上头版了。。。而且这短短24小时的收入已经远远超过之前6个月收入的总和了。。

这尼玛,营销很重要啊,AssetStore虽然比不上AppStore,但是至少Unity也号称有几十万开发者啊。

我这一个人做的破玩意都卖成这样(现在还在努力完善中),而且实际上unity大部分开发者都来自咱china,鼓励大家也出售自己的劳动成果,可能盈利未必比AppStore少哦。








[插件]特效插件Xffect Editor Pro,圣典独家发布(版本更新至3.2.0)

 
楼主#
更多 发布于:2012-07-16 17:34
Unity官方论坛讨论帖  |  Asset Store Link  
Xffect Editor Pro是一款功能强大的特效编辑器,其中内置了一套全新的粒子系统 和各种各样的专业特效例子,通过它,你可以非常方便地制作专业级的游戏特效。  
产品展示:  
WebPlayer  
产品概述:  
Xffect Editor Pro是一款专为Unity开发的特效插件,C#编写,提供所有源码。 与Unity内置的粒子系统相比,Xffect更适合游戏特效,使用上也更为方便,因为它所提供的粒子系统实际上并不是传统意义上的“粒子”系统, Xffect的粒子更为多样化一些,包括Sprite,RibbonTrail,Cone等常用游戏特效元件。而且它的模块架构也非常简单:一个粒子发射器提供粒子;每个粒子都有各种各样的可供选择的修改器来影响他们的各种属性:旋转,大小,速度,颜色,贴图坐标等;最后由一个Mesh来渲染所有这些粒子。那么它的性能怎么样呢,与unity内置的特效系统相比如何?我可以非常肯定地说:“在通常情况下,他们的性能没有差别“。因为在游戏特效里面,一个非常绚丽精美的特效也不会超过100个粒子,普通特效20-50个粒子足够。在这种数量下,Xffect的性能表现和内置粒子系统无异。当然,如果你是想用粒子系统模拟一些仿真物理,而他们的粒子数一般都会超过500个,那么我建议你还是使用内置的粒子系统。  
产品特点:  
    [*] 完全集成与unity编辑器 
    [*] 可以在编辑器内更新,实时展现效果 
    [*] 完全独立于unity自带粒子系统,并提供了一套全新的粒子系统 
    [*] 粒子系统支持碰撞检测 
    [*] 集成了非常多的粒子修改器:气流,引力,漩涡,动荡等3dMax常用粒子修改器 
    [*] 非常好的性能 
    [*] 提供了非常多的专业特效例子,直接拖拽到你的工程中即可复用 
    [*] 新版本支持消息系统,配合使用可以达到次世代游戏的效果! 
    [*] 支持Mobile 
    [*] 持续更新
免费版下载:  
点击下载,目前版本2.0.0!,支持编辑器内更新,新增免费特效!  
  
该版本的功能会有所限制,提供的特效例子也较少,如果你觉得有用,请购买专业版。  
产品支持:
 
暂时提供了一个简陋的论坛:http://shallway.net/forum.php?mod=forumdisplay;fid=38 
或者联系作者邮箱:[email protected]  
如果有好的建议,或者特效需求,欢迎与我联系  

2.0视频:  




















 


  
产品购买:  
老用户注意一下,版主暂时把权限转不过来,所以请大家还是去团购区下载,那里也会一直保持更新的。 
 新用户请在这里购买,价钱高了很多。因为如果价格比Asset Store上低太多,作者怕会引起一些不必要的麻烦。 
 另,该价格可能还会涨,因为作者还在继续更新。 

版本更新至2.3.0,新增加: 
1,Camera Radial Blur Mask  Event,可以使用在手机上,效果如下: 
 
2,新增加API教程,在文件夹Tutorial下。 


3.0.0 
重写了UI,新增加了Color Gradient Editor,新增加了Glow Per Obj效果。 
升级须知:  
这次的版本需要对之前老的Xffect Obj打补丁,请点击Window/Xffect/Patch/Ver3.0.0/Patch Current Project 菜单,对当前项目目录下的所有Xffect Obj打补丁,或者你也可以手动选择某个Obj,点击Window/Xffect/Patch/Ver3.0.0/Patch Selected Object 仅对该Obj打补丁。  


3.0.1 
修复了颜色渐变窗口的一些崩溃Bug。窗口属性也改为永远在最前了。 


3.0.2 
修复了颜色渐变窗口消耗CPU过高的问题。 


3.0.3 
修复了Unity4 下 Scale Curve无法编辑的问题 


3.1.0 
新增加"Sub Emitters"模块, 新增加"Glitch" Image Effec, 
*新增加了Scale 和 Rotation的 Curve编辑器,该版本的曲线编辑器在使用上更方便了。 















Strumpy Shader Editor入门教程  

2012-08-27 00:13:53|  分类: Unity教程 |  标签:unity  阿赵  strumpy  shader  即时反射  |字号 订阅

      对于3D游戏来说,有很多绚丽的效果,都是靠shader(着色器)来实现的。不过很多朋友估计都不会编写shader,阿赵我自己也只是看了个入门,明白了它的原理,很多具体的效果都写不出来的。这次来介绍一个Unity3D的第三方shader编辑器:Strumpy。这个编辑器是完全可视化编辑,使用起来相对简单一点。

先来看看我们这次需要做的例子:

我们需要使用Strumpy,编辑出这样一个shader:包括了漫反射通道、法线通道、高光通道,以及在模型的边缘运动的光效。
很显然,Unity3D自带的shader没有能直接实现这样的功能的,最多也只能使用法线和高光通道而已。
 
      由于这个例子稍微复杂,所以我们先来做一个更简单的例子,来熟悉一下strumpy的界面和基本操作。
 
首先肯定是要先下载Strumpy插件了。在Asset Store里面有,免费下载的。我这里使用的是4.0a版本。
下载完之后导入,会看到多了一个选项:
两个牛叉哄哄的Unity3d Shader编辑器_第2张图片
 
 
选择之后打开了Strumpy的编辑窗口: 
两个牛叉哄哄的Unity3d Shader编辑器_第3张图片
 
两个牛叉哄哄的Unity3d Shader编辑器_第4张图片
Flie的功能很直观,新建,读取,保存和导出的功能,我们可以先看看读取功能
 
两个牛叉哄哄的Unity3d Shader编辑器_第5张图片
插件自带了一些已经编辑好的范例,有兴趣的朋友可以逐个看看,会有很大的收益。
 
两个牛叉哄哄的Unity3d Shader编辑器_第6张图片
然后我们来正式开始做这个简单的例子,我们准备了一张带有透明通道的贴图(拿斩首大刀的阿赵),接下来我们做一个shader,把这张贴图显示在一个面片上面,使它实现漫反射通道和透明通道的显示。
 
我们新建一个着色器编辑: 
两个牛叉哄哄的Unity3d Shader编辑器_第7张图片
 注意看,新建时,在Settings的标签是红色的,然后Shader Name也是红色的,这是提醒我们,每一个shader必须要先有一个名称,而这个名称就是以后你在材质栏里面选择的材质名称了。比如你可以用“myshader/test”,这样test材质会出现在myshader下面。
 
 
输入材质名词之后,我们先来Inputs里面,新建一个输入。这个输入,就是我们平常在Unity自带的材质球里面看到的输入通道了。假如我们需要它能调节颜色,那么就要新建一个颜色的输入,假如需要调用贴图,就要新建一个贴图的输入。这里我们新建一个Unity预设的MainTexture。熟悉用脚本替换材质贴图的朋友估计很熟悉这个标签的含义了。
两个牛叉哄哄的Unity3d Shader编辑器_第8张图片
 
 
两个牛叉哄哄的Unity3d Shader编辑器_第9张图片
新建之后,我们可以看到,出现了一个贴图选择的通道,就像我们平常操作的自带材质球一样。
 
接下来我们会新建一些节点,然后对他们进行编辑。
创建节点的方式有两种:
第一种是在Nodes里面选择相应的节点:
两个牛叉哄哄的Unity3d Shader编辑器_第10张图片
 
第二种是在节点编辑的窗口鼠标右键单击,选择相应的节点。 
两个牛叉哄哄的Unity3d Shader编辑器_第11张图片
我个人比较习惯第二种方法。
 
我们选择了一个Sampler2D的输入 
两个牛叉哄哄的Unity3d Shader编辑器_第12张图片
刚生成的时候,这个节点是红色的,因为我们没有指定输入的来源。想起刚才我们新建的Input了吧?那个MainTexture指定在这里。
 
两个牛叉哄哄的Unity3d Shader编辑器_第13张图片
在选中该节点的情况下,来到Node的标签,会看到提示错误了
 
两个牛叉哄哄的Unity3d Shader编辑器_第14张图片
我们选择_MainTex
 
两个牛叉哄哄的Unity3d Shader编辑器_第15张图片
这时候,节点就不再是红色了,而是出现了两项输出,分别是2D采样和UV信息。节点名称里面,也会相应的显示出_MainTex,也就是我们刚才新建的Input的名称。
 
两个牛叉哄哄的Unity3d Shader编辑器_第16张图片
接下来我们新建一个Tex2D方法节点。
 
然后像上图一样,用鼠标把他们之间连起来。
 
 这时候,把我们预先准备好的贴图指定在贴图通道里面
两个牛叉哄哄的Unity3d Shader编辑器_第17张图片
 
两个牛叉哄哄的Unity3d Shader编辑器_第18张图片
点击预览窗口的Update Preview,会看到预览的物体上面出现了我们的贴图
 
两个牛叉哄哄的Unity3d Shader编辑器_第19张图片
为了便于观察,我们选择一个片面模型。这时候,漫反射通道已经完成了,接下来我们继续做透明通道。
 
两个牛叉哄哄的Unity3d Shader编辑器_第20张图片
如上图一样,把A连接到Alpha通道。
 
两个牛叉哄哄的Unity3d Shader编辑器_第21张图片
然后来到Settings,按上图设置一下。
 
两个牛叉哄哄的Unity3d Shader编辑器_第22张图片
打开背景显示,会看到透明通道已经生效了。
 
在完成了以上的小例子之后,我们正式来解释一下Strumpy各个部分的意思吧。 
在master里面,分别是各个通道的最终输出。
 
两个牛叉哄哄的Unity3d Shader编辑器_第23张图片
节点是通过有方向性的线条来连接的,分为输入端和输出端,上图是一个单向输入输出的例子。
 
两个牛叉哄哄的Unity3d Shader编辑器_第24张图片
再来是一个运算的例子,Add是相加的操作,这里是两个输入端进入了相加,然后输出一个结果。
在这里要说明一下的是,这些操作很大一部分都是数学运算的方法,比如加减乘除、sin、cos之类,各位在学习之前最好要先理解他们的意思。比如相加就是互相叠加,两张图相加会整张图都变得更亮。相乘是波峰波谷的叠加,两张图相乘,会使亮的地方更亮,暗的地方更暗。其他的方法请各位自行百度去查阅了,就不一一说明。
 
再来看看设置的选项 
两个牛叉哄哄的Unity3d Shader编辑器_第25张图片
如果曾经自己写过shader的朋友,对于这些选项应该是很熟悉的。比如很多朋友问的双面显示,其实就是把CullMode选择为Off就行。
 
 
介绍完基本功能,我们正式的来做这次的目标例子了。 
两个牛叉哄哄的Unity3d Shader编辑器_第26张图片
这里我们准备了一个模型。
 
Strumpy Shader Editor入门教程 - 阿赵 - 有爪的小羔羊阿赵
模型带有了漫反射贴图和法线贴图。
 
两个牛叉哄哄的Unity3d Shader编辑器_第27张图片
首先新建一个着色器编辑,然后给shader起名为:myShader
 
两个牛叉哄哄的Unity3d Shader编辑器_第28张图片
按照第一个例子的操作,我们完成了漫反射通道。
 
两个牛叉哄哄的Unity3d Shader编辑器_第29张图片
为了应用在我们的模型上,我们需要先生成一个shader。选择导出(Export As)
 
两个牛叉哄哄的Unity3d Shader编辑器_第30张图片
给shader起一个文件名。这个名称没有太大的意义。
 
两个牛叉哄哄的Unity3d Shader编辑器_第31张图片
导出之后,我们来到材质球选择的地方,会看到了我们新建的myShader,选择它。
 
两个牛叉哄哄的Unity3d Shader编辑器_第32张图片
然后指定漫反射贴图,我们的模型变成了上图的效果。
 
两个牛叉哄哄的Unity3d Shader编辑器_第33张图片
接下来,我们在Inputs里面新建一个凹凸贴图的输入
 
两个牛叉哄哄的Unity3d Shader编辑器_第34张图片
然后完成法线通道节点的编辑。由于需要使用法线贴图,所以需要加入一个UnPackNormal的节点。
 
两个牛叉哄哄的Unity3d Shader编辑器_第35张图片
这时候,我们会发现输入通道处多了Normalmap通道,我们把法线贴图赋予上去。模型变成上图的效果。
 
两个牛叉哄哄的Unity3d Shader编辑器_第36张图片
我们再新建一个颜色输入,作为高光的颜色。
 
完成高光通道和光泽强度的节点编辑。
这里我用了一个Multiply(相乘),目的是让光泽强度范围的对比度更大,显得高光会更尖锐一点。高光颜色直接连接到Specular通道。
 
两个牛叉哄哄的Unity3d Shader编辑器_第37张图片
现在我们的模型已经拥有了一定的质感了。由于模型原来是没有法线贴图的,我拿了漫反射贴图来直接转换,所以效果差了点,有兴趣的朋友可以自己做法线贴图增强效果。
 
接下来做有动画效果的光。
两个牛叉哄哄的Unity3d Shader编辑器_第38张图片
我们新建了几个输入:发光颜色(_LightColor),一个发光颜色的遮罩贴图(_Light),一个浮点(_dir)作为光运动的方向,一个范围选择(_RimPow)作为发光强度的控制。
 
两个牛叉哄哄的Unity3d Shader编辑器_第39张图片
这张是发光遮罩贴图,是一张黑白的梯度图。
 
两个牛叉哄哄的Unity3d Shader编辑器_第40张图片
这一个步骤的节点编辑有点复杂,基本的思路是将颜色和遮罩贴图混合在一起,并用时间控制UV动画:
1、遮罩贴图我用了ViewDirection和Fresnel结合控制显示方向,并用_RimPow作为显示方向的次幂控制显示强度。
2、为了让光会随着时间自己做动画,我是用来Time和_dir相乘,这样可以控制动画的速度和方向。
3、为了让UV移动做动画,我用了UV_Pan。记得UV_Pan需要选择输入的轴,这里我选择了Y轴。
两个牛叉哄哄的Unity3d Shader编辑器_第41张图片
 
4、最后,我把发光颜色和遮罩运算的结果相乘,达到叠加波峰改变颜色的目的。
 
两个牛叉哄哄的Unity3d Shader编辑器_第42张图片
最后,发布shader,根据需要选择相应的遮罩贴图,指定发光的颜色、强度和方向,我们的例子就完成了。
 
补充说明几点:
1、可能很多功能自带的shader都有,不过有时候你就是会需要一些功能特殊一点的shader,具体需要什么输入通道,和怎样的操作,请根据实际情况考虑。
2、关于即时镜面反射的shader,估计很多朋友都很感兴趣。不过我这里不打算详细介绍,因为unity没有直接即时反射运算的shader。
简单说明一下其原理:
在自带的水面和愤怒机器人场景里面,我们都看到了类似镜面反射的效果,其实这都是一种欺骗。做法不算复杂,其实是根据了当前摄像机的位置,新建了一个相对角度的反射摄像机,并把反射摄像机看到的内容渲染成RenderTexture。最后把RenderTexture和位置矩阵输入到普通材质的贴图通道,达到好像即时反射的效果。水面的例子做法会傻一点,因为它是针对水面物体自己生成了一个反射摄像机,所以的反射效果只会对水面本身有效果,

你可能感兴趣的:(两个牛叉哄哄的Unity3d Shader编辑器)