スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

KSP超巨大宇宙船建造2

また今回もKerbal Space Programでもんんのすんごい巨大な宇宙船を作ってみようという企画。
前回は重力の小さいMinmusに打ち上げ拠点を作り、長距離航行中の資源として小惑星を捕獲する試みを刊行。ひとまず母星周回軌道に押し込めておしまい。
その続きで小惑星をMinmusまで持ってくることから始めよう。

最後にちらっと登場した小惑星回収ロケット(少し改良された)は無事任務を遂行してMinmusまで小惑星を運搬。
ちなみに爪でつかむとドッキング扱いになるので有人である必要は全くなかった。
screenshot48.png

これで小惑星捕獲の要領が何となく把握できたのでもっと大きい小惑星を取ってみよう。そう思うわけだ。
最大のクラスEを狙い、スクリプトを書き換えた壊れ性能エンジンも使って直接小惑星の軌道に入れて取りに行く。

しかし相手も相手、多少のSASでは姿勢がびくともしない。
こうなりゃこっちも総力戦で挑む。
screenshot58.png
この時点ですでにずいぶん物騒な形状の宇宙船になってしまっているのだが、スムーズに進行したのはここまで。
大量のSAS子機をぶら下げて飛ぶと物理演算に過大な負荷がかかり、ゲーム内で1秒進むのに5秒かかるようになったりと全く使い物にならなくなってしまった。剛体数が多くなるとそれぞれの関係性の数が階乗的に増えからと想定される。
しかもSASやバッテリーなどの平たい部品を積むとそれらが蛇腹のように振る舞ってかなり重くなってしまう。

色んな記述を見るとPCのスペックによらず大体500パーツが限界とされているようだが、これはなかなか致命的な問題ではないか。別に小惑星回収はいいとして、最終目標の超大型宇宙船を作るとなると部品数を抑えることは不可能。さあどうしたものか。

ちょっと飛行機でも作ったりして気分転換
screenshot63.png

処理の重さは剛体数に影響されるのでそれを減らさないことには意味が無い。パーツの接続の弾性を無限大にして単一剛体にしてくれるMODはないのかと探したが、その言葉通りにやってくれるものはない。クラフトゲームでもRobocraftは最大7555個のキューブを同一剛体にして個別に破損判定を出せてるんだけどなぁ。しかもどっちも同じUnityなのに。

だが類似の機能を提供してくれるものは無いわけではない。過去その名を轟かせた溶接MODが有志の開発により1.00以降にも対応したのでこいつに頼ることにしよう。

なぜ「類似」であって「そのとおり」ではないのか。それは溶接MODの動作原理が
複数パーツを結合した物体を新しいパーツとして加え入れることであるから。

つまり、元ある機体に適用してすぐにガッチガチにしてくれるわけではない。新しいものを作るときに先を見越して骨格を作るという形で利用することになる。
あと針金とかがあると読み込みで落ちる可能性が高く、取り込まれたパーツの操作がある程度同期してしまうので個別にクリックして操作したいものは溶接しないほうが無難。

そんじゃ試しにやってみちゃえっと
screenshot78.png
まずMinmus造船所の横に建設所を増設。万一何かが爆発して吹っ飛んでもメインの造船所は大丈夫なようにする。

一端の仮設エンジンで機体を斜めにして・・・
screenshot83.png
その仮設エンジンを切って機体が落ちてこない間に主エンジンを着火。

screenshot84.png
こっから周回軌道に入れる

この謎の形状は多分こんなふうになるんじゃないかなぁというこの赤線部分。
shipconcept.png
うまく行けば上のパーツの4倍近い全長になるはずなんだが、果たして上手くいく自信が全然無い。
打ち上げに利用した主エンジンが完成後は逆噴射エンジンとなることが見てわかるだろう。とはいっても宇宙船に前も後ろもないか。
なお艦首にある広い隙間はスペースプレーンを押し込むハンガーとなる予定。

