みやこの元団長日記

グラブルの騎空団ぐるぐるストッキング(ぐるスト(ストはカタカナ))の元団長がたまになんか書くかもしれません

喋太郎が声変わりして声を変えられなくなってしまったので繋ぎ用にDiscordのテキスト読み上げボットを書いた

Discordのテキスト読み上げボット、喋太郎を使っていたのですが、声変わりしてユーザー別の声設定ができなくなってしまったので似たようなボットをOpen JTalkを使って書きました。Python製です。せっかくなのでソースコードと導入方法を紹介します。

喋太郎が以前の声を取り戻すまでの繋ぎ用なのでそんなにしっかりしたボットではありません。とりあえず自分が運用しているDiscordサーバーで使えればいいや程度で作ったのであまり期待しないでください。また、面倒なので複数のDiscordサーバー上で動かすことは想定していません。複数のDiscordサーバーで使用すると辞書等の設定が共有されてしまうので注意してください。

読み上げ音声はOpen JTalkのデモサイトで確認できるので導入前に雰囲気を知りたい方は試してみてください。

http://open-jtalk.sp.nitech.ac.jp/

今回のボットを書くにあたって喋太郎のソースコードを参考にさせていただきました。この場を借りてお礼申し上げます。

はじめにお断りしておきますが、

  • 私が運用しているボット自体は公開しません
    • 「招待」だけでは使えません
    • 自前のサーバー/PC等でボットを動かしてください
  • Discordボットの作り方は説明しません
    • ググれば出てくるので自分で調べてください
  • 一応どのOSでも動くと思いますがArch Linuxでしか試してません
    • Windowsでも動かせますがたぶん大変なのでVMUbuntu動かすとかした方が楽だと思います
  • ソースコードを自分で多少書く必要があります

というわけで行きます。

準備

以下のプログラム等が必要です。

  • Open JTalk
  • Open JTalk用の音声ファイル
  • Python (3.6以上)
  • discord.pyの音声サポートに必要なライブラリ
    • ここdiscord.py[voice] のインストールに必要なライブラリをインストールしておいてください
  • FFmpeg (またはavconv)

Open JTalkと音声ファイルのインストール

Arch Linuxの場合はAURにあるので、そこからインストールします。yayを使う場合は以下

yay -S open-jtalk

ついでに音声ファイルもインストールしておきます。

yay -S open-jtalk-voice-mei open-jtalk-voice-nitech-jp-atr503-m001

open_jtalk -hでヘルプが表示されればインストールできています。

Ubuntuの場合はこちらにインストール方法があります。

実際に動くかどうか以下のコマンドで確認しておきます。

echo "こんにちは" | open_jtalk -x /usr/share/open-jtalk/dic/ -m /usr/share/open-jtalk/voices/mei_normal.htsvoice -ow test.wav

これでtest.wavが作られるはずなので、再生して「こんにちは」と発音されていれば大丈夫です。

環境によっては-xで指定している辞書や-mで指定している音声の場所が違うので確認・修正してください。この場所はあとで使います

PythonFFmpeg等のインストール方法は省略します。普通にインストールするか元から入ってるのを使ってください。

ボット用のPython仮想環境の作成

これはしてもしなくてもいいですが作るのをおすすめします。

わかってる方は次のセクションまで読み飛ばしてください。

ボット用のディレクトリを作ってその中で、

python3 -m venv .

これで環境が作られます。環境をアクティベートするには

./bin/activate

を実行します。

ボット立ち上げ前には必ず環境をアクティベートしてください

Python仮想環境を作ってアクティベートしてたら

pip install "discord.py[voice]"

これでdiscord.pyと依存するライブラリがインストールされます。

ボットの作成

トークンの取得

Discordボットを作るにはトークンが必要です。トークンの取得方法はここなどを見てください。

ついでに導入したいサーバーにボットを招待しておきます。

ソースコードの取得と編集

ここに読み上げ機能のソースコードを公開しているのでダウンロードかコピペしてvc.pyとして保存しておいてください。

ソースコードの50行目あたりから環境別の設定があるので必要に応じて書き換えます。

書き換え方はコメントを参照してください。

ボット本体のコード作成

先程作ったvc.pyと同じディレクトリにmain.pyとして以下のようなファイルを作ります。

import discord

from vc import talk

client = discord.Client()


@client.event
async def on_message(msg):
    await talk(msg)


if __name__ == '__main__':
    client.run('ここに先程取得したトークンを記入')

最終行のclient.runのところには先程取得したトークンを入力してください。

これで python3 main.py と実行するとボットがオンラインになるはずです。

ボットの使い方

デフォルトのコマンドプレフィックス(コマンドの前につける記号)は!!です。

ボットがオンラインになったら、Discordのサーバー上で!!helpと入力するとヘルプを表示します。

VCに入っている状態で!!summonとするとボットがVCに入ってきます。この状態で!!summonと実行したのと同じチャンネルで何か発言するとボットが読み上げてくれるはずです。喋らない場合はボットを実行した端末上でエラーが出ているはずなので頑張って解決してください。

単語の登録

!!wa 単語 読みと実行すると、以後「単語」を「読み」と読み上げるようになります。

登録した単語を削除したい場合は!!wd 単語です。

登録されている単語の一覧を取得したい場合は!!wlです。

ユーザー別の音声設定

ユーザー別に読み上げ音声の設定を変えることができます。

詳細は!!helpを参照してください。

読み上げボイスの追加

Open JTalkが対応している形式(.htsvoice)の音声ファイルであれば追加することができます。

例えばここで配布されている音声ファイルはダウンロードしてきてそのまま使えます。(利用規約は遵守してください)

ボイスの追加例

例として、先程のサイトから「桃音モモ」の音声をダウンロードしてボットで使えるようにする方法を紹介します。

まずボットを作成したディレクトリにvoicesというディレクトリを作ります。

次に、音声ファイルをダウンロードしてzipファイルを解凍すると中に利用規約桃音モモ.htsvoiceというファイルがあるので、htsvoiceファイルを先程作ったvoicesディレクトリにコピーします。

vc.pyの84行目あたりに以下のコメント行があるのでアンコメントします。

    # 'momo': LOCAL_VOICES / '桃音モモ.htsvoice',

コードを修正したらボットを再起動(python3 main.pyした端末でCtrl+cして再度python3 main.py)します。

ボットの再起動後、!!helpと実行すると!!voiceのヘルプにmomoの選択肢が追加されているはずです。

この状態で!!voice momoとすると桃音モモの声で読み上げてくれるようになります。

他の音声ファイルを追加する場合は先程のコメント行を参考にいい感じにコードを追加してください。

終わりに

とりあえず喋太郎が以前の声を取り戻す(というかせめてユーザー別に声が変えられるようになるまで)の繋ぎ用読み上げボットの紹介でした。よかったら好きに使ってください。

