有時在網路上會看到有人問可不可以幫忙把某某Flash遊戲的音樂分離出來
其實要把Flash的音樂抽離出來非常簡單,也不需要裝龐大的Flash CS3
只要有Sothink SWF Decompiler這套軟體
不只是音樂,還可以分離出裡面所有元件跟程式碼
甚至可以把swf轉回Flash CS3可開啟的flv檔喔

要能夠反編譯,當然我們要取得該Flash的swf檔案
也許會有人馬上想到Firefox有DownloadHelper這個外掛
可是我用它下載,卻只能抓到flv而不是swf,不是我要的檔案
所以有第二種作法
IE跟Firefox在顯示網頁時都會把上面的圖形等物件存到硬碟裡(稱為cache)
我們只要從一堆檔案中找到自己需要的檔案,再複製出來即可

IE的cache是獨立的檔案,所以要取出來作法相當簡單
先按照以下步驟點選
[工具] - [網際網路選項] - [瀏覽歷程記錄] - [設定] - [檢視檔案]
應該會開一個檔案總管,裡面就是IE記錄的cache
可以直接搜尋*.swf,或用檔名大小最後存取日期之類的訊息來判斷
比方說我要提取出Sonny 2的音樂
因為Sonny 2的遊戲很大,所以用大小排序,通常最大的那個swf就是了
或是如果你剛下載完Sonny 2,去找最後存取日期最新的那個檔案
應該也是Sonny 2的swf檔
找到後直接複製,到別的地方貼上即可

SWF_Decompiler_5.png 

Firefox比較麻煩,你要先安裝CacheVerwer這個外掛
同樣下載完後,選擇[工具] - [CacheViewer]
在搜尋的地方打.swf(神奇,他竟然不能打萬用字元!)
底下就會顯示所有存過的swf檔
看到第一個21MB的sonn-2-2900.swf,應該不用懷疑了
按下右鍵選"另存為..."即可儲存

SWF_Decompiler_0.png

接著請下載Sothink SWF Decompiler
這個是4.4版的,最新版4.5版還沒有繁中破解
下載後解壓縮打開,開啟你剛下載的swf檔
左邊就是你該遊戲的畫面,可直接在上面玩
不過我們目的不是來玩的
請在右邊的資源窗格中,點選檔名左邊的+按鈕
就會開始一陣子的反編譯動作
這段時間慢可以慢到幾十秒,看這個遊戲的資源多寡而定
不要以為當機就把他關掉了喔!

好,反編譯完後,會列出一個Flash所需要的所有素材
比方說形狀、圖像、音效、文字、動作等等
點選上面的字樣,左邊窗格會把所有內容預覽
下圖就是選形狀之後的結果
可以再點左邊的物件進去能觀看大圖

SWF_Decompiler_1.png

有些類別沒有預覽的功能,這時一樣按下+號展開
再一個個選取來觀看
我們這次要找Sonny 2的戰鬥音樂
就要先把音效這個類別展開
看到有一個檔案寫(_music_battle1)
不要懷疑,這就是它的戰鬥音樂,就這麼簡單

SWF_Decompiler_2.png

不過聽到後要怎麼抓出來呢?這也很簡單
直接勾選你要的物件,然後按上方的"匯出資源"
會跳出下方的畫面,問你要存在哪裡
檔案格式的部分可以自由選取匯出的格式
應該不需要我step by step才是

SWF_Decompiler_3.png

順便一提,它也可以看到Flash裡面所有程式碼
像是下圖就是Sonny 2的MainMovie
光是Main就有23488行!你就知道這個遊戲有多用心了

SWF_Decompiler_4.png

就像第一段說的,這個程式也有把swf給轉回flv的功能
不過我沒有裝Flash CS3,不知道效果如何就是了

俗話說「江湖一點訣,說破不值錢」
希望這個簡單的教學,可以幫助大家截取出想聽的音樂
不過可別把別人辛苦的素材拿去盜用囉

----
本日分享歌曲 Sonny 2 - battle 3
這是截取出來的成果

arrow
arrow
    全站熱搜

    蕭雲 發表在 痞客邦 留言(4) 人氣()