第7話

確かに、そう考えれば全ての辻褄が合う。


この世界が、あまりにも俺にとって都合の良い牢獄であった理由が。


この世界で、死のうとも終わることが出来ない理由が。


俺は世界自体に強制されていたのだ。


主役であることを。英雄であることを。


腹の底から、冷たい怒りが込み上げてきた。何者かの掌の上で踊らされていたことへの怒り。そして、それに何の疑問も抱かず、与えられた幸福に満足していた無知な『一周目の俺』に対する、どうしようもない自己嫌悪と怒りだった。


この王国の首都に極大魔法をブチこんでやろうかとも思ったが、もう既に何度もしていることを思い出す。


落ち着け。彼らも駒に過ぎないのだ。


見つかった新たな謎から、この先のことを冷静に考える。


あの壁の向こうに、まず間違いなく何かがある。


俺の頭の中に、はるか昔、転生したときのことが思い出される。


「神……」


脳裏に、白い光の球体が浮かぶ。


あの時、神を名乗った存在がいた、どこまでも白い無機質な空間。


あの空間と、先程目にした『システムメッセージ』。バラバラだったピースが、脳内で音を立てて繋がった。


「……デバッグルームか」


そうだ、間違いない。あの壁の奥にあるのは神域などではない。この世界というプログラムを管理するための、開発者用の空間だ。


とすると、あの壁を突破する他ない。


あの壁はアクセスレベルとか言ってたな。


あの壁を突破するには、あの壁にアクセスする権限を得るか、あの壁自体をなんとかして迂回するか……だろう。


アクセス権限、か。そんなものを手に入れるための『クエスト』が、この世界のどこかに用意されているのかもしれない。


だが、魔王を倒し、ありとあらゆる伝説をなぞってきたこれまでのループで、そんなものは一度も手に入らなかった。今からそれを探すのは、あまりにも非効率だ。


魔王は何度も倒した。王様にも色々聞いてみた。


しかしそれらしいものは何も手に入らなかったはずだ。


今から改めて訊きに行くか? いやそれも億劫だ。


ゲート……」


そうだ。ゲートだ。


あれがあれば、壁の向こうまで行けるかもしれない。


俺はあの壁の向こうをイメージしながら改めて扉を出現させ、それを開いた。


扉の向こうには……あの壁があった。


思わず舌打ちが漏れる。


壁の向こうには行けないようだ。


俺は項垂れながらゲートの扉により掛かる。


……ん?


ふと、奇妙な考えが頭をよぎった。


魔法に対して『鑑定』を使ったら、何が表示されるのだろうか?


通常の魔法は発動すれば消えてしまう単なる『現象』だ。


だが、この『門』は違う。


扉という実体を持って、この空間に『オブジェクト』として存在し続けている。

ならば、あるいは――。


俺はゲートに手をかざし


鑑定インスペクト


と唱えた。


すると即座にウィンドウが開き、


『既に行ったことのある二点間を扉で繋ぐ魔法』


との説明があった。無論そんなことは知っている。


俺は恐る恐る、その『ウィンドウ自体』に対して、更に『鑑定』と唱えた。


// --- Class Definition: App_Gate ---

// Application ID: 003

// Permission Level: User


public sealed class App_Gate

{

// --- Properties ---

private List<Vector3> KnownCoordinates; // 踏破済み座標リスト

public readonly string AppName = "転移門";

public readonly string Description = "既に行ったことのある二点間を扉で繋ぐ魔法";


// --- Constructor ---

public App_Gate()

{

// プレイヤーの移動履歴をロード

this.KnownCoordinates = Player.MovementHistory.Load();

}


// --- Method: Execute ---

public bool Execute(Vector3 target_A, Vector3 target_B)

{

// 検証:座標Aは踏破済みか?

bool isKnown_A = this.KnownCoordinates.Contains(target_A);


// 検証:座標Bは踏破済みか?

bool isKnown_B = this.KnownCoordinates.Contains(target_B);


// 条件分岐:両方の座標が踏破済みの場合のみ、trueを返す

if (isKnown_A && isKnown_B)

{

// ゲート生成処理をコール

GenerateGatePair(target_A, target_B);

return true; // 成功

}

else

{

// 失敗メッセージを表示

System.UI.ShowMessage("指定された座標には移動できません。");

return false; // 失敗

}

}

}


心臓が高鳴ることがわかった。


間違いない。この魔法は『アプリケーション』だ。


俺は続けてこう唱える。


上書きリライト


そして俺はこの文章を少し書き換える。


bool isKnown_A と bool isKnown_B。この二つの変数が、移動先が『踏破済み』かどうかを判定している部分だ。


俺は迷わず、この判定結果を強制的に『true(真)』、つまり『踏破済み』であると書き換えた。


これで、システムは俺がどこを指定しようと『行ったことのある場所だ』と誤認するはずだ。


事実上、あらゆる場所への扉が開かれたことになる。


しかし、俺ははっとした。これは明らかに世界をハッキングする行為だ。


もしかしたら、この世界には不正を修正する力もあるのかもしれない。


俺は周囲を警戒する。しかし、何も起こらない。


いや、冷静になれ。寧ろこの世界が俺をイレギュラーとして排除、抹殺してくれるならその方が好都合だ。待ちに待った死を迎えられるのだから。


暫く周囲に注意を払う。予想に反して、先ほどと同じく不愉快な風の感触が頬を撫でるだけだった。


どうやらこの世界そのものに手を加えたとしてもペナルティのようなものはないようだ。


俺は今までの経験から薄々感づいていた仮説がほぼ確信に至った。


『この世界は質が低い』


この世界を何周も冒険しているころからそうだった。


世界の分岐パターンが少ないのだ。


世界を強引に分岐させようとしても、その先にそれを予想した道があるというよりは、無理やり今までの道に戻そうとするような力がはたらくことが多かった。


この世界はいくつかの『テンプレート』を継ぎ接ぎした以上の展開にはならない。


俺はそんなつまらないものと戦わされているのかと大きくため息をついた。


そんなつまらないものに囚われている俺はなんなのだ。


俺は胸中に渦巻く不快感を抑えながら再び初期地点に戻ると、壁の向こうをイメージしながら、ゲートを出現させ、その扉を開いた。

  • Xで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る