[Linux版] ゲーム音だけを録画/配信する方法

ゲーム等の録画/配信をする時、他のソフトでBGMを聞いていたりDiscord等でVCしていたりするかもしれません。そのような時にBGMやVCの音声が録画/配信に入ってしまうのを避けたい場合はあると思います。私の場合はVCでわいわいしながらFF14のくじテンダー配信をしたかったので、ゲーム音だけを配信できるように設定を整えました。今回はその方法を紹介したいと思います。

今回紹介する方法では以下のことが可能です。

  • ゲーム音を配信と自分の環境両方に出力可能
  • 配信するゲーム音と自分に聞こえるゲーム音の音量を独立して調整可能

今回使用したソフト等は以下のとおりです。

  • OS: Arch Linux
  • ゲーム: FF14 (on Wine)
  • VC: Discord (Linux用アプリ版)
  • 配信: OBS
  • DAC: Luxman DA-200 (USB接続)

方法の選択

今回の目的を達成する方法としてはいくつかあります。

  1. pulseaudioで音の出力先を制御する
    1. ゲーム音をnull sinkに出力し、それをOBSでキャプチャする
    2. ゲーム音をcombined sinkに出力し、それをOBSでキャプチャする
  2. Jack Audio Connection Kit (jack) で音の出力先を制御する
    1. WineASIOを導入してWine上のゲーム音をjackに出力する

上記3通り全て試しましたが、汎用性・安定性の面から1.1.の方法がおすすめです。今回はこの方法のやり方を紹介します。

PulseAudioとpavucontrolのインストール

最近のほとんどのディストリ/デスクトップ環境では特に設定してなくてもpulseaudioが音声制御に使われているはずなので、インストール等は不要なはずです。入ってない方はインストールして設定等いい感じにしておいてください。

pulseaudioの出力制御等をGUIから行うため、pavucontrolをインストールしておきます。

sudo pacman -S pavucontrol

次に、pulseaudioの設定を行います。今回の方法ではnull sinkという仮想出力を使用します。この仮想出力は本来入力された音声を全てドロップしてしまうのですが、モニター出力もあるのでそこからOBSや通常の出力(今回はUSB DAC)に音声を出力することができます。今回はその機能を使います。

デフォルトの出力先の確認

まずデフォルトの出力先を確認しておきます。

ターミナルから以下のコマンドを実行することで、利用可能な出力先の一覧が取得できます。

pacmd list-sinks

コマンドを実行すると以下のような出力が得られるはずです:

2 sink(s) available.
  * index: 0
        name: <alsa_output.usb-LUXMAN_USB_D_A_CONVERTER_DA-200-01.iec958-stereo>
        driver: <module-alsa-card.c>
        flags: HARDWARE DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
        state: RUNNING
        suspend cause: (none)
        priority: 9048
        volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 / 100% / 0.00 dB
                balance 0.00
        base volume: 65536 / 100% / 0.00 dB
        volume steps: 65537
        muted: no
        current latency: 11.39 ms
        max request: 4 KiB
        max rewind: 4 KiB
        monitor source: 0
        sample spec: s24le 2ch 96000Hz
        channel map: front-left,front-right
                     Stereo
        used by: 2
        linked by: 3
        configured latency: 8.00 ms; range is 8.00 .. 1820.44 ms
        card: 1 <alsa_card.usb-LUXMAN_USB_D_A_CONVERTER_DA-200-01>
        module: 7
        properties:
(以下略)

何個かindex: <番号>という行が表示されていると思うので、そのすぐ下のname: <名前>から目的の出力先の名前をメモしておきます。私の場合はalsa_output.usb-LUXMAN_USB_D_A_CONVERTER_DA-200-01.iec958-stereoとなります。(indexでの指定は変わる可能性があるので名前を使います。)

default.paの設定

pulseaudioの設定はシステム全体とユーザー個別の設定があるのですが、今回はユーザー個別の設定を利用します。

pulseaudioは起動時に$HOME/.config/pulse/default.paというファイルから設定を読み込みます。なければ作りましょう。

default.paに以下のように記述します。

# システムのデフォルト設定の読み込み
# ディストリによってはデフォルトの設定ファイルが違う場所にあるかもしれないので要確認
.include /etc/pulse/default.pa

# null-sinkの有効化
# sink_nameは自由
load-module module-null-sink sink_name=OBSSink

# null-sink に名前をつける
# 第一引数には先程と同じsink_nameを使う
update-sink-proplist OBSSink device.description=OBSSink

# loopback moduleでnull-sinkの出力をデフォルトの出力先に設定
# souceには上で作ったnull-sinkのsink_nameに.monitorを付けた値を指定
# sinkには先程調べた出力先の名前を指定
# adjust_timeは0(無効)にしておく(重要)
# latency_msecは最小値の1を指定(デフォルトだと200ミリ秒の遅延が入ってしまう)
load-module module-loopback source=OBSSink.monitor sink=alsa_output.usb-LUXMAN_USB_D_A_CONVERTER_DA-200-01.iec958-stereo adjust_time=0 latency_msec=1

以上のようにファイルを作って記述したら、pulseaudioを一旦再起動します。

pulseaudio -k

通常は上記のコマンドでpulseaudioのプロセスを終了させると自動的に再起動するはずですが、起動しない場合(pavucontrolで確認可能)は以下のコマンドで起動させます。

pulseaudio --start

設定ファイルにミスがなければ起動できるはずです。

この状態でpavucontrolを起動すると、「Playback」タブに「Loopback from Monitor for Null Output on」といった出力が追加されているはずです。表示されていない場合は一番下の「Show:」となっているところが「All Streams」になっているか確認してください。

また、loopbackの出力先が先程設定ファイルで指定した出力先に設定されているかも確認しておいてください。

ゲーム音の出力先設定

この状態でゲームを起動します。今回はWine上でのFF14を例にとります。

参考: WineでFF14を動かす方法はこちら

miyacopl.hatenablog.com

ゲームを起動すると先程のpavucontrolの「Playback」タブに新しくゲームの出力が表示されるはずです。ゲーム名(FINAL FANTASY XIV)の右横に出力先の選択があるので、これを先程設定ファイルで作ったnull sinkの名前に指定します。上記の設定ファイルをそのまま使った場合はOBSSinkが選択可能になっているはずです。

ここまできちんと設定できていればゲーム音の出力先を変更してもゲーム音が聞こえるはずです。

また、ここで他のアプリケーション等の出力がOBSSinkなっていないことを確認しておきます。(なっていると配信に音が入ってしまいます)。アプリ版のDiscordは独自に設定を行っているようなので、使っている場合はDiscordの設定から出力先をOBSSink以外にしておきます。

ここまで設定が終わるとpavucontrolの画面は次のようになっているはずです。

f:id:MiyacoPL:20190616175907p:plain

