見出し画像

「Dominion.vv」マニュアル

Dominion.vvドミニオン・ブイツーは、TRPGオンラインコンベンションの会場設営と受付の自動化を支援する、Discord用のBOTです。
 過去に公開したツール、「Apostle.CCアポスル・シーツー」が、開発に用いていたライブラリ『discord.py』が開発終了となってしまったことを受け、明日をも知れぬ命……というと大げさですが、「ゼロから作り直さないといつまで使えるかわからない」状況になったため、今向けのDiscord用BOTとしてフルリメイクしました。

 webサイト側にはある程度簡素なマニュアルを用意したのですが、通信量の関係で大量の画像ファイルは置きにくいため、画像付きのマニュアルはnoteに掲載することといたしました。

※7月末まではテスト運用期間です。こちらで確認できたエラーはおおむね解消していますが、要望やトラブルがあれば本記事へのコメントか、Twitterアカウントへの連絡か、サポート用のDiscordサーバーまでご連絡ください。



1. Twitter連携

 まず、webサイトにアクセスし、「利用規約」「プライバシーポリシー」に同意の上、「Twitter ログイン」のリンクから、Twitterアカウントを連携させてください。

Apostle.CCと異なり、エディタへのアクセスにはTwitterアカウントとの連携を必須としました
※実際に使用するデータは、「アカウントのプロフィール情報」のみです。

 Twitterアカウントを連携すると、「Twitter ログイン」となっていた部分が、以下のように変化します。

2. BOTの導入と初期設定のための作業

 続いて、「Discord BOTの導入」のリンクから、会場となるDiscordサーバーに、BOTを招待してください。

「はい」を選ぶと入場させることができます。
なお、この操作を行うためには、そのサーバーにおける「サーバー管理」の権限が必要です

 サーバーに入場したBOTは、まず「◆管理用」というチャンネル群を作ります。これは、サーバー管理者とBOTしか閲覧することができないチャンネルです。

実は地味に「Apostle.CC」から変更された部分です。「Apostle.CC」ではこのチャンネルを作成するのは手動になっていましたが、入場と同時に自動的に作成を行うようになりました。

他のロールやユーザーにも閲覧を許可したい場合は、別途カテゴリーチャンネルの権限を変更してください。

 その後、会場データの入力のため、/dvv-act config というスラッシュコマンドを実行してください。(このコマンドの実行のためには、「サーバー管理」の権限が必要です。サーバーの所有者、「管理者」権限持ちでもOKです)

メッセージ入力欄に『半角スラッシュ』を入力すると、そのサーバーで利用できる候補が表示されます。この中から、「/dvv-act config」を選択してください。
メッセージ欄の入力はそのまま検索にもなるため、「/dvv」まで入力すればほぼ『Dominion.vv』用のコマンドだけに絞り込めると思います。
/dvv-act config を実行すると、このようなリンクが表示されます。
画像の通り、このリンクメッセージは他のユーザーからは見えないようになっています。

 表示されたリンクをクリックし、設定用ページにアクセスしてください。

 なお、エディタ用のページ全般に言えることですが、以下の点にご留意ください。

  • 動作確認は、Google Chromeでのみ行っています。

  • 作業の途中でSessionStorage変数を使う場面があります。各種ブラウザにおけるプライベートブラウジングやシークレットウィンドウモードでは、正常に利用できない場合があります

  • 入力する内容にUnicode絵文字がある場合、正常な動作は保証できません

3. サーバー設定用ページへのアクセス

 エディタページにアクセスすると、まず「Discordアカウントの提示」を求められます。これは、アクセスしたDiscordユーザーが、設定作業をするに相応しい権限をDiscordサーバー上で有しているかを確認するため、接続の際に毎回提示を求めます。

必要な権限は、そのサーバーの「サーバー管理」の権限です。
この権限がないユーザーは、エディタページで作業を行うことができません。

 Twitter連携+Discord認証を経て、問題がなければ、サーバー設定に入ることができます。

