v1.48.0
2026-09-04リリース
移動範囲が入りました。コマを持ち上げると、そのコマが届く範囲が卓に浮かびます。壁を避け、仲間を迂回した実際の道のりで数えるので、「あと何マス動けるか」を指で追う必要がなくなります。
ラウンドが記録を持つようになりました。誰が行動したかを覚え、まだの人へ手番を回します。前へは手番だけでなく、その間に起きたことごと巻き戻ります。
そして裏では、卓が毎フレーム繰り返していた計算を数えて削りました。見た目は1ピクセルも変えていません。
👣 移動範囲
テーブル設定の移動範囲から入れます。既定はオフです。
コマを持ち上げた瞬間、届くマスが盤面に浮かびます。壁の向こうは光りません。閉じた扉も同じです。遠回りしなければ届かない場所は、遠回りしたぶんを引いた距離で判定されます。ダンジョンのように壁が入り組んだ卓ほど、目で数える手間が減ります。
まずシートに「移動」を書きます
範囲はキャラクターシートの項目から読みます。既定では移動 / 移動力 / Speed / 速度の順に探し、最初に見つかった数値を使います。どれも無いコマには範囲が出ません。新しく作ったキャラクターと、最初のルームに並ぶサンプルのコマには、はじめから入っています。
探す項目名はテーブル設定で変えられます。使っているシステムが「機動力」と呼ぶなら、そう書き換えてください。カンマで区切って複数指定できます。
同じ名前の項目が2つあると読めません
シートの項目は名前で引くので、「移動」が2か所にあると、どちらを指すか決められず範囲が出ません。自分で項目を足すときは、既にある名前と重ならないようにしてください。
マスの単位が違えば換算します
シートが「30フィート」で、卓が1マス5フィートなら6マスです。テーブル設定のマスの単位(マス / メートル / フィート)と1マスの距離を決めておくと、シートの単位欄を見て換算します。フィートで書かれたシートをメートルの卓に持ち込んでも、そのまま動きます。
シート側が「マス」で書かれていれば、その数がそのままマス数です。数えるものが最初からマスなので、卓が何で数えていようと換算しません。
立ちふさがるものを避けて数えます
壁として立っている地形は通れません。同じマスに複数のコマを置けるを切ると、他のコマが立っているマスも通れなくなります。避けて回り込むぶん、届く範囲は狭くなります。大きいコマは占めるマスすべてがふさがるので、3マス幅のゴーレムの横はすり抜けられません。
地形を置くほどでもない場所を通れなくしたいときは、GMツールバーの通行不可で卓を直接塗れます。塗ったマスは壁と同じ扱いです。塗っている間だけ赤く見え、プレイヤーには見えません。
四角マスのテーブルには斜め移動を許可するが出ます。許せば角を横切る一歩も1マスぶんとして数えるので範囲は四角く広がり、許さなければ縦横だけを数えるのでひし形になります。ヘクスのテーブルには出ません。六角形に角はなく、六方向のどれも等しく一歩だからです。
敵が抑えている地面
敵に隣接したマスを通ろうとすると足が止まる、というルールを卓に入れられます。ウォーゲームのゾーン・オブ・コントロールや、ソード・ワールド2.5上級戦闘の移動妨害にあたるものです。
テーブル設定のZOCで効果を選びます。
| 選択肢 | 動き |
|---|---|
| なし | 何も起きません(既定) |
| 足止め | ZOCのマスに入ったら、そこで移動が終わります |
| 進入不可 | ZOCのマスには入れません |
| 移動コスト増 | 入るのに、余分に移動力を使います |
ZOCの範囲で何マス先まで届くか、移動コストの増加で余分にかかるマス数を決めます。リーチの長い武器や大型の敵を表したいなら、範囲を2にしてください。
敵かどうかはNPC印で分けます。プレイヤーのコマを動かすならモンスターが、モンスターを動かすならプレイヤーのコマがZOCを張ります。パーティ設定は見ません。所属を持たないコマが多いからです。
見えていない敵はZOCを張りません
暗闇の中の敵が範囲をへこませてしまうと、そこに何かいると分かってしまいます。読んでいる人に見えている敵だけが、その人の画面で地面を抑えます。
動かす前に見比べたいときは
既定では、範囲は持ち上げている間だけ見えます。テーブル設定で、選んだコマの移動範囲と ZOCを出したままにもできます。どちらもコマを選ぶと出て、選択を外すと消えます。
範囲は同期しません。出るのは自分の画面だけです。ほかの参加者の画面には何も出ませんし、見えていない敵の情報も漏れません。
なお、これは目安の表示です。コマがそこまでしか動けなくなるわけではなく、範囲の外へドラッグすることも、ZOCを無視して通り抜けることもできます。どう扱うかは卓の取り決めしだいです。
詳しくは移動範囲を参照してください。
🔄 ラウンドが記録を持ちます
イニシアチブ表が、そのラウンドで誰が行動したかを覚えるようになりました。次へを押すと今のコマに行動済みの印が付き、手番はまだ行動していない最も早いコマへ渡ります。割り込みで手番を飛ばしたあとも、取りこぼしのないところへ戻ります。印はラウンドが変わると消えます。
コマごとに手番をもたないを選べます。置物や背景として並べたコマが順番に割り込まなくなるので、表を眺めたときに「今このラウンドで誰が動くのか」が読み取れます。
ラウンドそのものを進める操作と戻す操作も入りました。そして前へは、手番だけを戻すのではありません。その間に起きたことごと巻き戻ります。ラウンド送りで切れたはずのバフが戻り、効果時間の減った状態異常も元に戻ります。「1つ手前からやり直したい」を、表の上だけでなく盤面の状態まで含めてやり直せます。
詳しくはイニシアチブを参照してください。
🎲 自分だけ見るダイスは、名前も出目も隠れます
自分だけ見るにしたダイスを振ると、卓の上では出目が読み上げられず、チャットにも「(シークレットダイス)」としか流れません。これまでは、伏せたはずのダイスの名前と出目が、振った直後のチャットにそのまま出ていました。
複数のダイスをまとめて振っても、1個につき1行の秘匿になります。1個開けたら残りまで見えてしまう、ということはありません。名前も一緒に伏せます。「切り札」というラベルだけで、卓には十分伝わってしまうからです。
ダイスを公開で開くと、伏せたまま振った最後の1行がその場で開き、チャットの末尾に並びます。それより前に振った目は伏せたままです。開くという行為は今起きたことなので、開いた行は古い位置ではなく末尾に置かれます。
ノベルモードには、秘匿の行を一切出しません。振った本人にもGMにも出しません。ノベルモードの画面は配信に流す使い方があるので、伏せた目を読む場所はチャット窓だけにしました。
コマにしまったダイスも、出目は残しません。シートに面が記録されていては、伏せた意味がないからです。
ブラウザの表示のうえでの秘匿です
出目そのものは参加者全員に配られています。開発者ツールを開けば読めてしまうので、不正をしない相手への目隠しと考えてください。
詳しくはダイスを参照してください。
🃏 カードの面に文章を書けます
カード編集画面のカード文章に書いた文字が、テーブルのカードそのものに重なって出ます。手紙、手がかり、説明札、アイテムカードのように、これまで画像に焼き込むか、隣に共有メモを置くしかなかったものを、カードそのものが持てるようになりました。
場に置いたカード、手札、山札の詳細表示、ポインタを乗せたときのポップアップ、そこから開いた拡大表示。どこに出ても、文章はカードと一緒に拡縮します。表示先ごとに大きさが変わっても、改行の位置はおおむね保たれます。
文字サイズと文字色を隣で選べます。既定は札のインクと同じ黒ですが、絵柄の濃いカードに黒で書くと沈むので、そういう札は明るい色にしてください。どちらも打った端から卓に反映されます。ルビ|漢字《かんじ》と行頭>の引用も、チャットや共有メモと同じ書き方で使えます。
文章が読めるのは、表を向いているあいだだけです。伏せたカードでも、他人の手札に入ったカードでも出ません。「自分だけ見る」にしたカードなら、自分の画面にだけ表面と一緒に重なります。
文章を書くためのカードとして、右クリックメニューからブランクカードを作れます。表向きで、白紙で出てきます。
スペシャルサンクス
カードの面に文章を持たせる機能は、synchro4351氏の考案・実装によるものです。解決したい課題の整理から代替案の検討、後方互換性への配慮までまとめていただいたご提案を、氏のフォークからそのまま採用しています。
詳しくはカードを参照してください。
🔒 リソースバーが公開範囲に従います
コマの公開範囲の外にいる人には、リソースの数値が???/???と表示されるようになりました。バーの長さはそのままなので、「半分は削れている」くらいは伝わります。
正確な残量は伏せたいが、瀕死かどうかは見せたい。モンスターのHPを扱うときの、その中間をとったものです。バーから類推できるぶんは許容する、と割り切っています。
詳しくは公開範囲を参照してください。
⚡ 卓が軽くなりました
描画のたびにやり直していた計算を、変化したときだけ行うようにしました。見た目は変わりません。
体感で違いが出るのは、最初にルームを開いたときと、コマや地形が多い卓です。ダイスボット、部屋のパネル、シートのラベル表、外部への問い合わせは、いずれも最初に必要になるまで後回しにしました。開いた直後の待ち時間が短くなります。
盤面では、壁と梁のグリッド、エフェクトの図形、コマの台座といった「毎フレーム同じものを描き直していた」ものを、形や引数ごとに覚えるようにしました。地形のグリッドは、1マスに満たない移動なら描き直さずにずらすだけです。カメラの向きは1フレームに1回だけ配り、傾けても縦軸まわりだけのものには触りません。
そのほか、zipを作るワーカーを書き出しのたびに起動し直さず使い回すようにし、チャットログの画像は4枚ずつ並行で読み込みます。部屋の保存は整形なしで書き出すようになりました。
🪟 そのほかの変更
ダイスボットの答えが、振った人のフキダシ色を引き継ぎます。 これまでシステムからの返答は既定の色で並んでいましたが、誰の判定に対する答えなのかが色で分かるようになりました。チャットパレットからキャラクターとして振ったときも、そのキャラクターの色を引き継ぎます。
システムタブに独自の通知音を設定できます。 ほかのタブが鳴っているあいだ、システムだけ黙らせることもできます。ダイスの音が続く卓で、システムからの連絡だけ別の音にしておく、といった使い方ができます。
「はい / いいえ」を聞く画面が1つに揃いました。 場所によって見た目や操作が違っていた確認ダイアログを、すべて同じものに置き換えています。
サンプルキャラクターに移動力が入りました。 斥候は8マス、鎧を着た騎士は4マス、ゴーレムは 3マスです。移動範囲を入れてすぐ違いを見られるようにしてあります。
部屋の復元バナーをドラッグで動かせます。 盤面の見たい場所に重なったとき、どかせるようになりました。
🐛 主な修正
- ライトテーマで簡易インベントリが読めなかったのを直しました。半透明のパネルが背景を黒で固定していたため、明るいテーマでは黒地に黒文字になっていました
- 画面を狭くすると、ウィジェットの位置の記憶が消えていたのを直しました。モバイル用の配置が、そのまま保存先に書き戻されていました
- 公開したチャットの行が、読み込み直すとタブの先頭に飛んでいたのを直しました
- カットインを再生すると、バックログや表情差分まで一緒に閉じていたのを直しました
- ホワイトボードで、描画より後に届いた動画が出なかったのを直しました
- ホットバーの枠が、指しているコマの改名に追従するようになりました
- 送信キューが、満杯のチャンネルに空回りしなくなりました
- 卓を離れたあとも、カメラの慣性やジェスチャが動き続けることがあったのを直しました
- アイコンだけのボタンに、読み上げ用の名前が付きました
開発者向け
移動範囲の計算
src/app/domain/tabletop/move/にまとまっています。到達判定はダイヤル法(バケットキュー)で、 ReachOptionsにbudget / cutsCorners / costOf / stopsAtを渡す形です。ZOCの4モードはすべてこの4つの組み合わせで表現していて、探索本体にZOCの概念はありません。
ヘクスの隣接テーブル(odd-q / odd-r)は、卓が実際に描くhexCellCenterの幾何と突き合わせて検証しています。
範囲は同期しません。読む人の視界を見て組み立てるので、見えていない敵はそもそも計算に入りません。
ラウンドの記録
TurnStateにactedIdentifiersとhistoryが加わりました。historyはTurnStepの配列を文字列にしたもので、上限は30手です。バフはBuffManager.snapshot()とrestore()で往復します。
秘匿ダイスの行
シークレットの行はダイス1個につき1行で、die:<identifier>のタグを持ちます。ChatMessageに disclosedAtが加わり、placedAt(disclosedAtがあればそれ、なければtimestamp)でタブ内の並び順が決まります。
描画コストの計測
perfCountersを入れて、削る前と後を数字で比べられるようにしました。テーブルの1フレームあたりの仕事量が読めるので、退行の検出にも使えます。
同梱素材
ブランクカードの画像を新規に作図しました。トランプ一式と同じ400×600のwebpで、帰属は images/trump/*.webpにまとめています。
過去の全変更や開発者向けの詳細は、GitHub ReleasesとCHANGELOGを参照してください。