OBSの設定

OBSでゲームをキャプチャする設定の方法は省きますが、「Sources」で「Window capture」を追加してゲーム画面を選択すればキャプチャできるはずです。

デフォルトではOBSはデスクトップの音を全てキャプチャしてしまうのでこれをミュートしておきます。「Mixer」のところに「Desktop Audio」というのがデフォルトで設定してあるはずなので、これのスピーカーアイコンをクリックしてミュートしておきます。

次に、OBSでゲーム音をキャプチャするように設定します。「Sources」で「Audio Output Capture (PulseAudio)」を追加できるはずなので追加し、「Create New」を選択して適当に名前を付けておきます。するとデバイスの選択画面になるはずなので、ここで先程追加したnull sinkの名前(ここではOBSSink)を選択します。すると「Mixer」のところに指定した名前で新しいサウンドのキャプチャが追加されるはずです。

ここまでできればゲーム音だけを配信することができているはずです。実際に配信/録画する等して確認してみてください。OBSを使った配信や録画の方法は調べればたくさん出てくるので省略します。Windowsと同じ方法で大丈夫です。

(おまけ)配信するゲームの音量と自分で聞くゲームの音量を独立に調整する

おまけです。この方法ではpavucontrolを使って配信するゲームの音量と自分で聞くゲームの音量を独立に調整することが可能です。

個人的には、配信を聞く人は音量を下げることはできても上げることはできないので、ゲーム(FF14)の音量は設定で大きくしておきそのままOBSに流し、自分で聞く音量を下げておくのがいいのではないかと思っています。

これは簡単で、ゲームを起動している状態でpavucontrolを開き、「Playback」タブの「Loopback from Monitor of Null Output」の音量をpavucontrol上で変更するだけです。自分で聞くゲーム音をミュートしたい時はここをミュートします。

おわりに

以上でpulseaudioの設定及び配信/録画の設定は終わりです。null sinkへの入出力を色々変えることで他の用途にも使えると思いますので、ぜひ色々試してみてください。

参考

Arch Linux上でFF14をプレイする方法の追記(2019/4/23頃のランチャーアップデート対応版)

以前紹介した「Arch Linux上でFF14を快適にプレイする方法(DirectX 11/DXVK使用)」では、2019/4/23頃のランチャーのアップデートで普通のWineでFF14起動できなくなってしまったので、今回はその対応方法を紹介します。なお、間もなく漆黒のヴィランズが公開されますので、その際また起動方法が変わる可能性があります。ご了承ください。

手順としては、

  1. パッチを当てたWine (staging版) をビルド&インストールする
    • その際、Wineのバージョンは4.10は避ける(エラーになって起動できない)
  2. winecfgを起動し、stagingタブで「wineのバージョンを隠す」を有効にする

以上となります。

パッチの当たったWineの用意

Arch Linuxの場合はここで公開されているwine-tkg-gitに該当のパッチが含まれているので有効にしてmakepkg -siするだけです。Ubuntu等他のディストリの場合は頑張ってなんとかしてください。

git clone https://github.com/Tk-Glitch/PKGBUILDS
cd PKGBUILD/wine-tkg-git

お好きなテキストエディタcustomization.cfgに以下の変更を加えます。

59行目あたりの_plain_versionwine-4.9を指定:

_plain_version="wine-4.9"

73行目あたりの_staging_versionv4.9を指定:

_staging_version="v4.9"

123行目あたりの_ffxivlauncher_fixtrueに変更:

# Workaround for Final Fantasy XIV Launcher 404 error - Thanks @varris1 !
_ffxivlauncher_fix="true"

以上の変更を行ったら、makepkg -siしてビルド&インストールします:

makepkg -si

時間がかかるのでのんびり待ちましょう。最後にパスワードが要求されるので入力してインストールは完了です。

Wineのバージョンを隠す

この状態だとMacで起動していると判定されてしまうので、Wineのバージョンを隠す必要があります。

まず、FF14用に使っている$WINEPREFIXを指定してwinecfgを起動します。

WINEPREFIX=$HOME/.ffxiv winecfg

先程インストールしたWineであればstagingタブがあるはずなので、そこを選択し、以下のように「Hide Wine version from applications」にチェックを入れて適用します。

f:id:MiyacoPL:20190616151149p:plain

これで他の設定等は以前書いた「Arch Linux上でFF14を快適にプレイする方法(DirectX 11/DXVK使用)」と同じでFF14が起動できるはずです。

Arch Linux上でFF14を快適にプレイする方法(DirectX 11/DXVK使用)

私はメインOSにArch Linuxを使っています。

最近Arch Linux上でFinal Fantasy XIV(以下FF14)を動かせたので、その方法を備忘録的に書き残しておこうと思います。思い出しながら書いているので間違っている部分や抜けがあるかもしれませんがご了承ください。

仮想マシンWindowsを入れてそこにFF14をインストールするとパフォーマンスが悲惨なことになるので、今回は仮想マシンは使わず、Wineというソフトを使ってLinux上でFF14を動かしています。また、動かす方法だけならネットで探せば出てくるので、パフォーマンスを改善する方法も紹介します。

ちなみにこのあたりはLutrisを使うといい感じにやってくれるそうですが私は試していません。全部手動でやりました。

2019/06/16追記: 2019/04/23頃のランチャーのアップデートで通常のWineでは起動できなくなったので対応方法を以下の記事で紹介しました

miyacopl.hatenablog.com

はじめに

公式にサポートされていない方法なので、何があっても自己責任でお願いします。
※最悪BANされる可能性もあります。

今回紹介する作業はほぼ全て端末上でコマンドを入力する方法で行います。Archユーザーなら問題ないとは思いますがご了承ください。一部AURのパッケージもインストールする必要があるので、そこでは私が使っているyayというAURヘルパーのコマンドを使用します。他のAURヘルパーを使っている方は適宜コマンドを読み替えてください。

今回使ったマシンのスペックは以下の通りです。

他社製のGPUを使っている場合一部手順が異なるのでご注意ください。

Wine関連パッケージのインストール

基本的にArchWikiのWineの項に従ってインストールを進めます。困ったらArchWikiを参照してください。

Arch LinuxのデフォルトのリポジトリにはWineが入っていないので、まず公式のmultilibリポジトリを有効にする必要があります。

以下のコマンドを実行し、/etc/pacman.confを編集します。

sudoedit /etc/pacman.conf