4. エディタページの見方

エディタページの見本。画像クリックで拡大します。

 エディタページでは、左側のメニューで設定したい項目を選択すると、右側に入力欄が表示されるようになっています。

5. イベント情報の設定

「イベント情報」の項目では、TRPGオンラインコンベンションにおける、イベントの設定を入力できます。

a. イベント基本情報

「イベント基本情報」で入力できるのは、以下の3項目です。

  • イベント名

    • イベントの名称です。後述する「自動受付機能」を使用するとき、その自動送信メッセージで使用することができます。

  • 開催日

    • イベントの開催日です。Version 1.0.0時点では特に影響しませんが、今後、開催日を大きく過ぎたサーバーに対してメッセージを送信するような機能は作りたいと思っています。

  • ラウンジ名

    • 後述する「ラウンジチャンネル」として作成するカテゴリーチャンネルの名称を決定します。

b. システムロールの設定

 イベント会場の運用において、特定の役割を担うユーザーに与えるべきロールのことを、本ツールでは「システムロール」と呼びます。
 システムロールには、以下の3種類があります。
 また、BOT側でこれらのロールは自動的に作成されますが、作成するときにロールの表示色を指定することができます。「ロールカラー」で設定してください。(細かい色の設定ではなく、名前からざっくり選ぶ形式です)

  • 「協力者」

    • イベントにあたって、主催者に「協力」して運営を行う、運営スタッフ的な立場のユーザーに与えるロールです。

    • このロールは、@everyoneロールに加えて、「メッセージ管理」「チャンネル管理」「アプリコマンドの使用」の権限が与えられます。(「サーバー管理」の権限は自動で与えないため、注意)

  • 「リーダー」

    • 「GM」「RL」「KP」「DM」…などなど、「卓の進行役」を務める参加者を表すロールです。デフォルトネームは「GM」にしていますが、適宜変更してください。

    • このロールは、@everyoneロールに加えて、「メッセージ管理」「チャンネル管理」「アプリコマンドの使用」の権限が与えられます

    • ロールの色を初期設定できますが、各卓に割り当てる色と同色にしておきたい場合は、「Default」のままにしておいてください。

  • 「受付待ち」

    • 『Dominion.vv』からの新区分です。入場者を手動で突合し、正式なロールを与えるまでの間に会場に干渉できないようにすることを目的としたロールです。

    • このロールは、「ラウンジチャンネル」で指定したチャンネル以外へのアクセスができません

    • このロールが解除された時、システムのメッセージチャンネルを通じて、該当ユーザーに「ロール情報が更新された」旨を自動連絡します。受付作業終了の合図にお使いください。

  • 「見学」

    • 『Dominion.vv』からの新区分です。卓の見学者であることを表すロールで、すべての卓カテゴリーチャンネルに対して「閲覧」「接続」の権限を持ちます。ただし、「メッセージの送信」「ボイスチャンネルでの発言」は、チャンネル側の設定でできないようにされています

    • このロールを自動で割り当てる機能は、『Dominion.vv』にはありません。このロールは手動で割り当てるか、ロール管理関連の機能を持つBOTを併用してください。

  • OFFLINE

    • 『Dominion.vv』からの新区分で、ユーザーではなくBOT側に与えるロールです(そのためこのエディタに含まれていません)。

    • 「OFFLINE」という名前のロールが付与されている間、BOTは後述する自動受付処理を行いません。

■受付待ちロールの解除メッセージについて
 より厳密に言うと、「受付待ち」ロールは「メッセージの送信」権限を持っていません。「メッセージの送信」権限がないロールが解除された時に、メッセージを自動送信する仕組みになっています。

c. イベント協力者の登録

背景が赤くなっている入力欄は、Discordユーザー名として適切ではないことを表します。

 「イベント協力者の登録」では、入場・自動受付の際に「協力者」ロールを与えるユーザーを指定します。「ユーザー名」と「DiscordTag」を組み合わせ、画像のような形式で入力してください

