2018年1月15日月曜日

ユドナリウム導入記録

 セイヴァーズ! で近頃噂のユドナリウムを導入してみた。
 まあ、そもそもセイヴァーズ! では戦闘処理を一次元移動で処理するのが中心なので、設置してもまともに活用された例はあまりないのだが、それはそれ。
 自分で研究する過程で、メモした特徴や使い方を、逐次ブログにアップするなどしてみよう。

■ユドナリウムの特徴

 オンラインテーブルゲームのセッション向けツール。ボードゲームでの利用も想定しているとのこと。
 3Dマップを使用しており、コマを立体的に使用できる。マップは複数を保存し、随時設定で切替が可能。
 キャラクターのコマにかなり柔軟な設定項目を用意できる。チェックボックス型のリソースはないようだ。
 チャットタブはメインとサブのみ。チャットは発言とともに発言者のアイコンがそのまま表示される。文字色の変更機能は今のところなし。
 ブラウザ間通信を使用しており、サーバーに負荷をかけない。このため、ユーザーの回線がある程度太ければ、かなり快適に運用できる。
 ログの出力はゲームセッションの保存の際に、[chat.xml]ファイルに格納されている。現在はそのままでの閲覧は困難だが、有志によるログ整形ツールが提供されている。
 BGM共有機能あり。サーバーやセーブファイルにこの音源は保存されないため、機能的に個人利用の範疇を逸脱することはない。(はず。少なくとも投稿者以外が保存する手段はキャッシュを漁るなどしない限りなさそう)
 トランプカード機能あり。