で、打ち上がったはいいものの、何かの刺激に反応してエンジンがモゾモゾと動き始め・・・
screenshot87.png
ついにもげて外れる。

もう一回打ち上げ、緑を潜り込ませて内部で針金の接続を試みる・・・。
screenshot91.png
しかし部品をつけたそばから脱落して失敗。やっぱりガレージで針金をつけてから出すことでなんとか凌げた。

続いて先ほど作った溶接部品を流用してパーツをもう一つ作る。
screenshot92.png
打ち上げ用仮設エンジンを間違えてドッキングポートに直結してしまっていたのでレーザーで焼いてそこだけ破壊する。

そしていよいよ2つの巨大部品がランデブーしてドッキングの体勢に入る。
screenshot93.png
さあ付くのか付くのか

screenshot94.png
付かないんだなぁ

小型機でドッキングはできたのでドッキングポートは正常に動作しているのだが、溶接で生じた当たり判定が衝突してポートが繋がらないようだ。部品数削減のために多重ドッキングポートのうち一つ以外を溶接で組み込んでしまったことが原因か。
とすると溶接前からやり直しになるなこれは。
まあどうせ一筋縄ではいかないことは覚悟していたがやっぱり想定外のことが多すぎる。

さてどうせ作りなおすことになるのなら次はまず造船設備を上げてしまおう。変な形のものを上げるためにMinmusを選んだといえばそうなのだが、Minmusでもランデブーはそれなりに困難。というのも打ち上げ用の仮設エンジンはドッキングポートを介してつながっており、ポートの弾性が低いためにここがグラグラと揺れる。おまけに大きな質量を持つ本体は姿勢制御のために強力な姿勢制御トルクを有しており、それに比べて圧倒的に軽い仮設エンジン部は共振で90°も振れる。そのため打ち上がるのは簡単でも軌道を合わせるのに苦労するのだ。

んなわけでポチポチと造船設備を組み立て。先ほどの機首の下側に付くことになる第一造船所、通称「ガン○ムのヒゲ」。
色々やったらエヴァンゲ○オンの出来損ないみたいなもんができた。
screenshot101.png

ひっくり返しても意外と様になるしこれでもう行こうかな。
screenshot103.png
肝心の軌道建設ドックがついてないけどそれはドッキングポートを使って後付けでよい。

とここで早くも問題発生。なんと溶接されない。先ほど打ち上げたものは300パーツを超えても溶接できたがこちらは200パーツもないのに不可能。特にエラーメッセージも無いので原因のパーツを特定できない。
一応色々取り外すと溶接できる構成にはなるので数個に分割して溶接しようとしたが、今度は当たり判定が変わって元と同じ形にならない。

そんなわけで溶接MODのクセの強さがどんどん露呈してゆき、同時に宇宙船建造の難易度が上がってゆく。
飛行機作ったりいろんな惑星に行ったりして溶接のクセを探りながら少しづつ作っていくしかないだろう。
スポンサーサイト

KSP超巨大宇宙船建造 序章

さて夏休みの季節。今年から制度が変わって二ヶ月づつだった休暇が一ヶ月と三ヶ月にアンバランスになるがこの夏は一ヶ月のほう。
ジャンク系の小ネタもいくつかあるけど一大企画で以前から気になっていたあのゲームをやってみることにする。

\やあ/
screenshot42.png
Kerbal Space Program、通称KSPで要約すると上の気持ち悪い緑色の生物を操作(?)して自由に宇宙開発を行うシミュレーションゲームである。無料でできる体験版も配布されているので自分で作る系のゲームが好きな人は一度は触ったことがあるだろうと思う。

キャラクターがキモいのと惑星のテクスチャがショボいという致命的な欠陥はあるものの、いざ打ち上げの試行錯誤を始めるとそんなものはどうでもよくなるくらいの拡張性と自由度が現れる。あとは物理演算が総合的に見るとかなり現実的なので下手な本を読むより宇宙工学の基本を体感することができる。かもしれない。

