表示調整
閉じる
挿絵表示切替ボタン
▼配色
▼行間
▼文字サイズ
▼メニューバー
×閉じる

ブックマークに追加しました

設定
0/400
設定を保存しました
エラーが発生しました
※文字以内
ブックマークを解除しました。

エラーが発生しました。

エラーの原因がわからない場合はヘルプセンターをご確認ください。

ブックマーク機能を使うにはログインしてください。
14/37

第14話 未定義の定数を参照してません?

 学生証を使って部屋に戻る。

 机の上にメモと魔導書を開いて、ペンを右手に持つ。


「……これを写せば良いんだよな」


 メモに書かれた文字列。どうやら俺でも読めそうな言語で書かれている。というか、凄く今更な疑問なのだが、俺は何故この世界の言葉を話せて、文字も読めるのだろうか。

 感覚的には、この世界の人間はみんな日本語で話しているように聞こえている。翻訳魔術……のような何かが掛かっているのか、それともこの世界が奇跡的に日本語が公用語の世界だったのか。


「よくよく考えればありえない、あまりに天文学的な確率だ」


 ぼそりと呟いてみるが、今は気にする必要はないだろう。考えても無駄なことだ。

 それより《ファイア・ボール》を模写しなければ。取り敢えず……何も考えずに写してみよう。


「……出来た、か?」


 渡されたメモと一字一句違わないように、魔導書に《ファイア・ボール》の術式を書き込む。

 すると、魔導書がぎろりと赤く光る。嫌な警戒色の光だ。本当に大丈夫だろうか。


「さて、試すか……《ファイア・ボール》」


 詠唱する。が……何も起こらない。

 どころか、魔導書が再びぎらぎらと赤く光る。こんな現象は初めてだ。


「……何か間違ってるのか?」


 魔力が失われる感覚すらもない。つまり、魔術は発動すらしていない。

 なら、術式に問題があると考えるのが妥当だ。一字一句違わずに模写したつもりだが……一応確認してみよう。


 ----

 《ファイア・ボール》


 魔力 consumptionMana;


 consumptionMana = 自己.魔力.充填(FIREBALL_MANA + INPUT);


 炎.発生(consumptionMana / 2).射出(consumptionMana / 2).発動();


 ----


「……あれ」


 なんだ、これは。魔術の術式なのは分かる。それに、書かれているのが《ファイア・ボール》の工程だということも分かる。だが、それがおかしい。俺は、読める。読めてしまう。この術式は……まるで……


「プログラムのソースコード……?」


 あまりにも馴染み深い文体に、思わずそんな声が漏れる。そう、これまさしく前世の俺が扱っていたプログラムそのものだ。実際、この術式に書かれていることは概ね全て理解できる。

 工程としては、『魔力』型のオブジェクトである『consumptionMana』という変数を宣言する。これは要するに魔術で使用する魔力の一時的な器のようなものだろう。そしてそこに『自己.魔力.充填』という関数で魔力を注ぎ込んでいる。

 そして、そのマナを『炎.発生』という関数で半分だけ消費し、次に『射出』という関数で更に半分消費する。最後に『発動』という関数を呼ぶ。そういうことだろう。


「仮に……この術式の処理が正しいと仮定すると……」


 間違っているのは、恐らく……『FIREBALL_MANA』という部分だろう。これは恐らく定数であり、この術式の外部のパラメータを呼び出している。ここが基本消費魔力を定義する部分だとして、『FIREBALL_MANA』なんて定数は用意されていないと怒られているのだろう。多分。だから……


 ----

 consumptionMana = 自己.魔力.充填(10 + INPUT);

 ----


 術式を一行だけ書き換えてみる。試しに直で適当な数値を入れてみたが……どうだろうか。

 書き換えが完了すると同時に、魔導書が白く光る。さっきの赤色の光と違うのであれば、これはプログラムで言うならばビルドが通った状態なのではないだろうか。


「試しに……《ファイア・ボール》」


 ぼうっ、と炎が生まれたかと思えば、それが正面に向かって射出される。シアがやっていたものより一回り小さいが、これは魔力量の影響だろう。ともあれ、成功だ。


「ははっ……マジかよ……」


 思わず乾いた笑いが浮かぶ。すごい高揚感だ。

 この世界の魔術は、プログラミング言語のような形式で記述されている。だから、それを自在に操れる俺という人間は……即ち、魔術を自在に操れる存在なのではないだろうか。


「……まぁ落ち着け、そこまで上手い話もないだろう。例えばこうしたらどうなる?」


 ----

 《ファイア・ボール・マシンガン》


 魔力 consumptionMana;


 consumptionMana = 自己.魔力.充填(50 + INPUT);


 for(int i = 0; i < 5; i++){

  炎.発生(consumptionMana / 2).射出(consumptionMana / 2).発動();

 }

 ----


「《ファイア・ボール・マシンガン》」


 かちりと魔導書が光ったのを確認してから、改造した《ファイア・ボール》を発動してみる。詠唱の際に使うであろう術式の名称も変えてみた。すると……手のひらから先ほどと同じ火球が……5発、連続で放たれる。成功だ……!


「まさかint型もfor文もあるとはな……どうなってるんだよ……」


 当然、魔力消費も5倍だが、一度の詠唱でこれだけの連続攻撃が出来るのだから、有用性に関しては言うまでもないだろう。だが……こんな魔術を使っている人は見たことがない。つまり……


「俺だけの魔術だ……! 師匠の言った通りだ、魔術には無限の可能性がある……」


 今の俺は、相当目をきらきらさせていることだろう。魔術を始めてから、今この瞬間が一番楽しいかもしれない。それほどまでに、魔術を任意に記述できるという事実は、俺の胸を高鳴らせた。

 その後、俺は一晩中、魔術の改造に勤しんだ。無数の改造《ファイア・ボール》を作り……その過程を通じて、この世界における術式の記法を解析する日々が始まった。

評価をするにはログインしてください。
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
― 新着の感想 ―
このエピソードに感想はまだ書かれていません。
感想一覧
+注意+

特に記載なき場合、掲載されている作品はすべてフィクションであり実在の人物・団体等とは一切関係ありません。
特に記載なき場合、掲載されている作品の著作権は作者にあります(一部作品除く)。
作者以外の方による作品の引用を超える無断転載は禁止しており、行った場合、著作権法の違反となります。

この作品はリンクフリーです。ご自由にリンク(紹介)してください。
この作品はスマートフォン対応です。スマートフォンかパソコンかを自動で判別し、適切なページを表示します。

↑ページトップへ