第七話 消してはいけない一行
火種の魔法にある、理由不明の上限。
mana = min(mana, 10)
必要魔力が十五と計算されても、実際に確保する量を十へ抑える処理だ。
それから一週間、俺はこの一行が気になって仕方なかった。
帳面を開いては、考える。
上限を外せば炎は安定する。しかし消費が増える。
では、必要魔力の計算を変えればいいのか。
基本費用四。制御費用は`power + 1`。予備費用五。
火種一つに予備が五も必要なのか?
不要なら削れる。
だが「予備」という名前だけでは、それが何のためか分からない。
「お兄ちゃん、ごはんだよ」
ミアが部屋を覗き込んだ。
「今行く」
「また数字見てるの?」
「見てる」
「楽しい?」
「分からないから楽しい」
「へんなの」
五歳児に正論を言われた。
◇
答えは、次の講習で思わぬ形から見つかった。
その日は風が強かった。
ハンナ先生は火の練習を中止し、集会所の中で魔法史の話をするつもりだったらしい。
ところが、昼前になると風が弱まった。
「短時間だけ、外で復習をしましょう」
先生は地面が湿っている場所を選び、子供たちを並ばせた。
俺はいつものように、先生の隣で記録係だ。
木箱の上には、前の講習でも使った小型の測定水晶が置かれている。正確な消費魔力は、人の感覚ではなく、この道具で記録する。
一人目の子が蝋燭へ火を灯す。
二人目も成功。
三人目の少女が手を出した時、急に強い風が吹いた。
「きゃっ」
火種が蝋燭を外れ、地面へ流される。
近くには濡れた土しかない。危険はないはずだった。
それでもハンナ先生が、すぐに手をかざした。
飛んだ火が、空中で小さく弾けて消える。
その瞬間、俺には奥の処理が見えた。
reserve_cost = 5
if target_lost:
extinguish_fire(reserve_cost)
予備の五。
対象を外れた火を消すために確保されていた。
「これか……!」
もし効率だけを見て`reserve_cost`を削っていたら、飛んだ火は消えなかった。
俺が工房の布を焦がした時と同じだ。
「レオン?」
「先生、今の火を消すのに、魔力を五くらい使いましたか?」
先生は測定水晶に浮かんだ`5`を確かめた。
「ええ、水晶も五を示しています。よく分かりましたね。火種の術式は、制御を外れた時のために一部の魔力を残します」
「いつも使うんですか?」
「いいえ。正常に火が灯れば、残った魔力は術者へ戻ります」
消費されるとは限らない。
必要な時のために予約している。
前世でいえば、例外処理用の余裕だ。
「なら、削っちゃ駄目だ」
帳面の「削除禁止」を、二重線で囲む。
「何を削るつもりだったんです?」
先生の声が低くなった。
「実行はしてません」
「何を?」
「火を消すために残してある魔力が、無駄なんじゃないかと思って」
先生はしばらく黙った。
「確認しますが、本当に消してはいませんね?」
「はい。理由が分からなかったから」
「それならよろしい」
少しだけ表情が和らぐ。
「魔法の術式には、使う人が意識していない働きもあります。普段は見えないからといって、不要とは限りません」
「身にしみました」
壁の焦げた布を思い出す。
今回は、消す前に理由を見つけられた。
だが、問題の上限はまだ残っている。
必要魔力十五のうち五は、緊急消火用に予約される。上限十では、通常の火を作って制御する分だけで全部使い切る。
だから炎が揺れる。
上限を外せば安全機能まで正しく働くが、初心者には負担が大きい。
「どっちかを選ぶしかないのかな」
安定性か、消費量か。
先生が使う標準術式は、消費量を十へ抑え、普段の安定性を少し落としていた。ただし対象を失った時には、通常制御の魔力を緊急消火へ回している。
不格好ではある。
でも、長い間事故を防いできた。
クソコードだと笑って、消していい処理ではなかった。
「レオン、難しい顔をしてる」
休憩中、さっき火を飛ばした少女が心配そうに言った。
「私、何か変なことした?」
「ううん。君のおかげで分かったことがある」
「失敗したのに?」
「失敗した時にしか動かないものもあるから」
少女はよく分からないという顔をしたが、最後には笑った。
正常に動いている時だけ見ても、安全な魔法かどうかは分からない。
失敗した時、どう動くのか。
それも確かめなければならない。
俺は帳面へ、新しい項目を書き足した。
正常時。
魔力不足時。
対象を外した時。
途中で止めた時。
魔法を直すために必要なのは、正しい答えを一つ出すことではない。
間違った時に、どれだけ安全に失敗できるか。
その仕組みを守ることも、修理の一部なのだ。