さて、今回のひとまずの目標を決めよう。
KSPのできるだけ多くの要素を網羅しつつ新規性とストーリー性のあるものを考えた結果、超巨大な宇宙船を建造して連続で全惑星を巡ることを目指して進めることにする。

宇宙戦艦系のネタはググれば大量にでてくるものの、そういうのはほぼ打ち上げ風景を見ると案外宇宙船自体が小さくてKerbin(以下母星と表記)から直接周回軌道に打ち上がるものだったりする。そこで大きさは一回では母星から上がらないほど、いやそもそも建造所にすら収まらない規模にしよう。建造所に収まらないものをどう作るかって言ったら分割して制作して宇宙で組み上げるしかない。
んで映画によくある母艦のように長い期間と長い距離を連続で航行可能なように。あとは処理能力が許せば艦載機を。

以上の宇宙船を建造するために考えられる主な課題は以下のようなものになる。
・いびつな形の大型部品の軌道投入
・ドッキングの強度、向き合わせ
・燃料を自給自足する方法
・航行中の部分的破損の処理

ではまず部品の軌道投入から解決してゆく。そもそも重心のぶれたロケットでもSAS(リアクションホイール)で常に角加速度をかければ制御可能なのであるが、打ち上げ時のように大きな力が加わるとSASでは修正しきれずに制御できなくなってしまう。これは逆に小さな力で打ち上げられる場所に行けば問題ないことを意味しており、母星以外の星で建造を行うと達成できそうだ。
アクセス可能な主要天体のうちで最小のものは金星の衛星に相当するGillyであるが、ここの重力は母星の0.5%であまりに小さい上にいきなり行くには難易度があまりに高い。
というわけで製品版を買って最初の一週間は最も近いMun(月に相当)に建造所を作りつつMechJeb他各種操作の習得を行った。

月面投入された車両たち
screenshot114514.png
左から燃料精製車、ゴミ収集車、部品製造車。
ゴミ収集車はデブリや要らない機体を資源のMetalに変換する。緑を放り込むとMetalが3回収可能。
この三台の他に建造用の仮設滑走路が投下されており、部品製造車とウィンチでドッキングすると月面で機体の製造ができる。
製造とは言っても地上のセンターで作った機体のデータを読み出して資源を消費して出現させるだけ。

しかし車両型では取り回しがあまり良くなく、また月の条件も微妙と判断されたので母星の第二衛星のMinmusへ移る。
screenshot47.png
こちらがMinmusくん。第一衛星は公転面が母星の自転面と一致し、また常に同じ面を母星に向けているため円軌道から投入すると毎回同じ場所に降りられるのに対してMinmusは公転面傾いている上に自転をしている。
だが操縦補助ModのMechjebが傾いた公転面にも一発で進入経路を出してくれる上にΔVは月とさして変わらないので月に投入できたロケットがあればほぼそのままMinmusに行ける。

部品製造車一式の使い回しで試し着陸をし、平地の場所を確認したのでタワー型の全部入り造船所を投下。
screenshot1919.png
資源としてKarboniteとOreの双方を利用できる設備が備わっているがKarboniteの採掘レートがあまりに低いため結果的に全てをOreから賄うことになった。この場所がたまたまそういう資源比率の場所なのだろうか。(ゲームがクラッシュしやすくなるため資源スキャナーを飛ばしていない)
なお機体製造に必要な資源をOreから作るための幾つかの装置のうちの一つがどうしても見つからなかったので英語のスレッドを参考に青ワークショップに変換スクリプトを書き足して改造。資源のやりとりは処理としてはただの数字の足し引きなのでかなり簡単にいじれる。Inputを0に書き換えれば第一種永久機関になるのでどうしても遠い惑星に行きたいときはやってみるといいだろう。

