某ゲームのSDキャラデータをぶっこ抜く

スポンサーリンク

SDデータのぶっこ抜き方法を書いていなかったので…

鑑賞するだけだったり、独自モーション無しで動画を作るとかの簡易な用途ならこちらの偉大なサイト様で必要十分なのよ

以下はそれでも…って人向けです。

下準備

こっちの方法と同様のやり方で、charフォルダ内のデータをAssetStudioで展開しておく。
この際に展開後のフォルダ配置をソースファイルごとにしておくと楽。具体的には Options > Group by type を Options > Group by source fileに変更してから展開する。(最新版0.14.38ならばOptions > Export options > Group exported assets byをcontainer pathに変更しておくと良い。この場合、フォルダの階層が深くはなるが、そのままフォルダ名が艦名で出力できる)
これでキャラごとにデータを展開できる。(ただしフォルダ名はハッシュ値になっている。フォルダ名変更ツールはそのうち作るかも…)
面倒なのでフォルダ名変更はPowerShellのスクリプトで処理する。

Scripts
$dir = "D:\hogehoge\AssetBundles\char"
Get-ChildItem -filter CAB* -Path $dir -Directory | ForEach-Object{
	$filename = Get-ChildItem -filter *.png -Path $_.FullName
	$shipname = Split-Path -Leaf $filename
	$shipname = $shipname.Replace(".png","")
	$shipname = "Folder_" + $shipname
	Rename-Item $_.FullName -newname $shipname
	}

$dir = “D:\hogehoge\AssetBundles\char”内のhogehoge部分は各自保存抽出フォルダを保存しているパスに書き換えて。
書き換えたらパワーシェルを起動してマウス右クリックでペーストしてEnterで実行。フォルダ内のファイル名(pngファイル名)にフォルダ名を自動で書き換えてくれる。

AzurLaneSpineCharacterDecoderをダウンロードしてくる。
Java Runtime Environment(JRE)の1.8.0_201以上の環境が動作に必要らしいので、更新する。

Java更新

まずはコマンドプロンプトを起動して以下のコマンドでバージョンを確認。($はいらんよ)

$ java -version

java version “1.8.0_200”
Java(TM) SE Runtime Environment (build 1.8.0_200-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.200-b12, mixed mode)

上のように1.8.0_201未満ならば更新する。(そうでなくても一応最新版にはしておいたほうがいい)
更新方法は、コントロールパネルを開き、検索窓に「java」と入力し表示されるjavaの項目をクリック。Javaコントロールパネルが開くので、更新タブの「今すぐ更新」から最新版に更新する。

もう一度上記のコマンドでバージョンを確認する。更新が反映されていない場合はPCを再起動すると良い。

DragonBonesをダウンロードしてきてインストールしておく。(Spineでもできるかもしれないけどおいちゃんはよく分からんとです)

JSONファイル作成

こっから作業に入る。
ちなみに説明の画像はAzurLaneSpineCharacterDecoderのv1.2.0。(v1.2.1はベータ版であり、私の環境ではエラーを吐き実行できなかった)

AzurLaneSpineCharacterDecoderのcore/assetes/scale.txtを2.0から1.25に書き換える。(作者は2.0でhow toを説明しているが、面倒な作業を増やさないために1.25に書き換えるのもあり。2.0と1.25で最終的に何が違うかは私には分からなかったよ…)

ダウンロードしてきた圧縮ファイルを解凍して、azurlanespine.jarを実行する。

ctrl + O でファイラウィンドウが表示されるので、最初に展開したcharフォルダ内のファイルのうち”キャラ名.skel.txt”を選択する。ちゃんと選択できていると、上の赤背景が白背景に変化する。

次にctrl + S で保存先を選択して(選択しない場合は実行ファイルと同じ階層にoutputというフォルダが作成され、そこに出力される)、Spaceで実行。
うまく出力できてれば、青背景に戻り、”キャラ名.json”というファイルが出力されている。

