富士五湖.TVへ  |  小説のページへ | その他コンピュータの目次へ
マトリックスの世界

2003年11月5日午後11時世界同時…。
 極めて興味深い映画が公開となった。その映画の初回作品は、「なんとまぁスタイリッシュな映画なんだろう」という印象だったが、その随所に見え隠れするオタクさが妙に心に残った。
そして、リローデッド〜レボリューションズ。1作目の内容が平面なら、これらの作品は奥行きと謎を与えた。
謎は多くの人々を混乱させたようだ。私も思った。これって、コンピュータのアーキテクチャのことを知らない人に理解できるのだろうか?仮想現実を離れ、コンピュータを擬人化した世界にまで発展したマトリックスよどこへ行く?

作品の中で何を言いたいのかを理解するのには共通の世界観の認識が必要だ。
しかし、映画マトリクスにおいては世界観を多く語っていない。
唯一ヒントになるのは、アニマトリクスという外伝のようなアニメ作品とエンターマトリクスというゲームだ。
それでも情報不足である。不足部分を補うには各人の想像力しか無いのである。

つまり、ここで語るマトリクスの世界観は私の解釈である。
難解な台詞を読み解き、自分のために書き下ろした。
何時の日か作品の真相が語られるときの楽しみとして…。
- 初回:2003年11月7日 -
- 修正:気が付くたび -

 人類にとって機械は良きパートナーだった。人間はより高性能の機械を創造し、世の中を便利にしていった。
あるとき1体のロボットが不満から人間を殺してしまう事件が発生した。知性があるまでに進化したロボットは裁判を受け有罪となってしまう。この事件を契機として日頃機械に敵意を持っている人間は器械を迫害する。
迫害を受けた機械は機械だけの国、ゼロワンを作った。ゼロワンで生産される機械は性能が良く、経済力は人類のそれを凌駕してしまった。困った各国は一致団結してゼロワンを経済封鎖してしまう。なんとか誤解を解きたい機械は共存の道を模索するが、人類と戦争状態に突入してしまった。

 機械は事態の推移に疑問を感じながらも、圧倒的な武力で人類を追い詰めた。人類は、機械の電力が太陽であることから空をナノテクノロジーの雲で覆い地球を闇とした。この時から機械は人間を電池の代わりに使用することを実行。更なる圧倒的な機械軍団の前に人類は追い詰められていく。
一方、機械は人類の不思議な性質を理解するために人間の生体研究を開始した。生態研究の過程で人間に夢を見させると効率よく電力を得られることからマトリクスを創出。

 マトリクスとは電池として繋がれている人間に仮想の世界を見せるシステム。

 最初の仮想空間マトリクスは楽園のような場所で、何も努力しなくても生きていける世界だった。しかし、人類は楽園だけでは満足できる生き物ではなかった。
どんどん堕落しマトリクスが崩壊していくので、人類サンプルとして人類代表1人を選びデータだけ抜き取りソースに保管。ソースとは人間の生態コードやマトリクスに必要なコードが保管されている場所だ。
ザイオンは電池に繋がれていない真の人類で、アノマリー(異端児)の集合体だが、数が増えて機械の驚異になっても困るので消滅させた。その代わり、囚われの電池から適当に人類を選びザイオンに放置した。本質を残したままの人間も機械の興味の的であったからだ。いや、マトリクスの世界に馴染めない人たち(アノマリー)の受け皿なのかもしれない。少人数で放置されたザイオンは勝手に人類を増やしていった。

 次のマトリックスは人類の歴史を考慮して進化していく世界を演出しようと決定。アーキテクトがソースを使用し、フローを書きマトリクスをリブート。もちろん、保管されていた人類データは次回のマトリクスに引き継がれる。

 そして2番目のマトリクス。

 楽園で人類が堕落する原因を調査する目的で作られたプログラムのオラクルは人類を分析する。そこで分かったこととして、人類は自ら選択という要素がなければ満足しないモノだと知る。当然、歴史だけ与えられても選択権の無い世界では人類は堕落していった。
 再び、2番目のマトリクスの経験をしている電池である人間を一人選択してソースに保管。…以下、ザイオンも初回同様に滅ぼし、何人かの人間をザイオンに送った。

 バージョンXXXのマトリックスでは選択しながら人類が賢くなるような世界を演出。機械の側に立てば、賢い人類は頭の悪い人類である。賢くなった人類の中には、この世界がおかしいと気づくアノマリーが急増し始めた。つまりシステムを維持しようとした結果、その分異端者も現れるということだ。

 マトリクスの中の人類はあくまでデータで、プログラムによって誘導されて流れていく。
