この記事は、Board Game Design Advent Calendar 2019の第22日目の記事として書いたものです。
お久しぶりの方はお久しぶり、初めましての方は初めまして。
HLKT工房の天空 薙です。
このブログは開店休業状態で、久しぶりに書く記事になります。
この記事はなに?
皆さん、テストプレイしていますか?
テストプレイを全くしないでゲームができることは全くないと思いますが、皆さんはテストプレイ時のカードをどうしていますか?
手書きで作成?Wordで作成?
いいと思います!
でも、一枚一枚作るの大変じゃないですか?
一気に作れたら楽じゃないですか?
ということで、自動化できないかなーと思い作ってみました。
動作環境
下記の環境でのみ動作を確認しております。
たぶんPhotoshopなら大体のバージョンで動くかと思いますが、動作やデータの一切は保証しません。
使用する場合は必ずバックアップを取ってください。
OS:Windows10
Photoshop:21.0.2
ダウンロード
ということで、こちらからダウンロードできます。
ここは技術者ブログでも何でもないので、作り方とかそういう話はとりあえず置いておいて、使い方を紹介します。
使い方
使い方を説明します。
用意したZipファイル内に参考として、2パターン入っております。
フォルダ
ダウンロードしたZipファイルを解凍します。
基本的にカード画像等はここに保存されます。
素材準備
カードに使う画像素材は解凍したフォルダに入っているimageフォルダに全部入れてください。
この時、画像ファイルの大きさは統一しておくときれいに配置されます。
テンプレート準備
Photoshopで、カードのテンプレートを作ります。
こんな感じで1枚カードを作ります。
変更したい部分のテキストや画像のレイヤー名を変更してください。(赤枠部分)
レイヤー名は半角英数字を使用してください。
テキストレイヤーは作成すると、レイヤー名は入力したテキストになるのですが、再度編集してください。
この後のカードリストで指定しない項目は変更しないので、好きに作ってください。
適当な名前を付けて解凍したフォルダと同じ場所にpsdで保存してください。
カードリスト準備
テンプレートで入れ替えたい項目をここで設定します。
下記のルールに従って作成してください。
<ルール①>
1行目、2行目は以下の作り方をしてください。
1行目の各列には、テンプレート準備で設定したレイヤー名を入れてください。
レイヤーと各列の順番は関係ありません。
1列目はそれぞれ出力したときのファイル名に使います。
2行目は下記の数字のいずれかを入れます。
0:ファイル名、メモ用
1:テキストレイヤー
2:画像の貼り付けレイヤー
<ルール②>
3行目以降は1行1ファイル出力します。
2行目の数字にしたがって、下記のように設定してください。
2行目の数字
1:入力したいテキスト(改行禁止)
2:差し替えたい画像のファイル名
作成したファイルはテンプレートと同じ名前でcsv形式で保存してください。
スクリプト実行
上記のの準備ができたらPhotoshopを開きます。
Photoshop上にフォルダ内の”csv2testcards.jsx”というファイルををドラックアンドドロップします。
そうすると、ダイアログが開くので、そこで先ほど作成したcsvを選択します。
あとは勝手にやってくれます。
csvと同じ名前のフォルダの下に、「png」「psd」のフォルダが作成され、その中にそれぞれのカードが作成されます。
まとめ
photoshop scriptというのを使って、テストカードを自動で作ってくれるスクリプトを組んでみました!
できたこと
カードのテンプレートとcsvファイルという形式のファイルを作成することで、同じ配置のカードをいくつも自動生成してくれるようになりました。
今後の課題
①改行対応
現在テキストの改行に対応しておりません。
それに対応したい。
現状やるならば、説明文1行目、説明文2行目と各行のレイヤーを用意するくらいしかない。
②印刷用配置自動化
今回作成したカードを印刷するのに印刷用に配置する必要があります。
そこも自動化したいなー…と思っています。
ということで、スクリプトを作成してみました!
まだまだバグ等々あるとは思いますが、使いながらブラッシュアップできたらなーと思います。
また、こうしたほうがいいんじゃない?とかあればぜひ教えてください!
技術者向け
ちなみにプログラム(とZipファイルに入っているもの)は下記のGithubにもアップロードしてあります。
https://github.com/terawiseman/csv2testcards
日曜プログラマーなので、無作法なところも有りますが、よかったらご指摘いただけると嬉しいです!