確認作業の負担を減らしたい

タイトル装飾

確認作業の負担を減らしたい

 

 

こんにちは!PGのR.Aです。

今回は仕事の中で、確認作業に少し時間がかかる場面があったので、
その負担を減らすために作成したツールを紹介します。

■ 困りごと

今回困っていたのは、データの確認作業に時間がかかってしまうことです。

ゲーム制作では、登録したデータがスクリプト内で正しく使用されているか確認する場面があります。

今回は、ノベルゲーム制作を支援する「Naninovel」のスクリプト内に、対象のデータが使用されているかを確認していきます。

数が少なければ1つずつ確認できますが、
確認するデータが増えてくると、

・確認したいデータを探す
↓
・スクリプトを開く
↓
・対象が使用されているか検索する
↓
・見つからなければ記録する
↓
・次のデータを確認する

という作業を何度も繰り返す必要があり、
対象が多くなるほど時間がかかり、確認漏れにも気を付ける必要があります。

「この確認作業、もう少し楽にできないかな……」

と思い、確認方法を考えてみることにしました。

■ やってみる

今回は、確認したいデータとNaninovelのスクリプトを比較して、
使用されていないデータを自動で探すツールを作ってみます。

ツールの流れとしては、

・JSONから確認したいデータを取得する
↓
・Naninovelのスクリプトを読み込む
↓
・取得したデータがスクリプト内で使用されているか検索する
↓
・使用されていないデータを一覧にする

という形にしました。

今回もVisual StudioのWindows Formsを使って実装を進めてみました。

■ JSONから確認したいデータを取得

まずは、確認したいデータが登録されているJSONファイルを読み込みます。

実際に使用しているデータは載せられないため、
簡単なサンプルにするとこのようなイメージです。

この中から、今回確認したい list_a のデータを取得します。

foreach (string part in listData.list_a)

{

    if (!string.IsNullOrEmpty(part))

    {

        parts.Add(part);

    }.my-custom-style

}.my-custom-style

取得したデータは HashSet に追加し、

同じデータが複数あっても重複しないようにしました。

■ Naninovelのスクリプトを読み込む

次は、確認先となるNaninovelのスクリプトを読み込みます。

今回は記事用に、このようなサンプルのスクリプトを用意しました。

フォルダ内にある .nani ファイルをまとめて取得し、

1ファイルずつ選択しなくても確認できるようにしました。

■ 必要な部分だけを取り出す

スクリプトを取得できたので、
あとはデータの名前を検索すれば完成!

……というわけにはいきませんでした。

ファイル全体を検索すると、コメントなど確認する必要のない場所に同じ名前が書かれていた場合でも、
「使用されている」と判定してしまう可能性があります。

そこで今回は、確認に必要な @back から始まる範囲だけを取り出し、
さらに空行やコメントは読み飛ばすようにしました。

if (string.IsNullOrWhiteSpace(line))

{

    continue;

}.my-custom-style

if (trimmed.StartsWith(“;”))

{

    continue;

}.my-custom-style

これで、確認に必要な部分だけを検索対象として扱えるようになりました。

■ 使用されているかチェック

JSONとスクリプト、両方のデータを取得できたので、
実際に使用されているかチェックしていきます。

foreach (string part in parts)

{

    bool found = false;

    foreach (BackBlock block in blocks)

    {

        if (block.Text.Contains(part))

        {

            found = true;

            break;

        }.my-custom-style

    }.my-custom-style

}.my-custom-style

JSONから取得したデータを1つずつスクリプトから検索し、
見つかったものは「使用済み」、見つからなかったものは「未使用」として保存します。

また、未使用だったデータは後から確認できるようにCSVへ出力できるようにしました。

■ 結果

とりあえず……できた!

JSONファイルとNaninovelのスクリプトフォルダを指定してチェックすると、
登録されているデータがスクリプト内で使用されているかをまとめて確認できるようになりました。

今回のサンプルでは6件のデータのうち、
5件が使用済み、1件が未使用として表示されています。

すべてのデータを1件ずつ目視で確認するのではなく、
確認が必要なところを絞ってから見られるようになりました。

■ やってみた感想

今回ツールを作ってみて、
確認作業そのものをすべてなくさなくても、
「人が確認する必要のある場所を減らす」だけで作業を楽にできることに気付きました。

前回はクリップボードを監視して入力作業を楽にするツールを作りましたが、
今回は確認作業の負担を減らすツールを作ることができました。

普段仕事をしていて感じる「少し面倒」な作業の中にも、
ツールで改善できるものがまだまだありそうですね。

今後も「これ毎回やるの大変だな」と感じたときには、
プログラムで少し楽にできないか考えていきたいと思います。

 

作者
  R.A
  PG

目次

目次を生成中...