330hours: 宇宙船自動化設定について
この20時間ばかりは、ほとんど放置しながら宇宙船の自動化をいろいろ試してました。
ということで、今回は宇宙船の自動化について説明します。と言っても、だいたいはこの記事 に書いてあることだったりします。
はじめに
宇宙船の自動化の目的は、深宇宙にあって貨物ロケットだと膨大な液体燃料が必要になるし遠すぎて無事着陸できる確率が低い場所との往復に宇宙船を使うためのものです。
いや、もちろん普通に貨物ロケットの代わりとしても使えるけれども、同じ恒星系であれば貨物ロケットの燃料はさほど必要ないし、そもそもイオンジェットがメインの宇宙船は地表に降りるのが大変。なので深宇宙メインとなる。(と思う。)
自動化
自動化で必要なことは2つ
- 目的地の設定
- 出発条件
1.については、宇宙船コンソールに赤い線で目的地と速度を入力してあげればいい。ハマり場所としては右上の部分は出力のみなので、それ以外の部分に入力してあげるといいうこと。
2.については、宇宙船内で完結させているBlueprint等が多いけれども、前述の記事にかかれている通り、「到着地点での判定」にしたほうが回路が簡単になることが、何個か作ってきて分かってきています。つまり、宇宙船内部をもっと狭く作れる、ということ。
続いてもうちょっと詳しく説明していきます。
1. 目的地の設定
目的地の設定としては以下の感じ。今回は 母星 <--> 深宇宙の往復のみを考えているので、左右の定数回路と条件回路のセットを2つおよび、下の方の一個の定数回路だけでいい。
宇宙船コンソールの出力(右上の方)から緑線を、宇宙船コンソールへの入力として赤線を右上以外へと、広域パイロンから伸ばしてある。
広域パイロンから緑線で、2つの条件回路に伸ばし、条件回路からは赤線で広域パイロンに。
つまり、
コンソール -- 緑 --> パイロン -- 緑 --> 条件回路 --赤--> 広域パイロン --赤-->コンソール
というわけ。
条件回路には "A" == 1020 とか設定する。ここで Aは今アンカーしている場所を示す(これはSEの仕様)。母星が1020ならば、 A == 1020の場合出力するのは目的地である深宇宙の番号、例えば1136とかになる。
そして定数回路はこんな感じ。
目的地となる惑星軌道あるいは深宇宙を指定する定数回路を置く。
下の方には速度とアンカーの場所を指定。こいつは目標速度とその場所でanchorする「宇宙船ドッキング」に割り振った番号を出力する。青いほうが現地の「宇宙船ドッキング」の番号とする。速度はその船の最高速度を指定すればいい。この回路は固定なので、どの場所にある宇宙船ドッキングでも同じ番号を指定しておかないといけない。
出発条件
宇宙船内の宇宙船ドッキングに対して回路の線を引いておけば、ドッキングした時に、現地の宇宙船ドッキングにもその回路が伝わる。
つまり、こんな感じに緑と赤の線を引いておけばいい。
これは母星側の回路。3つの算術回路で、
- ナクイウムが1
- イオンストリームが定数回路で指定した以上
- 原発用の水が定数回路で指定した以上
を出し、条件回路でこれら3つが全部0より大きい場合に「発射シグナル」を出す、ということ。
このように現地ごとに回路を置くことで「えーっと、母星にいるからナクイウムは0じゃなきゃいけないからー」とかいう船の中の回路が少なくなる、というわけ。
というわけで
まー、なんかこのあたり試行錯誤と、一回の結果が分かるまでに往復で実時間1時間かかるので、なんか細かい修正が難しいね。
とはいえ、自動化出来るとうれしい。
が、やることないので、他のことをやりながら放置してる時間がますます増えている。タイトルに書いている時間もあんまりあてにならなくなってきたなー。