Silverlight 2.5D RPG游戏技巧与特效处理:(七)动画特写

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面前将一文不值。我始终坚信:追求极致的心必定银光四射,长空千里!

本节源码请到目录中下载

在线演示地址:http://cangod.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/267877.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql myisampack_每天进步一点达——MySQL——myisampack

一、简单介绍myisampack是一个压缩使用MyISAM引擎表的工具&#xff0c;通常会压缩40%~70%,当须要訪问数据。server会将所须要的信息读入到内存中。所以当訪问详细记录时&#xff0c;性能会更好&#xff0c;由于仅仅须要解压一条记录MySQL使用mmap()对变哦进行压缩映射&#xff…

实现搜索功能

准备视图函数search()修改base.html 中搜索输入框所在的<form action"{{ url_for(search) }}" method"get"> <input name"q" type"text" placeholder"请输入关键字">完成视图函数search()获取搜索关键字q re…

日本核辐射究竟有多可怕?

你应该已经知道了由于日本海啸引起的核电站事故。大量无辜的人在得知放射性原料&#xff08;物质&#xff09;泄露的消息之后&#xff0c;都感到害怕和恐慌。 而让你保持冷静的唯一方法&#xff0c;就是掌握正确的科学知识。 有关核辐射的知识 这里有一些信息&#xff1a;   …

mysql下载安装及配置_mysql的下载,安装和配置

顺道向大家介绍一下mysql的安装和配置&#xff0c;mysql数据库应该说是现在整个互联网行业最流行的数据库了&#xff0c;简单易用1.下载&#xff0c;大家可以去官网下载最新的mysql版本&#xff0c;地址&#xff1a;http://dev.mysql.com/downloads/mysql/5.6.html&#xff0c;…

[svc]gns3模拟器及探讨几个bgp问题

模拟器 链接&#xff1a;https://pan.baidu.com/s/1geMcmND 密码&#xff1a;7iir gns0.8.6的版本好用 思科的这个iso好用: c3660-js2-mz.124-21a.bin C2691-AD.BIN(这个也很ok,但是这两个支持的hash算法较少) ctrlshit6 停止命令 R1(config)#crypto isakmp policy 10 R1(confi…

算法导论8.3-4习题解答(基数排序)

CLRS 8.3-4 : 说明如何在O(n)时间内&#xff0c;对0到n^2 - 1之间的n个整数进行排序。 算法思想&#xff1a; 1.把这n个数看成n进制数&#xff0c;那么每个数只有两位&#xff0c;因而循环只需两次 2.调用通用的基数排序(在这写着&#xff0c;留着以后用) 在此题中&#xff0c…

mysql open-files-limit_在mysql 5.5中更改open-files-limit

我在使用open-files-limit参数在Ubuntu 12.04上运行mysql 5.5时遇到问题.我最近注意到由于1024限制导致的一些问题,实际上主系统限制设置为1024,所以我使用以下内容修改了/etc/security/limits.conf&#xff1a;* soft nofile 32000* hard nofile 32000root soft nofile 32000r…

Lucas定理

定义 对于任意质数p $\Huge C_m^n\equiv C_{\biggl\lfloor\frac{m}{p}\biggr\rfloor}^{\biggl\lfloor\frac{n}{p}\biggr\rfloor}*C_{m\ mod\ p}^{n\ mod\ p}\ \ (MOD\ p)$ 证明 对于任意质数p都有 $\huge C_p^i\equiv0\ MOD\ p(i\not 0\&\&i\notp)$ 通过二项式定理&…

Reverse-engineer Source Code into UML Diagrams

今天同事需要反向生成类图&#xff0c;用PowerDesigner 转了一份&#xff0c;不甚满意&#xff0c;在网上逛了逛&#xff0c;发现在这篇文章挺不错。 I have been on several teams where we studiously designed UML diagrams at the beginning of the project. As the projec…

mysql数据库优先_MySQL数据库配置文件之优先级