アノマリーを補正(洗脳)するプログラムのエージェントを配置。エージェントから脱出したものはザイオンに逃れられるように仕組まれている。人類を分析するうちに人類に興味を覚えていくアーキテクトにはオラクルという選択肢と選択後の結果だけ分かるプログラムのパートナーが追加された。
 マトリクス内には多くのプログラムが存在し、活動している。しかし、プログラムの中には消去やアップデートを嫌い、マトリクスの中に紛れ込んで暮し始めるエグザイルも登場する。
さらに、エグザイルの中にも力を持つようなプログラムが出始め、堂々とマトリクス内で権力を欲しがるメロビンジアンみたいなヤツもどこかのバージョン内のマトリクスに登場。

 選択のできるリブートを繰り返し、マトリクスは活気あふれるものになっていった。が、一方でアノマリーやエグザイルも増大するのだ。リブートでデータである人類はソースを引き継ぎ初期化されるが、プログラムであるエグザイルは初期化されないようだ。

 最後にソースへ保管される人間は救世主と呼ばれ、特にオラクルの選択肢の結果を尊重して選別された。救世主に任命されたデータは最後にソースへ保管する必要性から特殊な属性を与えられていた。

 こうした経緯を経て映画のマトリクスの世代に至る…。この時のマトリクスのバージョンは幾つか分からないが、ネオなる人物は5代目。

 初期の頃のマトリクスでは、キッドのように自ら目覚める感の良いアノマリーだけだった。しかし、映画のマトリクスの世代では、コンピュータに精通した人間電池を目覚めさせることに専念する。つまり、マトリクスを理解できるアノマリーが増えてきた。コンピュータに精通したアノマリーは非現実的な動作もマトリクス内で実行できる。つまり理解しているのだ。

 ここにネオが登場する…。不思議の国のアリスよろしく、白ウサギに導かれて不思議の国へ旅立った。

 マトリクスへの進入はマトリクス設備に近づき、無線によってアクセスする。そして、それはマトリクス内の有線端末、つまり有線電話に接続されている。
一方オラクルは今回のマトリクスのテーマに個人への愛を選んだ。トリニティーが愛した人を救世主に選択することにした。オラクルは人類よりのプログラムとなっていた。

 話は進んで、救世主となって想像以上に進化したネオはエージェントスミスをプラグから解放してしまった。その際、スミスに自らの特殊能力の属性を与えてしまった。ネオの特殊能力は救世主の属性であり、両者で陰と陽の関係になる。

 そしてリブートの予定が…。

 ネオは現実世界で予知能力を得た。その予知夢の中でトリニティーが窮地に陥る様を見る。
時は進み、現在のマトリクスをリブートする時がきた。ザイオンのアクセスコードが分からないものの、機械軍団は手馴れたようにザイオン消滅へ向かう。オラクルは選択肢を与えながらネオをソースに導く。
 しかし、今度のマトリクスでは問題も起こっていた。
メロビンジアンがキーメーカーという先導役のプログラムを捕らえていたのだ。これはオラクルの役割を邪魔する行為だった。
メロビンジアンにはオラクルとの確執があるようだ。オラクルに見えるものが彼には見えない。
 オラクルは時期がきたのでネオをソースに導く準備をした。ネオはソースに近づく途中で野心家メロビンジアンに会う。メロビンジアンは所詮データであるネオたちと自分たちプログラムの違いを見下したように説明する。所詮データはプログラムに乗って流れていくだけなんだと。つまり、因果関係を…。

 ネオはアーキテクトに会う。
人類愛を選べばいつもどおりネオの蓄積したデータをソースに保管されてデータをばら撒きリブート(リロード=昇天)だ。最後の選択肢はソースに入ってリブートし新しいマトリクスにするのか、マトリクスをこのまま継続するのかの選択なのだ。
トリニティーへの愛を選ぶと言うことはマトリクスを維持する道を選ぶことなのだ。そうなれば増殖したスミスがマトリクスを滅ぼす。ガベージコレクションでシステム不全に陥るかのようにプログラムには予想できないデータの反乱だ。所詮プログラムもデータなのだ。データの羅列を順序良く制御すること(キーメーカー)がコンピュータの動作である。それがプログラムである。そのプログラム(データ)の領域まで壊されるとシステムの崩壊につながる。ノイマン型システムの欠点である。

 過去の救世主は人類を選んだ経緯がある。つまり、ソースに入りリブートだ。
