第一話 魔法がコードに見える
目を覚ますと、知らない女性が泣いていた。
「レオン……!」
いや。
知らない女性ではない。
母さんだ。
エマ・アステル。三十四歳。薬草を煎じるのがうまくて、怒るときほど静かな声になる。俺が熱を出してから三日間、ほとんど眠らずに看病してくれていた。
どうして、そんなことを知っている?
俺の母親は日本にいる。もう何年もまともに帰省していないが、名前はエマではない。
「母、さん……?」
自分の口から出た声は、驚くほど幼かった。
母さん――エマは、何度もうなずいた。
「ええ。ここにいるわ。もう大丈夫よ」
額へ触れた手は、少し冷たくて気持ちがよかった。
その後ろから、髭の濃い男が身を乗り出す。
「分かるか、レオン? 俺だ。父さんだぞ」
ガイル・アステル。父さん。魔導具の修理職人。大きな手に細かな傷がたくさんある。心配事があると、右の眉尻を指でこする癖がある。
その服の裾を、小さな女の子が握っていた。
「おにいちゃん、しなない?」
ミア。五歳。俺の妹。甘い木の実が好きで、先週、俺のぶんまでこっそり食べた。
俺は八歳。
レオン・アステル。
それは誰かから教えられた情報ではなかった。
昨日までのこととして、確かに覚えていた。
庭の古い柵を越えようとして転んだこと。母さんの薬草籠をひっくり返して一緒に拾ったこと。父さんの工房へ忍び込み、尖った工具に触ろうとして叱られたこと。ミアが生まれた日、小さすぎて壊れそうだと思ったこと。
全部、俺の記憶だった。
同時に、神谷湊として生きた二十九年も、俺の中にあった。
学校へ通い、就職し、コードを書き、三日近く眠らず、午前四時過ぎに倒れた。
ふたつの人生が頭の中でぶつかり合う。
知らない情報を無理やり詰め込まれた感じではない。ずっと閉じていた引き出しが、熱に浮かされた拍子に全部開いてしまったようだった。
「……だいじょうぶ」
そう答えるのが精いっぱいだった。
ミアが泣きながら笑い、寝台へ飛びついてくる。小さな額が脇腹に当たって、少し痛い。
でも、その痛みのおかげで分かった。
夢ではない。
俺は死んだ。そして、レオンとして生きている。
もっとも、その結論にたどり着いた直後、母さんに苦い薬を飲まされ、俺はまた眠ってしまった。
異世界転生の感動より、薬のまずさのほうが強かった。
◇
自分が異世界にいるのだと認めるまで、一週間かかった。
電灯はない。水道もない。窓の外を馬車が通り、銅貨でパンを買い、夜になると父さんが魔導灯へ魔力を流す。
その魔導灯は、拳ほどの白い石を淡く光らせる道具だった。
火を使わず、煙も出さない。
どう見ても、前世の地球にはなかった技術である。
最初は、前世知識で何か発明できないかとも考えた。
石鹸。印刷。蒸気機関。定番ならいくらでも思いつく。
だが、作り方は知らない。
俺は業務システムのプログラマであって、万能技術百科事典ではなかった。石鹸が油と何かを混ぜるらしい、という曖昧な知識で商品化に挑めば、たぶん最初に皮膚を痛める。
そもそも八歳児には、資金も信用もない。
世界を変えるより先に、起き上がって朝食を食べるほうが重要だった。
体調が戻ると、俺は以前と同じ生活へ戻った。
母さんの薬草を干すのを手伝い、ミアと薪を拾い、父さんの工房で邪魔にならないよう修理を眺める。
父さんの工房には、壊れた魔導具が毎日のように持ち込まれた。
「この冷却箱、昨日から急に冷えなくなったんだ」
「急に、か。その前に音や光り方は変わらなかったか?」
「そういえば三日前から、少し唸ってたな」
父さんは、すぐに部品を交換しない。
持ち主から症状を聞き、魔石の残量を測り、導線を一本ずつ確かめる。別の魔石をつないで動作を比べ、故障箇所を少しずつ絞り込んでいく。
その姿は、ログを追って障害原因を探す作業によく似ていた。
「ここだな」
父さんが、細い金属板の一部を示した。表面には複雑な模様が刻まれている。
「術式板の端が焼けてる。魔石を替えても、これじゃ魔力が途中で止まる」
「全部、取り替えないの?」
「必要ない。壊れたのはここだけだ。使えるところまで捨てたら、客が払う金が増えるだろ」
父さんは焼けた部分を削り、細い工具で線を引き直した。
魔石をつなぐ。箱の中から低い音がして、やがて冷たい空気が流れ始めた。
父さんはそれで終わりにせず、蓋を開け閉めし、しばらく温度を測った。
「直ったのに、まだ調べるの?」
「一度動いただけじゃ、直ったとは言わん。客の家でまた止まったら困る」
思わず笑ってしまった。
「どうした?」
「ううん。父さんらしいなって」
前世でも、似たようなことを言っていた気がする。
修正したら、再現確認。周辺への影響も確認。直ったように見えることと、本当に直っていることは違う。
結局、こっちの世界でも、俺は壊れたものを直す人のそばにいるらしい。
◇
二年が過ぎた。
十歳になった俺は、村の集会所で基礎魔法の講習を受けていた。
十二歳から魔法学院を受験できる。その前に、素質のある子供へ安全な魔力操作を教えるため、月に二度、町から魔法使いが来るのだ。
講師の名はハンナ先生。灰色の髪を後ろで束ねた、小柄な女性だった。
「魔法で一番大切なのは、強い力を出すことではありません」
集まった十人ほどの子供を前に、先生は言った。
「自分が何を起こそうとしているか、きちんと意識すること。そして、止め方を覚えることです」
いい先生だ。
少なくとも、最初の授業で本番環境を触らせるタイプではない。
「今日は火種を作る魔法を見せます。小さくても火は火です。絶対に、ひとりで真似をしないこと」
先生が右手を伸ばした。
短い詠唱とともに、指先へ赤い光が集まっていく。
次の瞬間。
俺の視界に、半透明の文字が浮かんだ。
power = 5
mana = 10
create_fire(power)
「…………Python?」
思わず声が出た。
隣に座っていた少年が、怪訝そうにこちらを見る。
「ぱいそん?」
「いや……なんでもない」
なんでもなくはない。
先生の指先には、小さな炎が浮かんでいた。
その手前に、どう見てもプログラムコードが表示されている。
`power`に数値を入れて、`create_fire`を呼び出す。知らない関数はあるが、書き方は前世で何千回、何万回と見たPythonそのものだった。
目をこする。
文字は消えない。
顔をそむけると薄れ、炎へ意識を戻すと鮮明になる。
「では、消します」
先生が指を閉じる。炎と同時に、コードも消えた。
俺の心臓が速くなる。
もう一度、先生が同じ魔法を使う。
コードが現れた。
power = 5
mana = 10
create_fire(power)
間違いない。
魔法の内部処理が、コードとして見えている。
ただ、一つ気になる。
`mana = 10`と代入しているのに、表示されている範囲ではその変数を使っていない。
魔力は消費されている。ならば、見えている数行の外で参照されているのか。それとも、別の処理が省略されているのか。
俺がそこへ意識を向けると、薄い文字の奥に、さらに何かがあることに気づいた。
折り畳まれた大量の処理。
古い日付らしき数字。
同じ名前で繰り返される判定。
一瞬だけ見えた条件分岐は、どういうわけか、同じ条件を二度確認しているように見えた。
何だ、これ。
表面はたった三行なのに、その下へ古い処理が何層にもぶら下がっている。
ぞくりとした。
恐怖ではない。
仕様書のない巨大システムを初めて開いたときと同じ、嫌な予感だった。
同時に、どうしようもなく中身を読みたくなる。
「レオン・アステル」
「はいっ」
名前を呼ばれ、俺は立ち上がった。
「次はあなたです。火を出そうとせず、まず魔力を手のひらへ集めてみましょう」
先生に言われた通り、右手を前へ出す。
レオンとして十年間使ってきた感覚を探る。胸の奥にある温かなものを、腕から手のひらへゆっくり移す。
淡い光が集まった。
視界に文字が現れる。
power = 1
mana = 1
今度は先生の魔法ではない。
俺自身が、これから実行しようとしている処理だ。
半透明のコードの末尾で、細い縦線が点滅していた。
カーソル。
視界の下へ、見慣れた配列がゆっくり浮かび上がる。
文字の並んだキー。スペースキー。エンターキー。
何年も触っていたものと寸分違わない、半透明のキーボードだった。
周囲を見回す。
先生も、ほかの子供たちも、俺の手のひらに集まった光しか見ていない。
キーボードへ、恐る恐る指を近づける。
物理的な感触はない。
それでもカーソルは、俺の入力を待つように明滅していた。
読むだけじゃない。
ここにある数字を選んで、別の数字を入力したら――。
「まさか……編集できるのか?」




