2014年2月15日土曜日

[unity3d]DisUnityの使い方 UnityのAppの画像・音声データを抜き出す方法


# ちなみに、UnityじゃないAppはもっと簡単なので、別記事で手順まとめてみた。
超簡単!iPhoneのAppから、画像・音声データを抜き出す方法 | miyahiraブログ : http://blog.miyahira.me/2014/08/iphone-app-extract.html


「あのAppがどういうふうにデータを保存してるかが見たいっ!」
って思うタイミングが、誰にでもあると思います。
UIKitやcocos2dとかで作られたAppなら、ipaをunzipすれだけ良いが、
Unityで作られたAppは、そう簡単に行かない。

どうしよう…と困ってるあなた!
この問題を解決するのが今日紹介する、DisUnityです!

ata4/disunity : https://github.com/ata4/disunity

…ってなわけで、DisUnityを使って、iOSのAppのAsset(png, mp3等)を抽出するまでの手順を説明しやす。
動作確認はMacOSXでしかやってないけど、Windowsでもきっと動く。




あ、もちろん自己責任でね。


DisUnityとは

ま、まぁ名前の通り。UnityをDisするツール。
githubのREADME.mdいわく、
抽出に特化した、asset bundleやassetファイル用のツール群
です。
bundleの情報表示、入ってるファイルのリスト表示、抽出等ができるツール。

1. IPAをPCに移す

一番簡単なのは

a) App組み込み分を抽出する場合は、iTunesと同期して、.ipaを.zipにして解凍する

こと。こっちは超簡単。
iTunesで同期すると、AppがPCにバックアップされるので、

こいつをドラッグアンドドロップで、適当な場所にコピーして
ほげほげ.ipa から ほげほげ.zipにリネームする。
そして解凍すると、色々でてくるので、
Payload/「App名」.appを右クリックして「パッケージ内容の表示」を選択する。

そうするだけで、色々中身が見れます…



ただこうすると、追加ダウンロード分がとれないっぽいので、その場合はbを。


b) iExplorerとかでPCにコピーする

追加ダウンロード分を抽出するときは、
iExplorer - iPhone, iPad Music & File Transfer App for Mac & PC : http://www.macroplant.com/iexplorer/

とか、使ったことないけど多分iFunBoxでもいける
iFunBox for Windows | File Manager, Browser, Explorer, Transferer for iPhone, iPad and iPod Touch : http://www.i-funbox.com/

まぁ追加ダウンロード分は、よく $APPROOT/Library/Caches だっけ、に格納するから、
そこはiTunesと同期しないところなので直接取り出さないといけない、といった具合。

2. 解凍したファイルのなかのAssetsの場所を確認

App組み込み分なら、
/アプリ名/Payload/fugafuga.app/Data/
以下にresources.assets とか、 sharedassets1.assets とかがもろもろあるはず。

追加ダウンロード分なら、
/hogehoge/Library/Caches/
以下に、*.unity3dとかがあるはず
ファイル名はAppによるし、拡張子も変えてる可能性あり。

こいつらがTextureやAudioファイルを含んでるファイルなので、
欲しいものはここから取り出せるはず。

3. DisUnityをインストール

まずはgithubからダウンロード

[追記] どうもバージョン0.4も0.5もかなり開発中らしいので(0.5に至っては、デシリアライズ?だけでファイル化もしてくれないとか)、0.3.4をダウンロードすることをオススメします
https://github.com/ata4/disunity/releases

javaの1.7?が必要らしいので、入れとけ。
無料Javaソフトウェアをダウンロード : http://java.com/ja/download/index.jsp
javaまわりの説明は割愛。

ダウンロードしたらshスクリプトが入ってるので、Terminalで

$ ./disunity.sh

とかが動くことを確認する。
Windowsの人は、コマンドプロンプトで上記のコマンドを実行。以降、disunity.shは、disunity.batに脳内で置き換えて下さい。
./disunity.bat

4. AssetをDisUnity!

ついに念願の抽出。下記のようなコマンドをうつだけ。

$ ./disunity.sh unzipしたファイルがある場所へのパス/*

とかってすると、フォルダごとに抽出してくれます。


以上!
楽しいDisUnityライフを!!

関連記事・出典