Silverlight游戏研发手记:(五)SLG动感增效之《幻影粒子》

Stella981
• 阅读 557

随着电子技术发展与普及,人们使用电脑时间越来越长,由于人类自身身体比如眩晕症、眼球衰老等客观因素存在,未来玩家会更加倾向于低视疲劳度/低神经刺激的绿色健康休闲2D游戏而非3D。《希魔复活》2D/3D双版本发售后截然不同的反响再一次向印证了2D游戏是永远不会被3D取代的,甚至超越!当然,超越的关键便在于游戏的动态细节处理与把握,这是一种历史必然的进化而非简单回归。

如果说过去,因为计算机的性能瓶颈开发不出高画质、华丽的SLG游戏;但今天,足够的条件让这一切成为现实:Silverlight + 《幻影粒子》,我们正全力打造下一代动感十足之SLG。

还在为游戏中华丽的魔法特技而流口水吗?

Silverlight游戏研发手记:(五)SLG动感增效之《幻影粒子》

其实这一切效果包括阳光、雨滴、瀑布、火焰、爆炸、烟雾、涟漪、魔法等等,我们都可以通过一款名为《幻影粒子》的工具轻松制作:

Silverlight游戏研发手记:(五)SLG动感增效之《幻影粒子》

幻影粒子》是一款专业级的2D动画特效制作软件(自带有庞大的粒子特效库,官方定期更新,且网上也可以找到很多第三方发布的特效库),绝对是2D游戏锦上添花之利器,其做出来的粒子效果毫不逊色于3D。不夸张的说,甚至完全可以制作仿真级电影级特效。

没错,是它让我深刻感受到,动画已不再是美术的专利,《幻影粒子》让万能的游戏程序员神奇崛起!

当然,本人也仅仅是一名初学者,有兴趣深入学习的朋友可以在网上搜罗大量相关教程;对于大多数游戏开发者来说,以修改现成的案例作为入门,可以更好的了解该软件的整体使用流程和大致细节处理,掌握在如此庞大而现成的粒子效果库上进行修改和二次创作是性价比最高的使用方案。

那么就暂且班门弄斧一回,分享一下我为本系列教程SLG Demo添加几味特效的制作过程。

Silverlight游戏研发手记:(五)SLG动感增效之《幻影粒子》

以上为一幅传统的RPG地图,对于老游戏来说,或许这样的效果已经很精致了;但是现在的多核电子设备迅猛如此迅猛,以至于为了不让性能白白浪费,我们完全可以在画面方面更进一步,让效果最大化。

如何让静止的烟囱冒出滚滚浓烟?如何让古老的宝箱闪闪发光?如何让失落的水井格外突出?

传说,森林中的每一口水井深处都隐藏着神秘宝藏,当它的主人出现时便会放射出耀眼的绿色光芒。那好吧,我们就先为这口水井添加一道绿光吧!

循着光的轨迹,我们打开《幻影粒子》:

Silverlight游戏研发手记:(五)SLG动感增效之《幻影粒子》

在库面板上右键->快速载入粒子库,我们可以看到已经集成了十多款非常经典的的粒子特效库。

其中的“火花粒子”库中便有一款很有神秘感名为Star Trail 3的粒子特效:

Silverlight游戏研发手记:(五)SLG动感增效之《幻影粒子》

播放后发现尺寸大了些且颜色也不对,必须得修改。于是我们双击打开它的“发射器属性”并对其局部细节及“缩放”和“粒子颜色”属性进行调整:

Silverlight游戏研发手记:(五)SLG动感增效之《幻影粒子》

Silverlight游戏研发手记:(五)SLG动感增效之《幻影粒子》

Silverlight游戏研发手记:(五)SLG动感增效之《幻影粒子》

对比地图中水井的大致尺寸对整个项目进行缩放:

Silverlight游戏研发手记:(五)SLG动感增效之《幻影粒子》

Silverlight游戏研发手记:(五)SLG动感增效之《幻影粒子》

接下来在项目窗口正中间点击一下,便可将该特效放置于项目中:

Silverlight游戏研发手记:(五)SLG动感增效之《幻影粒子》

点击绿色播放按钮,嘿嘿闪耀的绿光出现啦

Silverlight游戏研发手记:(五)SLG动感增效之《幻影粒子》

Silverlight游戏研发手记:(五)SLG动感增效之《幻影粒子》

剩下的问题是,在Silverlight的游戏中如何使用它?当然,首先得将这个动画进行输出:

Silverlight游戏研发手记:(五)SLG动感增效之《幻影粒子》

Silverlight游戏研发手记:(五)SLG动感增效之《幻影粒子》

《幻影粒子》提供的输出格式还挺多的,经过本人一一测试,最终的结论是:只有AVI(无损)和PNG(有损)比较靠谱,分别对应电影特效和游戏特效应用领域。

对于Silverlight来说,毫无疑问,当然选择PNG。当然,特别需要注意的是尽量规避黑色的元素部件;因为《幻影粒子》导出的PNG并非无损,尤其是粒子效果中若掺杂有黑色像素,导出的图片相当糟糕:

Silverlight游戏研发手记:(五)SLG动感增效之《幻影粒子》

OK,按照以上参数点击确定后,我们便可得到连续的120帧粒子动画PNG序列图片。实际上绝大多数2D游戏基本都用不上如此高的帧频,所以我们可以根据游戏的实际品质需求,截取中间部分,并间隔提取必要帧图,比如每间隔4提取一张便足以构建一个连贯循环的绿光动画,再以连续有规律的数字对它们进行命名:

Silverlight游戏研发手记:(五)SLG动感增效之《幻影粒子》

最后,将这些图帧添加到游戏中并通过一个名为Animation的控件呈现出来。以同样的方法,我们在《幻影粒子》中也能找到现成类似的冒烟及闪光动画,将它们稍作修改后便可加入到游戏中烟囱和宝箱上面~哈,瞬间整个游戏生动了许多!

Silverlight游戏研发手记:(五)SLG动感增效之《幻影粒子》

这是一款基于Silverlight的SLG游戏引擎的一部分,在线演示Demo如下(点击下载该Demo源码): Silverlight游戏研发手记:(五)SLG动感增效之《幻影粒子》

手记思考:其实,最让人兴奋的莫过于通过《幻影粒子》制作出来的动画特效所有权完全属于制作者,制作者们再也不用担心版权问题(如此大量的变化参数,改动后的样式外观都会发生千变万化),在它的辅助下进行Silverlight游戏开发真乃如鱼得水~高性能开发效率搭配高品质,这难道不是我们所有游戏开发者最梦寐的追求吗!

中游在线《WOWO世界开源》,所有游戏厂商都开始在移动平台布局;随着多核手机将成为趋势,手机游戏中多量炫彩动画将不再成为性能问题。近期诺基亚宣布亚太总部将由新加坡迁至北京,这对于Windows Phone应用开发来说锦上添花!加油吧,开发者们!

原文链接: http://www.cnblogs.com/alamiye010/archive/2012/01/19/2327574.html

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
2年前
java将前端的json数组字符串转换为列表
记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表。前端数据转化与请求varcontracts{id:'1',name:'yanggb合同1'},{id:'2',name:'yanggb合同2'},{id:'3',name:'yang
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
为什么mysql不推荐使用雪花ID作为主键
作者:毛辰飞背景在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这