第29話 魔法とプログラミング

バル(矢島 昌治)Side


「カリーネ様起きて下さい。朝ご飯出来てますよ」

「うーん、もうちょっと寝かしてえな-」

「駄目です。巫女様なのにまた朝のお勤めに遅れちゃいますよ」

「うーん、あとちょっと」

「また、朝ご飯を食べる時間もなくなりますよ」

「んーおきるー・・・すやすや」

「ポチ出番だよ」

「アン!!」

 ポチもすっかり慣れたものでカリーネ様のベッド脇でいつもの様に待機していた。

「あん、もうくすぐったい。ポチちゃん起きた!!起きたって」

「カリーネ様おはようございます」

「おはよう、今朝もポチちゃん元気すぎやわ」


 ユグドラシルに来て2年が過ぎた。僕もポチも寝坊のカリーネ様対策はばっちりだ。いつもの様にカリーネ様を送り出す。


 僕は14才になった。身体も成長し身長も10㎝以上伸びて165㎝位になった。もう少しでロッテ姉の身長を追い越せそうだ。


 この2年間で勉強の方もかなり進んだ。まだ完璧とは言えないが古代文明語もある程度読める様になった。そのお陰で書庫にある本がなんとか読めている。古代文明の遺産と言うべき様々な知識が書庫には溢れている。その本の中には高度な古代魔法について書かれた本もあったのだが僕の魔法知識が追いついていないので理解出来ていない。ハイエルフの人々は折角の知識の宝庫なのに本の内容にはあまり興味がない。何故かは解らないが長寿なので僕らとは価値観もかなり違うみたいだからな。


 膨大な蔵書の中で僕でも理解できそうな本を見つけた。その本のタイトルは「ゴブリンでも解るメニュースクリプト入門」だ。


 なんかやたら懐かしさや既視感を覚えるタイトルだ。ゴブリンではなかったがサルでも分かる○○とか日本のハウツー本やサイトの定番だったのを思い出した。


 興味が向くままにその本を読むと大発見があった。僕たちが今使っているメニューにスクリプトで機能追加出来るのだ。


 早速本に書かれたサンプルを試して見ることにした。


魔道書グリモワール


 呪文を唱え魔道書を召還する。メニュースクリプトは魔墨まぼくを使い決められた書式で魔道書に書き込む事で利用出来るのだ。手書きでコーディングなんて何十年ぶりだろう。前世でも何年もやって無かったからな。


 早速、魔道書の空白ページに魔墨まぼく使い記入する。サンプルの為短いコードだ。間違いもなくあっと言う間に書き終わる。


 メニューを呼び出すと今まで馴染んできた項目の下に「スクリプト」という項目が増えている。それをタップすると目の前に文字が浮かび上がる


