日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2023/12/10 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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

總結

以上是生活随笔為你收集整理的Silverlight 2.5D RPG游戏技巧与特效处理:(七)动画特写的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。