うる星やつら

エピソード・キャラクター・マトリックス

Ver 1.0

ユーザーズ・マニュアル

Copyright (C) 1984 by 倉田わたる





注意

1. 営利を目的としない限り、本プログラム、及びマニュアルを、許可なく複製、改造してよい。但し、プログラム(及びマニュアル)を改造した場合は、著作権所有者名と、改造者名を併記すること。
2. 本プログラムを運用した結果については、著作権所有者は責任を負わない。



 本システムは、少年サンデー連載中の漫画「うる星やつら」の、エピソード・キャラクター・マトリックスを作成し、種々の観察を行なうものである。

 エピソード・キャラクター・マトリックスとは、縦軸にキャラクター(原則として登場順)、横軸にエピソード(原則として発表順)をとった2次元配列で、配列の各要素には、そのエピソード(ex.「かけめぐる青春」)に於けるそのキャラクター(ex.「諸星あたる」)の属性(ex.「A」。意味は後述)が書き込まれているものである。この配列を、横方向に(即ち、キャラクター別に)、又、縦方向に(即ち、エピソード別に)、スキャンするなどして、様々な興味深い出力を得ることが出来る。又、キャラクターの多重検索機能を用いて、エピソードにアクセスする(ex.「お雪」と「弁天」と「ラム」と「蘭」と「レイ」がいたあの話を読みたいのだが、何巻に収録されている何という話であろうか?)ことも可能である。



 以下、本システムの応用例を列挙する。

1. 特定エピソードに登場したキャラクターの出力。
(ex.「かけめぐる青春」に登場したのは誰か?)
2. 特定キャラクター(単数、複数)が登場したエピソードの出力(キャラクターの多重検索)。
(ex.「校長」と「コタツ猫」が登場しているエピソードの一覧表。)
3. 全エピソードの一覧表出力。
4. シーズン別のキャラクター・ランキング出力(後述)。
5. キャラクター、又はエピソードの間接検索。
(ex.「あたる」と「終太郎」と「飛麿」がいた、あのエピソードに登場していた、あのキャラクターの名前を知りたい、そして、そのキャラクターが「蘭」と共演していたあのエピソードの名前を知りたい、読みたい!)
6. 特定キャラクターの消長。
(ex.「四人組」は、「終太郎」の登場と共に姿を消した。ex.「しのぶ」は、最初は主役級であったが、「蘭」の“危機一髪シリーズ”から始まる半年間、殆ど姿をみかけなくなり、その後、ゆっくりと回復した。云々)

等である。



 本システムの走行環境を以下に示す。

1. PC−9801/F/E(本体)。
(RAM 128Kbyteで動作可能(コミックス19巻までのデータ入力時)だが、256Kbyte以上に増設するのが望ましい。)
2. PC−8853N、or、PC−KD551、or 相当品(カラーモニター)。
3. 5インチ or 8インチディスクドライブ(PC−9801/E 使用時。1ドライブで可)。
4.

ヴァージョン1.0では、プリンタをサポートしていない。




目次




第1章 準備

1-1. 起動法

 以下のファイルが収められているディスケットをドライブ1にセットし、N88日本語BASICをブートする。

URUSEI
URUSEI.EPS
URUSEI.CHR
URUSEI.MAT
URUSEI.VER
usfont.n88

 RUN"URUSEI"<RET>(以下、“<RET>”はリターン・キーを、アンダーラインは、その通りにタイプすることを示す)。

 続けて、ハードウェアの内蔵クロックが保持している日付を表示するので、直す必要がなければ、<RET>。直す必要があれば、表示に従い、8桁の文字列をキーインする。時刻についても同様。

 本システムは、データベースがアップデートされる度に、その時の日付と時刻をヴァージョンNo,としてアップデートし、終了時にファイルに書き込む。従って、単に出力するだけであれば、内蔵時計が狂っていても、直す必要はない。


1-2. 属性

 各エピソードに於ける、各キャラクターの属性を、以下の様にして決定する。

