お家へ帰ろう【魔導書視点】
ジャイアントスパイダーとの戦闘の後、エイダはしばらく川でパシャパシャ音を立てていた。洗っているような音がしたので、髪や服などを綺麗にしていたのかもしれない。9歳でも女の子だし、身だしなみを気にするのかな?
『あれから何年がたった?』
ふと頭に過ぎった。不安が押し寄せる。とても長い年月が経ったような気がする。キーボードを取り出し、自分に残された最後のHTMLファイルを編集する。
<SCRIPT>
console.log(new Date());
</SCRIPT>
保存し、若干手を震わせながら更新する。
--------- console --------
Sat Nov 11 1052 15:07:15
--------------------------
コンソール・ウィンドウに表示された文字の羅列に、乾いた笑いしか出なかった。
千年近く、眠っていたのか…。流石にもう誰もいないだろう。長寿のエルフだったとしても無理だ。国でさえ存続しているのか疑問だ。
あぁ、もう一度みんなに会いたかった。あれが最後なんて。
どうして私だけが、生き残ってしまったのか……
「傷を治す魔法はないの?」
負のスパイラルに落ちかけていた時、エイダの声がした。森の中を歩き、帰路に就いているようだ。
傷を治す魔法『ヒール』があれば、救えた命は沢山あった。どんなに二人でその魔法を渇望したか。日夜、研究を重ねたが、そんな便利すぎる魔法が存在するには『この世界は理不尽に現実的』過ぎた。
「そんなものはない」
ついぶっきら棒に答えてしまった。エイダは何も悪くない。何八つ当たりしているのか、大の大人が!
しばらくエイダは無言で歩いた。
「なぜ魔道書さんは、こんな寂しい森の奥にいたの?」
エイダがめげずに質問してきた。
だが頭の中はゴチャゴチャだ。まだ心が追いていない。エイダに優しく答えられそうにない。
「長い眠りから覚めたばかりで、まだ記憶が曖昧だ」
また突き放した言い方で言ってしまった。時間を置いて、気持ちを整理してからではないと無理だ。すまない。
エイダはしばらく黙々と歩く。
途中なにか物を拾っていた。カゴに入った草がカサカサ音を鳴らす。
…………
ち…沈黙がつらい。罪悪感が。
ここは大人の自分から声をかけないと。何か良い話題はないか?
う〜ん、最後の会話から一時間近く経っているような気がする。それにもう11月だから、日没はかなり早かったような?
よし!時間を確認しよう。また「年」を見ると鬱になりそうだから、「時」と「分」だけを表示する。
<SCRIPT>
var date=new Date();
console.log(date.getHours()+":"+date.getMinutes());
</SCRIPT>
保存と更新。
--------- console --------
16:27
--------------------------
あら、結構いい時間になってますね。よし、良い会話の材料になりそうだ。
「この時刻になると、もう暗いんじゃないのか?」
エイダに尋ねる。答えてくれるかな?
「うん、暗くて少し歩きにくい」
先ほど少し邪険に扱ってしまったのに、ちゃんと答えてくれた。やっぱりこの子は良い子だ。この子の為に何かしてあげたい。そうだ、歩きやすいように光を照らそう。
「了解した」
早速、魔法の準備に取り掛かる。光だけを効率的に作りたいが、使える素材は今手持ちにない。
かなり非効率的だが、「火」を作ろう。ロウソクの様な火だ。
エネルギーのほとんどが「光」ではなく「熱」になってしまうのは勿体無いが、夜は寒いので少しは暖かいかもしれない。
空気中の水(H2O)と二酸化炭素(CO2)を分解し、素材からメタン(CH4)を合成する。
そして合成されたメタン(CH4)を燃焼して、元の水(H2O)と二酸化炭素(CO2)に戻る。この燃焼時に熱と光が作られる。
化学反応式にするとこんな感じ
2 H2O + CO2 => CH4 + 2 O2
CH4 + 2 O2 => 2 H2O + CO2 + 熱 + 光
メタンを合成しては燃やし、合成しては燃やし、を永遠と繰り返す。うん、非効率的だ。
魔術を組み上げた。
エイダの頭の上に1秒間に1000回、メタンを合成する魔法。
最初の一回は温度を1000度以上にして、自然発火させる(メタンの自然発火温度は632度)。
後はsetTimeoutで永遠とメタンを合成する関数を呼び続ける。
止めるときはページを白紙に編集して更新するという、かなりやっつけな感じ。
<SCRIPT>
//頭の上の座標を得る為に、重力の向きを単位ベクトル(単位m)にて入手
var span=1.2;//単位はm
var r1=0.2;//単位はm 20cm
var r2=0.001;//単位はm 1mm
var amount=0.0005/1000;//単位はmol/ns
var ax=Environment.gravity.ax;
var ay=Environment.gravity.ay;
var az=Environment.gravity.az;
var length=Math.sqrt(ax*ax+ay*ay+az*az);//長さを計算(おそらく9.8)
ax/=length;
ay/=length;
az/=length;
boolean ignited=false;
window.onload(){create_methane();}
funtion create_methane(){
var x=master.x-span*ax;
var y=master.y-span*ay;
var z=master.z-span*az;
var inhale=new Environment.Coordinates(x,y,z,r1);
var exhale=new Environment.Coordinates(x,y,z,r2);
var h2o_elements=inhale.collect(Chemistry.WATER,2*amount).decompose();
var co2_elements=inhale.collect(Chemistry.CARBON_DIOXIDE,amount).decompose();
var reaction=new Chemistry.Reaction().addMaterial(h2o_elements).addMaterial(co2_elements).;
var methane=reaction.synthesize(Chemistry.METHANE,amount);
var oxygen_molecule=reaction.synthesize(Chemistry.OXYGEN_MOLECULE,2*amount);
exhale.release(methane);
exhale.release(oxygen_molecule);
if(!ignited){exhale.increateTemperature(1000);ignited=true;}
setTimeout(create_methane,1);//1秒間に1000回
}
</SCRIPT>
面倒だけど、ちゃんと計算して検証しとかないと。あらぬ所に火が出現したら困るし、量を間違えて爆発しても困る。
使い捨てライターの火を最大にして2分間連続点火した場合、ガス使用量は平均0.2gだとか。
ライターの燃料は主にブタン(58.12g/mol)が使われているので1分間に使うブタンの量は
0.1g/min / 58.12g/mol = 0.001720578mol/min
ブタンの燃焼熱は2859kJ/molなので、1分間に使うエネルギー量は
0.001720578mol/min x 2859kJ/mol = 4.919kJ/min
一時間使った場合は
4.919kJ/min x 60min/hr = 295.1479697kJ/hr
約300kJか。エイダのMPは3000kJなので、10時間程ライターの火を灯す事ができる計算。
さてと今回はブタンではなくメタンを使う。メタンの燃焼熱は888kJ/molなので合成できる量は
3000kJ / 888kJ/mol = 3.378mol
2時間火を灯すとして、1時間に使える量は
3.378mol / 2hr = 1.689mol/hr
一秒間に使える量は
1.689mol/hr / (60min/hr x 60sec/min) = 0.000469219mol/sec
よし、一秒間に0.0005molのメタンを合成することにしよう。
次はメタンを作るために必要な材料、二酸化炭素と水の計算だ。両方とも空気に含まれているのだが、どのくらいの空気が必要なのだろうか?
気体1molの体積が標準状態では22.4リットルなので
1 / 22.4L/mol = 0.04464mol/L
空気の組成はこんな感じ。
窒素 78.084%
酸素 20.9476%
二酸化炭素 0.039%
二酸化酸素の割合は0.039%なので
0.04464mol/L * 0.00039 = 0.0000174mol/L
0.0005molのメタンを合成する場合、必要な空気の材料は
0.0005mol / 0.0000174mol/L = 28.72L
28.72Lの空気ってどのくらいだろうか?キッチン用のゴミ箱ぐらいの大きさかな?
さて次は水分子はどのくらい含まれているか、飽和水蒸気量で計算しよう。
e=6.11×10^(7.5t/(t+237.3)
a=217×e/(t+273.15)xrh/100
森の中の温度を10度ぐらいにして、湿度を50%として、4.7gの水が1立方mの空気に水が含まれる。
4.7g / 18.01528g/mol = 0.26mol
水のモル質量が18.01528g/molなので、1立方mの空気の中には0.26molの水が含まれる。
1立方m = 1000Lなので
0.26mol/m3 * 0.001m3/L = 0.00026mol/L
1Lの空気には0.00026mol/Lの水が含まれる。
0.0005molのメタンを合成する場合二つ水分子がいるので、必要な空気の材料は
0.0005mol x 2 / 0.00026mol/L = 3.846L
二酸化炭素の材料に必要な空気の量は28.72L
水の材料に必要な空気の量は3.846L
二酸化炭素の方が、空気は沢山必要か。まぁ空気に0.039%しかないし、当たり前か。
基準は二酸化炭素の28.72Lにして、この量の空気を扱うには、どのくらいの半径が必要なのか?
その前にLを立方mに変えておこう。
28.72L x 1 m3 / 1000L = 0.02872m3
球体の体積はV=4/3πr^3なので、それを変換して
r=(3*V/4/π)^(1/3)
r=0.19m
半径20cmの球体なら、28.72Lの空気を十分確保できる計算になる。
次は球体の座標を計算しておかないと。
エイダを取り巻く環境(Environment)から重力の向きから頭上の方向を計算する。
重力は下に向かっているので、ベクトルを反対にするだけ。
長さ(おそらく9.8になるはず)で割っておいて、単位ベクトルにしておく。
エイダの身長が140cm(9歳の平均135cm)ぐらいだとして、体の中心から頭まで70cm。
合成に必要な空気を取り込む座標を1.2m(頭上50cm)で半径20cm(r1)にする。
30cm余分があるから大丈夫と思う。背そんなに高くなさそうだし。
メタンガスを放出する座標は同じだが、半径を小さくして1mm(r2)にする。
歩く速度は1m/s。一秒間に1000回少量のメタンを作り続けるので、炎と合成されるメタンの距離は離れても1mm。連続して燃焼するはず。というかして欲しい。
はぁ、疲れた。もう計算ヤダ。ぶっつけ本番で起動しちゃおう。駄目だったら駄目で、直せばいいし。
保存と更新。上手くいってくれ、上手くいってくれ。
「凄い」
エイダが歩みを止め、ボソッと無意識に呟いた。上手くいったようだ。歩き始めても「火が消えた」と言ってこないので、問題なく連続して燃焼しているみたいだ。良かった。
やはり人の役に立つのは嬉しい。もう人としては生きられないが、それでも誰かの役に立ちたい。国家とか英雄とか魔王とか、もう疲れた。普通に暮らして、普通の幸せを味わいたい。
エイダに私の事を秘密にしてくれと交渉してみる。もう私の事を知っている人は存在しないと思うが、念には念を。エイダは交換条件に、魔法を教えてくれと言ってきた。そのぐらいお安い御用だ。
遠くから複数、人の声が聞こえる。もしかしてエイダを探しに来ている人達かもしれない。魔法は消しておこう。魔術を全て削除して保存と更新。せっかく書いたのに。あっ無効化しておけばよかった。まぁ、いいか。
エイダは両親に無事に会えたようだ。抱き合って泣いている声がする。感動な場面だ。うんうん。ただエイダは感極まり、魔導書を放り投げて両親に飛びついた様だ。
ほんの少し心が凹んだ。
登場人物
エイダ・ラブレス
冒険者に憧れている9歳の普通の女の子。
辛く当たられても、めげない強い精神力を持つ。
喋る魔導書
エイダが森の奥で出会った喋る魔導書。
結構行き当たりばったりで魔術式を書いている。
エイダの母
エイダの優しいお母さん。魔導師の冒険者。
作者より
火の魔術式の検証は本当に大変だった。何回もgoogleで値を調べたり、計算したり。後先考えずに投稿しては駄目ですね。痛い目にあいました。
あれ程の計算をほんの数分で終わらせ、魔術を書いてしまうなんて、魔導書さん、本当に化け物だと思います。僕だって数式や値が全部頭の中に入っていたら、早いのかな?
化学合成に関する関数は、好き勝手に空想を膨らませて書いています。かなり適当に。話が進むにつれて、編集する可能性はかなり大です。
参考にしたページ
メタンの自然発火温度は632度
http://www.gas.or.jp/ngvj/text/ng_peculiarity.html
乾燥空気の主な組成
https://ja.wikipedia.org/wiki/空気
物質量と気体の体積
https://www.nhk.or.jp/kokokoza/tv/kagakukiso/archive/kagakukiso_20.pdf
球の体積の求め方。結構忘れているもんです。
https://sci-pursuit.com/math/volume-of-sphere.html
温度と湿度から水蒸気量を計算するプログラム。本当に助かりました。
http://idea.eco.coocan.jp/kousaku/v-kuruma/seidenki/suijyouki.html
燃焼の生み出すエネルギー
http://www.mnc.toho-u.ac.jp/v-lab/combustion/comb02/matter03.html
使い捨てライターを調べてみました!
http://www.pref.ishikawa.lg.jp/shohicenter/documents/h24lighter.pdf
歩く速度
http://www5d.biglobe.ne.jp/Jusl/SmartJitutomo/JisokuByousokuS.html
今回は考慮しませんでしたが、爆発限界のページ。
http://www.figaro.co.jp/knowledge/inflammablegas.html
カセットボンベの情報
http://www.i-cg.jp/support/faq/gas/
ロウソクの光の強さ(ルクス)の値
http://www.tokyo-gas.co.jp/kids/kako/k2_1.html