SkraperでDuckStationとPCSX2のゲームリスト用画像を取得する

ユーティリティPCSX2,DuckStation

PCSX2 Qt GUI ゲームリストのグリッド表示

DuckStationやPCSX2のゲームリストの画像ってみなさんはどうしてるでしょうか?数が少なければ手動でやってもいいと思いますけど多いとかなり大変ですよねぇ…

先日DuckStationの開発版にCover Downloaderという機能が追加されたので「キター!」と一瞬小躍りしましたが使い方を調べてみたら何だか微妙にそれじゃない感じだったので、そろそろSkraperでも使ってみようかな?とリアルに重い腰を上げてみる事にしました。

そんなわけで当エントリーではとりあえずDuckStationとPCSX2のゲームリスト用ボックスアートをゲッツするという目的に特化した内容でSkraperの使い方を紹介したいと思います。尚、今回の趣旨以外の設定についてはさらっと流す気満々ですのでその点はご了承を。

Skraperのダウンロード

SKRAPERはBETA版としてリリースされました。初期のALPHA版では多くのバグが修正されましたが、まだ悪質なバグが潜んでいる可能性が高いです…

by DeepL翻訳

悪質なバグという悪意の塊のような訳がめっさ気になりますが、それでもOKというナッシントゥルーズな方はダウンロードして先に進んでください。

Skraperのインストール

ダウンロードしたバイナリを任意のフォルダに展開するだけです。

.NET frameworkのランタイムが必要

Skraperの動作には.NET frameworkのランタイムが必要ですが、ダウンロードページにあるリンクはちょっと古いバージョンなのでまずはこちらの最新バージョンで試してみてからの方がよさげな気がします。

これじゃなかったらすいませんでしたという事で。

Skraperの初回起動と設定ウィザード

展開したフォルダにある SkraperUI.exe を実行します。

今回はSkraperがどんなツールなのかとりあえずお試しという事でアカウント登録無しで作業を行っていますが、その場合はだいたい何かしら利用制限がかかる可能性があるので(APIのリクエスト数など)もし何らかの理由でうまくメディアが取得出来ないような場合は素直にアカウント登録した方がいいかもしれません。

1回きりならともかく今後も継続して利用するなら捨てアカでもかまわないので登録した方が快適に利用出来るんじゃないかと思われます。

Skraperを起動するとまずはアカウントについて尋ねられるので、アカウントを登録しない場合は以下のように設定して NEXT で次へ。

  • I have an acount(アカウントを持っている)
    ユーザーIDとパスワードを入力かコピペして VALIDATE をクリック。
  • I don’t have an acount, and I want to register(アカウントを持っていないので登録したい)
    SIGN UP をクリックするとブラウザで登録用のページが開くのでそこでアカウント登録しましょう。ユーザー名は4-25文字の英数字、パスワードは6-25文字の英数字が利用出来ます。
  • I don’t have an acount, and I don’t want to register(アカウントを持っていないし登録もしたくない)
    • Yes, I’m sure(はい、そうです)
      …というのも変な返しですが更に念を押す的な感じでしょうか。

後からアカウント登録をした場合は SCREENSCRAPER ACCOUNT タブで登録情報を設定出来ます。

画面が変わったらしばらく待ちましょう。回線速度によっては結構時間がかかりますが、中央のプログレスバーが右端に着くまでなので「こりゃ時間かかるな」と思ったらコーヒーでも淹れてくるなりトイレに行くなりして適当に過ごすのが吉です。

画面が変わったら右下にあるスーファミのゲームパッドっぽいアイコン GENERIC EMULATOIN を選択して NEXT をクリック。

色々なシステムのイメージファイルをまとめて管理している場合はここでルートフォルダを設定するとサブフォルダ以下にあるシステムを自動的に認識してくれますが、とりあえずどこかしら設定しない事には先に進めないので「そんなフォルダねーYO!」という場合は適当なフォルダを選択して NEXT で次に行きましょう。

  • Inspect sub-folder(サブフォルダを検査する)
    好きに設定してもらって構いませんがここでは無しでいきます。

デフォルトでメディアに 4 Images MixManual が設定されてますよという事らしいです。先ほど選択したフロントエンドによって変わってくるんだろうと思いますが、ここで何か設定出来るわけでもないので NEXT をクリックで。

