パスワードを忘れた? アカウント作成
16725865 journal
日記

akiraaniの日記: ボードゲームの仮想プレイ環境をExcelでどうにかする

日記 by akiraani

自作ボードゲームの細かな数値調整をしたりするときに、セルフで一人n人役こなしてテストプレイをするということをしないといけないんだけど、カード類をいちいち印刷してというのがたいへんめんどくさい。

仮想的にPC上であれやこれやしてどうにか出来ないかと、軽くぐぐってみたりしたところ、BGEngine とかそういうサービスをやってるサイトを見つけたりもしたんだけど、カードを一枚一枚データ入力していかないと行けないようで、やっぱりめんどい。

やりたいことはただのバランス調整なので、そこまで出来なくても良い。
というわけで、ちょっと試行錯誤した結果、Excel使うのが一番楽という結論に落ち着いた。

まず、Excelファイルは3つ用意する。

一つが、ベースファイル。
これには3種類のシートを作る。
一つがカードのマスタデータリスト。カードの種類が複数ある場合はシート分けた方が良い。
もう一つが、カードをランダムに並べ替えて表示するシート。RANDBETWEEN関数とかRAND関数でカードの枚数だけ乱数を発生させて、それをRANK.AVG関数で順位付けすることで、インデックス番号をランダムに並べ替えたリストを作ることが出来る。さらにそれをvlookup関数とかでカード名を参照表示する。
最後の一つがマップで、背景部分はExcel方眼紙的なもので作成して、配置するコマはコマ名称のテキストボックスを配置して動かしてやる。
まあ、カードデータとシャッフル表示シートはカード管理ファイルにつけても良いけど、カード管理ファイルとカードデータの親ファイルは分けた方がプレイ時に取り回しが良いのでこうなった。

もう一つが、カード管理ファイル。
これはプレイ中のカードのやりとりを管理するファイルで、プレイ開始時にベースファイルのカードシャッフルシートで作成したランダムカードリストを値のみ貼付して、それ以降はドラッグ&ドロップでプレイヤー毎のフィールドにセルを移動させて仮想的なカードのやりとりをする。得点とかの数値データも必要に応じて入力エリアを作っておく。
初期状態を保存したマスタシートと、テストプレイで操作するシートは分けて、開始時にマスタシートを上書きすればリセット出来るようにしておく。

最後の一つが、ダイスロールファイル
RANDBETWEEN関数でn面x個のダイスロールを仮想的にやってくれるシートを作る。
これを個別ファイルにしてるのは、表示に必要なエリアが少ないので、ウィンドウサイズをちっさくしてやれば空きスペースに置いておくことが出来るから。
判定システムの都合でsort関数でソートしたものも合わせて表示できるようにした。

マップとコマはパワーポイントで作った方が楽かとも思ったんだけど、Excelは表示エリアを無限に拡大できるので、コマを脇にどけておくというのがやりやすい。あと、うっかりマップ本体を動かしてしまうという事故が起きないのも良い。

ちなみに、これでちゃんとプレイするのは無理。カードを伏せて表示することもできないし、全員分のデータは必ずオープンされた状態で俯瞰できてしまう。一人でやるから「見なかったこと」にして進めることが出来るわけで、複数人でテストプレイのは無理。
まあ、この辺は使い分けですな。

ちなみに、Excelでヘックスシートを作る方法も以前編み出した(参考)ので、これを使えば大抵のボードゲームに使えるんじゃないかと思う。

追記:
どんな感じになるかカタンの開拓でサンプル作って見た。(動画へのリンク)

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

あつくて寝られない時はhackしろ! 386BSD(98)はそうやってつくられましたよ? -- あるハッカー

読み込み中...