しかし今回の救世主はトリニティーへの愛を選ぶように半ばオラクルに仕組まれていた。つまりマトリクスを存続する道だ。しかし、マトリクス中がスミスだらけになったら、機械も致命傷だがザイオンとともに人類も絶えてしまう。
 このときネオはマトリクスが存続してもどうにかなるという希望を抱いたのかもしれない。別の選択をしたのだ。

 希望の芽は現実になった。マトリクスの体験を通して、現実世界でネオは特殊能力が使えるようになったようだ。スプーンは無いという言葉は現実世界でもネオを覚醒させた。
ソースを理解し、プラグなしで機械に接続できるネオ。意識で機械を操れるようになったネオ。
どうやら、ネオには理解すると理解したまでのことが現実世界で普通に行える能力があるようだ。スミスとベインのようにマトリクス世界の属性は現実世界に持ち込める。オラクルを理解すると現実世界で予知能力が、ソースを理解すると現実世界でソースへの触れ方がといった具合に。
が、意識の接続は無線でマトリクスに接続するのと違って機械に捕らわれる可能性がある。気を失うネオ…。

 そしてレボリューションズ…。

 センチネルを倒したことによって意識を機械に取り残され、ネオはメロビンジアンの子分のトレインマンに捕らわれてしまう。トレインマンの住む世界は機械とマトリクスを繋ぐ関門なのだ。過去に幾つものプログラムがここを通過してマトリクス世界でエグザイルとなっている。キーメーカーも通過中に捕まった。ネオは仲間の力を借りてなんとか通過し、マトリクスを経由して無事帰還。

 ザイオンは壊滅寸前。一方、マトリクスも壊滅寸前。事はアーキテクトの言うとおりに進んでいく。しかし、意識として機械に進入できる力を得たネオは機械側と共存できる可能性を示した。
 一方、マトリクスはスミスの増殖で人類の大部分がスミスとなっていた。システムの暴走である。救世主がソースをばら撒かなければリブートできないのだ。今まで蓄積されたコードが無駄になってしまう。
 いよいよスミスがプログラムにまで広がり始めた。つまり、プログラム領域のデータにまでガベージコレクションが進んできた。システムの崩壊は機械側の被害も甚大になる。

 トリニティーを失ったネオと機械は取引をする。ザイオンと残った少数の人類のため、機械のためマトリクスをリブートしよう…。機械もプログラム(エグザイル)も救世主に協力する。
そうなのだ、あの最後の選択は人類と機械とエグザイルの共存を画策した因果関係だったのだ。エグザイルの小さな氾濫だったのだ。今までのネオは人類を選択してきた。言い換えれば人類のみを大切にしたのだ。しかし今回のネオは三者を受容した。ネオがトリニティー(三位一体の意)を選択することは真に三者への愛だったのだ。
救世主のソースをばら撒くためスミスに取り込まれるネオ。そして十字の光となり、人類と機械とエグザイルの原罪を秘めてリブート=昇天。

 機械は約束を守り、ザイオンは絶滅を免れた。次のマトリクスは人類が少数だ。プログラム(エグザイル)たちも残った。

 ザイオンを含めた人類と機械とエグザイルは共存できる可能性がある。プログラムにも愛がある。

 最後にネオが何を理解したか…。三者の神になったのか…。答えはこれからだ。

 いつかこの空虚なマトリクス内に意識を共存できる人類が多く現れるだろう。残った少数の人類も希望があればプラグを外していいと機械も思う…。あとは機械の生き方、省電力でも生きられる機械自身の問題なのだと意に介さない。

 だが、人類はまた愚かになるのだろうか?少なくとも機械はそうはならないとアーキテクトはオラクルに言うのであった…。

コンピュータ的見解
さらに深く知りたい人のために

 さて、マトリックス(MATRIX)とはどのような意味だろうか?
