出目を数えたくて、ココフォリアのログ集計ツールを作った
TRPGのセッションが終わると、ダイスが荒ぶった卓ではだいたい出目の話になります。 今日はファンブルが多かった、ダイスの神様に愛されてた、めっちゃ出目良かった、というような。
それを集計してみたくなって作ったのが「出目録」です。 ココフォリアのログを読み込むと、成功率やクリティカル・ファンブルの回数、キャラクター別の成績が出てきます。 結果は画像1枚にまとめて書き出せるので、そのままSNSに貼れます。
対応しているのは、クトゥルフ神話TRPG(6版・7版)、ダブルクロス The 3rd Edition、ソード・ワールド2.5、エモクロアTRPGの5つです。
作っている途中で決めたことを、いくつか残しておきます。
「クリティカル」はシステムごとに別物
集計で面倒だったのはシステムごとに似ているけど異なる物がクリティカルと呼ばれていること。
- CoC7版:出目が1
- CoC6版:出目が1〜5で、呼び名は「決定的成功」
- ダブルクロス:ダイスの振り足しが起きたこと
- ソード・ワールド2.5:威力表での回転
どれも「クリティカル」と呼ばれがちですが、中身はまったく違います。 これを1つの指標にまとめて並べると、数字としては出せても意味が通りません。
なので、ログからシステムを判別したうえで、そのシステムの言葉で表示するようにしました。 初期バージョンの現在時点ではCoC6版の結果に「クリティカル」とは書いていません。
ソード・ワールド2.5の技能判定で出る6ゾロも、威力表でのクリティカルとは別に「6ゾロ」という名前のまま数えています。 ルール上の扱いが違うものを、同じ箱に入れないためです。
※ システムの自動判別が外れることもあるので、手で切り替えられるようにしてあります。
出せない数字は、出さない
ダブルクロスとソード・ワールド2.5の技能判定では、ログに目標値が残りません。 難易度はGMが口頭で伝えることが多いので、ログからは「何に対して振ったか」が分からないためです。
目標値が無ければ、成功率は計算できません。 ここで無理に何かを出すより、そのログで計算できた指標だけを選択肢に並べる形にしました。 固定のリストを並べて、空欄だらけにするよりはいいはずです。
技能名も同じ扱いです。 CoCのログに残る【目星】のような技能名は、ダイスの仕組みが出しているものではなく、各自のチャットパレットにそう書いてあるから残っているだけです。 書き方は人によって違うし、書いていない人もいます。
画像に「目星 2/9」と出したのに、実際には20回振っていた。 そういう数字を出すくらいなら、技能名が十分に取れなかったときは技能別の集計そのものを出さないほうがいいと考えました。
個人の結果と卓全体での結果を出せるように
個人の出目の状況だけでなく、卓全体でどんなダイスの偏りがあったのかも見れると面白いと思って作っています。
共有画像は、3つの形から選べます。
- 個人:キャラクター1人の成績
- ランキング:参加者を並べて順位を付ける
- セッションサマリ:卓全体の数字を1枚にまとめる
ランキングは、並べる指標を2つ選べます。 CoCなら、既定はファンブルの回数と成功率です。 タイトルは指標に合わせて「最不運ランキング」のように自動で付きますが、書き換えもできます。 並べたくない参加者は外せます。
セッションサマリは、卓全体のロール数や成功率、期待値からのずれを表す運指数などを並べたものです。 どの数字を載せるかは選べます。
卓全体を扱う以上、画像には他の参加者の名前が入ります。 なので、既定は個人のほうにしてあります。
- 集計の範囲は、既定では個人別でキャラクター1名だけ
- チャットのタブの名前は画像に出さない
- 秘匿用のタブは、既定では集計に含めない
タブ名を出さないのは、秘匿タブの名前に参加者の名前が入っていることがあるからです。 秘匿タブを既定で外しているのも、複数人が入るタブを巻き込まないためです。 自分の秘匿タブを含めたいときは、自分でチェックを入れてもらう形にしています。
表示名は、どの形でも書き換えられます。 先頭の1文字だけ残して伏せ字にするボタンも付けています。 投稿文に入れるプレイヤー名は、ログからは取れないので自由に書き込む形です。
画像の比率は1:1と16:9の2つにしました。 Xのタイムラインで切れずに表示される形です。
回数は「クリティカル 3回」のように単独で出すより、「3/40」のように試行数と並べて出せるようにしました。 母数が分からないと、多いのか少ないのかが伝わらないので。
打ち間違いは、自分で外せるようにした
ログには、書かれた通りの値が残ります。
コマンドを打ち間違えて修正値が +3855 になったロールがあれば、それもそのまま集計に入ります。
そうなると「最大ダメージ」は、その1件で決まってしまいます。
これはログの読み取りの問題ではないので、ツールの側では正しいかどうか判断できません。 なので、ロールを1件ずつ集計から外せるようにしました。
外れ値っぽいものを候補として示す機能は入れていますが、自動では外しません。 無効かどうかを決めるのは、その場にいた人のほうです。
ログはどこにも送らない
読み込んだログは、ブラウザの中だけで処理しています。 外に送る処理はありません。
未通過の人がいるシナリオのログでも、気にせず読み込めます。 ネタバレの塊みたいなファイルを、どこかのサーバに上げるのは気が引けるかもしれないので。
これから
ココフォリアのログは最近形式が変わり、ZIPやJSONでも書き出せるようになりました。 それにも合わせてあって、ZIPは解凍せずにそのまま読み込めます。 おススメはJSON形式で、立ち絵をログから抽出して設定できるので手間がかかりません。
自分で遊ぶ中で欲しくなったものを足してきたので、これからもたぶんそうなります。 遊んでいるシステムが増えたら、そのぶん対応システムも増えるかもしれません。 (ログを提供してのシステム追加のリクエストがあれば優先的に対応します)