2004年08月号

可搬式電子計算機利用のスゝメ

特集: ダンジョンズ&ドラゴンズであれこれ
筆者: 死せる詩人

 D&Dセッションで、ノートパソコンを活用する方法を紹介します。

目次

  1. はじめに
  2. 環境設定
  3. キャラクタシート
  4. ルールブック、つまりドキュメント
  5. ドキュメントの検索
  6. 最後はLANで
  7. 註釈

はじめに

 電子機器の活用法特集と言われて、真っ先に思い付いたのは懐しの「ドラゴンボーン」という電子ダイスの事でした。そして、一気呵成にドラゴンボーンへの 愛を綴った総計5万文字超の原稿を書いたのですが、そう言えば僕はドラゴンボーンなんて噂に聞いただけで使った事はない、という事実に気が付き、原稿を永 久に破棄したのです。

 次に思い付いたのは、Plan9を使ったグリット・コンピューティングによるスケーラブルなD&Dネットワークプレイシステムの構想ですが、いささか内容が高度で(僕を含め)誰も話を理解できないようなので没にしました。

 そこで、まず条件を決めました。即ち、

  1. 僕自身が使用した事のある電子機器を題材に
  2. 僕を含めた多くの人が理解できる話

 にする、という事です。こういった限定条件を付けなければ、今月の特集に向いたネタが他にも64個もあるのに、残念な事です。さて、この極端に厳しい条件を潜り抜け、僕に書く事を許された記事は「ノートパソコンをD&Dセッションで便利に使う方法」となりました。

環境設定

 まず、僕が使用しているノートパソコンとその環境について言及しておきましょう。ノートパソコンはIBM社のThinkPad X23 E3Jです。

 そしてOSRed Hat Linux 9(以後RHL9)です。Windowsとのデュアルブートはしていません。RHL9をピンで使っています。主として使っているソフトウェアは、Emacs 21、Kterm、Mozilla 1.7と言ったところでしょうか。ウィンドウ・マネージャはXfceです。

 世界で最も普及しているOS、Linux。それをセッションで使うノウハウの紹介という訳です(世界という言葉を明確に定義していない事に注意して欲しい。当然この文脈に於ける「世界」とはLinuxコミュニティの事である)。

キャラクタシート

 キャラクタシートというのは、セッション中にプレイヤが最も頻繁にアクセスするデータベースです。大量の数値が東奔西走するD&Dに於いて、これを電子化するメリットは計り知れません(書いている本人もよく分かっていない場合、こういう言い回しが使われる)。

 電子化されたキャラクタシートと一口に言っても色々あります。CGIとしてインターネットを通じて利用できる方法で電子化されていたり、単にプレーンテキストファイルとして作成する場合もあるでしょう。僕の場合、主として2つの要求がありました。つまり、

  1. 各種の面倒な計算を自動で行なってほしい
  2. ユーザがカスタマイズできるようになっていてほしい

という希望です。この条件だと、表計算ソフトで管理するキャラクタシートが最も便利です。僕はJ-staffさんが作成されたキャラクタトレッキングシートVer0.2を利用させて頂いています。これは元々MicrosoftのExcelで作成されたファイルですが、OpenOffic.org Calcでも問題なく動作しました(恐らくMicrosoft Excelは表計算ソフトウェアに於ける90%程度のシェアしか持ち合わせていないので、OpenOffice.orgを使うべきだろう。これは日本でも 万近い利用者がいるのだ。ちなみに私は5桁よりも多い数を数える事ができない。従ってExcelが、どの程度の人数に利用されているか不明である)。

 この他Acrobatで作成された自動計算機能付キャラクタシートも海外のサイトを探せば沢山あります。

 表計算ソフトやAcrobatで作成したファイルは、原則的にバイナリデータです。自動計算機能を付加できるこれらのファイルは、確かに便利ですが検索 性という面ではプレーンテキストに劣る、という事に気を付けて下さい(プレーンテキストのようなバイトストリーム型のデータならばgrepsedawkが簡単に利用できる)。データの検索については後述します。

 キャラクタシートを電子化するメリットは、主として複雑な計算を自動行なえる事にあります。表計算ソフトを上手く使ってキャラクタシートを作成すれば、一時的にConstitutionが上昇した時のHPな ど、戦闘中頻繁に変化する値を簡単に管理できます。例えばGreater Magic Weapon、Divine Favor、Righteous Might、Divine Power、Player、Blessが掛った状態のAttack Bonusは幾つで、その状態でDispel Magic(Target Dispel)を喰らいDivine FavorとRighteous Mightが消えてしまった時のAttack Bonusは幾つか、というような事も簡単に分かるのです。