6. 自動受付の設定

 『Dominion.vv』の機能のひとつに、入場したユーザーの名前をチェックし、参加する卓に応じたロールを割り振る「自動受付処理」があります。「自動受付の設定」では、その基本的な部分の設定を行います。

a. 自動受付モード

自動受付モードの設定は、「自動受付」の入力欄でチェックボックスをONにしてください。

「自動受付モード」は、入場したすべてのユーザーに対し、名前のチェックと受付リストの照合を行うモードです。
 また、自動的に下表のメッセージを送信します。この時、一部の文字列はイベント名やユーザー名に自動で置き換えられます。

  • 「イベント協力者」に指名するユーザーの入力は、「イベント情報の設定/イベント協力者の登録」で行ってください。

  • 各卓の参加者は、各卓の設定で入力を行ってください。

  • サーバー入場者に適切な自動受付が施された場合、ここで入力しておいた参加者情報は、自動的に削除されます。

  • 自動受付処理を行おうとしたとき、以下の条件を満たしている場合、BOT自身に「OFFLINE」ロールが付与されます。(以降、改めて「OFFLINE」ロールを解除するまで、自動受付処理は行われません。)

    1. 残りの参加者リストが0人の場合

    2. 受付締切日を過ぎた状態で、この処理が行われようとした場合

b. 手動受付モード

手動受付モードにするなら、「自動受付」のチェックボックスをOFFにしてください。

「手動受付モード」は、すべての入場者に対して「受付待ち」ロールを与え、その後手動でロールを与えて受付処理完了とするイベントの運用を想定したモードです。その他の機能は「自動受付モード」とほぼ同一ですので、省略いたします。

7. チャンネルの設定

『Dominion.vv』の変更点として、「ラウンジチャンネル」の設定と、一部チャンネルを専用ロールを持たないユーザーでもアクセスできる設定が追加されました。

a. ラウンジチャンネルの設定

 「ラウンジチャンネル」は、参加者全体での交流チャンネルや、運営側からの告知事項などをまとめた、「会場のメイン部分」にあたるチャンネルの一式を指します。カテゴリーチャンネルとしての名称は、「イベント基本情報」で設定できます。
 ここで追加したチャンネルは、BOTでラウンジチャンネルを作成するとき、自動的に追加されます。
 また、「開発からの提案」は、開発者である私自身が最低限必要と思っているチャンネルのデータをあらかじめ登録してあります。(次の画像は、その「開発からの提案」をクリックした場合の一式になります。)

画像のサイズの関係で少し見づらいので、実例は画像を拡大してください。

 設定・操作項目は以下の5つです。

  • チャンネル名

    • 読んで字のごとく、チャンネルの名前です。

  • 種類

    • 作成するチャンネルの種類、すなわちテキストチャンネルか、ボイスチャンネルを指定します。

    • Ver1.0.0では、現状、「ステージチャンネルの自動作成」には対応していません。(コミュニティサーバー化の設定を別途行う必要があるため、手動で行ったほうが良いと思います)

  • 『受付待ち』への公開

    • ラウンジチャンネルは、基本的に「受付待ち」ロールには閲覧できないようになっています。一部のチャンネルは「受付待ち」ロールに開放したい場合は、この部分にチェックを入れて「許可」の設定を行ってください。

    • 「閲覧/接続」は、そのテキストチャンネルを見ること、ボイスチャンネルに接続することを許可します。

    • 「書込/発言」は、そのテキストチャンネルでメッセージを送信すること、ボイスチャンネルで発言することを許可します。

    • なお、『受付待ち』の部分は、「受付待ち」ロールの名前を「システムロールの設定」で変更した場合、それが反映されます。

  • チャンネルトピック

    • チャンネルの冒頭およびチャンネル画面上部に表示される、「このチャンネルの話題」を入力指定する項目です。

    • ボイスチャンネルでは不要のため、(内容そのものは保存されていますが)「種類」がボイスチャンネルである間は編集不可になります。

  • 操作

    • 上下矢印は、チャンネルの作成順番を操作します。

    • 「削除」ボタンを押すと、そのチャンネルは削除されます。

