VRChatのスクショを、タイムトラベルせずにAmazon Photosに保存したい
ちゅうこってタイトル通り、
Amazon Photosは、Prime会員なら容量無制限で保存できるので、そこにVRChatのスクショを溜め込みたい!
でもなぜか日付情報が反映されず、目的の写真がアルバムの渦に埋もれちゃう。。。
それをなんとかしようぜって話です
まず超ざっくり手順
Windowsに「imagemagick」と「exiftool」というアプリをインストール
それらを利用して画像をこねくり回すbatファイルを作成
batファイルを実行すると日付データがついたjpegファイルが生成される
それをアップロード
お掃除して完了
おけ!じゃあやっていこう!!!
手順!
Windowsに「imagemagick」と「exiftool」というアプリをインストール
これは今のWindowsなら超お手軽にできる方法が存在するので、それに頼りましょう!
Windows 10/11には、wingetというパッケージマネージャーが備わっています
簡単に説明すると、コマンド一つでアプリのインストールやアップデートができちゃう超スゲェやつです
ちゃんとWindows Updateをしていれば既に使えるようになっているはずなので、早速以下のコマンドをpowershellで実行しましょう!
winget install ImageMagick.ImageMagick OliverBetz.ExifTool
これで必要なツールは揃いました!
じゃ次!!!
それらを利用して画像をこねくり回すbatファイルを作成
じゃまずは適当なbatファイルを作成しましょう
ちゅうことでメモ帳を開いてください
開いたら、以下のコードをまるっとコピペ!
@echo off
setlocal enabledelayedexpansion
rem 'jpg-generated' フォルダが存在しない場合は作成
if not exist "jpg-generated" mkdir "jpg-generated"
rem 現在のディレクトリおよびサブフォルダ内のPNGファイルを処理
FOR /R %%F IN (*.png) DO (
set "fullpath=%%F"
rem ファイル名のみを抽出
for %%A in ("!fullpath!") do set "filename=%%~nxA"
rem ファイル名から年月日時分秒を抽出
set "year=!filename:~7,4!"
set "month=!filename:~12,2!"
set "day=!filename:~15,2!"
set "hour=!filename:~18,2!"
set "minute=!filename:~21,2!"
set "second=!filename:~24,2!"
rem EXIFフォーマットに合わせて日付と時間を組み立てる
set "datetime=!year!:!month!:!day! !hour!:!minute!:!second!"
rem 組み立てた日付と時間を表示
echo DateTimeOriginal: !datetime!
rem PNGを高品質のJPGに変換し、'jpg-generated' フォルダに保存
set "newfilename=!filename:.png=.jpg!"
magick convert "!fullpath!" -quality 100 "jpg-generated\!newfilename!"
rem EXIF情報を追加
exiftool "-DateTimeOriginal=!datetime!" -overwrite_original "jpg-generated\!newfilename!"
)
endlocal
次にこの状態でキーボードの「ctrl」+「S」を押し、保存します
以下のようなポップアップが出てくるので、
上記の通りにファイル名をつけて、適当な場所に保存してください
まずはデスクトップなどで動作確認をすることをお勧めしますが、
後に「./Pictures/VRChat」フォルダ内に移動させておくと便利かと思います
(このbatファイルは、そのファイル自体が保存された場所と同じ場所、もしくはそこにあるフォルダの中の画像ファイル全てを処理する仕様になっている為です)
保存できましたら、準備は完了です!
ほな次!!!
batファイルを実行すると日付データがついたjpegファイルが生成される
早速ダブルクリックで実行させてみましょう
すると、このようなウィンドウが表示された後、
batファイルがある場所と同じ場所に「jpg-generated」というフォルダが生成されているはずです
この「jpg-generated」フォルダが、batファイルが処理したjpgファイルの格納場所となり、この中に、Amazon Photosにあげてもオッケーな写真が生成されます
早速アップロードしてみよう!
まず手動でのやり方から
上部のリンクからAmazon Photosのサイトに行き、ログインすると下部同様のページが出現します
あとはこのウィンドウに画像ファイルをドラッグすれば、アップロードが完了します
とここまでは普通ですが、、、
画像の情報を確認してみると。。。
日付ちゃんと入っとるやないかああぁぁあぁぁぁぁぁぁあいっ!!!!!!!!🤯🌋💥
ということで、無事目標達成〜!🎉
とここで、アップロード、自動化したくない?
そんなあなたは、下記リンクからAmazon Photosのデスクトップアプリをインストールして、設定を済ませましょう(設定方法は割愛)
こんな画面になったら、左上の「バックアップ」タブに行ってください
するとこのような画面になるので、「バックアップの追加」と書かれた黒いボタンを押します
するとエクスプローラーのウィンドウが出現するので、ここで、「jpg-generated」フォルダを選択し、
設定画面が出現したら、一番下にある
「重複の回避:既にアカウントにある写真やビデオはバックアップしないでください」
という項目にチェックを入れて「保存」を押します
下部のような表示になれば完了です!
お掃除タイム
ところで、今までからAmazon Photosを利用していた方なら、すでに大量の写真が保存されているかと思いますが、できるならそれ、スッキリしたいですよね?
もしも既にデスクトップアプリを利用していて、自動バックアップの設定もしていた
という場合は簡単にまとめて削除ができます
ということでまたまたAmazon Photosのサイトにアクセスします
サイトが表示されたら「フォルダ」タブへ行きます
様々なフォルダが出てくると思いますが、その中から「VRChat」フォルダを探し出し、フォルダを削除すれば、大方スッキリするはずです
終わり!お疲れ様です!
色々補足
imagemagickって何のアプリ?
今回は「pngからjpgに変換する」という目的で使用しました
主に画像の作成、編集、変換を行うためのソフトウェアで、コマンドラインから操作できて結構多機能って感じです
exiftoolって何のアプリ?
今回は「撮影日時」のメタデータを付与する」という目的で使用しました
主にexifと呼ばれる、写真データに付与されるメタデータの確認、編集などを行うためのソフトウェアです
あのbatファイルの中身ってなんなん?
一応ざっくりと内容と流れだけ説明させていただきます
前提として、VRChatで撮影されたスクリーンショットには命名規則があります
例えば、以下のような命名のスクリーンショットがあった場合、
命名規則は以下の通りだと読み取れます
「ならば、ファイル名から撮影日時を拾ってメタデータとして書き込めばいいのでは?」
という発想になります
その発想を元に以下の通り処理を実施するのが、今回使用したbatファイルです
「jpg-generated」という名前のフォルダが存在しなければ、新しく作成します
現在のディレクトリおよびそのサブフォルダ内から、pngファイルを見つけます
各pngファイルのファイル名を抽出します
ファイル名から特定のパターンを使用して年、月、日、時、分、秒を抽出し、それらをEXIF形式に合わせた日付と時間の文字列に組み立てます
この日付と時間の文字列をターミナルの画面に表示します
ImageMagickのconvertコマンドを使用して、PNGファイルをJPG形式に変換し、そのファイルをjpg-generated フォルダに保存します
このとき、画質は100%に設定されていますexiftoolを使用して、組み立てた日付と時間の情報を新しく生成したJPGファイルのEXIF情報として追加します
まとめると、
フォルダ作成
pngファイルの名前から日時の情報を抽出、成形
jpgに変換
メタデータ付与
という流れになります
以上!
本当にお疲れ様でした、大事な思い出と共に、良いVRChatライフをお送りください
何かありましたらコメントなりx.comなりでご連絡ください
ほなな〜