仕事でUnityプロジェクトでアプリケーションを作っていると、ゲームの説明資料を作ったり、画像素材リスト資料を作ったり、いわゆる雑務が発生する。
以前の職場では、表計算ソフト(いわゆるExcel)で資料を作っていたが、画像が更新されるたびにインポートをし直す手間がかかり、何とかならないかなーと思っていた
そして今の法人に移り、資料作成の頻度が上がってきたタイミングで、もう少し良い方法が無いか探した結果、AsciiDocを試験的に運用してみることにした。
これは、PDFをその都度書き出すので、画像ファイルは差し替えれば反映されるので、格段に資料作成コストが下がった。
そして今回、どうせ一人Unityプロジェクトで、ディレクトリ構成なども自分で設計しているのだから、UnityEditorからadocファイル書き出せば、そのまま資料作成できるんじゃね?という発想を実現させた話をする。
〇達成したい事の明確化
達成したい事としては
1. Resources以下の、UIで使用する画像をリストアップ
2. 画像表示で、どのような画像か視覚的に理解できること
3. ファイルパス+名前表示がされること
4. サイズ表示されること
5. 表示される順番は自分で定義できる事
これを、PDF化できれば良い。
〇ディレクトリ設計
筆者は、Resources/Image以下に、シーン毎とその他でディレクトリ階層を作った。
〇メタデータ
ディレクトリ情報などをスクリプトから読み込むのは簡単だが、その並び順の制御となると、若干めんどくさい。
これは、別の外部データに設定を書いて、それを参照することによって成し遂げた。
シーンの順序は、
Meta/SceneMetaData.txt
ここに記載されている通りにすることにした。
本来であれば、これもUnityから出力すべきだが、今回は手を抜いた。
〇設計
1.ディレクトリ階層リストを取得する
2.メタデータと照合して、シーン名順にディレクトリ階層を走査できるようにする
3.各ディレクトリ階層に存在するファイルを全部取得
4.ファイル名がわかれば画像を読み込めるので、サイズを取得
5.ここまで取得した情報を、AsciiDoc形式のマークアップ言語としてジェネレートする
6.予め用意しておいたAsciiDocをビルドするbatファイルを起動する
7.出力終わり
〇出力結果

こんな動きをするプロジェクトがあったとして
こんなファイルが出力される
〇備考
PDFファイルの前半は、シーン遷移の説明がされており、ここでは詳細を説明していないが、
簡単に言えば、スクリーンショット撮影機能とメタデータを組み合わせて、前半はシーン遷移の説明をするAsciiDocマークアップをジェネレートしているだけだ。
〇総評
資料としての見やすさを考えるのであれば、HTML形式のドキュメントに出力した方が良い気もしてきたが、
1ファイル(容量でかくなるけど…)で完結する点においては、この手段も悪くないように思える。
この機能が運用しやすいかどうかは、しばらく使ってみて所感を得ようと思う。