Silverlight中的HLSL不仅适用于场景与动画渲染,对于游戏中的角色,我们同样可以利用它制作动画特写。较常见的比如角色传送时的淡入淡出、扭曲变形、幻化呈现等切换动画,当然还有例如角色被DeBuff时所表现出来的放大缩小以及虚弱时的不规则体形等。适当的场合为角色增加动画特写使得游戏更显精致而华丽,当玩家身心愉快的融入其中而流连忘返时,或许正是这些魔幻般的特效在背后默默的飘散着令人迷醉的芳香。

  还记得Shazzam吗?要制作特写依旧离不开这款强大的工具,以角色的传送特写“幻降”为例,对应Shazzam中的现成特效名为:DirectionalBlur,我们不妨看看它的HLSL代码:

float Angle : register(C0);
float BlurAmount : register(C1);
sampler2D Texture1Sampler : register(S0);

float4 main(float2 uv : TEXCOORD) : COLOR
{
float4 c = 0 ;
float rad = Angle * 0.0174533f ;
float xOffset = cos(rad);
float yOffset = sin(rad);
for ( int i = 0 ; i < 16 ; i ++ )
{
uv.x = uv.x - BlurAmount * xOffset;
uv.y = uv.y - BlurAmount * yOffset;
c += tex2D(Texture1Sampler, uv);
}
c /= 16 ;
return c;
}

  仅仅十来行不到1KB的代码,将之按照第5节的方法配置进游戏项目后,在角色传送结束时我们便通过Storyboard创建基于DirectionalBlur参数为BlurAmount的动画实现360任意角度的幻影过度动画特写:

DirectionalBlur directionalBlur = new DirectionalBlur() { Angle = 90 };
entity.Effect = directionalBlur;
Storyboard blurStoryboard = new Storyboard();
DoubleAnimation doubleAnimation = new DoubleAnimation() {
From = - 0.25 ,
To = 0 ,
Duration = new Duration(TimeSpan.FromMilliseconds( 600 )),
};
Storyboard.SetTarget(doubleAnimation, directionalBlur);
Storyboard.SetTargetProperty(doubleAnimation, new PropertyPath( " BlurAmount " ));
blurStoryboard.Children.Add(doubleAnimation);
EventHandler handler = null ;
blurStoryboard.Completed += handler = (s1, e1) => {
Storyboard sb = s1 as Storyboard;
sb.Stop();
sb.Completed -= handler;
entity.Effect = null ;
};
blurStoryboard.Begin();  

  某些场合为了突出玩家隆重登场,我们通常还会使用到比如“影合”(GrowablePoissonDisk)的动画特写:无数个角色的重影由四面八方汇聚而来,如同灵魂与力量的回归附体:

  某些时候角色从一个空间向另外一个空间穿梭,虚幻的感受是身体被分解成粒子最终从下至上又被重新组合,此时常会用到“新生”(CircleReveal)动画特写来描述这样一个穿越生死的经历:

  除此之外,类似百叶窗的切片特写以及波动扭曲特写在表述特定魔法效果时同样可以起到锦上添花之功效:

  到此为止,本系列Demo中已集成了10数款精炼而实用的HLSL渲染特效,单独的存放于名为Effects的项目中,使用起来非常简便。无论是企业应用亦或是游戏开发;无论是将之用于窗体的渲染,还是用于场景、动画、角色的动画特写都显得游刃有余:

  当然,发自内心的希望更多的Silverlight开发者能融入到HLSL的编写中,实现并分享更多更加炫酷的动画特效为Silverlight将来一统三端打下基础。不远了,Silverlight 5 发布后游戏开发都会易如反掌,一切特效在Silverlight面前将一文不值。我始终坚信:追求极致的心必定银光四射,长空千里!

  本节源码下载地址:Demo6.rar

  在线演示地址:http://silverfuture.cn

