「Dominion.vv」マニュアル
「Dominion.vv」は、TRPGオンラインコンベンションの会場設営と受付の自動化を支援する、Discord用のBOTです。
過去に公開したツール、「Apostle.CC」が、開発に用いていたライブラリ『discord.py』が開発終了となってしまったことを受け、明日をも知れぬ命……というと大げさですが、「ゼロから作り直さないといつまで使えるかわからない」状況になったため、今向けのDiscord用BOTとしてフルリメイクしました。
webサイト側にはある程度簡素なマニュアルを用意したのですが、通信量の関係で大量の画像ファイルは置きにくいため、画像付きのマニュアルはnoteに掲載することといたしました。
※7月末まではテスト運用期間です。こちらで確認できたエラーはおおむね解消していますが、要望やトラブルがあれば本記事へのコメントか、Twitterアカウントへの連絡か、サポート用のDiscordサーバーまでご連絡ください。
1. Twitter連携
まず、webサイトにアクセスし、「利用規約」「プライバシーポリシー」に同意の上、「Twitter ログイン」のリンクから、Twitterアカウントを連携させてください。
Twitterアカウントを連携すると、「Twitter ログイン」となっていた部分が、以下のように変化します。
2. BOTの導入と初期設定のための作業
続いて、「Discord BOTの導入」のリンクから、会場となるDiscordサーバーに、BOTを招待してください。
サーバーに入場したBOTは、まず「◆管理用」というチャンネル群を作ります。これは、サーバー管理者とBOTしか閲覧することができないチャンネルです。
他のロールやユーザーにも閲覧を許可したい場合は、別途カテゴリーチャンネルの権限を変更してください。
その後、会場データの入力のため、/dvv-act config というスラッシュコマンドを実行してください。(このコマンドの実行のためには、「サーバー管理」の権限が必要です。サーバーの所有者、「管理者」権限持ちでもOKです)
表示されたリンクをクリックし、設定用ページにアクセスしてください。
なお、エディタ用のページ全般に言えることですが、以下の点にご留意ください。
動作確認は、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. イベント協力者の登録
「イベント協力者の登録」では、入場・自動受付の際に「協力者」ロールを与えるユーザーを指定します。「ユーザー名」と「DiscordTag」を組み合わせ、画像のような形式で入力してください。
6. 自動受付の設定
『Dominion.vv』の機能のひとつに、入場したユーザーの名前をチェックし、参加する卓に応じたロールを割り振る「自動受付処理」があります。「自動受付の設定」では、その基本的な部分の設定を行います。
a. 自動受付モード
「自動受付モード」は、入場したすべてのユーザーに対し、名前のチェックと受付リストの照合を行うモードです。
また、自動的に下表のメッセージを送信します。この時、一部の文字列はイベント名やユーザー名に自動で置き換えられます。
「イベント協力者」に指名するユーザーの入力は、「イベント情報の設定/イベント協力者の登録」で行ってください。
各卓の参加者は、各卓の設定で入力を行ってください。
サーバー入場者に適切な自動受付が施された場合、ここで入力しておいた参加者情報は、自動的に削除されます。
自動受付処理を行おうとしたとき、以下の条件を満たしている場合、BOT自身に「OFFLINE」ロールが付与されます。(以降、改めて「OFFLINE」ロールを解除するまで、自動受付処理は行われません。)
残りの参加者リストが0人の場合
受付締切日を過ぎた状態で、この処理が行われようとした場合
b. 手動受付モード
「手動受付モード」は、すべての入場者に対して「受付待ち」ロールを与え、その後手動でロールを与えて受付処理完了とするイベントの運用を想定したモードです。その他の機能は「自動受付モード」とほぼ同一ですので、省略いたします。
7. チャンネルの設定
a. ラウンジチャンネルの設定
「ラウンジチャンネル」は、参加者全体での交流チャンネルや、運営側からの告知事項などをまとめた、「会場のメイン部分」にあたるチャンネルの一式を指します。カテゴリーチャンネルとしての名称は、「イベント基本情報」で設定できます。
ここで追加したチャンネルは、BOTでラウンジチャンネルを作成するとき、自動的に追加されます。
また、「開発からの提案」は、開発者である私自身が最低限必要と思っているチャンネルのデータをあらかじめ登録してあります。(次の画像は、その「開発からの提案」をクリックした場合の一式になります。)
設定・操作項目は以下の5つです。
チャンネル名
読んで字のごとく、チャンネルの名前です。
種類
作成するチャンネルの種類、すなわちテキストチャンネルか、ボイスチャンネルを指定します。
Ver1.0.0では、現状、「ステージチャンネルの自動作成」には対応していません。(コミュニティサーバー化の設定を別途行う必要があるため、手動で行ったほうが良いと思います)
『受付待ち』への公開
ラウンジチャンネルは、基本的に「受付待ち」ロールには閲覧できないようになっています。一部のチャンネルは「受付待ち」ロールに開放したい場合は、この部分にチェックを入れて「許可」の設定を行ってください。
「閲覧/接続」は、そのテキストチャンネルを見ること、ボイスチャンネルに接続することを許可します。
「書込/発言」は、そのテキストチャンネルでメッセージを送信すること、ボイスチャンネルで発言することを許可します。
なお、『受付待ち』の部分は、「受付待ち」ロールの名前を「システムロールの設定」で変更した場合、それが反映されます。
チャンネルトピック
チャンネルの冒頭およびチャンネル画面上部に表示される、「このチャンネルの話題」を入力指定する項目です。
ボイスチャンネルでは不要のため、(内容そのものは保存されていますが)「種類」がボイスチャンネルである間は編集不可になります。
操作
上下矢印は、チャンネルの作成順番を操作します。
「削除」ボタンを押すと、そのチャンネルは削除されます。
b. 各卓基本チャンネルの設定
『Dominion.vv』では、卓ひとつにつきカテゴリーチャンネルをひとつ割り振ります。「各卓基本チャンネルの設定」では、そのカテゴリーチャンネル内部に作成するチャンネルを設定できます。
こちらでも、「開発からの提案」は、開発者である私自身が最低限必要と思っているチャンネルのデータをあらかじめ登録してあります。
基本的な設定項目は「ラウンジチャンネルの設定」と同一ですが、以下の部分が異なります。
チャンネル名
基本的には「ラウンジチャンネルの設定」と同一です。
%table% の文字が含まれている場合、チャンネル作成時にその卓の卓識別子に置換されます。
全体への公開
各卓のカテゴリーチャンネルは、「受付待ち」ロールではアクセスできません。
それとは別に、ロールのないユーザー(@everyoneしか所持していないユーザー)には公開したいチャンネルがある場合、この項目で設定を行えます。
『イベント用のサーバーに入室してから、参加卓を決定する』『参加者が卓を選ぶために、質疑応答用のチャンネルは全体公開されていることが望ましい』ようなイベントでの運用が想定された機能です
(以前お手伝いさせていただいた、オンライン混合開催の「DAC-TOHOKU」における卓分けを参考にさせていただきました)
8. 卓設定
コンベンションにおける各「卓」用の設定を詳細に行うのが、「卓設定」のメニューです。まず、「卓を追加する」ボタンをクリックして、卓を作成し、編集したい卓を選択してください(選択されている卓は、左側のリストで黄色くハイライトされます)。
また、「卓識別子を自動挿入」のチェックを入れておくと、卓作成時に「A卓~Z卓」までの26回は、自動的に卓名を振り分けてくれます。
各卓の設定項目は、以下の通りです。
卓識別子
「A卓」「B卓」…のような、卓の呼び分けを行うための識別子です。
『Dominion.vv』で各卓の専用ロールを作成するときは、この「卓識別子」がその名前に使われます。
ロールカラー
卓用のロールに色を付けておきたい場合はここで大まかな設定ができます。
色の名称とカラーコードは、「discord.py」の色設定に準じています。(なので、概ね『Apostle.CC』時代と同じラインナップです)
ボイスCh.
卓用のチャンネルを作成するとき、ボイスチャンネルを作成するかどうかを卓ごとに個別設定できます。
この項目のチェックを外した場合、卓用のチャンネルを作成する際、ボイスチャンネルは作成しません。
カテゴリ名称
その卓用のカテゴリーチャンネルの名前を、自動的に設定するかどうかを決定します。
チェックを外していると自動出力になります。
入力項目の「システム」「シナリオ」「リーダー」をもとに、上記の見出しのようなカテゴリーチャンネル名が決定されます。
チェックONだと手動入力になります。
「システム」「シナリオ」「リーダー」に代わり、入力項目に「卓タイトル」が追加されます。この「卓タイトル」に入力された内容が、そのままカテゴリーチャンネル名に使われます。
参加者の設定
自動受付モードONの場合の、各卓参加者のDiscordユーザー名&DiscordTagを入力しておく欄です。
テキスト入力欄の直前にある「リーダー」「参加者」のボタンは、クリックすることで「リーダー」⇔「参加者」が入れ替わります。
イベント協力者の設定と同じく、適正でない入力欄については、背景が赤く表示されます。
自動受付がつつがなく終了した場合、このデータは自動的に消去されます。
9. データ保存・呼出
a. サーバーデータの登録
このボタンをクリックすると、ここまでに入力したデータが、『Dominion.vv』のデータベースに登録されます。
b. テンプレートの読み込み
「テンプレートの読み込み」ボタンを押すと、Twitterアカウントに基づくIDに紐づけられている「テンプレートデータ」が読み込まれ、保存と読み込みが可能になります。
読込
そのテンプレートデータを、現在エディタ上で編集しているデータに上書きします。
保存
現在エディタ上で編集中のデータを、テンプレートデータとして保存します。「テンプレート名」には、エディタ上の「イベント名」がそのまま使われます。
削除
このテンプレートデータを削除します。
データを保存したら、タブ/ウィンドウを閉じてください。
10. 会場設営スラッシュコマンド
データを保存したら、BOT側で /dvv-act launch スラッシュコマンドを実行してください。
設定項目は、以下の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 というスラッシュコマンドを実装しています。
設定項目は以下の通りです。
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サーバーというひとつの電脳的な「異世界」を作るルールを、思いのままに揮うあなたこそが、ひとりの“ドミネーター”と言えるでしょう。
『Apostle.CC』を公開した社会情勢は今と異なっており、TRPGオフラインコンベンションは復活の兆しが見えつつあります。
今後のTRPGオンラインコンベンションがどうなるか、その行方も少しずつ変わっていくのだと思います。そのうえで、オンラインで開催することに意義を見出す方にとって、このツールが一助となれば幸いです。
なお、本ツールは7月末までをテスト運用期間(この間はherokuのhobby Dynoを借りるためちょっとだけ性能の高いサーバーを使います)として、7月末~8月頭で『Apostle.CC』の提供を終了、以降『Dominion.vv』一本での運用を行う予定です。
『Apostle.CC』の運用に当たっては、その点にご注意いただきますようお願いいたします。