第307話 飛ぶ家と、運転方法と、転移

 特使として出発。

 一発かませと言われたので、家を魔法で浮かせた。


「これなら快適ね」


 セレンが窓際の椅子に腰かけて外を見ながら言った。


「馬車の邪魔にならないようにかなり高く飛んでいる。墜落したら大惨事だ」

「だから、高度が下がるとエアクッションが自動発動する魔道具を装着しているのね」

「それでも飛んでいる家の木材とかが頭に落ちてくると危ない」

「心配性ね」


「事故は起こるもんなんだよ」

「マイラはエアクッションの魔道具を嫌がったけど」

「自動で体の制御を奪われるのが嫌なんだって」

「そう」


 特使はおも研のメンバーとトレンと文官が5人と武官が10人。

 王族の特使としては小規模だそうだ。


 トレンは毎日筋トレしているし、触発されたのか、マイラとリニアも筋トレしている。

 セレンは外を眺めているし、レクティは書類仕事をしていた。


 ベークとラチェッタは二人でいることが多い。

 リッツは筋トレしているトレンの横にいて、ミカカ語の習得に余念がない。


 コネクタとベスは勉強している。

 なんでもおも研で影が薄いので、勉強で目立ちたいとのこと。


 俺は空を飛ぶ魔法について考えることにした。

 浮かすのは問題ない。

 ただ、浮いていると急に止まったり、ターンしたりが難しい。

 空中では摩擦がないから、滑るように動いてしまう。


 後ろ向きに重力を発生させて引き止めれば急ブレーキはなんとかなる。

 乗り心地は最悪だが。

 急ハンドルは難しい。


 一度に考えるからややこしい。

 浮かす機能と、推進機能は分ける。

 姿勢制御の機能もだ。


 ヘリコプターにジョット推進のスラスターと姿勢制御のバーニアを付けるイメージだな。

 コックピットは戦闘機みたいにしたい。

 これは魔法では作れないから、手作業で作るしかないな。

 それを、魔法で浮かせたり、進ませたりする。


 もっと、感覚的に乗りこなせるようにしたいな。

 C言語魔法での入力は文字と数値だ。

 イメージを取り込むのは難しい。

 出来なくはないんだよ。

 文章で指示すれば良い。

 誘導弾の目標設定はそのイメージでやっている。


 乗り物を言葉で操るというのは、どうもしっくりこない。


「難問でも考えているの?」


 セレンに問われた。


「乗り物を動かす方法なんだけど、いまはハンドルとかブレーキでやっている。もっと感覚的に操作できないかなと思って」

「簡単だと思うわよ。私のスキル、2点間を繋ぐだけど、目で見て目標を設定している。乗り物の運転も同じじゃないかしら。あそこに行きたいとその地点を見る」

「画像からイメージ入力するのか。やってみるか」


 char look_image[1000][1000]; /*見た画像*/


 looking(look_image); /*見る*/

 magic_move_looking(look_image); /*見た画像の場所へ移動する*/


 こんな感じの魔法を組み込めばいいのかな。


 魔法にするんだったら、神秘魔法名から体のデータを受け渡すとか。

 見ている場所のどこに向かっているのか、視線を割り出す一文も必要か。


 この魔法の弱点はよそ見が出来ない事だ。

 視線ではなくて、頭が向いている方向で考えるべきか。


 顎を引くとブレーキで顎を上向きにすると加速がいいかな。

 いや待てよ。

 一つの機能に集約する必要もないか。

 前進とブレーキは別操作でも良い。


 電動車いすぐらいのスピードだったら、視線制御が良いだろう。

 自転車のスピードだったら、首の向き。

 自動車のスピードだったら、アクセルとハンドルかな。

 戦闘機のスピードだったら、操縦桿かな。


 用途に合わせて変えるべきなのだろう。

 究極の移動方法は転移だ。

 目的地をイメージして魔法を発動すれば、そこに着く。


 空間転移の魔法は直接見ないとイメージが湧かなくて失敗することだ。

 固定された空間同士をつなげる魔法ができないかな。


 現状の空間転移の魔法はこんな感じだ。


extern void teleport(char *space1,int space_size1,char *space2,int space_size2);


char space1[40000]; /*空間の定義*/

char space2[40000]; /*空間の定義*/

void main(void)

{

 teleport(space1,sizeof(space1),space2,sizeof(space2)); /*転移*/

}


 改良するなら、こんな感じか。


extern void teleport(char *space1,int space_size1,char *space2,int space_size2);

extern char *beacon(char *mm_name);


void main(void)

{

 char *space1,*space2; /*空間の定義*/

 int space_size=40000; /*空間サイズ*/

 space1=beacon("神秘魔法名1"); /*神秘魔法名から位置を割り出す*/

 space2=beacon("神秘魔法名2"); /*神秘魔法名から位置を割り出す*/

 teleport(space1,space_size,space2,space_size); /*転移*/

}


 決められたビーコンに従って、位置を割り出す。

 その場合、位置を割り出すの指定するのは神秘魔法名だ。

 ビーコンは、魔石に神秘魔法名を持たせた疑似生命体にやらせれ、ば良いと思う。

 門番を決めても良いが、物の方が都合がいい。

 帰ったら、この魔法で魔道具を作って運用してみよう。

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

作者を応援しよう!

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

応援したユーザー

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

新規登録で充実の読書を

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

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

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