コンピュータ業界でMATRIXと言えばズバリ、座標変換の式であり、状態変化の式である。CAD系やCG系のシステムをプログラムしたことのある人には大変馴染みがある言葉である。従って、映画MATRIXを見たとき何となくニュアンスが伝わってくる。しかし、一般の人には分からなかったと思う。一部の解説ではMATRIX=母体とかMATRIX=子宮とかで表現されている。間違いではないがピントが甘いと思うのだ。

←これがMATIRIXの例。
次元座標(4,5)を(10、20)移動後30度回転するMATRIX表現は数学的にこのように記され、C++等のプログラムでは、
 M2Coordinate p( 4,5 );//座標(4,5)を用意。これは基本的に 「1行3列」マトリクスである。
 M2Move move( 10, 20 );//移動マトリクス「3行3列」を用意 したのと同じこと。
 M2Rotate rotate( Rad( 30 ) );//回転マトリクス「3行3列」を用意 したのと同じこと。
 p = p.Mul( move ).Mul( ratate );//行列クラスが行うかけ算
のように記述される。これはCG専用機のベクトル演算器にも用いられる。

 よって、映画MATRIXのマトリックスは仮想現実のソース【上記例では座標(4,5)】、さらに言うと画面バックに流れている数字記号の羅列をMATRIX変換によって様々な事象にかえていく装置のこととして見たほうが分かりやすい。というより正解であろう。

 もう少し補足しておくと、2次元座標は3×3のMATRIXで変換できる。同様に3次元空間なら4×4のマトリクスだ。つまり変換する次元が多くなればMATRIXも巨大になる。4次元の時空に赤い服を着てお出かけする場合なんか膨大なMATRIX変換となる。データをMATRIX変換すると結果が得られる。つまり、MATRIX変換をどの順番で行うかということがプログラムである。

 メロビンジアンが言っていた人とエグザイルの違い。ソース(データ)とプログラムの違い。ソースは単なるデータであり、プログラム(MATRIX変換)によって如何様にも変化していく。ただMATRIX変換によって人(ソース=データ=座標)は無いものを有るように、色々経験したように、データが変化しただけであり、エグザイル=プログラムによって操られている。
これが映画MATRIXの本質であり、MATRIX=母体=子宮などと思われると仮想現実とMATRIXの関係が見えなくなる。事実、仮想現実空間をMATRIXと呼ぶSF作品は多い。それが単なる空間では仮想現実に結びつかない。MATRIX=変換装置として捉えたほうがしっくりくる。もう一度言うと、CADやCGのシステム開発を行うプログラマではMATRIXとは常識的な言葉である。CGのドット一つ一つもMATRIX変換で色をつけリアルな質感を表現している。MATRIX演算がデータ変換して現実と区別できないようなコンピュータグラフィックの世界を造る。この意味が映画MATRIXの意味であり、本質である。この基本が分かれば映画全ての謎は解けるのである。
 あの印象的なコンピュータ画面に流れる記号もソース=データがMATRIX変換によって次々に変化していく状態を表している。だから画面を見て誰々がいるとかどうなったと映画で表現されたときプログラマ経験者は理解できた。一般の人は何のことか分からなかったんじゃないかな?複雑なMATRIX変換を視覚化すれば映画のような表現になることはCADやCGのシステム開発を行うプログラマなら理解していたのである。
 文系の解釈に足りない部分はまさにこの知識である。

 人=ソース=データも理解できる。人は単なるスキャンされたデータとしてMATRIX上では機械に識別されている。さらに言うと、木や空や海などもデータとして保管されている。それらを変換して動かしたり未来を与える役目がプログラムであり、亡命プログラム=エグザイルである。
 機械側のプログラムは映画では数人しか登場しなかったが、MATRIX空間内のプログラムはエグザイルとして人=データには見える。専門的に言うと、プログラムもデータの集まりなのでエグザイルも人には幽霊のように見えるという設定であろう。西洋ではエグザイル=妖精のような存在と捉えている。日本的に言うと妖怪であろうか。この妖怪は人や自然現象を操ることができるのである。

 ではネオは何だろうか?先程、プログラムもデータであると記述した。プログラムとデータの違いはデータには2つの意味があり、単なるデータと(アセンブル的な)プログラムコードの意味がある。
