哀しい事件を二度と起こさないために。


まず考えたのは、

大破艦が出た時になんらかの通知やら画面キャプチャを採取する仕組み。

もちろん通信系に干渉しないように、画面上だけで実行できるもの。

しかし技術がなくてどうにもならなかった。


そこで、検索して出てきたとあるツールを導入。

しかしこれが普通にBOTマクロだった。

個人的な嗜好で、このようなツールは使いたくないので却下。


以降は色々長くなるので別ページに分けます。




そして色々ぐぐったりぐぐったりぐぐったりしてみたが、なかなか私のお眼鏡に適うツールが見つからない。



こうなったら最終手段。

「自分で作るしかないじゃない!」



そう、自分で作るのだ。(大事なことなので2回


そう思い立ったはいいが、どうすればいいかわからない。

そこで、さきほどぐぐってた時に見つけた「UWSC」というマクロツールを使う事に。


構文はExcelに似ているのでゼロからのスタートという訳ではないが、

VBAがメチャクチャ作れるとかいうレベルでもないので、結局最初から勉強する事に。



・・・・・・・・・・・そして勉強と試行錯誤を繰り返す事3時間。

ついにツールを完成させる事が出来た!!!!(ただし、とんでもなく簡素


【作成風景】

今回とても苦労したのは、艦これをメインモニタ一杯に映し出している事。

先ほどのBOTマクロは画面サイズがIEでいうところの100%(等倍)でないと動作しない。

というか殆どのマクロがそういう作りになっていた。

それをどうやって私が使っている220%拡大に適応させるか考えていたがよくわからなかった。


という事で次に考えたのは、220%状態の画像をchkimgで読み込ませる手法。

これがうまくいってくれた。

後はScreenshotを保存する関数などを追加したら完成だ。

しかしファイル名の指定に苦労した。日時を入れたかったがうまくいかない。

ぐぐったら知恵袋にいい感じのがあったので拝借。成功した。


という事で作成したマクロの構文がコチラ。ショボいので恥ずかしいけど。

WHILE (TRUE)
IF (CHKIMG("戦果報告.bmp")=TRUE) then
SLEEP(2)
GETTIME()
time = "F:\etc\etc\艦これブログ用\リザルト画面SS\リザルト画面" + G_TIME_YY4 + G_TIME_MM2 + G_TIME_DD2 + G_TIME_HH2 + G_TIME_NN2 + G_TIME_SS2
SAVEIMG(time,0, , , , , , 10)
SLEEP(15)
ELSE
SLEEP(1)
ENDIF
WEND


解説すると、

"戦果報告.bmp" は220%に画面を拡大した状態のリザルト画面に表示されているヤツ。

戦果報告

こういう事です。
この画像を、マクロの本体(多分UWSC.exe)と一緒の場所に置いておく。

すると、1秒毎にリザルト画面の↓赤枠部分が画面上に存在するか否かを見に行って
マクロ説明
存在するならば画像を保存。
存在しない(リザルト画面でない)ならば処理を無限ループ。

"F:ファイル保存場所\"の部分は各自の好きなパスを入れて下さい。

その後の
"リザルト画面" + G_TIME_YY4 + G_TIME_MM2 + G_TIME_DD2 + G_TIME_HH2 + G_TIME_NN2 + G_TIME_SS2”
この部分はファイル名になります。
英語のところは現在時刻が入ります。
"リザルト画面20150905225010"
みたいな画像の名前になる訳ですね。

尚、各提督さんも使用環境に合わせて画像と保存先フォルダを用意すれば
上記のショボマクロが使用可能です。


気を付けて欲しいのは、
・艦これの画面を保存するためには常時表示していなければならない。
・「戦果報告」が隠れるような場所に何か邪魔になるものを置かない。
・リザルト画面をずっと表示し続けていると16秒間隔で画像を保存し続ける。
 (画像サイズが大きくならないようにしていますが、HDDがパンクする可能性がある)
・大破しているか否かは自分で確認しなければならない。(←重要)

作りが簡素な分、とてもクリーンなツールでございます。
UWSCはフリーソフトですので、環境を整えるのも簡単。



このマクロを稼働させて5-2に行って来ました。
こんな感じでキャプチャされます。
(改良前の結果。改良後はデュアルモニタの場合、全ての画面が保存されます。)
リザルト画面20150905230056
リザルト画面20150905225912
リザルト画面20150905230304


なかなか有用なものが出来たと自負しております。
これで大破進軍を無くすことができたら…と思っております。
(ブログ記事更新しながらだとうまく機能しない可能性があるかもしれないけど…)



以上!