Google的彈指特效小研究

更新 發佈閱讀 3 分鐘

隨著「復仇者聯盟:終局之戰」的上映,Google 在和薩諾斯與無限手套相關的搜尋結果頁面加了一個灰飛煙滅的特效:

vocus|新世代的創作平台

特效被發現後引起了各界熱烈的討論,所以這週末的長知識就來蹭個熱度,看一下灰飛煙滅的特效是如何完成的。

將元素轉換為圖片

其實這個特效很直覺就認為有用 html2canvas,因為需要作出後續的類粒子特效,明顯需要是用圖片下去操作。

稍微用 Chrome devtools 追查一下之後就可以看到 html2canvas 的蹤跡:

vocus|新世代的創作平台
vocus|新世代的創作平台

粒子效果

如果在特效運作的時候觀察一下 DOM 的狀態,會發現似乎有大量的 canvas 被塞進來。深入追查特效本體的區塊,不像一般的粒子特效會有比較多粒子相關的運算,Google 這個特效的程式碼相對簡潔。

vocus|新世代的創作平台

這個粒子效果其實是用一個比較平民的方法達成: 用 canvas 層層疊 + CSS transition 。

在動畫進行中的 Layer view 截圖是長這樣:

vocus|新世代的創作平台

層層疊的學問

已經知道了原理是層層疊起來,是不是後面就簡單了?

仔細看一下上面的動畫截圖,可以發現其實它是稍微有 左 -> 右 這樣散開的傾向,而這點其實是需要靠一些巧思來達到的:

  • 多層 canvas 分開負責由左至右的像素
  • 用不同的 transition-delay 來讓動畫由左至右完成
  • 為了粒子效果的隨機性,對原圖取樣的時候也要加入隨機成分

取樣的方法

取樣的方法一樣是從程式碼裡面挖出來:

vocus|新世代的創作平台
  • 圖層疊起來一定可以拼出原本的圖
  • n 可以控制視覺上的紮實度,Google 取 2 看起來剛好

用此方法做一維取 8 層,大概會是像這樣:

vocus|新世代的創作平台

幾層比較好?

看 code 可以發現 canvas 的數量就是 32 層,照上面的幾點推論下來,理論上層數越多看起來會越自然,當然也相對的越吃效能。

32 層大概是他們權衡效果與效能之後取得的一個最佳數字。

效果重現

把 Google 的版本整理一下,並且讓層數變成可以設定的參數,歡迎大家玩看看不同層數的效果。

如果想要知道對原圖取樣的方法,這個版本的程式碼應該也比打亂過的原版好讀很多。

vocus|新世代的創作平台

位置在: https://jsfiddle.net/pc035860/7pbxc29t/129/

注意

  1. 使用手機觀看的話,層數過高瀏覽器會直接 crash
  2. 選用的 html2canvas 版本在 Firefox 上的繪製效果會有較大誤差,建議用其他瀏覽器觀看

後記

好久沒寫 blog,這次回來寫有一種力不從心的懶散感 Orz

再接再厲。

vocus|新世代的創作平台