ルールブック、つまりドキュメント

 キャラクタシートの次に、頻繁に参照するのがルールブックでしょう。幸いD&D3.0E/3.5Eの場合SRDという形で、既にベンダ(OGF)から電子化されたテキストが提供されています。

 提供されているテキストは、PHBDMGMMXPHのほぼ全てを網羅する内容です[1]。またルールブックに次いで重要なデータとなる、エラッタやFAQWotCから逐次提供されています。これらのデータは、全てダウンロードし適切なディレクトリに保存しましょう。

 SRDは全てRTFファイルで、エラッタとFAQPDFファイルで提供されています。これらをLinuxで読む為には、RTFならばOpenOffice.org Writer、PDFXPDFがあれば十分です。僕はターミナルエミュレータからコマンドを打ち込んで、それらのソフトを起動していますが、ファイラがほしいならばROXというソフトがお勧めです。

 またThe Hypertext d20 SRDというサイトではRTFで提供されているSRDを、全て丁寧にHTMLした状態で掲載しています。これは大変便利です。ネットワークに接続できる環境であれば、こちらを使うと良いかもしれません。

 ルールブック等のドキュメントを電子化した場合、検索性の向上が主たるメリットになります(これは次章で説明します)。それ以外にも、可搬性の向上(PHBDMGMMの3冊を合計するとなんと3kg以上もあるのです。他方で軽いノートパソコンならば1kg以下になります)というのも重要です。またFAQはほぼ2ヶ月に1度のペースで更新されます。その度に5ページ乃至10ページくらいはFAQが増えるのですが、これをイチイチ印刷していたのでは面倒だし紙も無駄になってしまいます。電子化すればそんな無駄もありません。

ドキュメントの検索

grepとfind

 Linuxには強力なツールが沢山あります。今回はドキュメント内のデータ検索に役立つ幾つかのツールを紹介しましょう。まずはgrepfindです[2]

 grepは、指定したファイル内を検索し、与えた文字が存在する行を表示します。findはディレクトリ内を走査して、与えたファイル名と一致するファイルを表示します。

 さて僕はセッションに登場する重要なNPCは、それぞれ1つのテキストファイルにデータを纏め、.npcという拡張子で保存しています[3]。それぞれのキャンペーン毎、シナリオ毎にディレクトリを作成してその中にNPCデータのファイルが格納されている状態です。ここで、どれかのNPCに持たせたアイテムを探したいとしましょう。そんな時は次のようなコマンドを打てば良いのです。

# grep -i "item name" `find /home/siseru/dnd/ -name *.npc`

 まずfindNPCデータのファイル(フルパスで)を探し、そのファイル名をgrepに渡します。そしてgrepは渡されたファイル内を検索して、一致したものを標準出力にプリントしてくれるのです。find /home/siseru/dnd/ -name *.npcの結果は以下の通りです。

/home/siseru/dnd/camp/1st/npc/Ainly.npc
/home/siseru/dnd/camp/1st/npc/Banes.npc
/home/siseru/dnd/camp/2nd/npc/Dan.npc
/home/siseru/dnd/camp/3rd/npc/Lorenz.npc
/home/siseru/dnd/camp/3rd/npc/Morth.npc
/home/siseru/dnd/camp/3rd/npc/Ryith.npc
/home/siseru/dnd/camp/3rd/npc/Strange.npc
/home/siseru/dnd/camp/3rd/npc/Zeeman.npc
/home/siseru/dnd/camp/3rd/npc/Aialeen.npc

 これらのファイル(とそのフルパス)がgrepに渡されます。”item name”にgreatswordを入れて、grepを実行してみました。

/home/siseru/dnd/camp/1st/npc/Banes.npc:Possesions : Amulet of Health +2,
 +1 Full Plate, +1 Greatsword, Javelin*3

 この結果からBanes(ベインズ)というNPCが+1 Greatswordを持っている事が分かりました。

