Notionでテンプレートの中のボタンで追加するテキストのテンプレートの中のボタンで追加するテキストのテンプレートの中のボタンで追加するテキストのテンプレートの中のボタンで追加するテキストのテンプレートを作った話
まず現物がこちらです。
どうしてこんなことになったのかを書いていきます。
テンプレート
このテンプレートは「アリアンロッドRPG」というTRPGのシナリオをNotionで管理するためのテンプレートとして作成したものです。
アリアンロッドRPGのシナリオは、「物語が始まり」、「PC(プレイヤーキャラクター)があーだこーだして」、「その末に物語の核心に迫り決着する」、という構造をしています。それぞれ「オープニングフェイズ」、「ミドルフェイズ」、「クライマックスフェイズ」と名前が付けられています。オープニングフェイズとクライマックスフェイズはやることがほぼ一つに定まるので、テンプレートの大部分は静的に用意できます(オープニングに際して提示するハンドアウト(PC毎の事前情報)やクライマックスフェイズに行う戦闘は動的なテンプレートが必要になります)。問題となるのはミドルフェイズです。
テンプレートの中のボタンで追加するテキストのテンプレート
ミドルフェイズではクライマックスフェイズへ至るまでを行う訳ですが、これは複数のルートが想定されたり、一本道だとしても複数の段階に分かれていたりします。つまり、ミドルフェイズをさらに分割するサブブロックが一個以上存在することになります。ということで、まずは「シナリオのテンプレートの中のボタンで追加するミドルフェイズのサブブロックのテンプレート」が必要になります。
テンプレートの中のボタンで追加するテキストのテンプレートの中のボタンで追加するテキストのテンプレート
アリアンロッドRPGは「シーン制」と呼ばれるスタイルでルールが作られているTRPGなので、ミドルフェイズのサブブロックの中には「シーン」が一個以上存在します。
と言うことで、「シナリオのテンプレートの中のボタンで追加するミドルフェイズのサブブロックのテンプレートの中のボタンで追加するシーンのテンプレート」が必要になります。
テンプレートの中のボタンで追加するテキストのテンプレートの中のボタンで追加するテキストのテンプレートの中のボタンで追加するテキストのテンプレート
アリアンロッドRPGの「シーン」にはおおよそ以下のようなものが想定されます。
聞き込みなどの情報収集
ダンジョン探索
戦闘
FS(フォーカスシステム)
全てのシーンでこれらの四つが含まれるということはない上に、戦闘とFSには定型の定義がいくつかあるためテンプレートで用意したいです。ということで「シナリオのテンプレートの中のボタンで追加するミドルフェイズのサブブロックのテンプレートの中のボタンで追加するシーンのテンプレートの中のボタンで追加する戦闘やFSのテンプレート」が必要になります。
テンプレートの中のボタンで追加するテキストのテンプレートの中のボタンで追加するテキストのテンプレートの中のボタンで追加するテキストのテンプレートの中のボタンで追加するテキストのテンプレート
戦闘にはエネミーが一体以上登場します。エネミーの情報はエネミー名を記述するだけでなく、戦闘での初期位置なども記述する必要があります。これらをテンプレートで用意したいため、「シナリオのテンプレートの中のボタンで追加するミドルフェイズのサブブロックのテンプレートの中のボタンで追加するシーンのテンプレートの中のボタンで追加する戦闘のテンプレートの中のボタンで追加するエネミーのテンプレート」が必要になります。
フォーカスシステムは「一度の行為判定では成否を決定することが難しいような状況を処理するためのルール」で、例えば複雑な機構のトラップを少しずつ解除していくようなシチュエーションで用います。FSでは指定された判定を成功させることで進行値が上がっていき、進行値が完了値を超えると成功となります。問題となるのが、進行値によって途中で行う判定が変わることがルールに定義されています。つまり、FSには判定が一個以上存在します。と言うことで「シナリオのテンプレートの中のボタンで追加するミドルフェイズのサブブロックのテンプレートの中のボタンで追加するシーンのテンプレートの中のボタンで追加するFSのテンプレートの中のボタンで追加する判定のテンプレート」が必要になります。
全体の論理設計
Notionのテンプレートの設計は、極論すればベタテキストにするか埋め込みページにするかの選択です。この選択は定量的な基準があまりなく、総合的に判断して「このブロックはいつも見えてると邪魔だな~」という部分を埋め込みページにすることになります。気が狂うとあらゆるブロックを埋め込みページにし始めるのですが、今回は正気を保ったので、PC単位で提示する個別のハンドアウトと、ミドルフェイズのサブブロック、クライマックスフェイズの戦闘を埋め込みページの三つだけを埋め込みページにしました。
ミドルフェイズが埋め込みページになるのなら、オープニングフェイズとクライマックスフェイズも埋め込みページにすべきという発想はあります。かなりもっともな話ですが、そのようにするとテンプレートの最上位の階層が埋め込みページだらけのスッカスカになるので、今回は一貫性を歪めることにしました。
ミドルフェイズのサブブロックの中は、さらにシーン→戦闘orFSと階層が連なりますが、すべてベタテキストにしています。ここは既に埋め込みページになっているので俯瞰した際の見通しの悪さは問題にならず、一覧性を重視した設計ができます。
参考にしたもの
Notion自体を知ったのと「この口ぶりだともっと人類に早いタイプのすごいことができるよな……?」という泥沼への気付きがここからありました。
テンプレート自体の使い方を調べるとっかかりにしました。「『埋め込みページ』は『ページ』とあるけど『ページ』ではなく『テキストブロック』である」というNotionで一番分かりにくい概念にこのページで気付きました。泥沼に両足を突っ込んだ瞬間でした。