神我狩 NPC集

 最近、神我狩のマスターをする機会が度々ある。
 その際に、登場NPCについてイラストと紹介文を一緒に印刷してプレイヤーに配るようにしてる。オリジナルのNPCの場合はテキトーにネットで拾ってきたイラストを貼り付けるのだけど、公式NPCの場合はルールブックをスキャンしてそのまま貼り付けている。
 それはそうと、セッションのたびにルールブックをスキャンしてNPC一覧を作るのも面倒だし、スキャンした文字は解像度が悪くて潰れてしまっていることがあるし、色が薄くて読みにくいということもよくある。そんなんで、イラストだけはスキャンして、テキスト部分は自分で入力したものをデータベースとして作っておいたら色々楽じゃないかなと思って作ってみた。
 ここに置いておくと、データベースの更新に追従できないので、TRPGのページに置いておく。
 取り敢えず、今回は基本ルールブックだけ入力してみた。
 イラストは600dpiでスキャンして、gifで見栄えが悪くならない程度に圧縮した。結局平均して1枚あたり50KB弱となった。エクセルファイルの容量の殆どが画像データである。

・使い方
 現状、シートは3枚ある。①キャラ一覧、②データ表示シート、③基本ルールブックのデータベースである。
 書籍の名称とその中の掲載順の組み合わせでキャラを識別することにした。①キャラ一覧のシートにまとめておいた。
 使い方といっても、②に誰のデータを呼び出すかというだけである。簡潔にいってしまうと、B2:C5に使うルールブックとキャラの番号を入力するだけ。見ての通り、4名まで同時に表示出来るようになっている。そういや、ブランクを入れておくのを忘れてた。
 一応、4名のデータが1枚に収まるように印刷範囲を設定しているけど、テキトーに弄ったらいいと思う。
 ルールブックにあるものよりもちょっと横長の作りになっているので、列の幅を小さくして整えても良いかも知れない。その際、I1のセルに1行に収める標準の文字数を入力してあるので、この値を手頃な値に調整したら良い。

・エクセルについて
 今回、エクセルの機能をかなりふんだんに使った。その覚書程度にエクセルの入力内容について書いておこうと思う。
 環境によって動いたり動かなかったりするのは嫌なのだけど、Excel2007で作ったのでそれ以降なら使えるはず。xls形式で保存したところ、使えない機能が多くあるような感じで警告が出たので、多分Excel2000とかでは動かないんじゃないかと思う。
 実は、このファイルを作り始めた時点では自分の使ったことのない技術が必要だったため、上手く作れる確証が持てなかった。最悪、コピペで済ませられるような形になっちゃうかもとか思っていた。

・画像のリンク
 エクセルでは普通セルのアドレスを表記して参照するけど、参照先のセルに画像が乗っかっていても画像を呼び出すことはできない。しかし、是非とも画像を呼び出したい場合、セルに名前を付けてそのセルの表示を呼び出すという事ができる。検索すると、色々なページがヒットするけど、どれもこれも何をしているのかよく分からない。Office TANAKA(魚拓)というサイトが最も分かりやすく説明しているけど、やっぱりよくわからない。gifアニメで示してくれるので他のサイトと比較して手順だけは分かるので、不明瞭な儀式程度に思って手順を追ってみたら、なんとかなった。
 なんとかなったけど、印刷しようとすると画像がおかしなことになる。

 設定が悪いのかと色々弄ってみたけど、結局Excel側の不具合だということが判明した。Excel2007でリンク貼り付けをした図が印刷でずれる件InternetArchive, WEB魚拓)に答えが見つかった。このExcel2007という表計算ソフトは矢鱈と処理が重いことも含めて色々とクソなソフトである。

・画像について
 WORDとかPowerPointとか一太郎とかだと、画像を載せたいときはエクスプローラーからドラッグ&ドロップすることが多いと思うのだけど、どういうわけかエクセルではできない。でも、別のソフトを介してドラッグ&ドロップして表示することは出来る。例えば、WORDに貼っ付けてから持ってくるとか。
 それで、今回ブラウザに表示させて持ってくるというのを試してみた。
 このやり方は確かに楽なんだけど、エクセル内に保存されるファイルを確認したところ、勝手にpngファイルに書き換えられた上に、サイズを小さくされていた。通常のエクセルの画像を挿入する方法でやった場合はちゃんとできた。ただし、jpegファイルはjpegのままだけど、画像サイズを小さくされていた。エクセル余計なことしすぎ。

・ルビを振りたい
 名前と二つ名に振り仮名のあるキャラがいる。
 データベースの方に振り仮名があれば、そのまま反映されたりしないかなとか思っていたのだけど、そんなことは全くなく、データベースのルビの有る無しは完全に意味がなかった。
 仕方ないので、上のセルに振り仮名を乗せることにした。自動的に適切な位置にルビを配置させることは物凄く難しい。ルビを振らない文字の文字数からスペースの数を割り出したりして配分した。reptというコマンドは初めて使う。例えば、「=rept(" ",5)」と入力すると全角スペースを5回繰り返して表示するという意味。