これで初回起動のウィザード的な設定は終了です。

グローバル設定

Skraperのいわゆる全体的な設定です。とりあえずDuckStationとPCSX2、恐らく今後追加する事になるであろう全システムで共通の設定を行います。

システム毎の設定で各タブにある Use Specific configuration for システム名 にチェックを入れてシステム固有の設定をしない限りここでの設定内容がデフォルトで有効になります。

GAMES & FRONT-END タブ

ここは特にイジる必要なしです、全て確認したわけではありませんがエミュレータで使用する拡張子は網羅されているはずなので、むしろイジらない方がよさげです。

  • Games/Roms file extensions:ゲーム/ロムファイルの拡張子

SCREENSCRAPER ACCOUNT タブ

初回起動時のウィザードで設定しなかった場合はこちらから登録出来ます。

GAME LIST タブ

スクレイプしたフォルダ内のファイルをdat化する際の設定でしょうか。私としてはdat自体がそもそも不要ですが無効化は出来ないようなのでとりあえず以下のように設定しておきました。

  • Gamelist type:NO BACKUP, JUST UPDATE EXISTING(バックアップを取らず既存のものを更新)
  • Minimize size (サイズの最小化)
    チェックを入れると作成するdatのサイズを最小化出来ますが、不要なスペースや改行などを全て削除してしまうので可読性が悪くなります。datを直接開いて見る事がある場合はチェックしない方が無難でしょう。

わりとどうでもいい設定なのでここも別にイジらなくてOKです。

METADATA タブ

今回は関係無いのでスルーします。

MEDIA タブ

デフォルトのメディア設定は以下の2つになっていたので

  • 4 IMAGES MIX(ボックスアート・スクショ・ロゴなどを合成した画像)
  • MANUAL(PDF形式のマニュアル)

これを一旦削除して次のようにしてみました。

  • BOX 2D(ボックスアート)
  • TITLE SCREENSHOT(タイトル画面)
  • SCREENSHOT(スクリーンショット)

あくまでも例なので自由に設定していただいて構いません。

まず削除したいメディアを選択して - で個別に消すか、その下の で現在のメディア設定をまるっと消します。

その後 + をクリックしてメディアを追加、Media Type を IMAGEBOX2D に変更すればOKです。ここではついでに TITLE SCREENSHOTSCREENSHOT も追加してみました。

てかよく考えたら最初の 4 IMAGES MIXMANUAL も消さずに Media Type だけ変更すればよかったんじゃないかという話も…まぁこれで削除と追加の手順を覚えたという事で。

DuckStationとPCSX2のゲームリスト用ならタイトル画面とスクリーンショットは不要なのでボックスアートだけでOKです、ゲームリストにタイトル画面を使いたい場合はその限りではありませんが。他のフロントエンド(RetroArchとか)で使用したい場合はついでに取得しておいてもよさそうですけどね?

メディア毎の設定

今回はあまりイジらないようにしましたがメディア毎に以下の設定が行えます。

  • Output folder(出力フォルダ)
    あえて変更する必要はありませんがお好みでどうぞ。
  • Cleanup output folder before generating new media(新しいメディアを生成する前に出力フォルダをクリーンアップ)
    チェックを入れると以前スクレイピングしたメディアが残っていても削除してしまう?ので注意。
  • Resize width to(横幅をリサイズ)
    メディアをリサイズしたい場合に設定します、後から一括でリサイズする場合は設定不要。
  • Resize height to(高さをリサイズ)
    上に同じ。
  • Keep image ratio(画像比率を維持)
    アスペクト比を維持してリサイズするので、普通は横幅か高さのどちらか一方のリサイズとセットで使用します。全てチェックした場合どうなるかまでは確認していません。
  • Gamelist Link(ゲームリストリンク)
    ゲームリストに画像をリンク(そのまんまですがな)は必要無さそうなのでデフォルトでいいでしょう。

ちなみにデフォルトの出力フォルダ構成はこんな感じになります。

イメージファイルのフォルダ
└ media
  ├ box2dfront(BOX 2D)
  ├ screenshot(SCREENSHOT)
  └ screenshottitle(TITLE SCREENSHOT)

MISCELLANEOUS タブ

メディアを取得する際のマッチング条件などの設定です。