『Hello、world!』


 おお、本当に文字が出た。なんか感動するな。プログラムを初めて覚えた時の事を思い出す。サンプルコードそのままだったんだがこれ書いたの絶対日本人だよな。


 しかし、時代が会わない。こう言うメニューのあるRPGゲームとかが出来たのは僕が前世で死ぬ30~40年前位なんだよな。日本のコンシューマ・ゲーム機がその位だったはずだからその前進のパソコン時代の人だったとしても10年も変わらない。それ以前はGUI(グラフィカル・ユーザー・インターフェース)じゃなくてキャラクターベースつまり文字だけだったからな。


 しかしこの本が書かれた古代文明の時代は少なくとも数千年前のはずだ。メニューが作られたのもその頃の様だし。地球とここの時間の流れが異なるか全くランダムになるのかも知れない。


 考えても分からない事は放置して置く事にして、本をさらに読み進めていく。時折書かれて居るサンプルコードをそのまま書いてみたり、少し弄ったりして色々ためしてみることにした。これは前世で何種類も覚えたプログラミング言語と全く同じ感覚だ。


 本を一通り読み終わった後その中のサンプルを魔道書に書き込んでみた。サンプルを入力するのがかなり面倒だ。前世のハウツー本ならサンプルCDとか添付されていたのに全部手書きしないといけないのはかなり辛い。これでは簡単に試すとか試行錯誤が出来ない。これは著者に改善を要求したい。まあ、何千年も前の人なので生きては居ないだろうが。


 そういえば入力はキーボードが無かった時代のコンピュータ誕生期よりも酷い入力方法だ。手書き文字の認識って個人差もあるから、そこそこ高度なテクノロジーなのに違和感がある。しかも入力と違って出力インターフェースは脳内での再生とはいえグラフィカルだ。しかも魔法によって仮想世界ではなく現実世界に干渉まで出来てしまうのだ。かなり滅茶苦茶だよな。コンピュータ使ってロボット・アーム動かすだけでもどれだけ大変か。


 学生の時に学祭のためにロボット・アーム使ってインスタント・コーヒーを入れるプログラムを作った時は何日徹夜したことか。魔法ってやっぱり反則すぎる。


 サンプルの注意書きに「スクリプトの実行は広い場所でお試し下さい。また人に向けて使わないようにしましょう」と注意書きに書かれていた。どこの花火だよと思わなくはないが危険な事をするつもりはない。そこでポチの散歩がてら里から少し離れた草原に来ている。ここならかなりの広さがあり見晴らしも良いので安全だろう。


「アンアン」

 ポチは何処かで兎を狩ったようで口に咥えている。獲物を地面に置くと僕に向かって吠える。

「アン」

「いいよ。ポチお食べ」

「アン」


 ポチは尻尾を振りながら捕まえた兎を食べ始めた。


「ポチのおやつだね。でもポチは本当によく食べるのに大きくならないな。栄養はどこに行ってるんだろう」


 最近ポチはお散歩に出かけると獲物を狩って自分のおやつにしている。ちゃんと食事は与えて居るのに本当にポチは食いしん坊だ。


 しかし僕は10㎝以上も身長が伸びたのにポチは2年前と変わらず子犬のままだ。少しは身体も大きくなってるので成長はしている。ただ余りにも成長が遅く心配になりカリーネ様に相談した事もある。その時のカリーネ様の見立てでは成長はしているので問題はないだろうと言われた。ポチは魔力があるのでどうやら魔物らしい。そのため普通の犬とは違う成長速度なのだろう。


「ポチー、迷子にならないように遠くにいくんじゃないぞ」

 早速兎を食べ終わってまたどこかに向かうポチに一応注意しておく。

「アン!!」

 ポチが元気よく尻尾を振りながら返事する。かなりご機嫌で食後の腹ごなしのようだ。

「魔法の実験するからあっちの方には行かないようにね」

「アンアン」

 分かってるよ!!と言いたげな感じでポチは返事をしてきた。とりあえずポチは放っておいて良さそうなので早速スクリプトの実験を始める。


 まずはこれからだな。僕はメニューからスクリプトを選択して『サンプル1』と書かれたスクリプトを実行する。予め用意しておいた標的に向けて魔法の狙いをつけた。僕の目の前に握り拳くらいの小さな岩が精製される。岩はゆっくりと赤く染まり始める。段々岩から熱気が伝わってくる。やがて岩の表面がドロドロとし溶け始める。ドロドロは表面を対流しているようで落ちることは無い。岩がボッっと炎を上げ目標に向かって飛び出した。溶けた岩は見事に標的に命中し大きな音を立てて爆散した。


「アンアン!!」

