AutoMuteUsをAmazon Lightsailでホストしてみた
Among Usのゲーム状況に合わせて、Discordの自動ミュート/ミュート解除を行ってくれる「AutoMuteUs」というツールがあります。
実際使ってみた感じ、
- 純粋にミュート切り替えの手間が無くなって楽。
- 手動で切り替えれないスマホ勢にも優しい。
- 死者同士で会話が出来るので飽きない。同じ通話で見てるだけの人にも状況が分かりやすい。
と言ったメリットがありました。逆にこれが要らないなら無理に導入する必要は無いですね。
ただこれを動かす方法が少し難儀でして、開発元で公開されているBotは人数制限で使えない事が多い→自前でホストするとDockerの導入などややこしい手順を踏む必要がある→バージョン2.4.3ならDockerの導入は不要だが古いせいで少し不安定。
……と言った感じになっています。
ver2.4.3で導入したい場合はこちらの記事を参考にすると良いです。
自分としては安定してる方が良いので自前で最新版のBotをホストする事にしました。
さてこの最新版のホストなのですが、
のどっちかって感じです。
前者ならお金はかからずに済むし、後者なら自分のPCに依存しないので他の人も利用しやすい&環境構築が比較的楽って所です。
自分はVPSに関しては完全に無知だったのですが、「Amazon Lightsail」を利用してホストする事が出来ました。
以下にその手順を書いていきます。
基本的な手順についてはこちらを参考にすると良いです。
また「AmongUsCapture」というツールをダウンロードしておきましょう。これはゲームの情報をサーバーに送信するための物です。
Discord Developer PortalでBotを作成する
「Discord Developer Portal」からBotを作成し、トークンコードを取得します。
既にVer2.4.3を使用している場合は導入済みなので飛ばしてください。Botのトークンコードだけ後で使います。
まず右上の「New Application」からBotを作成。
左の欄の「OAuth2」を選び、SCOPESのbotとBOT PERMISSIONSのAdministratorにチェックを入れます。
そこで生成されたURLにアクセスし、Botを導入したいサーバーを選択すれば参加させることが出来ます。
Botのトークンコードは左の欄の「Bot」を選び、Tokenの欄のCopyを選べばコピーできます。後々使うのでメモしておきましょう。
※ここで生成したBotの権限はAdminister(管理者)という超強い権限です。
Botのトークンコードを安易に公開すると、外部から何でも出来てしまうので注意しましょう。
もしBotの権限が気になるのであればサーバー設定から必要な権限だけ付けてやればいいです。
「メッセージの送信・絵文字の管理・リアクションの追加・ミュート」辺りを付けておけば大丈夫かと思います。その他の操作を行われる危険性が無くなります。
Amazon Lightsailの設定
サーバー側、Amazon Lightsailの設定を行います。
AWSアカウントが無い場合は作成し、Lightsailのページに移動します。
https://lightsail.aws.amazon.com/ls/webapp/home/instances
インスタンスの作成
・プラットフォームはLinux/Unixを選択。
・「OSのみ」で「Amazon Linux 2」を選択。
・インスタンスプランは一番安い月3.5$を選択。
後は付けたい名前とかあれば指定し、「インスタンスの作成」を選択します。
IPを固定する
外部からインスタンスにアクセスするためのIPアドレス、パブリックIPという物があります。これを使ってAmongUsCaptureの情報をインスタンスに送信します。
しかしこのままだとインスタンスを再起動する度にパブリックIPは変化します。
その都度変わったIPアドレスを指定するのは面倒です。静的IPを作成して固定します。
・インスタンス/ネットワーキングのタブを開く
・[静的IPの作成]を選択し、さっきのインスタンスを指定。
・適当に名前を付けて作成。
そうすれば静的IPが生成されていると思います。これは後程使います。
ポートを開放する
・ネットワーキング欄のIPv4 Firewallの、ルールを追加を選択。
・アプリケーションはカスタム、プロトコルはTCPのままで、開けたいポートを指定(自分は65535にした)
サーバーにAutoMuteUsを導入する
・[SSHを利用して接続]を選択。Linuxのコンソールが開く。
・gitとdockerとdocker-composeを導入する。
・gitの設定をする。公開鍵の登録を済ませればgit cloneが使えるようになります。
・git cloneでautomuteusを取ってきて、cp sample.env .envで.envを生成。
・vi .envで必要な箇所を書き換える。
AUTOMUTEUS_TAG=6.9.0(最新版を指定)
GALACTUS_TAG=2.4.1(最新版を指定)
GALACTUS_HOST=http://さっきのパブリックIP:ポート番号
GALACTUS_EXTERNAL_PORT=ポート番号
終わったらdocker-compose up -dでautomuteusの起動。
後はDiscordのBotを導入したサーバーで「.au start」を入力し、Botを起動させるだけ。
AmongUsCaptureと連携し、正しくゲームの状態が反映されれば準備完了です。
後は部屋に参加し、参加者とBotのリンクをすれば自動ミュート機能が動作します。
おまけ:Docker Desktop for Windowsを使用する方法
前述した通り、VPSを使わなくてもWindows単体でAutoMuteUsを使用する事が出来ます。
まずDocker Desktop for Windowsをインストールします。
同時にdocker-composeもインストールされるので、こちらの設定は不要です。
インストール後セットアップを済ませたら後はすること無し。ソフトを起動させておくだけでいいです。
後はVPSの方の手順とほぼほぼ同じ。任意のフォルダにgit cloneでautomuteusを取ってきて、cp sample.env .envで.envを生成。.envに必要な情報を追記し、docker-compose up -dでautomuteusを起動します。
gitコマンドとか分からんって人はgithubのページからzipを取ってきて展開しましょう。
展開したフォルダ内で以降のコマンドを実行すればいいです。
この際、.envには「GALACTUS_HOST=http://localhost:8123」と記載すれば良いです。IP固定やポート開放の手順は不要です。
同じくdocker-compose up -dでautomuteusを起動します。
起動中はDocker DesktopのDashBoardで以下のように確認出来ます。
こちらの方法でもポート開放をすれば他の人がBotを使用できる(自分が参加する必要が無くなる)と思いますが、自分の環境では上手くいかなかったので不明です。
終わりに
以上の手順で自分はAutoMuteUsの導入が出来ました。
自分は勉強兼ねて導入しましたが、元々の知識が無いせいでそこそこ時間がかかりました。
……と言うと二の足を踏みそうですが、実際Botを導入するとかなり快適にゲームを遊ぶことが出来ます。(実際、遊んでる人からのウケもいいです)
まずはDockerの不要なVer2.4.3の導入をし、より動作の安定化を望むのであれば最新版の導入を試みると良いと思います。PCスペックが求められる訳でも無いので。