1.数据库配置方式1)预编译cmake . -DCMAKE_INSTALL_PREFIX/application/mysql-5.7.20 -DMYSQL_DATADIR/application/mysql-5.7.20/data -DMYSQL_UNIX_ADDR/application/mysql-5.7.20/tmp/mysql.sock -DDEFAULT_CHARSETutf8 -DDEFAULT_COLLATIONutf8_general_ci -DWITH_EXTRA_CH…

What's the best way to get rid of get parameters from url string?

https://stackoverflow.com/questions/27267111/whats-the-best-way-to-get-rid-of-get-parameters-from-url-string转载于:https://www.cnblogs.com/jianglijs/p/8081564.html

wince版本ffmpeg的编译 第四篇

4. 编译faac#cd faac-1.28#dos2unix bootstrap //这里是要转换编码格式的&#xff0c;不然configure过不去#dos2unix configure.in#dos2unix Makefile.in#chmod x bootstrap#./bootstrap#./configure –prefix/wm –enable-static –hostarm-mingw32ce –without-mp4v2#make …

R语言数据去重

R语言常用的去重命令有unique duplicated unique主要是返回一个把重复元素或行给删除的向量、数据框或数组 > x <- c(3:5, 11:8, 8 0:5)> x [1] 3 4 5 11 10 9 8 8 9 10 11 12 13> unique(x)[1] 3 4 5 11 10 9 8 12 13> unique(x, fromLast TRUE)…

postman测试带权限接口_接口测试工具:postman

一、postman简介一般简单的接口测试我们可以直接在浏览器里面进行调试&#xff0c;但是涉及到一些要权限设置的就无法操作了&#xff0c;因此我们需接口测试的相关工具&#xff1b;Postman 是一个接口测试和 http 请求的工具。官网下载地址&#xff1a;https://www.getpostman…

记录在Spring-Boot中使用Fegin调用RESTfull的PATCH方法设置

使用了ZooKeeper&#xff0c;设置 spring.cloud.zookeeper.dependency.headers.enabledfalse 参考&#xff1a; https://github.com/spring-cloud/spring-cloud-netflix/issues/2550#issuecomment-353230054 http://blog.csdn.net/menggudaoke/article/details/77884674转载于:…

mysql getcolumnname_jdbc-mysql基础 ResultSetMetaData getColumnName getColumnLabel 得到列的名字和别名...

礼悟&#xff1a;好好学习多思考&#xff0c;尊师重道存感恩。叶见寻根三二一&#xff0c;江河湖海同一体。虚怀若谷良心主&#xff0c;愿行无悔给最苦。读书锻炼强身心&#xff0c;诚劝且行且珍惜。数据、数据&#xff0c;命根就在数据。云计算、AI等技术&#xff0c;都是以数…

AutoLISP 绘制表情图案

AutoLISP 绘制表情图案&#xff0c;喜怒哀乐表情&#xff0c;代码如下。 (defun c:test() (setvar "cmdecho" 0) (princ "\n选取圆或[ENTER]自定圆心半径&#xff1a;") (setq en (entsel)) (if (null en) (progn (setq srr (getvar &qu…

QT的组合键

https://www.cnblogs.com/Jace-Lee/p/5859293.html 转载于:https://www.cnblogs.com/132818Creator/p/8087536.html

python与7无关的数输出格式第一行为所有与7无关的数_70 道 NumPy 测试题

(给Python开发者加星标&#xff0c;提升Python技能)来源&#xff1a;机器之心本 NumPy 测试题旨在为大家提供参考&#xff0c;让大家可以使用 NumPy 的更多功能。问题共分为四个等级&#xff0c;L1 最简单&#xff0c;难度依次增加。机器之心对该测试题进行了编译介绍&#xff…

如何在 Windows Server 中配置权威时间服务器

如何在 Windows Server 中配置权威时间服务器 查看本文应用于的产品本页 简介o 配置 Windows 时间服务以使用内部硬件时钟 帮我修复此问题 我自己修复此问题o 配置 Windows 时间服务以使用外部时间源 帮我修复此问题 我自己修复此问题o 疑难解答 更…