b. 各卓基本チャンネルの設定

 『Dominion.vv』では、卓ひとつにつきカテゴリーチャンネルをひとつ割り振ります。「各卓基本チャンネルの設定」では、そのカテゴリーチャンネル内部に作成するチャンネルを設定できます。
 こちらでも、「開発からの提案」は、開発者である私自身が最低限必要と思っているチャンネルのデータをあらかじめ登録してあります。

この画像は、「開発からの提案」で呼び出せる各卓基本チャンネルの一覧です。

 基本的な設定項目は「ラウンジチャンネルの設定」と同一ですが、以下の部分が異なります。

  • チャンネル名

    • 基本的には「ラウンジチャンネルの設定」と同一です。

    • %table% の文字が含まれている場合、チャンネル作成時にその卓の卓識別子に置換されます。

  • 全体への公開

    • 各卓のカテゴリーチャンネルは、「受付待ち」ロールではアクセスできません。

    • それとは別に、ロールのないユーザー(@everyoneしか所持していないユーザー)には公開したいチャンネルがある場合、この項目で設定を行えます。

    • 『イベント用のサーバーに入室してから、参加卓を決定する』『参加者が卓を選ぶために、質疑応答用のチャンネルは全体公開されていることが望ましい』ようなイベントでの運用が想定された機能です

      • (以前お手伝いさせていただいた、オンライン混合開催の「DAC-TOHOKU」における卓分けを参考にさせていただきました)

8. 卓設定

この項目については、エディタ画面は『Apostle.CC』から一新されています。

 コンベンションにおける各「卓」用の設定を詳細に行うのが、「卓設定」のメニューです。まず、「卓を追加する」ボタンをクリックして、卓を作成し、編集したい卓を選択してください(選択されている卓は、左側のリストで黄色くハイライトされます)。
 また、「卓識別子を自動挿入」のチェックを入れておくと、卓作成時に「A卓~Z卓」までの26回は、自動的に卓名を振り分けてくれます。

「参加者を追加」のボタンで、1人目の参加者を追加するときは、デフォルトが「リーダー」の設定になっています。

 各卓の設定項目は、以下の通りです。

  • 卓識別子

    • 「A卓」「B卓」…のような、卓の呼び分けを行うための識別子です。

    • 『Dominion.vv』で各卓の専用ロールを作成するときは、この「卓識別子」がその名前に使われます。

  • ロールカラー

    • 卓用のロールに色を付けておきたい場合はここで大まかな設定ができます。

    • 色の名称とカラーコードは、「discord.py」の色設定に準じています。(なので、概ね『Apostle.CC』時代と同じラインナップです)

  • ボイスCh.

    • 卓用のチャンネルを作成するとき、ボイスチャンネルを作成するかどうかを卓ごとに個別設定できます。

    • この項目のチェックを外した場合、卓用のチャンネルを作成する際、ボイスチャンネルは作成しません。

  • カテゴリ名称

    • その卓用のカテゴリーチャンネルの名前を、自動的に設定するかどうかを決定します。

    • チェックを外していると自動出力になります。

      • 入力項目の「システム」「シナリオ」「リーダー」をもとに、上記の見出しのようなカテゴリーチャンネル名が決定されます。

    • チェックONだと手動入力になります。

      • 「システム」「シナリオ」「リーダー」に代わり、入力項目に「卓タイトル」が追加されます。この「卓タイトル」に入力された内容が、そのままカテゴリーチャンネル名に使われます。

  • 参加者の設定

    • 自動受付モードONの場合の、各卓参加者のDiscordユーザー名&DiscordTagを入力しておく欄です。

    • テキスト入力欄の直前にある「リーダー」「参加者」のボタンは、クリックすることで「リーダー」⇔「参加者」が入れ替わります。

    • イベント協力者の設定と同じく、適正でない入力欄については、背景が赤く表示されます。

    • 自動受付がつつがなく終了した場合、このデータは自動的に消去されます。