・全角のダブルクォーテーションが勝手に半角に変えられる
 エクセルはMicrosoftの製品なので、開発者は多分アメリカ人なのでしょう。彼らが全角・半角の意義を理解しているとは言い難く、ダブルクォーテーションの全角と半角を使う意味は分からないのだと思う。そもそも、標準アルファベットのダブルクォーテーションに閉じる方向が存在しないし。それはそれでプログラムを書く上では便利なんだけど、日本語を扱う上ではこういったカッコ記号の類で開きと閉じの違いは重要である。なにせ、曖昧な構造であり、一つの意味を表現するのが難しい言語なので、正確な表現を求めると表記がより複雑になっていく。
 そんな事はいいとして、とにかく全角のダブルクォーテーションが勝手に半角に変えられてしまう。
 エクセルの仕様なので仕方がない。と言って受け入れるわけにもいかない。
 半角に変えられるのは、数式の中に含まれている場合なので、ただセルに「“”」と入力するだけなら出来る。なので、H1に「“”」と入力しておいて、必要になったら「=left(h1,1)」「=right(h1,1)」と入力して呼び出すことにした。
 あるいはchar(8520), char(8521)と入力しても表示させることが出来る。

・イラストを避けて文字を書く
 一番自信がなかったのがこれ。WORDとか一太郎とかいったワープロソフトであれば普通に使うのだが、Excelにはそんな機能はない。
 いっそ、トーキョーN◎VAのパーソナリティみたいに横長にして左側3分の1くらいをイラストにしてしまおうかとも思った。
 色々と悩んだ末、1行ごとに表示する文字数を決めて、その数だけ順番に表示することにした。改行があると、そこで行は終了となるので、何文字目に改行コードである"char(10)"があるのかを調べながら条件を作らなければならない。
 ついでに、禁則処理と半角文字による隙間を埋めるための文字数追加も実装した。

・印刷しようとするとアスペクトが変わる
 印刷プレビューで印刷結果を確認すると横に伸びたようになる。

 左が通常の表示で、右側が印刷プレビューである。

 ちなみに、これがオリジナル。
 印刷しようとすると、四十七代目がぽっちゃりした感じになる。
 印刷設定とかに問題があるのかと、色々弄り倒してみたけどどうも直らない。
 それで、上のエクセルの画面と印刷プレビューを見比べてみると、横に伸びたというよりも縦に縮んだように見える。そんで、調べてみたところ、エクセルの表示と印刷結果でセルの幅や高さが異なってくるというのはエクセルの仕様であり、マイクロソフトは直すつもりがないということがわかった。

エクセルでの出力縦横比が変わる(魚拓)
Office2016 エクセルで配置した画像比率が変わってしまう(魚拓, InternetArchive)
異なる複数の Windows 環境で Excel ファイルを共有すると、印刷範囲、セルの幅、または高さが変更される場合がある

 仕様なのでどうにか頑張って設定をいじったところで望んだように正しく出力されるということは望むべくもない。エクセルとかにちょっと詳しい人に伺ったところ、Excel2007の問題ではなく、歴代エクセルの仕様であり、エクセルのバージョンごとにアスペクト比の変動具合が異なってくることさえあるとのこと。打つ手はなさそうである。
 ということで頑張るのはすっぱり諦めて、取るべき方向は2種類。エクセルの表示を合わせるか、印刷を合わせるか、となる。
 誰でも同じ表示になるエクセルの表示画面の方を正しい比率に合わせるほうが品質が安定するのだけど、このNPC集を作る動機というのがマスターをする際に印刷する資料を作りたいということで、エクセル画面の見た目は悪くなるが、印刷結果が正しくなるようにした。
 それぞれのサイズを調べてみると、縦横のドット数は印刷プレビューで575:340、エクセル画面で534:359だったので、縦の幅を(575/534)/(340/359) = 1.1368倍にすることで解決とした。
 これはExcel2007の設定なので、Sheet2の4つの画像を使用者ごとの環境にあった倍率で設定し直した方が良いかも知れない。
 これを調査するために印刷プレビューを表示するたびに、画像の表示がおかしくなって、基本シートで"改ページプレビュー"→"標準"→F9とコマンドを入力して表示を直さなければならないのが非常に煩雑で、結局マクロを組んで自動でもとに戻るようにしてしまった。公開するバージョンではマクロは邪魔なので、マクロの入っていない通常のファイルを上げた。

 そんなわけで、数々のハードルを越えたり避けたりして完成に至った。
 今後も折を見てデータベースを増やしていこうと思う。


20191017追記

 ストーリー&データ集 少女を焦がす熾火を入力したのだけど、このサプリメントはシナリオ集でありそのNPCについてのデータが掲載されていて、その中には「CPC①」とか書いてある。

 このシナリオ専用のNPCであるので、神我狩公式に存在するキャラとしては扱われない。そのため、収録を躊躇って後回しにしたのだけど、これで最後だしということで折角なので掲載した。
 ところで、CPC①とかいう表記よりも、キャラ名で書いたほうがいいかなと思って"一覧"シートのF2からF6にPC名を書いてセッションのときに使えるようにしてみたので、もし使用する機会があるなら利用してみると良いと思う。
 ちなみに、僕はまだこのシナリオを遊んだことはない。


20201213追記

 このシートは4人まで同時に載せられるようにしているけど、4人よりも少ない場合はキャラクターの番号を大きくして存在しないキャラを設定すれば取り敢えずエラー表示になって見えなくなるからいいかなと思っていたのだけど、あまり見てくれが良くないのでちゃんと何も表示しないように出来るようにした。
 BのSheet2のBの列に"blank"という項目を追加した。これで番号を1にすることでブランクのNPC紹介とすることができる。

関連エントリー
 20140726 神我狩データ集
 20140617 神我狩データ集