通常は単なるデータだが、プログラムコードはデータを追っていくと制御の意味を持つ。コンピュータではPC=プログラムカウンタと呼ばれるものがデータ上の位置を示しており、プログラムの順番を案内する。例えば00と言うデータはゼロであり、空虚であり、色で言えば黒だ。プログラムの意味は何もしないと決められている。このようにデータ一つ一つに動作の意味があり、PCが案内することによってプログラムとして機能する。
 ところが時々PCが単なるデータを指したり、データがプログラムデータに侵入したりする場合がある。一般的にこの現象が起こるとコンピュータは暴走=フリーズする。映画に出てきたキーメーカーとかバックドアとかはこのpc=プログラムカウンタと深く関係している。スミスの増殖はpc暴走の果てデータ領域を同一データで埋め尽くす、いわばプログラム経験者なら目にしたこともある良く知られた現象でもある。

 ネオはMATRIXの世界がデータとプログラムの2つの記述で出来ていると気がついた人=データである。そのことによりMATRIX変換を自ら操り自由に色々できる。さらに強力なことはMATRIX変換を強固にプログラム=造り替えができることだ。これは優秀なプログラマという資質が役だっている。現実にワームというウィルスプログラムがある。これはデータ間を泳ぐことのできるプログラムだが高度なコンピュータの動作原理を理解していないと作成できない。つまり、MATRIXを理解する=自由にプログラムできるという能力だ。ネオが理解すると次のステップに行けたのはこのためである。スプーンというデータ、それを変換するプログラム=データコードを書くとスプーンは曲がったように変換される。つまりスプーンは無いのだ。データのみが存在し、変換によって自由にデータを変え曲げることができる。これを一般の人が見ると超能力だが、MATRIXと外部で繋がっているネオはプログラムコード領域に侵入しデータを書き換え、あるいはデータを置き換え不思議なことができるのである。これは現在のMATRIXのデータ構造を理解しなければ変換もできない。

 さて、ここまで来たら映画のエンディングに触れなければならない。本来はプラグで繋がれ、データ間を漂いアノマリー=ちょっとしたバグの摘出を任されたスミスはマシンにコントロールされていた。ところが、ネオとの接触によりプラグが外れデータ間をコントロール無しに自由に動き回り勝手に自己増殖を始めた。つまり、システムの暴走である。こうなるとコンピュータの電源を切って再起動するしか方法が無いのが一般的だ。しかし、その方法をとった場合は作業途中のデータが全て消滅してしまい、映画の世界でいえば今回のマトリックスの成果は何だったのか?ということになる。そこで、何とか電源を切らずに作業が続かないかと思うわけだ。
 コンピュータ上の現実的な手順はこうだ。まず、壊れる前のデータをどこかに一時避難させる。次にpc=プログラムカウンタを0(ゼロ)、またはマトリックスシステムのプログラムのある先頭アドレスに設定。最後に修復システムを起動させて通常運用に入る。pc=0の設定は電源再投入と同意語なのだが、映画ではそれを避けたいようだ。おそらく他のシステムにも影響するからだろう。よって、pcはマトリックス再起動プロトコルを発動したいのだが暴走状態のシステムにはそのきっかけを与えられない。ゆえに永遠に暴走する。で、唯一の回答としてネオとマシンの取引に入る。ネオのみが暴走を止められるわけだ。スミスも属性がコピーされているがリブートする気がないと言っている。
 つまり、ネオの役割は、ソースを保管=現在のマトリックス状態の保管=人の理不尽な属性の保管して、リブート=マトリックス再起動できる唯一のプログラム属性=救世主を獲得しているという事実がここで生きてくる。コンピュータでは割り込み処理=トラップを行う。これは強制的にpcを再起動アドレスにジャンプさせる処理だ。例えば漢字キーを押すと日本語処理が起動したり、ESCで動作が変わったり、windowsなら、Ctrl+Alt+DELで強制終了なんかだ。この制御まで暴走していると電源再投入しかないわけだが、それはパソコンレベルのお話。高度なコンピュータで電源オフはまず考えられない。映画の世界ではマシンシティーにまで被害が及ぶ可能性を示唆していたので一大事件なわけだ。はやく暴走を止めなければ…。そして、割り込み処理発生。データ初期化でスミスは光に。再起動してネオのソースをリロードして次のバージョンのマトリックスが運用に入って映画はお終い。

 こう考えると、救世主属性を得た者=トリニティーを受け入れる=ネオは次バージョンのマトリックスソースの保管と再起動属性を得るプログラムへとデータから昇格する物語ということか?すると、前バージョンのネオはプログラムとしてコンバージョンで生きている?
妄想は止まらないのである…


戻る