■使用条件

 構成ファイルはGitHubで無償で配布されている。(https://github.com/TK11235/udonarium/)

 おおむね「Google Chrome以外は使えない」と思った方が良さそうだ。
 Firefoxなどではファイルのドロップ機能などが対応しないなどの不具合が生じることがわかっているし、そもそもMicrosoft Edgeなどは起動すらしない模様。
 WindowsのGoogle Chromeが基準となっていると思うが、スマホのChromeでは不安定だというし、MacOSのChromeではどの程度動くのかは未確認。

■設置方法
 とりあえずいろいろ書いてみようと思ったが、くまかば氏の「【非公式】ユドナリウムの導入(インストール)手順」が非常に丁寧なので、そちらを参照するのが良い。
 https://udo.museru.com/udoinst.html

 ハマリポイントとしては、以下の2パターン。

1:設置したURLにアクセスしても、「Loading...」のまま進まない

 A1:開発バージョンをダウンロードしている
 やたらファイル数が多かったなら、これ。リリース版をダウンロードし直そう。Google検索だとGithubに繋がるので、
中途半端に知識があると右上のdownloadから開発版をまとめてダウンロードしてしまう。
 正しくは、ページ中程の「リリース版ファイル」(https://github.com/TK11235/udonarium/releases/latest)をクリックしてダウンロードする必要がある。
 やけに具体的だって? 私がやったんだよ……(笑)

 A2:index.htmlのbaseタグ内の値を、実際に配置しているURLに変更する。
 たとえばセイヴァーズ!!の場合は[ http://dohx.sakura.ne.jp/udonarium/ ]に設置しているので、index.htmlの<head>タグ内にある<base>要素を[ <base href="./"> ]から[ <base href="/udonarium/"> ]に変更する必要がある。

 A3:使用ブラウザが対応外
 基本的にChrome以外は対応していない。スマホのChromeでも今のところダメ。
 一見動いているようでも、ファイルのアップロードが動かなかったりする。(FireFoxで確認)

2:PeerIDが取得できない(Peer:???と表示される)

 A1:APIキーを書き込んでいない
 [ assets/config.yaml ]ファイルにAPIキーを正しく書き込んだ上で、アップロードし直す。このファイルだけでよい。

 A2:SkyWayに登録するドメインが間違っている
 設置するドメインをきちんと登録しないといけない。確認してみよう。
 こちらは設置場所が[  http://dohx.sakura.ne.jp/udonarium/ ]でも、[ dohx.sakura.ne.jp ]だけでよい。

 A3:SkyWayへのアプリケーション追加時に、[ APIキー認証を利用する ]にチェックを入れてしまっている
 これもなまじ中途半端に知識があるとやってしまうが、ユドナリウムはAPIキーは参照してもキー認証はしていないようで、ここにチェックを入れていると、PeerIDを取得することができない。
 SkyWayのダッシュボードにログインして、アプリケーションの設定を確認して、チェックを確認して保存することで修正可能。
 やけに具体的だって? 私が(

■テーブル画面

 一般的にマップなどと呼ばれるものだ。卓そのものをイメージしているため、テーブルという名前になっているのだろう。ぐりぐり動かしてみると、なるほどそんなイメージになる。
 左クリックからドラッグで水平移動、右クリックで回転、ホイールで拡大縮小する。
 テーブルには[画像]メニューでアップロードした画像を表示することができる。
 グリッド表示も可能で、コマのドラッグ中に表示される(常時表示も可能)。グリッドには1/2グリッド単位でコマが張り付くため、グリッドの境界線にキャラクターを配置して「扉」などを表現するのも簡単。
 グリッドにはヘクス状のレイアウトで使用する機能もあり、うまくやればバトルテックやドラゴンアームズなども遊べるだろうか。(向きの管理方法を工夫する必要があるが、向きマーカーを作るなどすればいけると思う)
 マップマスク機能あり。簡単にマップマスクの画像を変更できるため、サマリーやよく使う表を画像にまとめておいて、マップマスクとして使用することができるだろう。単体での保存と参照も可能なので、キャラクター作成時のライフパスや計算表、ゲーム中の特技カードを画像にしておいて、使用する度に表示するという使い方も可能だろうか。
 面白い機能として、「地形」をつくることができる。3Dマップ上で高さを表現するもので、コマを上に載せることが可能。壁の透過も可能なので、ちょっと操作にコツがあるが、高地の上と下にキャラクターをそれぞれ設置するなどもできる。これらのテクスチャに画像を指定することもでき、その仕上がったものを保存しておくこともできる。

■キャラクター(2018/01/15時点)

 キャラクターをコマとして作成することができる。
 キャラクターはドラッグ&ドロップで移動させることができる。また、墓場や個人用の倉庫、共有の倉庫(それぞれインベントリという)に格納することができる。

●キャラクターの作成

 キャラクターの作成をするには、メニューから「キャラ作成」をクリックするか、テーブルを右クリックして、開かれたメニューから「キャラクターを作成」を選択することで行える。
 基本的に作成したキャラクターは所有者のない状態で、テーブル上に作成される。作成先を変更したい場合、右上の[テーブル]と表示されているリストから、[個人インベントリ][共有インベントリ][墓場]などを選択する。他のプレイヤーに見えないようにキャラクターを追加したい場合には、[個人インベントリ]を選択するといいだろう。

 キャラクターには、キャラクターシート情報を記録することができる。
 結構多彩な情報を記載可能だが、操作性にちょっとクセがあるので注意。

●キャラクターシートの項目
 キャラクターシートの項目には、以下の三種類がある。
 通常は、タグとデータが一対で記録できる。変更しないが、参照頻度の高い、能力値などを記録しておくのに良い。
 リソースはスライドバーで値を変更できる、最大値と現在値とタグを入力可能な項目。HPやMPなどに使用すると良さそう。
 ノートは編集画面に入らなくても値を変更できる入力欄。メモなどに使えそう。

●項目の追加と削除

 項目の追加と削除移動を行うことができる。
 項目にはそれぞれ子項目を追加することができる。これは相当な深さまで階層を作ることが可能だが、参照性の問題からあまり数を増やさない方がいい。
 各項目の上下矢印をクリックすると、親項目なら親項目の中で移動を、子項目なら子項目の範囲で一つ場所が移動する。
 
 親項目を追加する場合は、『追加したい親項目下の(+)ではなく、その更に親項目下の(+)』をクリックする。もしそれが最上位親項目であった場合、[新しい項目を追加]ボタンを押す。
 親項目を削除したい時には、『削除したい親項目下の(-)』をクリックする。
 子項目を削除するときは『削除したい子項目の(-)』をクリックする。

 データの記録は、「編集切り替え」でキャラクターシート画面を通常モードに切り替えた際に行われている模様。

●項目の参照

 項目に設定できる「タグ」は、チャットパレットで変数の引数として指定することができる。たとえば「行動値={行動値}」のような形だ。
 もしもタグが重複した場合、最初に見つかった項目を参照するようになっている。

●保存と呼出

 メニューの「保存」は、編集したデータを保存するものではなく、「ローカルPCに圧縮したキャラクターシート関連データを保存する」。これはユドナリウムのインターフェイス全体のコンセプトのようだ。
 ここで作られる「xml_[キャラクターシート名].zip」ファイルを呼び出すには、画面にそのままドラッグ&ドロップする。すると、そのキャラクターを画面に複製することができる。
 GMは予めゲームに合わせたフォーマットのコマを作成し、ドラッグ&ドロップでユドナリウム上にコピーしたのち、画像や名前を変更して使用したり、プレイヤーにゲームに合わせたフォーマット済みzipファイルを配布するといいかもしれない。

●画像の変更

 キャラクターの画像は、画像メニューから表示されるウィンドウの、指示された領域に画像ファイルをドラッグ&ドロップする。容量制限があるので注意。
 また、キャラクター画像は原則、画像の横幅を均一にしておいたほうがよい。おそらく「横幅をキャラクターサイズに合わせて、元画像の横幅から縮小後の縦幅を計算して画像を縮小する」ようにできているため、適当な画像を貼り付けると、味方キャラクターでも不思議な背丈の変動が発生する。事前に「今日のキャラ画像は128x256でよろしく」などと仕様を統一すると良いかも。
 なお、コマとしてキャラクターに表示される画像は、横幅50に自動的に縮小される模様。

■チャットパレット

 最近追加されたばかりの機能。よく使うダイスやワードのテンプレートを保存しておき、必要に応じて呼び出すことができる。
 キャラクターごとに設定可能で、今のところチャットパレットだけを保存・呼出を行う機能はない。保存するときはキャラクターのコマごと保存することになる。
 文法はどどんとふで使われる「[振るダイス内容]+{タグ名}+5」「2d+{命中値}>=15 命中判定」のような形となる。
 大きな違いは、キャラクターシート項目から、タグを引数に値を取得することにある。

■音楽

 音楽を共有することができる。セーブファイルには保存されないので、著作権的には多分個人利用の範疇になるが、あんまり調子に乗って変なことをしないようにしよう。例えば、変換した音楽ファイルを配布したり。これは完全に黒である。
 音楽ファイルは、基本的にはWAV形式とMP3形式でないと使用できないようだ。WAVだと使うにしてもファイルが巨大になりすぎるので効果音向け、音楽の場合MP4やAACのファイルは、一度MP3に変換する必要がある。変換はだいたいDRM保護がかかっていたらアウトなので、iTMSで購入した古い曲などはダメ。(できる方法があるって? 可能であっても、購入時の契約上、やると契約違反になるのです)
 変換の際には、ビットレートを落として容量を小さくした方がよい。音楽ファイルは巨大なため、あまり巨大なものは他ユーザーの負荷になる。
 仮にテザリングやMVNOを使用した端末が参加した場合、ファイルを共有する過程でギガが枯渇、そうでなくとも通信のボトルネックになる可能性もあるかもしれない。(未検証)


■インベントリ

 キャラクターの倉庫。誰でも触れるテーブル上のキャラクター、誰もが参照できる共有(common)インベントリ、そのプレイヤーだけが操作できる固有(PeerID)インベントリ、廃棄されたキャラクターが格納される墓場(graveyard)の四種類がある。
 それぞれの倉庫に入っているキャラクターのリソースを操作できる他、キャラクターの格納場所をその格納インベントリ名を選んで移動させたり、削除したりすることができる。
 詳細(キャラクターシート)の参照やコピーを行うこともできる。墓場に格納されているキャラクターは、削除を行うこともできる。
 
 なお、特定のプレイヤーの個人インベントリに格納されていたキャラクターは、そのままそのプレイヤーの接続が切れると、共有インベントリ(common)に自動的に移動するようだ。GMをするプレイヤーが回線落ちした場合など、commonにこっそり大量のキャラクターがぶちまけられることになるかもしれないが、見なかった事にするのが良いだろう。


 とまあ、ざっと自分で使うために使い方を学習してみたが、なかなか将来が楽しみなツールだと思う。まだまだどどんとふなどの既存で作り込まれたものに及ばないところも多いが、明らかに勝っているところもある(設置の楽さ、負荷の軽さ、共有の落差は大きい。あと3Dであるために、見た目以上に画面を広く使える)。
 今後とも開発を応援しつつ、色々使ってみたいところである。