A −  そのキャラクターがいなければ、話自体成立しない。
(ex.「かけめぐる青春」に於ける、「あたる」と「ラム」。「ラムの父」は、判断が分かれるところである。)
B −  何らかの形で、話に参加している。例えギャグなどに関与していなくても、セリフ、動作等で、話を先に進めている。
(ex.「かけめぐる青春」に於ける、「錯乱坊」、「しのぶ」、等。「しのぶ」がAでないことに注意。この時点では、まだ三角関係が明確でなかった。)
C −  コマかせぎ。
(ex.「かけめぐる青春」に於ける、「だっぴゃ怪獣」。)
D −  余白ウメ。モブシーン等にまとめて登場することが多い。
E −  登場せず。

 各エピソードに、必ず、属性Aのキャラクターがいるかというと、そうではない。みんなでワイワイ騒いでいるタイプのエピソードでは、どのキャラクターを抜いても、何とか話が成立してしまう、ということがめずらしくない。

 又、属性C、属性Dのキャラクターも、必ずしも存在しない。逆に、属性Bのキャラクターは、必ず存在する。

 属性の決定は、多分に主観的なものであり、人によって判断が異なって当然であるが、一般に、下記の基準に従って決定すれば、それ程大きなくい違いはないと思われる。

1. まず、属性Dのキャラクターをみつける。(端に隠れていることも多い。)セリフをしゃべっていれば、Dではない。又、数コマに渡って登場していても、その他大勢としての役割しかはたしていなければ、Dである。
2. 上記以外の登場キャラクターは、全て属性Bと仮定する。ここで、各キャラクターを順に、消してみる。もし、話が成立しなければ、彼(女)は、属性Aである。
3. 最後に、属性Bと属性Cの分離であるが、これがも最も微妙である。2.同様、各キャラクターを順に消してみる(今回は、とにもかくにも、話は成立するはずである)。このとき、話に大穴があくか、大切なギャグが一つ消えてしまうか、または台無しになるか、あるいは、話の進行が不自然になれば、B。1コマ、2コマ使えなくなるだけであれば、C。

 更に、

4. ゲスト・キャラクターの属性は、一般にAである。

ということもできる。

 以上に加えて、筆者は、

5. 平安京シリーズ、宮本武蔵シリーズのような「学芸会」では、属性Aを認めない。即ち前者では「ラム」が、後者では「温泉マーク」が、一見、属性Aであるが、属性Bとみなす。
6. 「惑星教師CAO−2」、「失われたモノを求めて」三部作のような、“少数のレギュラー陣の集団の演技”で話が進行する場合には、全員の属性をAとする。即ち、前者では、「ラム」「お雪」「弁天」「蘭」「CAO−2」を、後者では、「ラム」「弁天」「お雪」「仏のじんじゃあ」「七色のしゅがあ」「毒蛇のぺっぱあ」「そると一号」を、Aとする。

という規則も採用している。

 以後、属性間に、A>B>C>D>E なる関係を導入し、左辺の属性を右辺の属性より「高い」、右辺の属性を左辺の属性より「低い」という。即ち、Aは最高位の属性であり、Eは最低位の属性である。

 又、属性D以上を持つキャラクターを、そのエピソードの「登場キャラクター」と呼ぶ。


1-3. HELP 機能

 第2章で詳述するが、本システムでは、キャラクター、エピソードを、各々、通し番号で管理しており、それぞれ、キャラクターNO.、エピソードNo.と呼んでいる。これらの数字を入力する際に、HELP key がサポートされているので、あらかじめ説明しておく。

 キャラクターNo.の入力が促されているときに、HELP key を押すと、画面の右半分に、No.1〜No.15までのキャラクター名が、番号付きで現われる。ここで、<RET>、または を押すと、次の15人が、 を押すと、前の15人が現われる。最後の15人、又は、それ以下が現われた時点で、<RET>、又は を押すと、最初の15人に戻る。逆も同様。.(ピリオド)を押すと、HELP 終了である。(ピリオドは、テン・キーのものを用いると便利である。)

 エピソードNo.の入力が促されているときにも、同様の機能が働く。




第2章 操作法

 起動を終えると、メニュー画面となる。ここから“1”〜“7”のキーを押すことによって、様々な作業に移る。“E”を押すと、終了。

 右肩に表示されている日時は、最後にデータベースに変更を加えた日時で、以後、これを、“ヴァージョンNo.”と呼ぶ。


