天天看點

Silverlight 遊戲開發小技巧:傳送點特效制作Silverlight 遊戲開發小技巧:傳送點特效制作

前面我們使用投影(Projection)完成了一個更新的特效,Silverlight故事闆動畫相當的容易,這次我們将詳細說說故事闆動畫的幀制作,完成一個循環的傳送點特效,大家都知道,在遊戲中,傳送點一般是固定在某一個地方,循環播放,它通常表明這裡會有一個事件之類的特殊地點,我們将用前面的更新特效稍微改造,就可以得到了:

<a target="_blank" href="http://blog.51cto.com/attachment/201111/215403672.jpg"></a>

這個系列隻是有關于遊戲開發的小技巧,相比純粹的技術文章要簡單一些,我個人感覺可能更加偏向于Blend美工方面的工作,能夠為各位Silverlight開發者帶來一些新的思路,就是一個不錯的開端。

現在我們在工程中加入一個傳送點的控件,這個控件仍然和更新特效一樣,在0,0點為中心,

<a target="_blank" href="http://blog.51cto.com/attachment/201111/215346992.jpg"></a>

<a target="_blank" href="http://blog.51cto.com/attachment/201111/215309676.jpg"></a>

我們的目的是讓這個旋轉起來,中間的人物是我先放置作為參考物的,并且是正确的角度,是以需要Projection旋轉到正确的角度:

<a target="_blank" href="http://blog.51cto.com/attachment/201111/215154620.jpg"></a>

請注意,第一層的Grid控件是變換的3D角度,而它下一層的Gird則是用來整體旋轉,是以要套兩層的容器。

現在打開故事闆,建立一個名字為ANI_Show

<a target="_blank" href="http://blog.51cto.com/attachment/201111/215142102.jpg"></a>

你做一下旋轉嘗試呢,調整旋轉的角度,當然了,要標明正确的Gird容器

現在我們調一組動畫出來

<a target="_blank" href="http://blog.51cto.com/attachment/201111/215128197.jpg"></a>

添加關鍵幀,然後将0位置關鍵幀到新位置關鍵幀角度設定0-360度的動畫。

此時此刻這個故事闆動畫還是單向,我們要做成循環的動畫,下面選擇動畫的名字,在播放模式地方選擇Forever,現在這個效果會在0-360度的動畫循環了。

<a target="_blank" href="http://blog.51cto.com/attachment/201111/215047476.jpg"></a>

好了,Forever并不會在預覽的時候自動重複的播放,而是在實際運作中才會,先把這個放一邊,

此事的傳送點似乎少點什麼,我們加一個點綴:

<a target="_blank" href="http://blog.51cto.com/attachment/201111/215031459.jpg"></a>

這個圓圈和裡面的是一樣的,隻是簡單的複制,但是動畫則是上下的循環,并且旋轉的方向相反,下面一起來制作它:

<a target="_blank" href="http://blog.51cto.com/attachment/201111/215003700.jpg"></a>

在開始的位置上加入一個關鍵幀,

<a target="_blank" href="http://blog.51cto.com/attachment/201111/214946820.jpg"></a>

然後在上面旋轉一半的位置上添加另外一個關鍵幀,移動小圓圈下來,而我們要在最後一幀的時候傳回到最初狀态,

<a target="_blank" href="http://blog.51cto.com/attachment/201111/214912166.jpg"></a>

選擇起始點的第一個關鍵幀,點選右鍵,選擇Copy,這個操作會将這個關鍵幀的資訊記錄下來,你可以粘貼對象使它們也有對應的動畫,在這裡,我們僅僅是操作動畫,從0的位置到新的位置,并且傳回到初始狀态。

<a target="_blank" href="http://blog.51cto.com/attachment/201111/214824488.jpg"></a>

為了達到這個效果,隻需要粘貼第一開始的關鍵幀,如上圖所述,将時間軸移動到最後面,和前面的大圓圈旋轉結束是一個位置上(此時大圓圈的旋轉關鍵幀我調整到了第5秒,也就是說,它将用5秒播放從0到360的角度動畫)

<a target="_blank" href="http://blog.51cto.com/attachment/201111/214739149.jpg"></a>

時間軸确定之後,直接選擇粘貼即可。

<a target="_blank" href="http://blog.51cto.com/attachment/201111/214634730.jpg"></a>

現在簡單的播放測試一下,你會發現小圓圈上下移動。

但是光有移動不行的,要有一些旋轉的效果

<a target="_blank" href="http://blog.51cto.com/attachment/201111/214618645.jpg"></a>

因為圓圈并不需要所有的都旋轉,是以,我們隻需要選擇它的子元素就行了。

<a target="_blank" href="http://blog.51cto.com/attachment/201111/214556608.jpg"></a>

我們在這裡将旋轉動畫設定成為-360度,這樣看起來就更加自然一些,

好了,我們制作完畢,可以仔細來看這個效果。

在遊戲世界中,傳送點會有很多中形式,是以你可以使用一些屬性來規定好這些動畫資訊,用以控制在不同的場景中的表現,關于傳送點特效,已經介紹完畢,關于Projection就這樣完畢了嗎,當我們發送想象的時候,會有更多有趣的效果制作出來,我在下一篇會介紹有關Projection制作圓形沖擊波的效果,敬請期待:)

本文轉自nowpaper 51CTO部落格,原文連結:http://blog.51cto.com/nowpaper/712784

繼續閱讀