第1-16話 窓から見えた物って、何だ!?
夢を、見ていた…
ザザーーーン…ザザーーーン……
潮騒の響く海岸に立つ1人の幼児。まだあどけない瞳に映るは向こう岸の見えない大海原。
ふと、白く泡立つ波打ち際に何かを見付け、足元が濡れるのも構わずにバシャバシャと走って行く。そして、波の中にしゃがみこみ、それを拾い上げる。
綺麗な色の貝殻を…
幼児はそれを両手に掲げ、見つめ、そして、遥か遠くを眺める。
この貝殻が来たであろう、海の向こうを…
※ ※ ※
某日、午後、ロクスケのスクロールショップ…
ロクスケは目が醒めた。くたびれたソファーの上で。昼夜の別の無い暮らしをしている。このくらい日常茶飯事だ。
「夢………か。」
同時刻、某所…
アゲハは部屋の中を歩いていた。ベッドしか無い部屋の中を。
同時刻、ロクスケのスクロールショップ…
店の2階の住居スペース。ソファーの上で、ロクスケは大きく伸びをした。
(何であんな夢を見ちまったんだ!?合理性に欠けるだろう!?)
同時刻、某所…
アゲハは両手にお湯の入ったタライを持ち、左手に布を下げていた。
同時刻、ロクスケのスクロールショップの2階…
寝ぼけまなこでロクスケは、窓から何気なく外を見つめる。
(あれが俺の記憶の筈がない。あの頃の俺は、もうキンダーガーデンにいたんだから…)
同時刻、某所…
アゲハは床にタライを置き、布をお湯に浸し、ビスチェの胸元を緩める。
同時刻、ロクスケのスクロールショップ…
ロクスケは窓から下を見下ろし、
同時刻、某所…
アゲハは何気なく窓から空を見上げ…
そして2人は、目と目が合った。
ロクスケは、スクロールショップの2階の窓から見下ろす平屋の窓から、身体を拭くために胸元を緩めようとしていたアゲハを見てしまった。
※ ※ ※
数刻後、ロクスケのスクロールショップ…
「最っっっ悪!!!」
アゲハはロクスケをなじった。
「あれは事故だろう…大体お前、何であの家に住んでんだ!?」
こっちだって最低だ。訳の分からん夢に続いて、理不尽な現実ときた。
「前の住人の盗賊を追い出せたはいいけど、ヤバい薬を売ってた借家を借りようって物好きは、豪胆な冒険者くらいしかいないんだよ…」
大家の老婆が言った。
「あー、そう言えばこの辺、道が曲がりくねってて水路の橋を挟んでる上に町名も違うから分かりにくいけど、あの借家、よく考えたら水路を挟んだあんたのスクロールショップの裏じゃない!迂闊だった!本当に迂闊だったわ!!ブツブツ…」
アゲハは引っ越して来ていた。ロクスケのスクロールショップの真裏の、例の盗賊追い出しシティーアドベンチャーの現場になった借家に。ギルドの2階の宿屋暮らしが、流石に不便かつ不経済になったらしい。
「じゃ、2人とも家賃はちゃんと払って頂戴ね。」
そう言い残して、大家は出て行った。それを見送ったアゲハは、
「…ま、そう長くあそこにいるつもりは無いけどね。」
ロクスケはそんなアゲハを一瞥し、
「お互い窓の外には気をつけよう。じゃあ、俺は物書きがあるから…」
そう言って奥へ引っ込んで行こうとするロクスケを、アゲハが止める。
「待ちなさいよ!!」
「…何だ!?」
「もう少し教えなさいよ。あんたの魔法について…というより、あんたの術式について。」
「術式について、だぁ!?」
ロクスケは眉をひそめた。
「…そもそもあの術式って、何!?」
「あのなぁ…いくら俺でも、あんまり何もかも客に教えたら、商売が成り立たなくなる事くらい…」
「じゃああんたがあたしのあられもない姿を覗き見したって言いふらそうかしら…!?」
「事故だし未遂だろう!?」
「それが通じるとでも!?」
「ぐぬぬ…」
女の全裸半裸を見てしまうという事は、呪いで鹿に変えられて連れていた猟犬に食い殺されても文句の言えない大罪だ。ましてや今回は確かに未遂だが、前回ロクスケはアゲハのスカートの中を見てしまった前科がある。
はぁーーー…ロクスケはため息をつき、
「そう言われても、俺も上手く説明出来ないぞ。術式は術式だ、としか…」
「それじゃあ分かんないって。普通の文章でも無いし、単語の羅列にしては法則性がありそうだし…」
「強いて言えば、俺が作った言語だ。」
「作った!?言語!?」
「だから強いて言えばだ。」
「あんな括弧やコンマがいっぱいのが、言語!?」
「だから言ったろう!?上手く説明出来ないし、理解出来なくても術式は使える…」
「確かにあれ、最初の所しか分かんないのよね。ナイトロジェンとやらの球殻と、フロギストンとオキシジェンの混合物の球を作って点火して、力を加えて射出すれば、矢より遠くへ飛んで行く…は分かるんだけど…」
「それだけ分かりゃもういいだろ…ちょっと待て、今、何つった!?矢より遠くへ飛ばしただぁ!?」
投げやりなロクスケの物言いが緊張感を帯びる。ファイヤーボールの射程は、弓矢より短い。ロクスケの術式でも同様だ。
「括弧の中のrmaxってボールの半径でしょ!?あと、中で使ってるdって、球殻の厚さでしょ!?deltadをかけて、球の半径の1/10にしてる…」
「あ、ああ…」
「だからrmaxをすごく小さくして、」
「ふむふむ…」
「deltadを1にしたら遠くまで飛んだわよ。」
「て、定数をその場で書き換えたぁ!?」
「あたし達の周りにエアーがあるなら、その抵抗を受けて遠くまで飛ばせないんだろうと思って小さくして、エアーで飛ばされない様に球殻を厚くしてみたの。まあ、大したダメージを与えれなかったけど、すごいわね、あんたの術式は、あんな事まで出来るなんて…」
(いや、それは想定してなかったぞ!!)
ロクスケはアゲハを見つめた。くそ、こいつ、思ったより整った顔してるな…
(お、俺は、何をしようとしてる!?術式言語の理論を理解されて真似されたら、さすがに商売上がったりだぞ!そういうの面倒くさくって、俺は『南都』の路地裏に引っ込んだんだぞ!!誰も来ない店で、術式の研究だけして…この楽園に異物は無用だろう…)
だが………
「………で、どこから分からないんだ!?」
俺は、何を言ってる………!?
「あの術式って、終わったと思ったら始まって、また終わってるのよね…」
「終わって始まって…ああ、メインルーチンとサブルーチンのエンドの事か…」
「メイン…サブ…!?」
「あの術式は、複数のモジュール…部品で出来てるんだ。”spell”から始まって”end spell”で終わる箇所がファイヤーボールのメインルーチン、”subroutine”から始まって”end subroutine ”で終わる箇所がメインルーチンを構成するサブルーチンだ。」
「何でそんな事を…」
「その説明をする前に…サブルーチンball2の中に、”for i=1 to imax”と、”next i”ってあるだろう!?」
「え…ええ…」
「そこはループ…iを1からimaxまで1ずつ増やしてforとnextの間の内容を繰り返すという意味だ。」
「for、nextが、繰り返し…!?でも、i=1って、iは1じゃないの!?」
「術式言語では、イコールは等式と代入、2つの意味があって、前後の内容によって違うんだ。この場合は後者…代入だ。iに1からimaxまで、1ずつ増やして代入だ。」
「は、はぁ…」
「あと、”if mod(i,n)<n1 then”ってあるだろう!?このifは条件文だ。thenとの間の式が成立するなら、if文以降の内容を実行し、成立しないなら、else以降の内容を実行する。」
「条件分岐…」
「おまけで教えてやる。modは括弧内の前の値を、後の値で割った余りという意味だ。」
「この場合はiをnで割った余りがn1以下なら…」
「n1より小さいなら、だ。余りがn1だったら成立しない。」
「あ、ああ…」
「そして”**”は累乗…”a**n”はaのn乗…aをn回かけあわせるという意味だ。」
「imaxの式にある”rmax**3.0”は、rmaxを3回かけてる…rmax×rmax×rmaxって意味ね…」
「そして、サブルーチンは、何度も使用するロジックを共通部品にして、共用した方が分かりやすいからだ。さっきのサブルーチンball2にも、createmoleってサブルーチンが2個所使われてるだろう!?後の方で、これらサブルーチンの中身も書かれてたはずだ。」
「それが、始まったり終わったりね…」
「とりあえずここまでだ。流石にこれ以上は教えられんぞ。」
「え…たった、これだけ…!?」
「術式で出来る事は限られてるんだ。生成と計算と繰り返しと分岐だけ。それを大量かつ複雑に組み合わせて、火の玉すら飛ばせてるんだ。」
「生成と、計算と、繰り返しと、分岐…」
「お前、こないだの騒動の時、ランクBだって言ってたよな!?」
「………色々あったのよ…」
「優秀なんだったらここから先は自分で出来るはずだ。」
「わ…分かったわ…」
確かに、これ以上詰め込まれても入りそうにない。ここまでを理解出来なければ、より込み入った内容を聞いても理解出来ないだろう。
「俺の術式は既にお前の頭の中にある。そいつと取っ組み合って見る事だな。」
「ある程度理解出来たら…また来る…」
アゲハはスクロールショップを出て行った。1人残されたロクスケは、
「………ま、まあ、これであいつも着いて来れなくなるだろう…」
何故か、寂しそうに言った。




