午後わてんのブログ

ベランダ菜園とWindows用アプリ作成(WPFとC#)

PCSX2でテクスチャ置き換え、グランツーリスモ4のモチュールピットワークZを青くするまでの手順

目的

プレイステーション2エミュレータのPCSX2上で、グランツーリスモ4のスーパーライセンス12の教習車 日産 モチュールピットワークZ(JGTC) 2004の色を赤から青に変更したい

青のZが見たい


pcsx2でテクスチャを保存

今回使ったpcsx2のバージョンはNightlyのv1.7.4318だった

v1.7.4318
2023年4月

Hotkeyの設定

テクスチャ保存するときのショートカットキー

Hotkeyの設定
メニューのSetting→Hotkeyから
Toggle Texture Dumping(テクスチャ保存)と
Toggle Texture Replacements(テクスチャ置き換え)を
適当に設定する
今回はそれぞれctrl+F10とF10に設定した

保存実行

書き換えたいテクスチャが表示されている場面で、Toggle Texture Dumpingに設定したHotkeyを押すと保存開始される、もう一度押すと保存終了になる
録画ボタンみたいな感じの動作

Texture Dumping切り替え
enabled(保存中)とdesabled(中止)がHotkeyを押すごとに切り替わる
保存時間は数秒もあれば十分?

保存場所は

pcsx2の実行ファイルのあるフォルダのtextures\ゲームのID?\dumps
グランツーリスモ4の場合はtextures\SCPS-17001\dumpsだった

保存場所
保存されたテクスチャのファイル数は93個、この中から目的のファイルを探して編集する

目的のファイルを探しやすくする、編集しやすくする

保存された画像ファイルはすべて半透明になっていて、見づらいので不透明度を変更する

変更前と変更後の比較

右が変更後

今回使うアプリは一昨日できたばかりのOpaOpaOpasity

OpaOpaOpasityでアルファ値に127足す

  1. 起動したら、ウィンドウにテクスチャファイルのどれかをドラッグアンドドロップする
  2. 不透明度の指定を0.5(アルファ値127)にする
  3. 全体変換保存の足し算ボタンを押す

これでdumpsフォルダにopaopaopasityフォルダが作成されて、その中に変換されたファイルが保存される

保存された画像のアルファ値が127か128なので、それに127を足せば254か255になりほぼ完全不透明になる
255にするんなら足し算じゃなくて、255に変更すればいいんだけど、テクスチャの中にはゲーム中において半透明に表示されるものがあって、そのアルファ値は127未満、それを255にしてしまうと、置き換えたときに不透明で表示されてしまうから足し算にしている

探す

画像閲覧アプリとかで表示して探す。標準のエクスプローラーも意外に見やすいと思った
モチュールピットワークZは赤いので、赤が使われているそれっぽい画像を地道に探す

目的のファイル

画像を編集

png形式で保存できるアプリならなんでもいい

Pixtack紫陽花で色変換(色相変換)

赤系の色を青系に変換する

色の取得

  1. 編集する画像ファイルをドラッグアンドドロップして表示
  2. テスト機能ボタンをクリック
  3. テスト機能の色変えタブをクリック
  4. 彩度って書いてある右のマスをクリック これでマウスカーソルがスポイトに変化するので、クリックしたところの色が取得できるようになる

スポイトカーソルで色取得
スポイトカーソルでクリックしたところの色が、彩度の右のマスに表示される
マウスカーソルを元に戻すために、そのマスをクリックで色の取得完了

色相移動

マスの上にある数値が色相、今回は359度なのでほぼ赤色ってことがわかった
青の色相は240度なので、359を240にすればいいわけだから引き算なら、359-240=119なので119引けばいい
色相は円環なので、足し算なら240+360-359=241、241を足せばいい
Pixtack紫陽花の色相移動は足し算しかできないので241足すことにする

色相移動

テスト機能の色変えタブ→その他タブで
色相移動にチェックを入れて、数値に241を指定して、変換実行すると

色相移動変換完了
赤が青に変換される

もう一つの色相変換

赤しかない画像なら色相移動でいいんだけど、赤以外もあって赤だけ変換したいときは

変換する色相の範囲指定
「色変えタブ」の「色相からタブ」を表示して、右上辺りにある範囲の数値で、変換対象となる色相の範囲を指定できる
この数値を30にしたらうまく変換できた
元画像には黄色(オレンジ?)があって、これはそのままにしたい
橙色から黄色の色相は30から60あたりで、赤は0前後
なので範囲を30以下にすれば橙色や黄色は外れることになる

保存先フォルダ

dumpsフォルダの隣りにある
textures\SCPS-17001\replacements

保存
保存場所、名前、形式
名前は元ファイルからコピペ、形式はpng

不透明度を戻す

127足していたので、127引いて元に戻す

OpaOpaOpasityでアルファ値引き算


opaopaopasityフォルダからrepracementsで移動

半透明に戻したファイルをreplacementsへ移動(上書き)

テクスチャ編集完了


pcsx2でテクスチャ置き換え

pcsx2に戻って、Toggle Texture Replacementsに設定したHotkey(今回はF10キー)を押せば適用される

テクスチャを置き換えたところ
できた!!!!!!!!!!!!

Hotkeyはトグルなのでもう一度押すと元のテクスチャが適用される

切り替え

足りないテクスチャ

できたと思ったのにリプレイ画面を見ていると

遠くに小さく写っているときは、元の赤色になっている

近づくと書き換えた青になる
これは小さく映っているときと大きく映っているときそれぞれで、テクスチャ画像を切り替えているみたいで、車体の同じ部分のテクスチャが複数あるから
なので、この小さく映っているときにテクスチャを保存して、同じように加工してReplacementsフォルダに入れる必要がある

で、リプレイ中ずっとDumpingをenabledにして保存してみた結果

リプレイ時のテクスチャ画像数、732個
732個の中から探すことになる
これはまだわかりやすい
これは難易度高い、リアガラス?部分

ボンネット部分は3サイズ

全部書き換えることができたら

遠い
近い
かっこいいの完成

テクスチャ置き換えは一時的

ゲームのデータ自体を書き換えるわけじゃないので、pcsx2の再起動やリセットで元に戻る
けど、Replacementsフォルダのファイルを削除しない限りは、Hotkeyで再適用できる



感想(今北産業)

青のZもかっこいい
OpaOpaOpasityはこのために作った
Pixtack紫陽花の色相変換も良かった


関連動画

2023/07/02追記
結果を動画にしてみた
www.youtube.com

関連記事

OpaOpaOpasityは昨日、一昨日
gogowaten.hatenablog.com
記事一覧は
gogowaten.hatenablog.com

6年前、Pixtack紫陽花の最終バージョン
Pixtack紫陽花2.7.96.190、不具合修正 - 午後わてんのブログ
gogowaten.hatenablog.com

8年前!?
Pixtack紫陽花2.7.91.177_色相変換、色相範囲指定 - 午後わてんのブログ
gogowaten.hatenablog.com