留言
avatar-img
批歪的沙龍
4會員
7內容數
網頁前端是一個需要與時俱進的工作。 你也喜歡前端嗎? 在這邊你可以找到一些前端小知識、新技術或是趣聞,歡迎與我們一同成長 🚀
你可能也想看
Thumbnail
長期以來,西方美學以《維特魯威人》式的幾何比例定義「完美身體」,這種視覺標準無形中成為殖民擴張與種族分類的暴力工具。本文透過分析奈及利亞編舞家庫德斯.奧尼奎庫的舞作《轉轉生》,探討當代非洲舞蹈如何跳脫「標本式」的文化觀看。
Thumbnail
長期以來,西方美學以《維特魯威人》式的幾何比例定義「完美身體」,這種視覺標準無形中成為殖民擴張與種族分類的暴力工具。本文透過分析奈及利亞編舞家庫德斯.奧尼奎庫的舞作《轉轉生》,探討當代非洲舞蹈如何跳脫「標本式」的文化觀看。
Thumbnail
Step1. 開啟500X500像素、解析度72之RGB新檔,背景並填入黑色。設定前景色為白色、背景為黑色,執行[ 濾鏡 > 演算上色 > 雲彩效果 ] 產生黑白雲狀,並重複執行二次。 Step2. 執行[ 濾鏡 > 濾鏡收藏館>素描 > 畫筆效果 ] 設定筆觸長度:15、亮度/暗度平衡:50、
Thumbnail
Step1. 開啟500X500像素、解析度72之RGB新檔,背景並填入黑色。設定前景色為白色、背景為黑色,執行[ 濾鏡 > 演算上色 > 雲彩效果 ] 產生黑白雲狀,並重複執行二次。 Step2. 執行[ 濾鏡 > 濾鏡收藏館>素描 > 畫筆效果 ] 設定筆觸長度:15、亮度/暗度平衡:50、
Thumbnail
【檢視範例】【下載範例】 目標動畫效果:應用影片片段元件與傳統補間動畫,以及應用逐格動畫的遮色片動畫技巧,細膩表現繪圖內容的動態呈現。 使用動畫技巧:影片片段元件、傳統補間動畫、形狀補間動畫、逐格動畫、遮色片動畫、導引線。 Step1. 範例檔元件庫中包含了所有將進行遮色片繪圖的影片片段元件(
Thumbnail
【檢視範例】【下載範例】 目標動畫效果:應用影片片段元件與傳統補間動畫,以及應用逐格動畫的遮色片動畫技巧,細膩表現繪圖內容的動態呈現。 使用動畫技巧:影片片段元件、傳統補間動畫、形狀補間動畫、逐格動畫、遮色片動畫、導引線。 Step1. 範例檔元件庫中包含了所有將進行遮色片繪圖的影片片段元件(
Thumbnail
全新版本的《三便士歌劇》如何不落入「復刻經典」的巢臼,反而利用華麗的秀場視覺,引導觀眾在晚期資本主義的消費愉悅之中,而能驚覺「批判」本身亦可能被收編——而當絞繩升起,這場關於如何生存的黑色遊戲,又將帶領新時代的我們走向何種後現代的自我解構?
Thumbnail
全新版本的《三便士歌劇》如何不落入「復刻經典」的巢臼,反而利用華麗的秀場視覺,引導觀眾在晚期資本主義的消費愉悅之中,而能驚覺「批判」本身亦可能被收編——而當絞繩升起,這場關於如何生存的黑色遊戲,又將帶領新時代的我們走向何種後現代的自我解構?
Thumbnail
Step1. 開啟500X500像素、解析度72之RGB新檔,背景並填入黑色。新增圖層1,使用多邊型套索工具,繪製類似如圖之多邊型圖案。 Step2. 使用加亮工具,筆刷:65、範圍:亮部、曝光度:50%,加亮影像邊緣。再使用加深工具,筆刷:65、範圍:陰影、曝光度:50%,加深影像內部。 S
Thumbnail
Step1. 開啟500X500像素、解析度72之RGB新檔,背景並填入黑色。新增圖層1,使用多邊型套索工具,繪製類似如圖之多邊型圖案。 Step2. 使用加亮工具,筆刷:65、範圍:亮部、曝光度:50%,加亮影像邊緣。再使用加深工具,筆刷:65、範圍:陰影、曝光度:50%,加深影像內部。 S
Thumbnail
目標動畫效果:應用影片片段元件與傳統補間動畫,以及多個影片片段元件的組合,包括遮色片動畫技巧,最後結合按鈕元件的使用與停止動作行為,完成互動按鈕的動態效果。 使用動畫技巧:影片片段元件、傳統補間動畫、遮色片動畫。 Step1. 範例檔內場景上各個動畫素材均已各自轉換為
Thumbnail
目標動畫效果:應用影片片段元件與傳統補間動畫,以及多個影片片段元件的組合,包括遮色片動畫技巧,最後結合按鈕元件的使用與停止動作行為,完成互動按鈕的動態效果。 使用動畫技巧:影片片段元件、傳統補間動畫、遮色片動畫。 Step1. 範例檔內場景上各個動畫素材均已各自轉換為
Thumbnail
若說易卜生的《玩偶之家》為 19 世紀的女性,開啟了一扇離家的窄門,那麼《海妲.蓋柏樂》展現的便是門後的窒息世界。本篇文章由劇場演員 Amily 執筆,同為熟稔文本的演員,亦是深刻體察制度縫隙的當代女性,此文所看見的不僅僅是崩壞前夕的最後發聲,更是女人被迫置於冷酷的制度之下,步步陷入無以言說的困境。
Thumbnail
若說易卜生的《玩偶之家》為 19 世紀的女性,開啟了一扇離家的窄門,那麼《海妲.蓋柏樂》展現的便是門後的窒息世界。本篇文章由劇場演員 Amily 執筆,同為熟稔文本的演員,亦是深刻體察制度縫隙的當代女性,此文所看見的不僅僅是崩壞前夕的最後發聲,更是女人被迫置於冷酷的制度之下,步步陷入無以言說的困境。
Thumbnail
Step1. 開啟範例練習檔,為使用選取範圍刪除圓左上角之後的形狀。執行 [ 濾鏡  > 模糊  > 放射狀模糊 ]模糊總量:50、模糊方式:迴轉、品質:最佳。 Step2. 執行 [ 濾鏡 > 模糊 > 動態模糊 ]角度:0、間距:10像素。 Step3. 複製圖層1為圖層1拷貝,再執行 [
Thumbnail
Step1. 開啟範例練習檔,為使用選取範圍刪除圓左上角之後的形狀。執行 [ 濾鏡  > 模糊  > 放射狀模糊 ]模糊總量:50、模糊方式:迴轉、品質:最佳。 Step2. 執行 [ 濾鏡 > 模糊 > 動態模糊 ]角度:0、間距:10像素。 Step3. 複製圖層1為圖層1拷貝,再執行 [
Thumbnail
【檢視範例】【下載範例】 目標動畫效果:應用影片片段元件與傳統補間動畫,以及遮色片動畫技巧,表現金屬框與文字的光澤效果。 使用動畫技巧:影片片段元件、傳統補間動畫、遮色片動畫。 Step1. 範例檔元件庫中包含文字、圓與漸層光三元件。點取場景上文字元件並複製,新增圖層,於圖層上原地貼上文字元件
Thumbnail
【檢視範例】【下載範例】 目標動畫效果:應用影片片段元件與傳統補間動畫,以及遮色片動畫技巧,表現金屬框與文字的光澤效果。 使用動畫技巧:影片片段元件、傳統補間動畫、遮色片動畫。 Step1. 範例檔元件庫中包含文字、圓與漸層光三元件。點取場景上文字元件並複製,新增圖層,於圖層上原地貼上文字元件
Thumbnail
Step1. 開啟範例練習檔,為文字圖層加上斜角浮雕效果,設定樣式:內斜角、技術:雕鑿硬邊、尺寸:43像素、光澤輪廓選擇如圖、亮部模式不透明:52%。 Step2. 新增圖層1,按住Ctrl、滑鼠點取文字圖層建立文字選取區,執行 [ 選取> 修改> 擴張]選取區擴張2像素,同樣在選取區內填入#8
Thumbnail
Step1. 開啟範例練習檔,為文字圖層加上斜角浮雕效果,設定樣式:內斜角、技術:雕鑿硬邊、尺寸:43像素、光澤輪廓選擇如圖、亮部模式不透明:52%。 Step2. 新增圖層1,按住Ctrl、滑鼠點取文字圖層建立文字選取區,執行 [ 選取> 修改> 擴張]選取區擴張2像素,同樣在選取區內填入#8
Thumbnail
【檢視範例】【下載範例】 目標動畫效果:應用影片片段元件與傳統補間動畫,以及遮色片動畫表現產品出現效果,再搭配形狀補間動畫的遮色片技巧,細膩表現產品的動態呈現。 使用動畫技巧:影片片段元件、傳統補間動畫、形狀補間動畫、遮色片動畫。 Step1. 範例檔元件庫中包含了所有將進行動畫的元件(直接由
Thumbnail
【檢視範例】【下載範例】 目標動畫效果:應用影片片段元件與傳統補間動畫,以及遮色片動畫表現產品出現效果,再搭配形狀補間動畫的遮色片技巧,細膩表現產品的動態呈現。 使用動畫技巧:影片片段元件、傳統補間動畫、形狀補間動畫、遮色片動畫。 Step1. 範例檔元件庫中包含了所有將進行動畫的元件(直接由
Thumbnail
本文深度解析賽勒布倫尼科夫的舞臺作品《傳奇:帕拉贊諾夫的十段殘篇》,如何以十段殘篇,結合帕拉贊諾夫的電影美學、象徵意象與當代政治流亡抗爭,探討藝術在儀式消失的現代社會如何承接意義,並展現不羈的自由靈魂。
Thumbnail
本文深度解析賽勒布倫尼科夫的舞臺作品《傳奇:帕拉贊諾夫的十段殘篇》,如何以十段殘篇,結合帕拉贊諾夫的電影美學、象徵意象與當代政治流亡抗爭,探討藝術在儀式消失的現代社會如何承接意義,並展現不羈的自由靈魂。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News