見出し画像

Power Automateを使ってゲームスクショの索引のようなものを作成したメモ

ゲームのスクショが溜まりに溜まった、あのセリフあの場面の画像を探すのが一苦労になっていました。
そのため、Power Automateを使って表示されているセリフとファイル名の一覧を作成しました。

※当メモは別の媒体で公開したものの再編集版です。


0.やりたいフロー

  1. 特定のフォルダから画像ファイル一覧を取得する

  2. 画像をOCRに掛けて文字を取得する

  3. 取得したファイル名と取得した文字をタブ区切りのテキストファイルに出力する

  4. 出力したファイルの内容をスプレッドシートに貼り付けて管理する

1.Power Automateの入手

Microsoft Storeで「Power Automate」で検索し、ダウンロードします。
※細かい仕様については、Microsoftの公式ドキュメントを参照ください。

Microsoft StoreでのPower Automate

2.新しいフローの作成

ホーム画面の左上の新しいフローを開始します。

ホーム画面の新しいフロー

3.画像一覧の取得

今回機種変前後で拡張子が異なっていたため、それぞれ取得し統合しました。

①アクション:フォルダー - フォルダー内のファイルを取得
 ├ フォルダー:スクショを保存しているフォルダのパス
 └ ファイルフィルター:*.jpeg、*.png

3のフォルダー内のファイルを取得の設定

②アクション:変数 - 変数の統合
 └ 最初のリスト、2番目のリスト:①で生成した変数

3の変数の統合の設定
3で作成したフロー

4.取得した情報を保持するテーブル作成

ファイルの情報一覧を出力まで保持しておくためのテーブルを作成します。

◯アクション:変数 - データテーブル - 新しいテーブルを作成する
 └ 新しいテーブル - 編集
  └ 列の追加
   ├ ファイル名
   ├ ファイル作成日時
   └ OCRテキスト

4の新しいテーブルを作成するの設定
4のテーブルレイアウト
4で作成したフロー

5.ファイル数分ループ作成

ファイル数分処理するためのループを追加します。

◯アクション:ループ - For each
 └ 反復処理を行う値:「3.画像一覧の取得」で生成された変数

5のループの設定

6.OCR位置の設定

取得するゲームスクショのメッセージウィンドウの位置を設定します。
機種変前後でサイズが異なるスクショが混在していたため、ファイルサイズ(単位:バイト)を条件にして、設定する位置を分けました。

6の位置情報の変数設定

※X,Yの数値は、画像をペイントでフォーカスしたときに、左下に表示される数値です。

位置の設定値のイメージ

7.文字の読み取り

スクショのセリフ等の文字情報を読み取り、不要なスペースと改行を削除します。

①アクション:OCR - OCRを使ってテキストを抽出
 ├ OCRソース:ディスク上の画像
 ├ 画像ファイルパス:「5.ファイル数分ループ作成」の保存先
 ├ 検索モード:特定のサブ領域のみ
 └ X1~Y2:「6.OCR位置の設定」の変数

7のOCRを使ってテキストを抽出の設定

②アクション:テキスト - テキストを置換する
 ├ 解析するテキスト:①で生成された変数
 ├ 検索するテキスト:「%' '%」(半角スペース)、「\r\n」(改行)
 └ 置き換えテキスト:「%''%」(空文字)

7のテキストを置換するの設定
7で作成したフロー

8.データテーブルに情報を追加

読み取ったファイルの情報をテーブルに一旦保存します。

①アクション:変数 - 新しいリストの作成

8の新しいリストの作成の設定

②アクション:変数 - 項目をリストに追加
 ├ データテーブルに追加する情報
 │ ├ (1)ファイル名:「5.ファイル数分ループ作成」の保存先.Name
 │ ├ (2)ファイル作成日時
 │ :「5.ファイル数分ループ作成」の保存先.LastModified
 │ └ (3)OCRテキスト:「7.文字の取り込み」で生成された変数
 └ ①で作成した変数

8の項目をリストに追加の設定

※その他ファイルのプロパティを出力したい場合、右側の「{x}」をクリックして「フロー変数」から「5.ファイル数分ループ作成」の保存先変数名をダブルクリックするとプロパティの一覧が確認できるので、ここからプロパティ名を持ってきます。

③アクション:変数 - データテーブル - 行をデータテーブルに挿入する
 ├ データテーブル
 │ :「4.取得した情報を保持するテーブル作成」で生成された変数
 ├ 挿入場所:データテーブルの末尾
 └ 新しい値:①で生成された変数

8の行をデータテーブルに挿入するの設定
8で作成したフロー

9.テキストファイルへ出力

データテーブルに保存した各ファイルの情報をテキストファイルに出力します。

〇アクション:ファイル - CSVファイルに書き込む
 ├ 書き込み変数
 │ :「4.取得した情報を保持するテーブル作成」で生成された変数
 ├ ファイルパス:保存先フォルダ\保存ファイル名
 └ 詳細 - 区切り記号:タブ

9のCSVファイルに書き込むの設定
9で作成したフロー

10.完成!

出力した内容をスプレッドシートにコピペして、検索やフィルタして活用しています。

今回作成したフローの全体イメージ

この記事が気に入ったらサポートをしてみませんか?