以下の部分をアンコメント(行頭の#を削除)します。

[multilib]
Include = /etc/pacman.d/mirrorlist

編集が終わったらファイルを保存して閉じて、以下のコマンドを実行してパッケージリストを更新します。

sudo pacman -Syy

これでWineがインストールできるようになりました。今回は安定版ではなくテスト版のwine-stagingをインストールしました。

2019/06/16追記: 公式リポジトリのWineではFF14が起動できなくなってしまったので以下の記事の方法でビルド&インストールしてください。

miyacopl.hatenablog.com

sudo pacman -S wine-staging

この記事を書いている時点でのWineのバージョンはwine-4.5 (Staging)でした。

また、Wineのライブラリ管理をサポートしてくれるwinetricksもついでにインストールしておきます。

sudo pacman -S winetricks

サウンド再生にはpulseaudioを使っているので、それ用の32bit版パッケージもインストールしておきます。

sudo pacman -S lib32-libpulse

32bit版グラフィックドライバのインストール

NVIDIA製のカードを使っていたのでnvidiaパッケージでドライバは入っていたのですが、32bit用のドライバも追加でインストールする必要がありました。

sudo pacman -S lib32-nvidia-utils

IntelAMDGPUでも同様に32bit版のドライバのインストールが必要なはずですので、それらのGPUを使っている方はXorg#ドライバーのインストールを参照してmultilibパッケージに記載されている対応するドライバ(lib32-mesa等)をインストールする必要があります。

ここで一旦再起動しておきます。

FF14インストール用のWine環境構築

他のWine上で動かすアプリケーションと分離するため、FF14専用の環境を作っておきます。

# 今回は64bit環境を使用
export WINEARCH=win64

# Wineの使用するフォルダ指定
# 場所はどこでもけっこうですが、空き容量が40GB以上必要です
export WINEPREFIX=$HOME/.ffxiv

これで$HOME/.ffxivディレクトリ以下にWine関連のファイルがインストールされるようになります。 以後の作業は同じシェル上で行ってください。もしシェルを閉じてしまったら再度上記のコマンドを実行して環境変数を設定してください。

まずWineの初期設定を行います。 以下のコマンドで設定画面を起動します。

winecfg

ApplicationsタブでWindows10を選択しておきます。また、文字化けを避けるためにDesktop IntegrationタブからActive Title Text, Menu Text, Message Box Text, Tooltip Textを適当な日本語フォントに変更しておきます。

設定が終わったらOKを押して閉じます。

Wine環境へのライブラリのインストール

winetricksを使っていくつか必要なライブラリ等をインストールしておきます。

winetricks devenum xact xinput allfonts

このインストール作業は少し時間がかかります。

FF14のインストール

この時点ではFF14ベンチマークは動きません(DirectX 11が必要なため)。FF14DirectX 9でも動くので、とりあえずFF14をインストールします。

フリートライアル版(ffxivsetup_ft.exe)を適当なディレクトリにダウンロードしておきます。アカウントがない方はここで作っておきます。

ファイルをダウンロードしたディレクトリへ移動し、

wine ffxivsetup_ft.exe

を実行するとインストールが始まります。日本語を選択すると文字化けしているかもしれませんが雰囲気でインストールします。

FF14の設定

インストールが終わったら、$HOME/Documents/My Games/Final Fantasy XIV - A Realm Rebornというディレクトリができていて、中にFFXIV_BOOT.cfgというファイルがあるはずなので以下の2行をそれぞれ次のように編集します。

DX11Enabled  0
BrowserType  2

FF14のランチャーの起動

以下のコマンドでFF14のランチャーを起動します。

wine "$HOME/.ffxiv/drive_c/Program Files (x86)/SquareEnix/FINAL FANTASY XIV - A Realm Reborn/boot/ffxivboot.exe"

ログインするとパッチのダウンロードが始まるので終わるまで待ちます(数十GBあるのでかなり時間がかかります)。

FF14の起動

ダウンロードが終わったらゲームが起動できるはずです。おそらくこの時点ではオープニングムービーのロードが無限に続くので一旦閉じます。

先程の"$HOME/Documents/My Games/Final Fantasy XIV - A Realm Reborn"というディレクトリにFFXIV.cfgというファイルができているはずなので、以下の部分を次のように編集します。

CutsceneMovieOpening 1

これで再度ランチャーを起動するとゲームが起動できるはずです。

ここまでで通常のプレイはできると思います。

パフォーマンスの改善(DirectX 11の有効化とDXVK/Vulkanの利用)

この時点でゲームはプレイできるはずですが、私の環境ではパフォーマンスがいまいちだと感じました。具体的には、リムサのマーケットでノートPC(高品質)設定で40fps程度しか出ませんでした。

DXVKとVulkanをインストールしてDirectX 11を有効にすることでパフォーマンスを改善することができます。私の環境ではこの方法で同じ場所、同じ画質設定で80〜90fps程度まで改善されました。

DXVKとVulkanについてはこのあたりを参照してください。

DXVKに関しては以下のような注意書きがあるので本当に自己責任でお願いします。

Manipulation of Direct3D libraries in multi-player games may be considered cheating and can get your account banned. This may also apply to single-player games with an embedded or dedicated multiplayer portion. Use at your own risk.

意訳(抜粋):Direct3Dのライブラリをいじってるからチートだと思われてBANされるかもしれないよ。自己責任で使ってね。

怖い注意書きがありますが、DXVK自体はSteamのSteam PlayでLinux上でWindows用ゲームを動かす機能でも使われているものです。決してそれ自体がチートの類というわけではなく、あくまで「チートと判断されてしまう可能性がある」ということです。

DirectXのインストール

マイクロソフトからDirectXをダウンロードしてインストールします。

以下のファイルをダウンロードしてください。

https://download.microsoft.com/download/8/4/A/84A35BF1-DAFE-4AE8-82AF-AD2AE20B6B14/directx_Jun2010_redist.exe

適当に展開用のディレクトリを作ってから、以下のコマンドを実行して展開します。

wine directx_Jun2010_redist.exe

展開先のディレクトリを聞かれるので先程作ったディレクトリを指定します。
※ここで指定したディレクトリに大量のファイルが展開されるので注意してください。

ファイルの展開が終わったら、展開先のディレクトリに移動して以下のコマンドを実行します。

wine DXSETUP.exe

ライセンス条項に同意したらインストールします。

これでDirectX 11が有効にできるはずです。

ベンチマークの実行

FF14ベンチマークDirectX 11対応のものしかないので今までは実行できませんでしたが、ここまでうまくできていれば実行できるはずです。

2019/06/16追記: 漆黒のヴィランズのベンチマークは実行できませんでした。

ここからベンチマークをダウンロードして解凍し、以下のコマンドで実行します。

wine ffxiv-stormblood-bench.exe

私の環境では最高品質の画面サイズ1280×720で6000程度のスコアでした。

FF14でのDirectX 11の有効化

先程と同じ方法でランチャーを起動します。

wine "$HOME/.ffxiv/drive_c/Program Files (x86)/SquareEnix/FINAL FANTASY XIV - A Realm Reborn/boot/ffxivboot.exe"

ランチャーの下の方に「Config」というボタンがあるのでそれをクリックするとDirectX 11を有効にする設定があるので有効にします(すでに有効になっていればそのままで)。

その状態でログインし、緑の起動ボタンが「プレイ DirectX 11」となっていれば成功です。

しかし、この時点ではまだDirectX 9の時と変わらないかそれ以下のパフォーマンスになってしまうと思います。

Vulkanのインストール

基本的にArchWikiの手順どおりです。

まずvulkan-icd-loaderlib32-vulkan-icd-loaderをインストールします。

sudo pacman -S vulkan-icd-loader lib32-vulkan-icd-loader

さらに使用しているグラフィックボードに対応したドライバもインストールする必要がありますが、NVIDIA製の場合はnvidiaパッケージに含まれています。他社製の場合は前述のArchWikiに対応するドライバが書いてあるのでインストールしてください。

DXVKのインストール

公式リポジトリではなくAURにあるのでそれを使います。

yay -S dxvk-bin

その後、先程FF14をインストールしたwine環境にdxvkをインストールします。

setup_dxvk install

ベンチマークの実行(再)

再度ベンチマークを実行してみます。

wine ffxiv-stormblood-bench.exe

2019/06/16追記: 漆黒のヴィランズのベンチマークは実行できませんでした。

私の環境では最高品質の画面サイズ1280×720で13000程度までスコアが上昇しました。

一応DXVKの有無でベンチマークの比較動画を撮りましたので参考にどうぞ(録画中のためスコアが低くなっています)。


Final Fantasy XIV Benchmark on Arch Linux - Comparison of with/without DXVK

動画上のFPS表示はWine組み込みのFPSカウンターをWINEDEBUG=fpsで有効にしてosd_catで画面上に表示しました。

FF14の実行

特に設定等は必要ありません。

これまでと同じ方法でランチャーから起動するとパフォーマンスが向上しているはずです。

GameModeを使ったゲームプレイ時のパフォーマンス改善

GameModeはゲーム実行中だけOSの設定を一時的に変更してくれるライブラリ兼デーモンです。

私はこれを使用してFF14実行中だけCPUのクロックを引き上げることで、たまーにあったカクつきがなくなりました。

GameModeのインストール

AURからインストールします。

yay -S gamemode lib32-gamemode

GameModeの有効化

デーモンを有効にします。

systemctl --user enable gamemoded

ついでにデーモンを起動しておきます。

systemctl --user start gamemoded

GameModeを使用してFF14を起動

以下のコマンドを実行します。

gamemoderun wine "$HOME/.ffxiv/drive_c/Program Files (x86)/SquareEnix/FINAL FANTASY XIV - A Realm Reborn/boot/ffxivboot.exe"

特に設定せずともいい感じに使えますが、細かく設定したい方は本家に設定ファイルのサンプルがあるのでそれを$HOME/.config/に配置していじるといいと思います。

FF14起動スクリプトの作成

毎回WINEPREFIX等を設定するのは面倒なので起動用のスクリプトを作っておきます。ついでに紹介しきれなかった細かい環境変数の設定も含めておきます。環境変数の詳細についてはこちらを参照してください。

詳細は省きますが、キャッシュ等も有効にするのでキャッシュを保存するディレクトリを作成しておきます。

mkdir $HOME/.ffxiv/dxvk
mkdir $HOME/.ffxiv/glcache

そして以下のスクリプトffxiv.sh等として保存します。

#!/bin/sh

export WINEARCH=win64
export WINEPREFIX=$HOME/.ffxiv
export WINEDEBUG=-all

export DXVK_LOG_LEVEL=error
export DXVK_LOG_PATH=$HOME/.ffxiv/dxvk
export DXVK_STATE_CACHE_PATH=$HOME/.ffxiv/dxvk

# For NVIDIA GPU optimization
export __GL_SHADER_DISK_CACHE=1
export __GL_SHADER_DISK_CACHE_PATH=$HOME/.ffxiv/glcache
export __GL_THREADED_OPTIMIZATIONS=1

# For AMD GPU optimization
#export mesa_glthread=true

gamemoderun wine "$HOME/.ffxiv/drive_c/Program Files (x86)/SquareEnix/FINAL FANTASY XIV - A Realm Reborn/boot/ffxivboot.exe" >/dev/null 2>&1

スクリプトに実行権限を付与しておけばスクリプトを実行するだけでFF14が起動できます。

chmod +x ffxiv.sh

終わりに

Arch Linux上でFF14を動かしてDirectX 11/DXVK/Vulkanを有効にするまではけっこう大変でした。ですが、一度環境ができてしまえば快適にプレイできていて非常に満足しています。

以下に参考にさせていただいたサイト等を紹介します。

Discord内でマルチ募集を完結させる方法

みなさんグラブル頑張ってますか?グラブルと言えばマルチバトルですね。

というわけで今回はDiscord内でグラブルのマルチ募集(主に6人マルチ)を完結させる方法を紹介します。真面目な内容です。


グラブルの団チャは控えめに言ってク○なので、外部のコミュニケーションツールとしてDiscordやツイッターのDMグループ、lobi、天鳳などを使っている団も多いかと思います。当団ではDiscord(と天鳳)を主に使用しています。

Discordを使用していても、マルチの連戦募集にはスプシ等を併用している団もあるかと思います。今回は、当団で使用しているヘチマさんが考えられたDiscord内でマルチ募集を完結させる方法を紹介したいと思います。(ヘチマさんにはブログで紹介する許可はいただきました。この場を借りてお礼申し上げますm(__)m)

団内で浸透するまで少し慣れが必要かもしれませんが、慣れると本当に便利なのでDiscordを使っている団の団長さんはぜひ参考にしてみてください。それぞれの団事情等もありますので、運用する上では適宜アレンジを加えるといいと思います。もちろんこれが最適とは限らないので、もし他にいい感じの方法で運用してる団がありましたらぜひ紹介していただけるとうれしいです。

大まかな流れ

  • 募集用の recruit チャンネルと参加表明用の room1, room2, ...等のチャンネルを作成
  • recruit チャンネルで参加表明用のチャンネルと時間を指定してマルチ募集
    • 例: #room1 アルバハHL6連 (〇月〇日)23時から
  • room1 で参加表明しジョブ・トール役等を宣言
    • 例: 光スパ 70ト
  • マルチが終了したら使用した部屋に終了したことをわかりやすく記入
    • 例: ===== マルチバトルは終了しました =====
    • 後述しますが、毎回書くのは面倒なのでBOTを導入すると便利です

実際のやり方

事前準備

募集用のチャンネル一つと参加表明用のチャンネル複数を作成します。他のチャンネルと見分けやすくするためにカテゴリーを分けると便利です。チャンネル名はわかりやすければなんでもよいのですが、参加表明用のチャンネルはDiscordの予測入力がしやすくなるので英数字にすることをおすすめします。

当団では現在以下のように参加表明用のチャンネルを4つ作って運用しています。

f:id:MiyacoPL:20190224115819p:plain

以下、募集用のチャンネルを recruit チャンネル、参加表明用のチャンネルを room○ として説明します。

募集のかけ方

まず、空いている参加表明用のチャンネルを確認します。ここでは room1 が空いていたとします。

例えば23時からアルバハHL連戦を募集したい場合、recruit チャンネルで以下のように募集をかけます。

#room1 アルバハHL6連 (〇月〇日)23時から

Discordでは #チャンネル名 と入力することでそのチャンネルへのリンクになり、参加表明する人がそこをクリックするだけで移動できるようになるので、# を付けてチャンネルを指定します。#r まで入力すれば候補が勝手に表示されるはずなのでその中から選ぶと楽です。

実際の募集の様子は以下のようになっています。

f:id:MiyacoPL:20190224120405p:plain

参加表明の仕方

参加したいマルチの #room1 等をクリックし、そのチャンネルへ移動して参加表明を書き込みます。ジョブ等の相談が必要なマルチでは同じチャンネル内で参加者同士で相談します。

このあたりはわかればいいので適宜いい感じにやってます。

以下はアルバハ6連の参加表明の様子です。

f:id:MiyacoPL:20190224120730p:plain

みんな適当過ぎですが、順に70ト、土パで参加、土パで参加、という意味です……

マルチ開始

時間になったらグラブル側で部屋を建て、参加表明用のチャンネルに部屋IDを記入します。これは誰が行っても大丈夫ですが、当団では原則募集主が部屋建てをすることにしています。

部屋に参加者が集まったら普通にマルチバトルするだけです。

終了後

マルチが終了したら、参加表明用の部屋にマルチが終了したことをわかりやすく記入しておきます。たとえば ===== マルチバトルは終了しました ===== など定型文を決めておくといいでしょう。

この部分はコピペしたりするのが面倒なので、次項のBOTを導入して代わりにやってもらうと便利です。

BOTの導入や設定は少し面倒なので、まず手入力で運用してみて継続的にこの方法を使うことになったらBOTの導入を検討してもいいかもしれません。

以下のBOTを導入することで ?end と入力するだけで前述のような定型文を出力することができるようになります。

BOTの導入と設定

DynoというBOTを導入すると ?end と入力するだけで以下のように定型文を記入してくれます。

f:id:MiyacoPL:20190224120946p:plain

他にも似たようなことのできるBOTはあるかもしれませんが、当団ではこのBOTを使用しているので今回はDyno BOTの使い方を紹介ます。Dynoは非常に高機能なBOTですが、今回は必要最低限の機能だけを使えるようにするだけの説明にとどめます。

以下の作業を行うにはDiscordのサーバーの管理者である必要があります。(試していませんが、おそらく管理者権限があればできると思います。)

サーバーの管理者権限が必要な作業なので、以下の作業は自己責任でお願いします

Dyno BOTの導入

まずサーバーにBOTを招待します。

https://dyno.gg/ を開き、LOGIN WITH DISCORD というボタンをクリックします。

すると次のような認証画面が出てくるので、認証 をクリックします。

f:id:MiyacoPL:20190224121223p:plain

ログインすると左上に ADD TO SERVER というボタンがあるのでクリックします。「Botを追加します」の下のサーバー選択からBOTを導入したいサーバーを選択して再度認証します。いろいろ権限が要求されますがとりあえずそのままで大丈夫です。

f:id:MiyacoPL:20190224121251p:plain

この時もし導入したいサーバー名がリストに表示されない場合はサーバーの管理者権限がないのだと思います。なんとかしてください。

ここまでできれば選択したサーバーにDynoが入ってくるはずです。

Discordのサーバー上で ?ping と入力してみてください。BOTが応答するはずです。

f:id:MiyacoPL:20190224121319p:plain

Dyno BOTの設定

BOTが導入できたら、定型文を出力するコマンドの設定を行います。

右上の MANAGE SERVERS というボタンをクリックし、先程BOTを導入したサーバーを選択します。

すると設定画面になるので、念のため使わない機能をとりあえず全部オフにしておきます。(しなくても定型文の出力はできるのであくまで念の為です。理解している方はこの作業は不要です。)

左のメニューから Modules をクリックし、今回使用する Custom Commands 以外の緑になっているモジュールをすべてクリックして無効にします。以下のような感じになるはずです。

f:id:MiyacoPL:20190224121415p:plain

次に、左のメニューから Custom Commands を選択し、Add Command ボタンをクリックします。

コマンドを追加する画面になるので、Command のところで ? の横に end と入力し、Response のところに ===== マルチバトルは終了しました ===== 等の出力したい定型文を入力します。

おまけですが、入力したコマンド(今回は ?end)を削除してほしい場合は Show Options をクリックして Delete Command にチェックを入れます。消さずに残したい場合はこの設定は不要です。

全て入力すると以下のようになるので、Add Command を押して完了です。

f:id:MiyacoPL:20190224121451p:plain

実際にDiscordのサーバーで ?end と入力してみてください。以下のようにBOTのメッセージが表示されればOKです。

f:id:MiyacoPL:20190224121524p:plain

終わりに

Discord内でマルチ募集を完結させる方法を紹介しました。

主に6人マルチで使っている方法ですが、アーカーシャ実装時は「参加表明は番号」「入室点呼にリアクションを付ける」等の運用で18連戦にも使っていました。(30連は団内では完結できないのでスプシを使っています)。

BOTの導入と設定は面倒ですが、導入は必須ではありませんし一度設定してしまえばずっと快適に使えるのでぜひ試してみて下さい!

寝相の話

一部界隈では有名ですが、私は寝相が悪いです。

なんと今日は毛布が180度回転してさらに表裏逆になっていました。

ここまでひどいのはさすがに初めてで、寝ている間に何が起きたのかとても不思議です。

ぐるぐるストッキング(ぐるスト(ストはカタカナ))という騎空団について

はじめまして、グラブルのぐるぐるストッキング(ぐるスト(ストはカタカナ))という騎空団で団長をしているみやこです。

最近、古戦場での団の編成や立ち回りなどをブログに書いてくださる団長さんがいらっしゃるので、私も何か書いておこうとブログを立ち上げました。最初にお断りしておきますが、参考になるような編成や動きはうちの団にはありませんし私自身グラブル下手なので紹介できません。なので今回は「うちはこんな感じで運営・活動してます〜」ということを団長目線でふわっと紹介したいと思います。

この記事を書いた理由ですが、

  • 団に興味を持ってもらって応募してくれる人を増やしたい
  • 今後募集要項が更新できないので後々代用したい
  • 募集要項だけでは伝わらない部分も伝えて新規で入る方のミスマッチを減らしたい
  • 今回募集がなくて暇だった

といったところです。

もし募集時にここを読んでいる方がいたら、長文なのでとりあえずDMを送ってから読むことをおすすめします(すぐ埋まるので)。

※ 2019年4月23日追記: 光古戦場と風古戦場の結果を追記しました。

団について

いわゆる全日10億フリーラン(走るのは自由/止まるのは自由とは言ってない)団です。

団名の由来は「土レのストッキングの模様がぐるぐるしてるから」です。

募集要項はちょっと古いですがこんな感じです。(募集画像を作っていただいた方が退団してしまったので今後更新されない可能性が高いです。誰か新しい募集画像を作ってくれるまでツイッターで140文字で募集します。)

f:id:MiyacoPL:20190130133711j:plain

平均ランクは223になりました。

最近の古戦場でも相変わらすマッチングには恵まれないのですが、団員さんたちのがんばりのおかげで以下のようにいい感じの成績を収めることができています。

  • 2018年11月火有利: 総合 6位 全勝
  • 2019年 1月闇有利: 総合12位 全勝
  • 2019年 2月光有利: 総合16位 全勝
  • 2019年 4月風有利: 総合10位 3勝

火有利古戦場では最終日に激戦になり団100億達成しました。

風有利古戦場でも最終日に激戦になり、撤退してしまいましたが夜20時前に団100億達成しました。

マッチングについてはこひなっとうさんのグラブルメモ帳のマッチングまとめなどをご参照ください(まとめていただいて感謝ですm(__)m)。

団を立ち上げた経緯

団を立ち上げたことがある方は少ないので、気になる方もいるかと思い簡単に団発足の経緯を。

私は以前所属していた団がとても好きだったのですが、解散してしまったので団を探すことになりました。似たような団がよかったのですが、見つからなかった(探すのが面倒になった)ため、似たような条件の団を立ち上げました。正式に団を立ち上げたのが2017年の10月1日でした。偶然ですが、直後に団栄誉が実装されたり20人以上での団サポ4つめ発動が実装されたりして、今思えば団を立ち上げるには追い風の環境だった気がします。

当時はまだ古戦場のマッチングがいわゆる貢献度マッチで、かつ10億報酬もなかったため低空団が多い時代でした。私は好きに走りたかったのでフリーランにしましたが、フリーランでも「全勝は無理でも1敗くらいでなんとかなるでしょ」という感じで事故ったらお祭りくらいの軽い気持ちでした。しかし現実は甘くありませんでした。マッチング方式変更の前も後も毎回事故り続けて今に至ります。

最終日お祭り団はわらってる場合じゃないんですよ……

立ち上げたばかりのよくわからない団に入っていただいた初期の団員さんには本当に感謝しています。

古戦場について

団について一番気になるのが古戦場でどのように戦っているかだと思うので詳しく書いておきます。

募集要項に書いてあることが少ないのでもう少し詳しくいろいろと紹介します。

ノルマ

一応3万位(昔は2万位)目指す方ということで募集してますが、貢献度ノルマ・肉ノルマ一切ありません。理由はノルマの設定・提出・確認が面倒だからです。団員さんのお肉は無限にあるものと思って指示出してます。お肉たくさん集めておいてください。

10億は幸いノルマ設定なくても朝活とヘルの練習とかで勝手に到達してます。団長としては楽できて団員さんには感謝しています。

個人順位もノルマではないので3万位漏れても解雇ではなく「報酬少なくなってかわいそう・・・」と同情されるくらいです。(とはいえさすがにあまりにもあんまりだとお話させていただくことになります)

肉集め

人が多い時間には自発・救援を織り交ぜてやってます。

私から「この時間にみんなで肉集めしまーす」とか呼びかけることは面倒なのでありませんが、けっこう団員さんが呼びかけてくれたりしていい感じに肉集めができています。感謝です。時間の合わない方は申し訳ありません……

貢献度調整(低空指示)

私が気が向いた時に走りたいのと、いい感じの貢献度を考えたり指示出したりするのが面倒なので低空指示はありません。勝負がついたら好きに走ったり休んだりしてもらってます。一応撤退宣言をいただいても相手団の方が動きやすいようにある程度差をつけるまでちょっと走ってもらうようにしています。

スケジュール管理

面倒なので一切していません。スケジュール提出なしです。

けっこう「この日朝無理です」とか連絡してくださる団員さんいますが、私は「了解しました〜」って言ってそのまま忘れてることがほとんどなのでわざわざ報告しなくても大丈夫です。

役職

副団長・攻撃隊長・防衛隊長の役職は、固定で各1人決めていて他は古戦場毎にランダムで割り振っています(傭兵さんは除外)。

スケジュール確認して割り振るのは面倒なので、とりあえず枠全部割り振っておけば誰かは発動できるだろうという感じです。ランダムにするのはスプシの「範囲をランダム化」機能を使っています。

朝活

募集要項にあるとおり必須ではありませんが、可能な方はできる限り参加していただくという形にしています。この形にした理由は私が寝坊しても怒られたくなかったからです。

そんな感じなので、寝坊した時に「すみません夜勤でした」とか言ってごまかす人がたまにいます。事前にスケジュール把握してないので信じそうになります。ファッション夜勤(フミヤさん命名)やめてください。

ペア狩り

私が基本的に面倒くさがって団としての指示は極力減らしたい人なので、ペア狩り含め連携はほとんどとれていません。

95ヘルはソロでやってもらって、100からペアでやりたい人は各自自分で時間の合うペアを見つけてやってもらってます。スケジュール管理や編成管理は一切してないので、ペアはDiscordで呼びかけて自己責任でいい感じの人を見つけてもらうことになります。たまにペアが見つけられずに余ってしまう人がいます。かわいそうだなって思って見てます。

ペアもソロもしない人はいい感じに団救援流していい感じに入ってもらってます。ソロでやりたい人は100もソロでやっているようです。私はペア狩り疲れるので団救援適当にやってます。私が自発した時になかなか救援来てもらえないと寂しいので団員さんは私の救援見つけたら積極的に入ってください。

編成共有

Discordでその時いる人でだらだら話し合いはしますが、まとめたりすることはあまりないのでなんか雰囲気でいい感じにやってもらってます。一応編成共有用のチャンネルもありますが面倒なのかあまりまとめてくれる人はいません(まとめてくれる人もいてめっちゃ感謝してます)。私は面倒なのとグラブル下手なのでまとめません。

速度出なくて困ってる人は相談に乗ってもらえます。闇有利古戦場は渾身背水のハイブリッドハデスで走ってたりサブヴァイトの短剣パで走ってたりいろいろな編成の人がいたので編成はあまり参考にならないかもしれません。立ち回りは相談するとけっこういい感じのアドバイスもらえます。

ちなみに前回の闇有利古戦場では私はハデスでやっていたのですが、傭兵のみさきさんのハデスに95のタイム負けたのでハデス引退して2日目終了後に泣きながらマグナ編成作りました。

傭兵で来ていただいたみさきさんの感想にここで書いたことがよくまとめられています。

みさきさんこんな団に遊びに来てたくさん走っていただいて本当にありがとうございました。

(でもVCで突然変な音流されてめっちゃ笑って手が止まるのちょっと困りました)

普段の活動について

古戦場中以外は基本的に自由です。特に団長から指示とか装備ノルマとか言われることはありません。別ゲーしてても大丈夫です。最近は麻雀が流行ってます。

交流・連絡手段

連絡手段はDiscordのみでゲーム内のチャットは一切使っていません。

Discordには過去に在籍していた団員さんも残っていただいていて、それなりの人数のサーバーになっています。現団員さんには役職を付けて現団員しか閲覧できないチャンネルを用意し、外に漏れるとまずい情報(基本的にない)はそこで話しています。

連戦とか

アルバハHL連戦が夜に2部屋ほど立ってる日が多いです。アーカーシャやマリス実装時はそれらの連戦もけっこう立ってました。

連戦募集はDiscordの連戦募集チャンネルで募集する形を取っています。以前加入してくださった団員さんに教えていただいた方式なのですが、「募集用のチャンネル」で募集をかけて、「参加表明用のチャンネル(今は4部屋)」で参加表明したりジョブ宣言したりする形にしています。募集するときは「#room1 アルバハHL6連 ○時から」のような形で募集をかけて#room1で参加表明するような形です。18連までの連戦はこれでやってます(30連は他団さんと合同だったりするのでスプシ使ってます(担当は副団長))。とても便利で教えていただいて感謝しています。

この方式を教えてもらう前は(副団長に作らせた)スプシを使ったりもしていたのですが、この方式になってからスプシは使われなくなりました。そのスプシはいつのまにかオフ会参加者募集用に改造されていました。

ちなみに私は面倒なので自分から連戦募集はしません。団員さんは私が「〇〇連戦したいな〜」って言ってたら募集立ててください。

あと私はアルバハ嫌いなので基本参加してません。いつも銀天足りてないので団員さんからの上納はいつでもウェルカムです。グランデとか残り10%くらいのソロ失敗アルバハお待ちしてます。

装備ノルマとか

確認とか面倒なので特に装備ノルマとかありません。マグナ2装備とか頑張って集めて本番で後悔しないように各自頑張ってもらってます。私もがんばりますね……

団の人事

団長してる人は気になるポイントかと思うので書いておきます。

団員募集

団員さんを募集する方法としては基本的に

  1. 団員募集をツイッター掲示板やwikiで投げる
  2. 団活中の人に声をかけに行く

の二通りで、多くの団長さんは両方していることかと思います。

私も以前は両方していたのですが、最近は募集人数も少なくすぐ埋まるようになってきたので1番だけです。理由はこっちの方が楽だからです。幸い最近は古戦場のすぐ後くらいなら募集かけて1時間〜短い時で15分くらいで終わってます。すぐ募集〆るので入りたい方は募集を見かけたらとりあえず私にDMしおくといいと思います。

今でこそすぐ埋まりますが、団を立ち上げた初期はあちこちで募集したり声かけたりしていました。ミムメドンというところでも募集してそこの方にけっこう入っていただいたので比較的スムーズに団が立ち上げられたのかな、と思っています。逆にその弊害として、ちょっとそこでの身内ネタのようなものが団内でも出てしまう時があるのが最近の悩みでもあります。一応新規で入る方にはその旨確認して了承していただいています。

傭兵募集

最近傭兵に出る人がちらほらいるのですが、傭兵限定の募集は基本的に面倒です。リアル事情で古戦場動けないとかはむしろ報酬少なくなってしまって申し訳ありません的な感じで考慮するのですが、遊びに行きたいとかの理由であまり頻繁なようだと私のめんどくさいゲージが貯まって帰る席の用意が面倒になったりします。

団員募集において傭兵さん限定の募集はとても面倒です

※「この属性得意だし時間も取れるからめっちゃ走りたい!」的な傭兵希望での応募は大歓迎です。

団員さんの選考

募集をかけると応募していただけます。前述したように募集してから〆るまでの時間が短いので察していただけるかと思いますが、基本的に選抜みたいなことは面倒なのであまりしません。ちょっとお話させていただいて大丈夫そうなら採用です。早いもの勝ちというわけではないのですが、募集してると人数がよくわからなくなってくるのでさっさと終わらせたいという感じです。

一応直近3回くらいの古戦場の個ラン成績は確認しているので、応募してくださる方は事前に個ラン成績を用意しておくとスムーズです。最近だと時速も教えていただけることが多いのですが、正直難しくてよくわからないので大きい数字だとすごいくらいにしか思ってません。困ったら副団長に相談してます。

団員さんの解雇

ネガティブな話ですが、多くの団長さんが迷われたりすると思います。

うちの場合みなさんがんばってくれるので基本的に解雇はほとんどありませんが、個ランの順位を確認してあまり稼働がとれていなそうだったり接戦時の動きがあまり協力的でないようだとちょっとお話させていただく場合があります。

解雇をする時の気持ちですが、私はここまで書いてきたようにけっこう適当に団運営してて、団員さんには恵まれていますがそんなすごいいい団とは思っていないので、うち抜けても他によくてしっかりした団たくさんあるし新天地で頑張ってくださいくらいの軽い気持ちで解雇します。たぶん他の団長さんはもっと悩んでるんだろうなーって思ってます。

同じ理由で、退団される方も理由によりますがあまり引き止めません(一部除く)。ドライに感じられるかもしれませんが、残念だけど他にいい団いっぱいあるし仕方ないなーって納得してます。

NGな団員さん

利用規約に違反するようなツール類の使用は厳禁です。絶対に許しません。フェアにやりましょう!

困った団員さん

ツイッター等で相手団を煽るような言動をされるととても困ります。どちらも不快な気分になってしまいます。気持ちよくゲームをするためにも、団員のみなさんは相手のことも考えた言動をお願いします。

あと、古戦場中に速度出ないからってテンション下がってツイッターとかのアカウント消して失踪するのはやめましょう。さすがに心配になります。幸いDiscordのアカウントまでは消さなかったので笑い話で終わりましたが。

まとめ

ぐるストの内幕、いかがだったでしょうか。外から見ているよりもゆるい感じという感想を持たれた方が多いのではないかと思いますが、全て事実です。

こんな感じで私のめんどくさい精神だけで運営されていますが、なぜかうまく行っているのは本当に団員のみなさんのおかげです。とても感謝しています(本当です)(いつも銀天ありがとうございます)。

これを読んでぐるストに興味を持っていただいた方は、いつか募集するかもしれないのでその時はぜひご応募ください。