2-1. エピソードファイルの作成

 エピソードを登録・修正するためには、メニューで 1 を押す。

 新たにエピソードを登録するためには、HELP機能を用いて、(現時点での)最終エピソードNo.を調べ、その次の番号を入力するか、又は、(現時点での)最終エピソードNo.より大きい数(ex. 999)を入力する。

 続いて、タイトル、掲載号、収録巻、収録巻(アニメ版)、コメントを、順に入力する。不必要な項目は <RET> のみでもよい。コメントを入力し終えると、エコーバックしてくるので、間違いが無ければ Y、さもなければ N を押す。

 エピソードファイルを修正するためには、やはり、HELP機能を用いてエピソードNo.を調べた上で、そのNo.を入力する。タイトル、コメント等が表示されるので、そのエピソードを修正するのなら、Y、さもなくば、それ以外の任意のキーを押す。Y を押すと、上記同様、タイトル、掲載号、収録巻、収録巻(アニメ版)、コメントの順に聞いてくるので、入力する。このとき、<RET> のみだと、その項目は修正されない。従って、例えば、コメント等を消したいときは、ブランクを一つ入力すること。入力し終えると、上記同様、正しいかどうか聞いてくるので、YN を押す。

 エピソードファイルの作成を終了したら、エピソードNo.入力時に、<RET> のみ押す。(メニューに帰る。)

 エピソードNo.入力時に、“ALL”を入力すると、エピソードファイルの一覧表が出力される。


2-2. キャラクターファイルの作成

 キャラクターを登録・修正するためには、メニューで 4 を押す。

 以降の操作は、前節と全く同様であり、相違点は、各キャラクターに付き、入力項目がキャラクターNo.とコメントだけである点と、“ALL”モードがない点だけである。


2-3. エピソード・キャラクター・マトリックスの作成

2-3-1. エピソード別入力

 エピソード・キャラクター・マトリックスを作成するためには、エピソードを固定して、各キャラクターの属性を記入する方法と、逆に、キャラクターを固定して、各エピソードに於ける属性を記入する方法とがある。ここでは、前者を説明する。

 メニューで 2 を押すと、エピソードNo.をきいてくるので、HELP機能の助けを借りつつ、入力する。

 続いて、キャラクターNo.をきいてくるので、例えば、1<RET> と入力すると、“諸星あたる”とエコーバックしてくる。続いて、属性“A”〜“E”のいずれかを押す。(“E”は“erase”と考えてもよい。非登場キャラクターの属性(即ち、“E”)を、いちいち押す必要は、ない。)例えば、A を押したとする。続けて、キャラクターNo.をきいてくるので、例えば、12<RET> と入力したとすると、“サクラ”とエコーバックしてくるので、B と押したとする。ここで、諸星あたるの属性を修正したければ、1<RET>B、などと、押す。サクラを消したければ、12<RET>E、と押す。全キャラクターの属性を記入したら、キャラクターNo.に、<RET> のみ入力すると、次のエピソードの入力に移る。これにも、<RET> のみ入力すると、メニューに帰る。キャラクターNo.入力時には、勿論、HELPが効く。

 各エピソードに於ける各キャラクターの属性は、必ずしも全部一度に記入する必要はない。キャラクターの追加、削除、属性の修正等、一人ずつパッチ当てすればよい。


2-3-2. キャラクター別入力

 エピソードNo.とキャラクターNo.の関係が入れ換わった他は、前節と全く同様である。メニューで 5 を押す。

 まとめて入力するときには、エピソード別の方が便利なので、この機能は、もっぱら、パッチ当てに使うことになろう。


2-4. エピソード別出力

 メニューで 3 を押すと、各エピソードにどのキャラクターが登場しているのかがわかる。

 HELP機能の助けをかりて、エピソードNo.を入力すると、エピソード名の下にサブメニューが現れる。<RET> を押すと、そのエピソードの内容がわかる。 を押すと次のエピソードに、 を押すと前のエピソードに戻り、. を押すと、メニューに帰るのである。

 さて、<RET> を押すと、キャラクター名がカラーで表示される。緑はA、赤はB、紫はC、青はDである。<RET> を押すと、次のエピソード名が現れ、サブメニューが表示される。次々とチェックしていくのに便利である。


