2024/01/20(土)演舞リプレイファイルに対戦者の名前を追加するスクリプト

2024-01-21リプレイリネームのウィンドウ.png

幻想人形演舞のリプレイファイルに対戦者名を付与するスクリプトを作りました。
ご利用は注意書きをよくご確認の上、自己責任でお願いします。


このスクリプトについて

幻想人形演舞」「幻想人形演舞 -ユメノカケラ-」が生成する、ネット対戦リプレイファイルを対象にしたファイル名リネーム用 Windows PowerShell スクリプトです。
当該のゲームやリプレイファイルの格納場所については、理解済の方の使用を想定していますので、ここでは解説しません。

ご使用前に操作対象のファイルをバックアップしておくことを強くお勧めします。
本スクリプトの使用によって発生したいかなる損害にも製作者は一切の責任を負いません。
心配な方はスクリプト本体のコード内容をご理解、ご了承の上、ご使用下さい。

インストール/アンインストール

ダウンロードしたファイルを適当なフォルダに解凍してご使用下さい。
本スクリプトはレジストリを使ったり、新しいファイルを生成したりしません。
不要になった場合はスクリプト本体を削除して下さい。

動作確認環境

・Windows 10 Pro
・PowerShell 5.1
・幻想人形演舞 ver1.3 / 1.31 / 1.34
・幻想人形演舞 -ユメノカケラ- ver1.103
・幻想人形演舞 -ユメノカケラ- Extended (※非公式パッチ) ver3.41 / 4.0

使い方

同梱の「幻想人形演舞のリプレイファイルの末尾に対戦者の名前を追加する.ps1」を右クリックして「PowerShellで実行」を選択して下さい。
1~2秒待つと画面の左上あたりに「演舞のリプレイファイルに対戦者名を付与」というタイトルのウィンドウが現れます。
2024-01-21リプレイリネームのウィンドウ.png

このウィンドウに、拡張子repのファイルか、repファイルの入ったフォルダをドラッグ&ドロップするとリネームが実行されます。

例)
自分のプレイヤー名が「ワタシ」で、「アイテ」という名前の人と対戦したとします。
その時に作られたリプレイファイルが「20240120_000000.rep」だとします。
前述の操作を行うと、ファイル名が「20240120_000000:ワタシ-アイテ.rep」に変更されます。

初回起動時の注意

初めて実行すると、「実行ポリシーの変更...」と表記されたメッセージが表示されるかもしれません。
2024-01-20初回実行時出るかもしれないメッセージ(出たら操作せず×で閉じて下さい).png

その場合は、出現したウィンドウのクローズボタンをクリックし閉じ、再度当スクリプトを右クリックから実行して下さい。
何度やっても同じメッセージが出る場合はサイトのコメント欄やX(旧ツイッター)などで教えて貰えると助かります。

出現したメッセージに従って操作しPowerShellのセキュリティ設定を変更しても、その結果によるトラブルについては製作者は責任を負えません。

仕様

【 基本仕様 】
複数のファイル、フォルダを同時にドラッグ&ドロップするとその全てが順次処理されます。

対象ファイルの拡張子が.repで無い場合、リネームは実行されません。

対象ファイルの名前に全角のコロン(:)が含まれていた場合、リネームは実行されません。
これにより既に本スクリプトでリネーム済みのファイルを再度リネームしてしまわないようにしています。

フォルダをドラッグ&ドロップした場合、そのフォルダの直下のファイルだけが対象になります。
サブフォルダの下にあるファイルは対象になりません。

プレイヤー名に、ファイル名に使用できない記号が含まれていた場合、その文字は削除されます。
Windowsの場合は次の記号が該当します。
/:*?"<>|
いないと思いますが、これらの記号だけで記述された名前の人はファイル名に反映されません。

【 操作時の挙動 】
リネームしたいファイルをドラッグ&ドロップすると、確認メッセージなどは出ることはなく唐突にリネームが実行されます。
完了メッセージも出ません。
操作の際は誤操作の無いよう十分にご注意下さい。


【 処理にかかる時間 】
ファイルが大量にある場合は処理に時間がかかる可能性があります。
何百、何千といった大量のファイルをリネームしたい場合は、まず小分けにして実行し、どのくらいかかるか、PCへの負荷が問題無いかを確認してから、一気に実行するどうか判断することをお勧めします。

大容量のファイルについても同様です。
1試合に数百ターンもかかっていた場合、リプレイファイル1つのサイズも大きくなり、ファイル数が少なくても処理に時間がかかる可能性があります。


【 その他 】
賢いエラー回避的なことはできません。
ドラッグした関係無いファイルの拡張子が偶然.repだったとしても処理を始めてしまいます。
これが大容量ファイルだったりすると延々と処理を続けてしまうのでくれぐれも誤操作にはご注意下さい。

動作させるPowerShellやWindows自体のバージョン/仕様の違いによる検証は行っていません。
これらを要因として動かなかったとしても製作者には対応する力がありません。
予めご了承下さい。

履歴

【ver1.0:2024.1.20】
ファイルパスの入力をファイルのドラッグ&ドロップで読み込ませるように変更
対戦した両プレイヤーの名前を自動で読み込んで反映できるように変更

【ver0.0:2023.12.17】
対象フォルダや対戦相手名を手入力する仕様で作成

謝辞:コードを参考(ほぼ丸写し)させていただいたサイト

・【PowerShell】 ターミナル画面を最小化する…
https://qiita.com/AWtnb/items/34fe77fda53820a8546e
・【PowerShellでGUI 1】Form, Label, TextBox, Button…
https://dhk.tokyo.jp/blog/archives/562
・PowerShellでファイル名に使用できない文字を除外する…
https://qiita.com/SAITO_Keita/items/38979e0655012c412a5b

ダウンロード

幻想人形演舞 無印とユメノカケラではリプレイファイルの仕様が違うため、それぞれのスクリプトを用意しました。
取り違えて実行しないようご注意下さい。

確認した限りでは、各々のバージョン違いによる問題は起こりませんでした。
が、全てのマイナーバージョンで確認を行ったわけではありません。

また、ユメノカケラ版スクリプトについては、非公式パッチであるExtendedのリプレイファイルに対しても動作したことを確認しています。

いずれの場合でも、それらの動作を保証するわけではありません。
ご使用の際は自己責任でお願いします。

Credit

幻想人形演舞幻想人形演舞-ユメノカケラ-は、同人サークルFocasLens様/幻想人形劇団様 の著作物で、東方Projectの二次創作作品です。

幻想人形演舞-ユメノカケラ-Extended (Touhou Puppet Dance Performance Sard of Dream Extended)は、Barudo様のチームが制作された、幻想人形演舞-ユメノカケラ-の非公式拡張パッチです。

本スクリプトはくしち個人による、非公式の作成物です。
本スクリプトに関する、FocasLens様、幻想人形劇団様やBarudo様チームへのお問い合わせはご迷惑となりますので行わないようお願い申し上げます。