デフォルトでは CRC > ファイル名 の順でマッチングされるっぽいですが、CRC関連の処理をスキップさせたら少しは軽くならないかしらという事で以下のように設定してみました。

  • Database matching method(データベースマッチング方式):FILENAME ONLY(ファイル名のみ)
  • Do not inspect archives(アーカイブを検査しない)にチェック

どこまで効果があるかはわかりませんけど一応ね?

むしろCRCでマッチングしてくれないと困るんだけど?という方はデフォルトでOKです。

ちなみに Database matching method が CRC ONLY 以外の場合、中身が空のテキストファイルでもファイル名が「ゲーム名.xxx(処理対象となる拡張子なら何でもOK)」なら メディアを取得させる事が出来ます。

あとの設定はデフォルトでOKですがざっくりと。

  • Languages (in order of priority)
    言語(優先順位)
  • Regions (in order of priority)
    リージョン(優先順位)
  • Use rom region first (when available)
    ロムのリージョンを優先(利用可能な場合)
  • Classification(レーティング)
    日本ではCEROですが今回は関係ないのでそのままでもいいです(画像では変えてますが影響は無いはず)
  • Verbose log(詳細なログ)
  • Save logs to file(ログをファイルに保存)
  • Save non-scraped into file(取得出来なかった内容をファイルに保存)
    システム名.Missing.Serial.txt に出力される内容の事ですかね?ちとわかりません。

イメージファイルのファイル名について

余談になりますがスクレイピング時のマッチングに関係ある話なのでついでに。

イメージファイルのファイル名を自分で適当につけている場合はディスクなら Redump.org 、ロムカートリッジなどは No-Intro を参考にリネームするとマッチング率が上がると思われますが、逆にマッチングしなくなるケースもあるのであくまでも参考程度に考えた方がいいかもしれません。

また、他のエミュレータやフロントエンド(RetroArchとか)も併用している場合はヘタにリネームしてしまうと、そちらのデータベースと整合性が取れなくなって更に面倒くさい事になる可能性があるので安直にリネームするのもおすすめできないという…何とも悩ましいところです。

DuckStation用の画像を取得

それではようやく本題のDuckStation用ボックスアートの取得手順です。

システムの追加

画面左下の + ボタンをクリック、一覧から PlayStation を選択して OK をクリック。

Games/Roms folder のパスを入力かコピペ、または右側のフォルダアイコンをクリックして DuckStation のゲームリスト設定と同じフォルダを選択します。

フォルダを複数設定している場合は同様の手順で1フォルダずつやるか、1つのフォルダにイメージファイルをまとめてしまいましょう。

  • Games/Roms file extensions(拡張子)
    デフォルトでは問答無用でフォルダ内のイメージファイルが全件対象になりますが、拡張子で処理対象をフィルタリングする事も可能です。その場合は Use Specific configuration for PLAYSTATION にチェックを入れて、処理対象にしたい拡張子だけ設定します。
    例)cue,chd,m3u

画像のリサイズと軽量化について

実はここまで設定しちゃえば後は実行するだけ!なんですが、その前に画像のリサイズをどうしましょうかという話になります。気にならない方は別にそのままやっちゃっても問題はありませんけど。

  • 画像サイズが揃っていない
  • 画像サイズの割にファイルサイズがムダにデカい

という理由で一手間かかりますが、私はフリーソフトの「リサイズ超簡単!Pro」で取得した画像をまとめてリサイズ&軽量化しています。JPG品質を85(画質とファイルサイズ的におすすめとされている値)にするだけでもファイルサイズが全然変わってくるのでディスク容量の節約になります。

「リサイズ超簡単!Pro」でのリサイズ設定

設定より短い辺は若干引き伸ばされますが微々たるものなのでね?

  • PSのボックスアート
    縦横指定:320 x 320、JPG 保存品質:85
  • PS2のボックスアート
    縦横指定:228 x 320、JPG 保存品質:85

面倒なのでそこまでやりたくないという方はSkraperの設定(全体・システム個別どちらでも可)でメディアのサイズを変更する事も可能なので、その場合はスクレイピングの前に設定しておきましょう。

Skraperのグローバル設定で行う場合

グローバル設定では汎用的にする必要があるのでボックスアートは高さを固定、スクリーンショットは横幅を固定にしてもう一方はアスペクト比を維持したサイズにするのがよさそうです。