2-5. キャラクター別出力

 単数検索と複数検索に分けて説明する。

 “錯乱坊”の登場するエピソードを知りたければ、メニューで 6 を押した後、3<RET><RET> と入力する(HELPが効くことは、いうまでもない)。すると、画面の右半分に、登場したエピソードが、属性のカラー(緑=A、赤=B、紫=C、青=D)付きで、15個ずつ表示される。

 複数のキャラクターが同時に登場するエピソードを知りたければ、全キャラクターのキャラクターNo.を押した後、<RET> を押す。例えば“ラム”、“弁天”、“お雪”、“蘭”の4人組が登場するエピソードを知りたいのなら、7<RET>20<RET>24<RET>90<RET><RET> と入力する。

 このときのカラーの意味は、“そのエピソードに於ける各キャラクターの属性のうち、最高のもの”となっている。即ち、“赤”ならば、“少なくとも一人はBで、Aはいない”ということがわかる。

 又、“*”が表示されているときは、全員がその属性を持っている。即ち、“赤”で“*”が表示されていれば、“全員B”ということがわかる。(勿論、“青”のときは、必ず“*”が表示される。)

 <RET> のみ押すと、メニューに帰る。


2-6. シーズン別ランキング出力

 このプログラムは、シーズン別に“活躍度”という、興味深い数字を計算する機能を有している。計算法は A-3 節に示すが、経験則とほとんど完全に一致する。この活躍度をキーにして、シーズン別にキャラクターのランキングを出力する機能が、メニュー 7 である。

 まず、ランキングを計算する範囲をきいてくるので、HELP機能を使いつつ、入力する。どこでも自由に設定してよいが、レンジは15〜30位が適当である。(50以上は、好ましくない。)数字がダラダラと現れるが、これは、活躍度計算中のキャラクターNo.である。

 計算が終了すると、まずベストテンが、後、<RET> を押す度に15人ずつ出力される。90点以上は緑、70点以上は水色、60点以上は黄色に色分けされている。

 “第何エピソードから?”に、<RET> で答えると、メニューに帰る。

 筆者なりのシーズン設定は、エピソードのコメント欄に書き込んである。(メニュー“1”の“ALL”モードだと、わかり易い。)キャラクターの変動に着目しつつ、一年を、“新学期〜夏休み”、“秋〜新春”と、区切ったものである。





APPENDIX

A-1. ファイル

 本システムは、以下のファイルから構成されている。

URUSEI BASICメインプログラム。
URUSEI.EPS エピソード名が収録されている、シーケンシャル・ファイル。
URUSEI.CHR キャラクター名が収録されている、シーケンシャル・ファイル。
URUSEI.MAT エピソード・キャラクター・マトリックスが収録されている、ランダム・ファイル。
URUSEI.VER データのヴァージョンNo.が収録されている、シーケンシャル・ファイル。
usfont.n88
外字登録ファイル。(mkfont.n88によって作成される。ユーザーズ・マニュアル参照。)
84/03/19 Version では、「愛▼ダーリンの危機」の“▼”にのみ、用いられている。(“▼”はハートマークを示し、“ラブ”とルビがふられている。)


A-2. エラー・トラップ

 走行中のエラーによって、入力データが無駄にならないよう、エラー・トラップがかけられている。

 なんらかのエラーが発生すると、エラー番号とエラー行を表示して、リターン待ちになる。<RET> でメニューに戻るので、直ちに E で終了すれば、最新の入力データを守ることができる。

 84/03/19 Version では、コミックス第19巻まで入力終了しているが、標準搭載の128Kbyte RAM では、これがほぼ限界で、しばしば、Out of Strings Space Error、Out of memory Error が発生するであろう。

 本質的な解決策としては、メモリーを256Kbyteに拡張するしかない(推定100巻以上、耐え得るはずである)が、消極的解決策も存在する。

 ひとつは、度々メニューに帰ること(メニューに帰る度に、ガベージ・コレクションが行われる)。もう一つは、日本語BASICのかわりに、DISK BASICをブートすること(実際、出力するだけであれば。これで十分である)。

 又、おそらく第24巻の入力時点で、Subscript out of Range Error がでるが、対策については、A-4 節を参照せよ。


A-3. 活躍度の計算法

 各シーズン(20〜30エピソード)に於ける、各キャラクターの活躍度は、次の様に計算される。