続いては35人乗りの宇宙船を作り人員を輸送。
screenshot38.png
Minmusは重力が小さいくてフワフワしているので着陸はかなり容易。目視で着陸地点を変えたりも自由自在。
Mechjeb自動操縦の初回投下で地面に激突したので以降Minmusへの着陸は手動操縦で行っている。
ちなみに資源は惑星から採掘できるが緑は増やせない。男女二種いるので有性生殖を行うものと考えられるが増殖の証拠はひとつも見つかっていない。というか食料も不要でとりあえず与圧さえされていれば生きられるって時点でおかしい。
まあ一応宇宙飛行士なので増やせたら増やせたらでかなりハードな教育機関が無いと使い物にならないのだが・・・。

これでなんだかんだでMinmusに建設設備は完成。Minmusの小ささは伊達ではなく、緑のジェットパックで軌道投入が可能(帰れない)。何かを打ち上げる際にも母星から打ち上げるときと違ってほぼペイロード単体でいきなり宇宙に出れる。そのためいちいち下段にタンクをつなげて切り離しシーケンスを設定する手間が省けて非常に便利。それでいて最低限地表で活動できる重力があり、母星からすぐ来れるとあって巨大船建造には申し分ない環境だ。

つづいて軌道上建造の課題のドッキング。
KSPにも実際の宇宙船と同じドッキングの概念があり、複数の宇宙船をただ縛り合わせるだけでなく資源や操作を共有した一機の宇宙船とすることができる。そのため分割して打ち上げて軌道上で組み上げることが可能。
んで、その際に問題となるのが向きと強度。ドッキングポートは丸くてどの角度でも結合する。放射対称型の宇宙船ならどんな向きでも問題にならないものの、ちゃんと向きを指定してドッキングしたいならどんなに丁寧に接近しても正確な角度になる保証はない。
ではどうするか。複数のドッキングポートを使って多重ドッキングをする
screenshot16.png
これなら全てが同時にはまる角度にしかならないので狙った角度で確実にドッキングできる。
母星周りで練習機を飛ばしてMechjebの補助でドッキングしたらあっさり成功。
このとき大抵幾つかのポートが見かけ上くっついていても実は結合できていないが、所詮向きあわせ用なので支障はなし。

次は強度の処理。大型のドッキングポートは強度があるほうだが小型のものはかなりたわむ。ドッキングした宇宙船でSASやRCSを使うとびっくりするくらいグワングワンと共振して最悪折れる。大型ポートの4重ドッキングでも本体が非常に大きければ到底耐えられるものではない。そこで船外活動Modを利用して針金で縫い合わせる。

Minmusからの打ち上げ検証も兼ねて練習機でためしてみる
screenshot20.png
KASの針金は針金の端となる部分を機体に取り付けたあと緑を近づけることで近い2つの針金ポートを結びつける。
針金を渡す支柱が45°ずれているのは二機目を作っているときにさっきのがどの向きだったか忘れたから。特に意味は無い。
これもあっさり成功したので実用の確証がとれた。大きい物を作る際はドッキング部の周囲に予め多数の針金ポートを用意すればよいだろう。
この練習機は後々ここで建造する事を考えて緑と一緒にこのままMinmus周回軌道においておくことにする。

次は資源確保の問題。ひとまず母艦を惑星周回軌道に待機させ、Minmusに落としたような全部入り造船所を惑星表面に落として補給船建造→打ち上げ→ドッキングで移送をしても良いのだが、ここは別の可能性を探ることにする。

Minmus造船所の作業風景。
screenshot24s.png
重力の大きな星でこのように建造すると製品切り離し後に自重でエンジンが爆発するトラブルが起きる場合が多いがMinmusでしかも小型機を製造するなら問題ない。まあデカいものを作ることにはなるのでそのうち横に仮設発射台を置くことにはなるか。