9. データ保存・呼出

Twitter連携がされていない場合、そもそもサーバー情報を編集するためのエディタに接続できません。ここにこのボタンがあるのは、「テンプレート編集モード」という編集テスト&テンプレートだけ登録できるモードがトップページからアクセスできるためです。

a. サーバーデータの登録

 このボタンをクリックすると、ここまでに入力したデータが、『Dominion.vv』のデータベースに登録されます。

b. テンプレートの読み込み

『Apostle.CC』のテンプレートデータより、使いやすい形にアレンジしました。

 「テンプレートの読み込み」ボタンを押すと、Twitterアカウントに基づくIDに紐づけられている「テンプレートデータ」が読み込まれ、保存と読み込みが可能になります。

  • 読込

    • そのテンプレートデータを、現在エディタ上で編集しているデータに上書きします。

  • 保存

    • 現在エディタ上で編集中のデータを、テンプレートデータとして保存します。「テンプレート名」には、エディタ上の「イベント名」がそのまま使われます。

  • 削除

    • このテンプレートデータを削除します。

 データを保存したら、タブ/ウィンドウを閉じてください。

編集中はアカウント情報などを一時的に保存しています。
作業を行っていたタブを閉じることで解消されるので、必ず閉じてください


10. 会場設営スラッシュコマンド

 データを保存したら、BOT側で /dvv-act launch スラッシュコマンドを実行してください。

『Dominion.vv』では、作成するチャンネルを個別に選択できます。

 設定項目は、以下の4つです。
 なお、このコマンドを実行する際、「システムロールの設定」で触れた3種類のロールが存在しない場合は、必ず作成します。

  • lounge

    • 「ラウンジチャンネル」を出力するかどうかをTrue / Falseで設定します。Trueを選択した場合のみ作成します。

  • leader

    • 「リーダー連絡用」のカテゴリーチャンネルを作成するかどうかをTrue / Falseで設定します。Trueを選択した場合のみ作成します。

    • 「リーダー連絡用」カテゴリーチャンネルの中には、テキストチャンネルとボイスチャンネルがひとつずつ含まれます。

  • tables

    • 各卓用のカテゴリーチャンネルと、専用のロールを出力するかどうかをTrue / Falseで設定します。Trueを選択した場合のみ作成します。

  • online

    • 「OFFLINE」ロールを解除し、自動受付機能を有効にするかどうかを、True / Falseで設定します。Trueを選択すると、「OFFLINE」ロールが解除され自動受付機能が有効になります。

 これで、一通りの設定は完了です。

11. /dvv-create だけを利用する

個人で、ひとつのサーバー内で複数回セッションを行う場合にも役立つ機能だと思います。

 『Dominion.vv』の追加機能として、/dvv-create というスラッシュコマンドを実装しています。

このコマンドは、『Apostle.CC』の !general_ch, !secret_ch, !leader_ch, !admin_ch を統合したものになっており、その関係でこれらのコマンドを廃止しています。

 設定項目は以下の通りです。

  • mode

    • 「テキスト・ボイス各1つ」を選択した場合、テキストチャンネルとボイスチャンネルがひとつずつ含まれるカテゴリーチャンネルを作成します。

    • 「登録データから読込」を選択した場合、エディタページで登録したデータのうち「各卓基本チャンネルの設定」で設定したチャンネルすべてを内包するカテゴリーチャンネルを作成します。

      • 「システムロール」3種が既に作成済みの場合、「登録データから読込」で作成したチャンネルにもロールごとの設定が適用されます。

        • 「リーダー」ロール持ちはこのチャンネルを必ず閲覧できます。

        • 「受付待ち」ロール持ちはアクセスできません。

  • role

    • このチャンネルを閲覧できるロールを設定します。全体公開するチャンネルは「@everyone」に相当するロールを選択してください。

    • 「登録データから読込」のmodeで作成する場合、「全体への公開」で許可されているチャンネルは、他のロールを選択した場合でも「@everyone」ロールでアクセスが可能です。

  • category_name(省略可)

    • そのカテゴリーチャンネル名を設定します。

    • 省略した場合、指定したロールの名前がそのまま利用されます。

  • position_top(省略可)

    • True を選ぶと、カテゴリーチャンネルがサーバー末尾ではなく、なるべくサーバーの先頭部分に来るように作成されます。

    • 特に連続で作成した場合など、必ず先頭に来るわけではないので、適宜手動でカテゴリーチャンネルの位置を並べ替えてください