「う、ポチごめん僕もあんなに大きな音が出るとは思って無かったんだ」


 余りに大きな音だったのでポチもビックリした様で怒られてしまった。標的も粉々に砕け散ってしまっている。さらには溶けた岩の破片が砕けた事で散らばった破片によって周辺が黒焦げになっている。


 サンプルなのに威力強すぎだよ。発射までに時間かかりすぎる。さらにはMPも半分くらい持っていかれた。とてもではないが実際には使い物にならないな。まあ、前世でも大抵サンプル・プログラムってのは役には立たないものだけどさ。役に立たない上に危険ってどう言う事だよ。


 他のサンプルも試すつもりだったけどMPが持ちそうにない。一日1つ位しか試せないか。精霊族ならMPも多いから2,3回は試せそうだけど。まあ、人族の僕じゃどうしようも無い。


 少し時間を置いてMPを回復させれば僕でも一日2回くらいならいけるかな? それもで効率が悪いのには変わらないか。


 とりあえずテストは置いて出来る事をしよう。まずは先程の『サンプル1』を改名しよう。そのままでも良いけど後で見ると何か分からなくなってしまうからな。


 「魔道書グリモワール


 魔道書を呼び出して白紙のページを開く。


【改名 サンプル1 溶岩射出】


 魔道書に文字を書き込みしばらくすると文字は消えた。その後メニューを見ると『サンプル1」が『溶岩射出』に変わっている。


「うん、出来たな」


 魔道書に決められた書式で文を書き込むとメニューを操作出来る。これもスクリプト入門にいくつか紹介されていた。コマンドを入力してファイルを操作するとの同じ感覚だ。昔のDOSやUNIXのテキスト・ベースのインターフェースを思い出す。まさにコマンド入力そのままだよな。


 しかし、パソコンとの共通点がやたら多いな。でも本にペンで書き込むのはかなり面倒だ。ここまで似ているんだからディスプレイとかキーボードとか無いのかな? もしあるなら作業効率もかなり上がるんだけど。


 改めて『溶岩射出』のスクリプトを見てみる。最初に土魔法で岩を生成して火魔法を繰り返し岩にかけている。繰り返し火魔法を使うことで岩に熱を蓄積させているようだ。確かに威力は大きくなるがこれだけ火魔法を繰り返すと時間も魔力も多く消費するのは当然だ。火魔法の回数を減らせば単純に消費魔力と発動までの時間は減るけど威力は下がる。もっと効率良くならないのかな。


 試しに最初の土魔法で岩を生成するのをやめて任意の対象物に火魔法だけを重ね掛けするようしてみた。あとループ回数を変数にして火魔法の回数も指定できるように変更してみた。これなら魔力消費はかなり少ないはずだ。


 とりあえずスクリプトを変更し終わったので早速ためしてみる。手近に落ちていた小石を拾いスクリプトを実行する。まずは試しなので火魔法を1回だけ動かす様にする。


「うーん、ほんのり暖かい?」


 一回だとMP消費は1だった。炎さえ出てないし小石が魔法で温められたのか僕の体温で温まったのか区別が付かない。


 落ちている別の小石をターゲットにして今度は10回火魔法をループさせてみる。小石の見た目に変化はない。魔法を10回使ったのだから10減っているはずだけど5しか減っていない。計算が合わないな。もしかすると本来の消費MPは0.5で小数点以下は切り上げとかなのか? 消費するMPに小数点以下の単位ってあったんだな。とりあえず消費MPの事は置いておいて指で温めた小石を触ってみる。


「熱っ」


 見た目に変化が無かったので油断した。火傷する程ではないが石は熱くなっていた。イマイチ使えないな。あ、石焼き芋作るのには便利かも・・・


「いや、待てよ」


 MP消費が1未満もあるって事は魔法を使ってない時の魔力を無駄にせずにMPの最大値を効率良く上げられるんじゃないだろうか。それにスクリプトは意識を集中しなくてもバッググランドで勝手に動いている。上手く使えば多重詠唱とかも出来そうだ。


 とりあえず先程のスクリプトを変更して実験だ。火魔法は危険そうだから風魔法に置き換えて無限ループを作る。さらにMPが満タンの時だけ魔法を発動するようにする。


「よし、出来た」


 今作ったスクリプトを意識せずに使える様にバッググランドで実行しておく。今はMPが減っているしMP最大値が増えるのは時間もかかりそうだからしばらくは様子見だ。


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

作者を応援しよう!

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

応援したユーザー

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

新規登録で充実の読書を

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

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

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