2018年1月7日日曜日

ゲームのグラフィックや音声を吸い出す方法 (Unity Assets Bundle Extractor)

How to rip Unity games to graphics and audio clips

Unity Assets Bundle Extractor というツールを使って Unity3D (以下 Unity) 製ゲームのグラフィックや音声を吸い出して
ファイルに復元する方法を試してみました。

※ FBX ファイルに復元したい場合は ゲームのグラフィックを FBX ファイルに吸い出す方法 (AssetStudio) をご覧ください。


環境

  • Windows 10
  • Unity 5.6.5
  • Unity Assets Bundle Extractor 2.1
このブログを書いている時点の Unity の最新バージョンは 2017.3.0 ですが、Unity Assets Bundle Extractor 2.1 では最新の Unity でビルドしたゲームの吸い出しが出来なかったため Unity をバージョンダウンして検証しました。


吸い出す対象のゲームを作る

メッシュオブジェクトがシンプルな「クエリちゃん SD版」を使って吸い出し方法を説明します。
「クエリちゃん SD版」は Asset Store から無料でダウンロード出来ます。
blog.fujiu.jp ゲームのグラフィックや音声を吸い出す方法

このアセットのプレファブを追加しただけの Scene を作り、キャラクターを吸い出すことを目標とします。

exe ファイルにビルドします。
今回は uabe_sample.exe というファイル名でビルドしました。


Unity Assets Bundle Extractor をダウンロードする

Unity Assets Bundle Extractor (以下、UABE) は Unity でビルドしたファイルからグラフィックや音声を吸い出すツールです。
機能はシンプルですが無料で公式サイトからダウンロードできます。
https://7daystodie.com/forums/showthread.php?22675-Unity-Assets-Bundle-Extractor

ダウンロードした zip ファイルを展開して AssetBundleExtractor.exe をダブルクリックすると起動します。


UABE で吸い出す

exe ファイルをビルドした場所に ○○_Data というフォルダーがあります。
uabe_sample.exe をというファイルにビルドしたらフォルダー名は uabe_sample_Data です。
UABE のメニュー
File - Open
でそのフォルダーの中の sharedassets0.assets というファイルを開きます。
ビルドした Unity が新しすぎると下のような画面が表示されるので選択肢のうち最も新しいバージョンを選択します。

UABE の 解析が正常に出来ると Assets info という画面が表示されます。

Type が Texture2D なら画像、Mesh ならメッシュオブジェクト、AudioClip なら音声です。
Mesh を吸い出すなら メッシュオブジェクトを選択して 右の Plugins をクリックして Export to obj を選んで OK をクリックします。
画像を吸い出すなら Texture2D オブジェクトを選択して Plugins をクリックして Export to .tga または Export to .pngを選んで OK をクリックします。
音声を吸い出すなら AudioClip オブジェクトを選択して Plugins をクリックして Export sound を選んで OK をクリックします。

下は Body のメッシュオブジェクトを吸い出してペイント3Dで開いた結果です。
胴体が吸い出せました。

Texture2D と Mesh を全部吸い出して Blender で復元してみました。
UV座標が保持されているのでテクスチャが正確に再現出来ました。


市販のゲームも吸い出し出来る

プライエタリーなゲームでもUnity製なら吸い出し出来ることがあります。
ただしほとんどのゲームは著作権やエンドユーザーライセンス契約などで保護されています。


AUBE の限界

AUBE で吸い出したメッシュオブジェクトはリギングが失われ親子関係も保たれません。
ほかのゲームに使い回すのは難しいと思います。
大事なアセットはバックアップすることをおすすめします。

関連ブログ

Unity3D のC#スクリプトを Visual Studio Code で編集する方法
Live2D を Unity3D で動作させる方法
[Unity3D] ユニティちゃんたちのアニメーションを分離するスクリプト


0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。