Namazu

 Namazuというのはインデックス型の全文検索システムです[4]。……おっと説明が呪文のようで分かりませんか? ではDC23のSpellcraftチェックに――違いました。

 最も簡単な検索アルゴリズムというのは、検索要求が行なわれる度に全データを走査して、その中から条件に一致するものを探す方法です。このアルゴリズムは単純で汎用的ですが、毎回全データを検査するので速度が遅いという欠点があります(grepはこの検索方法ですね)。

 逆に、インデックス型の検索アルゴリズムというは、定期的(1日に1度とか)に全検索データを走査し、その結果から「どのファイルにどんなデータが格納 されているか」という一覧を作成します。この一覧が「インデックス」です。そして検索要求が行なわれると、実データを走査するのではなく、このインデック ス内を走査します。前述した全検索型に比べ速度は格段に上昇するわけです。ただし、インデックスの更新後に作成されたデータは次の更新まで検索できない、 という弱点があります。

 さて「インデックス型の全文検索エンジン」であるNamazuを使うと何が良いのでしょうか。それは、PDFRTFといった、grepでは検索できないフォーマットのファイルを検索できる、という事です。つまり前の章で紹介したSRDFAQ、エラッタの中身を検索できるんですね[5]

 grepと違って、Namazuは最初からインストールされているツールではありません。従って少々面倒なインストール作業を行なう必要があります[6]。その価値は十分にあるツールでしょう。導入方法を紹介したサイトは沢山あるので検索してみて下さい。

 僕はEmacsをフロントエンドにしてNamazuを利用しています。以下は「Balor」という文字列を検索した結果の一部です。

検索結果

参考ヒット数:  [ Balor: 33 ] 

検索式にマッチする 33 個の文書が見つかりました。

1. MonstersD-De.rtf (スコア: 20)
   著者: 不明
   日付: Fri, 09 Jan 2004 16:20:19
       This material is Open Game Content, and is licensed for public
       use under the terms of the Open Game License v1.0a. MONSTERS
       (D-De) DARKMANTLE Small Magical Beast Hit Dice:1d10+1 (6 hp)
       Initiative:+4
/home/siseru/dnd/srd/MonstersD-De.rtf(184,576 bytes)

2. ...

 電子化の際たるメリットは、検索性の向上です。ことD&Dの場合データが豊富でそれに追従する形でFAQやErrataも膨大な数になっています(3.0EのメインFAQは最終的にA4で66ページになりました)。この中から適切な情報を、検索の助け無しに素早く取得するには余程ドキュメントを読み込んでおかなければいけません。長くキャンペーンをやっていれば、NPCのデータ等は埋もれてしまうかもしれませんが、電子化して検索できるならば再利用も簡単です。

最後はLANで

 僕のキャンペーンでセッションを開催すると、なんと参加者の半分以上がノートパソコンを持って来ます。これだけ電子化が進むと、全員でノートパソコンを持ち寄って、DMのマシンをサーバにし(幸い僕のマシンはLinuxでありApacheSambaも入っている)、LANを組む事も可能です。

 その状態ならば、専用の戦闘用CGIプログラムを作成しHTTPで通信すれば、殆どの計算を自動化した状態でネットワーク越しにセッションを行なう事ができるでしょう。

 ……と言いたい所ですが、僕にとって「ダイスを振る」という行為は、何にも代え難い快楽であって、これを電子化するなんてのは、もっての他です。故にネットワーク越しのセッションは不許可であり、電子ダイス:ドラゴンボーンは糞かつ邪悪な存在なのです。

註釈

 番号をクリックすると元の位置に戻ります。

  • [1]:「全て」ではなく「ほぼ全て」と表現したのは理由があります。SRDにはワールドセッティングに依存した情報が掲載されていないからです。例えばPHBに掲載されているGreyhawkの神様に関する記述は、SRDにありません。
  • [2]:findは強力なツールです。様々な機能があり、それらの使い方はman findに書かれています。findのマニュアルを読んでみれば分かる事ですが、findの説明は膨大であり殆どの求道者はそこで躓いてしまうでしょう。そんな時は遠慮無く僕に質問して下さい。ハッキリと明解に誰にでも分かるように「manを読みましょう」と回答しますから。
  • [3]:Linux のファイルシステムには、拡張子という概念はありません。ですからテキストファイルだからと言って、ファイル名の終端4文字を.txtにする必要は無いの です。逆に拡張子がファイルシステムで用意されていないので、important_data1.txt.orig.old.gzといった不可解な名前の ファイルが存在してしまったりします。
  • [4]:NamazuはTRPG.NETの全文検索でも使われています。TRPG.NETでもインデックスの更新は1日1度のようです。
  • [5]:NamazuはPDFRTF以外にも沢山のファイル形式に対応しています。
  • [6]:Windows版のNamazuもあります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)