12. 利用終了について

 利用が終わったら、サーバーを削除するか、『Dominion.vv』のBOTをサーバーから追放してください
 エディタで登録したサーバー情報は、これをもって削除されます。

13. Apostle.CCから削除された機能

 以下の機能は、Dominion.vvでは削除されました。今後要望に応じて復活させる可能性はあるかもしれません。

  • !showtime, !curtain_fall

    • 卓カテゴリーチャンネルを全体公開/非公開に設定する機能です。各卓の感想などで、シナリオのネタバレを意図せず閲覧されてしまう等の問題があるため削除しました。

  • !general_ch, !secret_ch, !leader_ch, !admin_ch

    • 先述の通り、/dvv-create コマンドに統合したため削除しました。

  • !delete_site

    • 会場全体を一気に削除するコマンドです。そもそもサーバー丸ごと削除すればいいので、誤操作防止も含め機能を削除しました。

  • !delete_table

    • 卓用のカテゴリーチャンネルを、名前を指定して削除する機能です。

    • 代替となる、カテゴリーチャンネルを選択して削除するスラッシュコマンド /dvv-eraser category が実装されています。

  • !refresh_cache

    • 『Apostle.CC』では、アクセス回数低減のため、BOTサーバーにデータベースのデータを一時的にキャッシュする形でプログラムが組まれていました。

    • 『Dominion.vv』では、データ管理の方法を変更し、毎回データベースにアクセスする方針としたため、不要となり廃止しました。

  • !sorting

    • 手動で改めて自動受付相当の処理を走らせる機能でした。自己チェックや受付処理の再始動が必要な状況が考えにくく、削除しました。

    • 余談ながら、このコマンドは「組分け帽子」(sorting hat)から取ってこの名前になっていた経緯があります。

14. 終わりに

 『Dominion.vv』の名前は、ビーストバインドトリニティの“異世界”的な概念、「ドミニオン」から拝借しています。Discordサーバーというひとつの電脳的な「異世界」を作るルールDominion.virtual=worldを、思いのままに揮うあなたこそが、ひとりの“ドミネーター”と言えるでしょう。
 『Apostle.CC』を公開した社会情勢は今と異なっており、TRPGオフラインコンベンションは復活の兆しが見えつつあります。
 今後のTRPGオンラインコンベンションがどうなるか、その行方も少しずつ変わっていくのだと思います。そのうえで、オンラインで開催することに意義を見出す方にとって、このツールが一助となれば幸いです。

前身となる『Apostle.CC』含め、「オンラインで開催したからこそ、この規模での開催をし続けることができた」と胸を張って言える、私が主宰や後援を行ってきた『BBT電脳魔宴』のために開発したツールなので、『BBT電脳魔宴』が完全に運用不可能な状況になるまでは、『Dominion.vv』も運営は維持すると思います。

倉坂悠、『Dominion.vv』開発の指針表明

 なお、本ツールは7月末までをテスト運用期間(この間はherokuのhobby Dynoを借りるためちょっとだけ性能の高いサーバーを使います)として、7月末~8月頭で『Apostle.CC』の提供を終了、以降『Dominion.vv』一本での運用を行う予定です。
 『Apostle.CC』の運用に当たっては、その点にご注意いただきますようお願いいたします。

この記事が気に入ったらサポートをしてみませんか?