ロケット君発射。
screenshot26s.png
言わずと知れた熱核水素エンジンでそのまま宇宙に出れる。そう、Minmusならね。
というかこの段階にきてこのエンジンが酸化剤を使わないことに気づいたわけなのだが、Wikiに「原理的に不要な酸化剤もなぜか使う」と書いてあったのがいつのまにか修正されたらしい。ちなみにこれは高温の放射性物質に液体水素をかけてその膨張で推進するというまるで蒸気機関のようなエンジン。核融合炉のエネルギー取り出しも結局蒸気タービンらしいから原子力はどこまでいっても蒸気機関なのだ。 ってか液体を気化させて進むなら酸化剤(液体酸素)でもちょっとは進めるんじゃないのか?

燃料の排出をするシステムはこのゲームには無いので設計ミスのままで発射してしまったことになったがとりあえず目標に到着すればなんとかなる。というのも見ての通り先端に爪と採掘ドリルが付いているので燃料の現地調達ができる。
そう、このロケット君は小惑星を拾いに行ったのだ。

拾いに行くとは言っても小惑星の元まで往くわけではなく、偶然にも母星の重力圏に入ってきて半楕円軌道になったものを捕まえる。トラッキングステーションから付近の小惑星の軌道を確認して絞り込むことになるがこれが意外とちょうどいい軌道で入ってくれる小惑星がかなり少ない。どれくらい稀なのかは自分でやってみればわかる。
結局軌道面がかなり傾いていてもちょうどいい曲率で通ってくれるものがあれば捕獲を強行する。

で、小惑星ウォッチングの途中でこんなやつが出現。
screenshot29.png
なにこれKerbin直撃やんwww
どうなるかしばらく見てたらトラッキングステーション視点では地表に到達した瞬間に消滅。落下地点に行っても多分見つからないと思うが、捕獲した隕石を落とした場合は地表で発見できるとのこと。

そしていろいろあってさっきのロケット、正式名称Rock 1-1(石を拾うという意味で安直すぎるネーミング)は目標の小惑星にランデブーするが相対速度を消している途中に水素切れ、RCSで接近を試みるも届かずに任務失敗。
その後燃料タンクを改善したRock 1-2を打ち上げてなんとか小惑星をKerbin周回軌道に繋ぎ留めることに成功。
screenshot35.png
しかしこいつも作りが甘く、いざ小惑星に付けると振動しまくってこれ以上の輸送は不可能。お疲れ様でした。
とにかく、Minmusを拠点にした場合は単段で小惑星回収くらいは軽くこなせるということだ。
また、無尽蔵に採掘ができる惑星と違って小惑星には大きさに応じた資源量が存在していることも判明。一個の小惑星を抱えてどこまでも行くということはできないようだ。

だが手頃な小惑星を捕まえれば惑星に造船所を降ろさなくても補給ができるので大きなメリットになりうるだろう。USGイシムラみたいに腹に惑星の破片を抱えるのは見た目的にもイケイケなのでぜひとも採用したいところ。さらなるメリットとして母艦に造船設備があれば小惑星から機体を作れることがある。機体が部分的に損傷した場合はドッキングを切り離して新しいパーツと入れ替えればよい。造船設備を船体の複数の場所に用意すれば冗長性も抜群。緑の損失以外を全て自己修復できる生物のような機体になる。なんかもう想像するだけで楽しいね。

まあそれはおいておき、お次の任務にあたるのはこの機体。名前はもちろんRock 1-3
screenshot36s.png
Rock 1-2が運んできた軌道変更した小惑星をMinmus周回軌道に入れる。
小惑星接触後に機体左右の4つの子機を切り離し、小惑星に別々の方向から取り付けてSASで姿勢制御する予定。このようにSASを分散して重心を囲むことで先ほどのRock 1-2のように激しく振動せずに済む。
なおSASの連動のためにウィンチ利用ドッキングをしなければいけないので有人式である。

そんなわけで次回はRock 1-3の任務から。というか肝心の超大型艦のデザインが全然固まらない・・・。
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。