活躍度 =   40 × log 10((A + B + C + D/2)/N × 100)
      + (20 × A + 10 × B + 5 × C)/(A + B + C + D)

      但し、A = 属性Aのエピソードの総数
         B = 属性Bのエピソードの総数
         C = 属性Cのエピソードの総数
         D = 属性Dのエピソードの総数
         E = 属性Eのエピソードの総数
         N = A + B + C + D + E (即ち、そのシーズンの、総エピソード数)

      又、そのシーズンに於いて A = B = C = D = 0 のキャラクターに対しては、
      活躍度は定義されない。

 右辺第一項は、いわば出席点であり、出席回数の百分率を、常用対数で補正している。第二項は、内容点であり、属性の加重平均をとっている。


A-4. インストール

 プログラム内の諸定数は、128Kbyte RAM を使いこなす様に設定されているので、256Kbyte以上のシステムでは、一部書き直す必要がある。

 まず、マシン語プログラムをリロケートするために、プログラム第1行のCLEAR文とDEF SEG文を書き直す。次に、最大エピソード数、最大キャラクター数を、同じ行で、MAXE、MAXCに、各々250、300とセットしているので、これらを500に書き直す。

 これで、推定46巻までは対応できるはずである。これ以上の拡張を望む場合には、多少、面倒な手続きが必要となる。即ち、単に、エピソード名、キャラクター名を収録する配列を大きくするだけでなく、URUSEI.MATの構造を変える必要があるからである。

 現在、URUSEI.MATは、fig.1 の様な構造を持っている。即ち、先頭から2レコードずつ各キャラクターにふりわけ、各レコード中250byte、計500byteを、各エピソードの属性記入に用いている。

 これを、fig.2 の様に、最大750エピソード(及び、最大750キャラクター(注))に拡張する方法を、以下に示す。

 (注:エピソード数とキャラクター数は、ほぼ、1:1の比を保って増加する傾向がある。)


    fig.1

    +-------------------+
    |   1 - 250 episode | 1. あたる
    +-------------------+
    | 251 - 500 episode |
    +-------------------+
    |   1 - 250 episode | 2. しのぶ
    +-------------------+
    | 251 - 500 episode |
    +-------------------+
    |                   |
    +-------------------+
    |                   |
             ...

    fig.2

    +-------------------+
    |   1 - 250 episode | 1. あたる
    +-------------------+
    | 251 - 500 episode |
    +-------------------+
    | 501 - 750 episode |
    +-------------------+
    |   1 - 250 episode | 2. しのぶ
    +-------------------+
    | 251 - 500 episode |
    +-------------------+
    | 501 - 750 episode |
    +-------------------+
    |                   |
    +-------------------+
    |                   |
             ...


1.

 次のプログラムを走らせる。

100 NAME "URUSEI.MAT" AS "TEMP"
110 OPEN "TEMP" AS #1
120 OPEN "URUSEI.MAT" AS #2
130 FILELD #1, 250 AS F1$
140 FILELD #2, 250 AS F2$
150 FOR I=1 TO 500
160    FOR J=1 TO 2
170       GET #1
180       LSET F2$=F1$
190       PUT #2
200    NEXT
210    LSET F2$=SPACE$(250)
220    PUT #2
230 NEXT
240 FOR I=1 TO 250*3
250    PUT #2
260 NEXT
270 CLOSE
280 KILL "TEMP"
290 END

2.

 プログラム中、チャンネル1を通してURUSEI.MATにアクセスしている。以下のサブルーチンを、750エピソード仕様に書き直す。

 *GET.A、*PUT.A は、エピソードNo.が250以上か以下かで、第1レコードか第2レコードか判断しているので、これを拡張する。

 *MENU6 では、高速化のため、2レコードを同時にGETしているので、これを3レコードに拡張する。

 *MENU7 では、これに加えて、範囲指定が2レコードにまたがっているか否かの判断もしているので、それも拡張する。


3.  第1行で、MAXC=750 : MAXE=750 とする。


 最大1000エピソード(キャラクター)以上に拡張する場合も、これに準ずる。但し、ディスク容量に注意すること。




MASK 倉田わたるのミクロコスモスへの扉
Last Updated: Feb 8 1999
Copyright (C) 1999 倉田わたる Mail [KurataWataru@gmail.com] Home [http://www.kurata-wataru.com/]