■AD-BOOKの技術に迫る

これまでAD-BOOKの数々のバリエーションを紹介してきたわけですが、ここからはAD-BOOKの技術的な面を解説していきたいと思います。詳細な資料があるわけでも無いので記憶に頼る部分もありますが、本質部分はできるだけ丁寧に記述したいと考えています。本サイトのSITE-0でも一部技術的な解説がありますので、そちらからも抜粋して説明に加えていきます。また、ediaとDream-eyeでは電子ブックの制作マニュアルも公開していますので、技術的な理解にもお役立て下さい。

まずはAD-BOOKのデータ構造の基本的な考え方です。フォルダ単位で管理しているため、最低限ファイル操作の方法は理解している必要があります。ファイル操作はPCを扱う上で基本中の基本ですが、今では(開発当時も含めて)アプリケーションから直接読み書きするのが普通なので、もしかするとご存知無い方もあるかもしれません。Windowsが登場する前はDOSと呼ばれるオペレーティングシステムが普通だったので、ファイルの基本操作を知らなければコンピューターには手も足も出ませんでした。今でもファイル操作の基本を知らないと、フォルダを整理したりデータを直接コピーや移動したりするのに困るので、知っておいて損なことではありません。旧SITE-0の「Windowsちょ~入門」で簡単に説明しているので参考にして下さい。ここからの説明は、ファイル操作を理解しているとして進めて行きます。

AD-BOOKには、ユーザーのデータを収めたフォルダとブックビューワー自体のプログラムを収めたシステムフォルダがあります。データフォルダにはAD-BOOKの動作を指定する設定ファイルが入っていて、これをユーザーの目的に合わせてあらかじめ設定するわけです。システムフォルダはライセンス関連のファイル(注:使用ライセンスを要するもの)以外にユーザーが操作する必要はありません。システム自体は著作権により保護されており、勝手に改変することは許されません。

ユーザーにとって大切なのは、コンテンツそのものであるユーザーデータです。データフォルダ内には全てのページデータを収めるようになっていて、データによっていくつかの種類に分かれています。1つはページに関するデータで、章ごとにフォルダ単位でまとめて管理しています。章フォルダ内にはその章に含まれる全ページデータを収めます。画像等も含めて全てです。ただし、サウンド関連はBGM等の種類ごとに章と同じレベルで管理しています。サウンドはどのページでも利用できるように、別管理になっているわけです。章フォルダのイメージを示すと下図のようになり、ページを作成する際に含まれるパーツをフォルダ化して分類しておくと管理が楽になります。ページデータには画像とハイパーテキスト(HTML)の2種類が使え、前者はJPEG形式、後者はHTML形式のファイルを使います。

ページデータは0001~9999の通し番号のフォルダ名にします。AD-BOOKにおける最大ページ数は、この数が根拠となっているわけです。最大ページ数はあくまでも理論的なもので、実際にはページ管理用のインデックスを計算しながら動作しているため、ページ数が多くなるほど処理に時間がかかるようになります。通常の冊子程度では全く支障はありませんが、大規模になればなるほど影響を受けます。影響の具合は試してみないとわかりませんが、それだけの規模の書籍を作る環境には無いので、課題として保留状態にしています。

ページファイルは画像であれば0001.jpg、HMLであれば0001.htmlと言うように名付けます。通し番号にしたのはページ操作を簡単にするためで、ビューワーがページを進める場合は、現在のファイル名に1足した番号のファイルを読み出して表示します。逆に戻る場合は1引いた値になります。もうおわかりかと思いますが、任意のページならば、直接そのページ番号を指定すれば良いのです。同様に章フォルダも通し番号になっていて、実際のページ移動の仕組みでは何章の何ページと指定することになります。これがAD-BOOKにおける基本的なページ操作の考え方で、シンプルで最も合理的な管理方法だと考えています。

AD-BOOKでもう一つ重要なのは設定ファイルで、その実体はテキストファイルと呼ばれる文字で書かれたファイルです。Javascriptで扱うために拡張子は.jsとなっていることに注意して下さい。テキストファイルですからWindowsに標準添付されるメモ帳でも編集することができます。メモ帳は単純な機能しか無いので、一般的にはテキストエディタと呼ばれる文章の編集ツールを使います。フリーウェアとして優秀なソフトが多数公開されているので、自分に合った使いやすいものを選べば良いでしょう。ただし、そのまま保存すると.txtとなってしまうため、保存時に拡張子を指定するか保存後に名前を変更します。

参考までに、AD-BOOK「ROOTS」の設定ファイルをご覧頂けます。 → 設定ファイルを見る。

何やら見慣れぬ文字や数字が並んで難しそうに見えるかもしれません。最も重要なのは各章のページ数です。ここだけきちんと設定し、章フォルダにページデータを収めてあれば、他の項目はそのままでもとりあえずは動作するはずです。後はページサイズをコンテンツに合わせて書き換え、各タイトルを記入すれば何も考えなくても電子ブックとして体裁が整うわけです。設定ファイルは見た通り単なるテキストファイルですが、実際の保存ファイルの拡張子は.txtでは無く.jsになるのを忘れないで下さい。電子ブックにとって重要なのはあくまでもコンテンツとなるページデータなので、制作者はコンテンツ制作に専念できることが何よりも大切です。設定や構造がシンプルなROOTSなら簡単に電子ブックの構築ができるので、余計な学習のために時間を浪費するのを避けられます。そして、ある程度使用に慣れたら、より高度な機能に挑戦すれば良いのです。

ただし、設定ファイルは電子ブックプログラムの中核に組み込まれるもので、そのまま動作に直結します。あらかじめ文法をチェックするツールも用意していないので、安易に記入ミスをしないように注意が必要です。設定値を囲む”や末尾の;も意味があるので消してはいけません。そうは言ってもJavascriptはインタプリタ型言語なので、実はブラウザが実行時に1行ずつ読んで解釈しています。そのため問題が起きてもブラウザ自体が強制終了するような事態にはなりません(エラーになるかページ表示が停止する程度)し、OSに深刻な影響を与えるものでもありません。本来、安全・安心して利用できるものなのです。設計当時、設定ファイルを編集するツールも用意したかったのですが、時間とマンパワーが足りず実現しませんでした。唯一の例外として、ediaで使用する自動ページ送り時間の設定ファイル編集ツール(Windows版)は完成しています(製品に添付)。

AD-BOOKシリーズには画像とハイパーテキスト(HTML)の2種類のファイルが使えると説明しましたが、混在した場合にどうやって判別しているのでしょうか。ヒントは拡張子の違いです。特殊な方法で自動判別をしますが、これもブラウザによって動作が異なる場合があります。また、通信状況やサーバー能力等でファイル転送に時間がかかると、判別システムがタイムアウトでページ表示を中止するため、どんなケースでも確実に動作するわけではありません。このように多少の表示リスクが伴いますが、自動判別によってAD-BOOKの自由度は飛躍的に向上しました。通常のページは画像として、アクティブなページはHTMLでと、利用したいシーンで使い分けができるので、電子ブックの可能性が大きく広がることになったのです。たとえページ全体が画像だったとしても、HTMLページに画像を割り付ければ(HTMLページとして扱う)、Javascriptを使って自在に操作できるようになります。アイデア次第でいくらでも面白い電子書籍が作れるので、今でもAD-BOOKのようなコンセプトの書籍ツールには期待しています。