2020年6月20日土曜日

ゲームのグラフィックを FBX ファイルに吸い出す方法 (AssetStudio)

How to rip Unity games to FBX files

AssetStudio というオープンソースソフトウェアを使って Unity で作ったゲームからグラフィックデータを FBX ファイルに出力できたのでその方法をまとめました。

環境

  1. Windows 10
  2. Unity 2019.4
  3. AssetStudioGUI v0.14.38

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

構造ががシンプルな「クエリちゃん SD版」を使って吸い出し方法を説明します。
「クエリちゃん SD版」は Asset Store から無料でダウンロードできます。
このアセットのプレファブを追加しただけの Scene を作り、キャラクターを吸い出すことを目標とします。

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

AssetStudio をダウンロードする

AssetStudio は Unity でビルドしたファイルからFBXのほか、アニメーション・オーディオ・画像などを出力できるツールです。
公式サイトの Download the latest build version from here をクリックしてzipファイルをダウンロードします。
https://github.com/Perfare/AssetStudio/releases
zipファイルを展開し、AssetStudioGUI.exe のプロパティを開いてセキュリティの 許可する をクリックします。

これで AssetStudioGUI.exe が起動できるようになります。

正常に起動しない場合は .NET Framework 4.7.2 と Microsoft Visual C++ 2017 Redistributable もインストールしてください。

AssetStudio で吸い出す

AssetStudio のメニュー
Flie -> Load folder
でUnity をビルドしたフォルダーを指定します。
AssetStudio の左の階層に level0 というツリーで Scene が表示されます。
今回はこの中の Query-chan-SD のみを指定しました。


メニューの
Model -> Export selected object をクリックます。

エクスポート先のフォルダーを指定すると FBX ファイルとテクスチャ画像が出力されました。

Blender にインポートする方法

FBX ファイルが正常に再現されているか確かめるため、3次元CG編集ソフトの Blender 2.83 を使いました。
メニューの
File -> Import -> FBX
から出力したファイルをインポートします。
ボーンも確かめるので Automatic Bone Orientation にチェックを入れておきました。

AssetStudio で出力した FBX は Unity Assets Bundle Extractor で出力したメッシュに比べると100分の1の大きさになるので Transform の X Y Z とも100倍にします。

Viewpoint Shading を Material Preview にするとテクスチャが正常に表示されました。

Pose mode でボーンを動かすとポーズも正常に動作します。

AssetStudio から出力した 再現性の高いFBX ファイルを出力できることがわかりました。
ただし、どんなことが正常に再現できないか不明な点もあります。
大事なアセットはバックアップしておくことをおすすめします。

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

プライエタリーなゲームでも Unity 製なら AssetStudio で吸い出しできることがあります。
二次利用不可のアセットを使って Unity でビルドしたゲームを公開する場合は、エンドユーザーライセンス契約でリバースエンジニアリングや逆アセンブルの禁止などで保護することをおすすめします。

関連ブログ

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