エラーを履く場合はコマンドラインで実行させエラーを見てみると良いかも。
java -jar azurlanespine.jar ./data/hogehoge.skel.txt

のようにazurlanespine.jarの後に引数としてソースファイルを指定して実行できる。ウィンドウポップアップ後はスペースを押して実行可。エラー発生時にはログを出力してくれる。(hogehoheは任意の文字列)

次に、保存先をもともと”キャラ名.skel.txt”と同じ階層にしていない場合は、output以下に出力されたjsonファイルを”キャラ名.skel.txt”があった場所にコピペする。
そしてそのまま”キャラ名.atlas.txt”の拡張子となっている”.txt”を削除し、ファイル名を”キャラ名.atlas”に改める。(エクスプローラで拡張子が表示されない場合は、ここを参考にして拡張子を表示するように設定すること)

モデル加工

ファイルを読み込ませるのに必要なjsonファイルを作成できたので、ここからはDragonBonesを使ってモデルを整形してやる。

まずはDragonBonesを開く。

ウェウカ~ムしてくれるので、①中段の”Import Project Data”をクリックし、②”Browse…”から書き出したjsonファイルを選択する。

jsonファイルの配置とhogehoge.atlas.txtファイルの名前変更を忘れていなければ、画像のように自動的にテクスチャが選択される。

Finishを押すことで新規にプロジェクトを作成してくれる。

scale.txtを1.25に書き換えていない場合は、以下の手順を追加。

しかし初期状態ではテクスチャの倍率がおかしな事になっているので、手動で全テクスチャ倍率を変更していく。(画像のようにExpand Allをクリックしてレイヤーをすべて展開してあげると作業しやすい)
Afterの画像右の円内に描かれている山のようなアイコンがテクスチャのアイコン。これをクリックして画面下部の2つの数値を1.25に修正する。この際にグレーアウトしているレイヤーも倍率変更すること。(アイコン右の丸をクリックでレイヤーの適用を切り替えられる。)
Before

After

これでなんとなくうまく表示されたように思えるが、メッシュの選択範囲がおかしいので修正する。(こっからはDragonBonesについてちゃんと解説してるサイトで勉強したほうが良いが、とりあえず鑑賞できればいいよって人のために初心者の我流で書いていく。動画とか作りたいなら勉強してねん)

画面右のSceneタブの目玉アイコンをクリックすると、現在指定しているレイヤーのみ表示できる。これを利用してメッシュ(正方形に青の対角線のアイコン)のみを表示し、左のPropertyから”Edit Mesh”をクリックしてメッシュを編集する。
私のようにソフトウェアの使い方がよくわからないって人は、表示範囲を広げてテクスチャすべてを選択するようにすれば良い。

編集を終了したら、0.75~1.25倍位の間でメッシュの大きさを調整してそれっぽいモデル完成。

表示領域左上からはアニメーションの編集もできる。初期アニメーションも取り込まれているので、ちゃんとモデルができていれば見て楽しめる。(また、スキルが有れば自作でアニメーションも作成できる。スキルが有れば…)

編集が終わったらファイルタブからプロジェクトを保存したりアセット一式を書き出したり、アニメーション1周期分のイメージデータを書き出したりできる。動画を作る場合は”Image”から連続する画像として出力することで動画編集ソフトにぶっこめる。mp4などの動画メディアとしての書き出しはできないので注意。

補足

DragonBonesはどういうわけか現在ログインも登録もできない状況となっている。本来はログインしないと保存や書き出しができないのだが、2020年3月現在最新版のversion 5.6.2ならばログインなしでも各種書き出しが可能なので安心して使ってよい。他の類似ソフトで代用しても良いけどね。

メッシュの選択範囲は初期からかなり適当。ガチで動画を作りたいならしっかりと範囲選択とボーンやIKの設定をしたほうが良さげかなぁ…たぶん。そのへんの知識ははDragonBones使い方とかでググればきっと学べるはず。

もっと簡単なツールあったら教えてください。

コメント

タイトルとURLをコピーしました