一起谈.NET技术,Silverlight 2.5D RPG游戏技巧与特效处理:(七)动画特写相关推荐

  1. Silverlight 2.5D RPG游戏技巧与特效处理:(十一)AI系统

    Silverlight 2.5D RPG游戏技巧与特效处理:(十一)AI系统 作者: 深蓝色右手  来源: 博客园  发布时间: 2011-04-19 11:18  阅读: 1282 次  推荐: 0 ...

  2. Silverlight 2.5D RPG游戏技巧与特效处理(Game Effects):目录

    以当下主流的2.5D RPG客户端品质游戏特效为借鉴,以最大程度控制性能损失为前提,将Silverlight游戏资源占用最小化,综合效果及用户体验最优化,即本系列作者想要向大家讲解的核心技术知识. 本 ...

  3. Silverlight 2.5D RPG游戏技巧与特效处理:(二十一)自定义路径动画

    一直在想应该用什么作为<Silverlight 2.5D RPG游戏技巧与特效处理系列教程>的终结,既要实用而不拖泥带水:又要通用而不哗众取宠.于是一不小心便成就了我一个未了心愿:一切基于 ...

  4. Silverlight 2.5D RPG游戏技巧与特效处理:自定义路径动画

    一直在想应该用什么作为<Silverlight 2.5D RPG游戏技巧与特效处理系列教程>的终结,既要实用而不拖泥带水:又要通用而不哗众取宠.于是一不小心便成就了我一个未了心愿:一切基于 ...

  5. 一起谈.NET技术,Silverlight 2.5D RPG游戏技巧与特效处理:(十一)AI系统

    谈到人工智能(AI),这个话题就太大了:大学里有<人工智能教程>专门讲这方面的知识,什么大名鼎鼎的人工神经网络.遗传算法等等均可一窥究竟,这里如赘述似乎有些班门弄斧,我们暂且丢它一边去吧. ...

  6. 一起谈.NET技术,Silverlight 2.5D RPG游戏技巧与特效处理:(十二)魔法系统

    世界首款Silverlight – MMORPG:<<窝窝世界>>震撼登场!伴着与XNA合体后的Silverlight 5 强势发布,一波Silverlight网游研发海啸即将 ...

  7. 一起谈.NET技术,Silverlight 2.5D RPG游戏技巧与特效处理:(五)圣赞之HLSL渲染动画...

    或许大家依旧对上一节中的"黑夜"及"梦回过去"记忆犹新,追问下去HLSL到底是何方神圣能实现如此炫酷之效果?HLSL(高级着色器语言)作为微软的独门兵器,仅供D ...

  8. 一起谈.NET技术,Silverlight 2.5D RPG游戏技巧与特效处理:(十)空间分层战斗系统...

    提到RPG中的空战系统,首先想到的当然是3D,这方面可是它的绝活.比如以之为核心噱头的<永恒之塔>:当然,在2.5D网游中也有着类似的实现,像<西游记Online>,不过该游戏 ...

  9. Silverlight 2.5D RPG游戏技巧与特效处理:(三)动态光影

    通常来说,只要谈到影子及影子制作,首先想到的不外乎3D.游戏中的影子设计大致可分为硬实现和软实现两种,比如像"游戏影子制作技术"这篇文章所谈到3D游戏影子制作方案Projectiv ...

最新文章

  1. 技术转管理的成功率不到70%!你必须先迈过这9道坎...10页PPT详解
  2. mysql存储base64位用什么类型_了解什么是存储引擎引发的MySQL面试3连问
  3. Synchronized关键字和锁升级
  4. Sturt2做表单重复提交
  5. cxf 本地wsdl_cxf使用wsdl文件生成代码
  6. 【Mac软件推荐】Alfred:Mac下最好的快速启动工具
  7. wpf mvvm MenuItem的Command事件
  8. 1-4 TCP/IP协议族
  9. java string 内存写了_Java String的内存机制
  10. python中shift函数rolling_Pandas Shift函数的基础入门学习笔记
  11. echarts 柱状图 不要平均占据_扎心!工资跑不赢房价!平均薪资4127元/月,配得上8字头的九江?...
  12. oracle删除列的限制,深入理解Oracle索引(10):索引列字符类型统计信息的32位限制...
  13. python爬取去哪网数据_Python爬虫入门:使用Python爬取网络数据
  14. BZOJ 3384: [Usaco2004 Nov]Apple Catching 接苹果( dp )
  15. vscode 历史版本1.68.1
  16. 全国省市区信息,mysql数据库记录
  17. HTML+CSS+JavaScript 迷宫生成算法 【建议收藏】
  18. SAP中决定销售订单出现在MRP运算中的因素
  19. 微信小程序自定义函数返回值
  20. C语言编写实现玫瑰花

热门文章

  1. MySQL利用存储过程自动生成千万条数据
  2. UserCF和ItemCF详细对比
  3. mscbsc移动通信论坛_中移动大量授予员工股票期权,还用过哪些激励手段?
  4. C. Strongly Composite - 数论
  5. 从工地转行互联网网络安全,工资翻了好几倍,我想和大家聊聊我的经历
  6. SqlServer2008实例25 代理键
  7. chemitry 2 单位、基本定律与元素周期表
  8. java 正则 不包含_java使用正则表达式匹配不包含某个规则的字符串
  9. SQL server 2008 r2的激活序列号
  10. 网络攻防技术--第一次作业