BOX 2D(ボックスアート)
  • Resize height to(高さをリサイズ)
  • Keep image ratio(画像比率を維持)にチェック
タイトル画面とスクリーンショット
  • Resize width to(横幅をリサイズ)
  • Keep image ratio(画像比率を維持)にチェック
設定の例
  • 横幅を640に設定した場合
    アスペクト比が4:3のシステムでは高さが480、16:9のシステムでは360になります。

システム毎に設定する場合

システム毎に個別で設定する場合はアスペクト比を考慮した上で全メディアの高さと横幅を固定してしまった方がpx単位でのブレが無くなるのでよさげです。

  • Resize width to(横幅をリサイズ)
  • Resize height to(高さをリサイズ)
設定の例
  • PSのボックスアート:320 x 320
  • PS2のボックスアート:228 x 320
  • タイトル画面とスクリーンショット:640×480など

スクレイピング実行

それではお待たせしました、右下のデカい をクリックしてスクレイピングを実行しましょう。

画面が変わったら後はひたすら待つだけですが、ある程度経過すると残り時間の予想が出るのでその長さ次第でほげーと見ながら待つなり何か他の事をするのが吉です。

ちなみにスクレイピングが終了すると某FFの戦闘終了時のSEが流れます…

この状態から前の画面に戻る場合はもう一度デカい をクリック、というかそれ以外はウィンドウ右上の × 以外に押せるところが無いような…

メディアの確認と修正

スクレイピングが済んだらフォルダにダウンロードされた画像をビューアで開いて見るか、DuckStation の Cover フォルダにまるっとコピーか移動して確認してみましょう。

するとゲームリストが以下のような状態のゲームがいくつかあると思います。

  • カバー画像が無い
  • どう見ても海外版
  • ゲームは合ってるけどナンバリングが違う
  • いやそれ全然違くね?

そんな場合はとりあえずこの辺りから画像をいただいてきて手動でちまちま修正するしか無いように思います、地道に頑張ってください…と言うか頑張りましょう。

PCSX2用の画像を取得

次にPCSX2用のボックスアートを取得する手順です。先ほどのPlayStationの時と要領は同じなのでもう説明は不要かもしれませんけど一応ね?

システムの追加

画面左下の + ボタンをクリックしてシステムを追加、一覧から PlayStation 2 を選択して OK をクリック。Games/Roms folder にPCSX2のゲームリスト設定と同じフォルダを選択します。

こちらも複数のフォルダを設定している場合は同様の手順で1フォルダずつ順番にやるか、1つのフォルダにファイルをまとめてしまいましょう。

スクレイピング実行

画像のリサイズと軽量化についても先ほどの DuckStation と同様です。OKなら右下のデカい をクリックしてスクレイピングを実行しましょう。

他のシステムのメディアについて

取得するメディアの種類(ボックスアートやスクリーンショットなど)が同じで、画像を後から一括リサイズまたはそのままで利用するなら

  • システムの追加
  • フォルダの設定

この2つだけ設定したら即スクレイプ出来ます、慣れると簡単ですよね?

設定を初期化したい場合

設定をイジってたら何だかわけがわからなくなってきて最初からやり直したいという場合は、画面左下にある WIZARD をクリックするか skraper.config.json を削除して次回起動時に初期設定ウィザードからやり直せます。

Skraper全体じゃなくてシステム単位の話なら設定を削除したいシステムを選択して、システムを追加した時の + の横にある - で削除出来ます。

他のエミュレータやフロントエンドにも

もっと簡単に要点だけかいつまんで紹介するつもりでしたが、あまり不親切では書く意味が無いだろうしとあれもこれもと詰め込んでいったら非常にわかりにくくなってしまったようで我ながらショボーンです。

とりあえず当エントリーではDuckStationとPCSX2のゲームリスト用画像を取得する事を目的にSkraperの使い方を紹介してみましたが、他のエミュレータやフロントエンドに利用する場合もまずこのSkraperでメディアを取得しておいて、後から個別に修正が必要なものだけ何とかすればかなり楽にはなるはずです。

それでも本数の多いシステムは時間もかかるだろうし大変だと思いますが、完成したゲームリストを眺めているだけで幸せになれるという方は苦労してでもやってみる価値はあるんじゃないでしょうか。という事でぜひ頑張ってみてくださいね?