![見出し画像](https://assets.st-note.com/production/uploads/images/132778050/rectangle_large_type_2_c9e5474d157024b298dfe3ce150e7b56.jpeg?width=1200)
Trailmakers 初心者ビルドガイド 論理回路編③ そらとぶカーペットを作る
0.前置き
こんにちは。前回、前々回と論理ブロックとセンサーのことについて長々とお話ししてきました。多分飽きたでしょう。今回はその回路とセンサーを組合せて空飛ぶカーペットを作ります。
先日のSPACEBOUNDアップデートで追加されたパーツは今回は使用しません。使えば楽ですが、今回はセンサと回路の使い方を学ぶという意味では不適切なので使用しません。
1.空飛ぶカーペット?
要は人を乗せて空を移動できる板切れを作ろうということです。
では、今回作るものの要件定義をしましょう。
機体の傾きを補正して水平を保つ
空中に滞空できる
上昇下降、前後左右移動、回転ができる
こんな感じでいいでしょう。それでは要件をひとつずつ実現する方法を考えながら作っていきましょう。
2.水平を保つ
まずは板切れ4枚を繋いで、上に運転席を乗せて、四隅にジンバルジェットをくっつけます。これが大元の形になります。
ついでにコックピットの設定から空気制御はOFFにしておきましょう。今後邪魔になります。
![](https://assets.st-note.com/img/1709444193275-UYiNvdv1gE.jpg?width=1200)
とりあえずフィールドに出して飛ばしてみます。
![](https://assets.st-note.com/img/1709444230888-vXEweggknJ.jpg?width=1200)
どうしようもないですね。
さて、これを水平を保つように制御する方法を考えます。
水平にするには、傾いたことを検知して、傾いた方向と逆に回転させるという手順が必要です。
まず、傾いた方向を検知するにはどうするか、ここは前回紹介した角度センサーが使えそうです。
![](https://assets.st-note.com/img/1709444356412-0MRVeSsmrI.jpg?width=1200)
傾いた方向と逆に回転させるには、ヘリコプターエンジンを使います。これは、何もついていない状態で回転させると強力な反作用が発生し、機体を回転させることができます。
![](https://assets.st-note.com/img/1709444582747-qTdl2e9b9K.jpg?width=1200)
角度センサーで傾きを検知して、ヘリコプターエンジンで傾きと逆に回転させれば水平を保てそうです。
ではまずは角度センサーから設定していきましょう。
角度センサーを適当に設置して設定を見ます。
![](https://assets.st-note.com/img/1709453470808-CYVt3VBwGF.jpg?width=1200)
前回説明した通り、幅とはセンサが反応する扇状の範囲の大きさ、方向は扇状の範囲をどれだけ傾けるかの設定です。
そして重要なことが、出力できる信号は1つしか設定できないことです。前転と後転ではヘリコプターエンジンを回したい方向が逆になるため、一つのセンサでは出力できません。つまり、前転を感知するセンサと後転を感知するセンサは別々に用意しなくてはなりません。
まずは前転用のセンサを設定していきます。
まず幅を180度にします。そして方向を91度にします。これで前転方向に1度傾くと反応するセンサができました。
![](https://assets.st-note.com/img/1709445693250-QE8uzlY1Eg.jpg?width=1200)
この前転用のセンサを、コピーして、裏返す!出力を-1にします。後転用センサができました。
![](https://assets.st-note.com/img/1709445837834-XXkWzr8TrX.jpg?width=1200)
この2つのセンサの反応範囲を図にしてみます。
![](https://assets.st-note.com/img/1709446657465-O4nlnyxtRC.png?width=1200)
このように水平(0°)から±1°傾いた時、水平に補正する方向に回すことで水平を保ちます。真っ逆さまの部分だけセンサの範囲が重なりますが(黄色部分)、ここまで逆さまになることはほとんど無いので放っておきます。
ということでヘリコプターエンジンをつけます。
![](https://assets.st-note.com/img/1709447199166-rmzxtoyf3c.jpg?width=1200)
ヘリコプターエンジンにデフォルトで設定されているキー設定は消去してください。
![](https://assets.st-note.com/img/1709447166028-AZvVCeWUY9.jpg?width=1200)
ここに先程のセンサ2つを接続します。
![](https://assets.st-note.com/img/1709447286987-bP8PvW73ou.jpg?width=1200)
とりあえずフィールドに出して飛ばしてみましょう。
![](https://assets.st-note.com/img/1709447461270-dda9PqEJnA.jpg?width=1200)
裏側になって安定してますね。センサの出力の±を逆にするか、ヘリエンジンの出力を-5にしましょう。
前後回転への補正はできたので、左右回転も作ります。左右回転も考え方は全く同じです。
新しくセンサーとヘリエンジンを置いて設定します。
![](https://assets.st-note.com/img/1709447810040-9f8TiR5kwQ.jpg?width=1200)
![](https://assets.st-note.com/img/1709447825200-D6ebpyBX7B.jpg?width=1200)
コピーしても良いのですが、コピーをするとセンサとヘリエンジンの接続も引き継がれるので、前後回転用センサが左右回転用エンジンに繋がってたりして、挙動がめちゃくちゃになります。接続の再設定が難しくなるので慣れないうちは新規で設定したほうがミスが少なくなります。
とりあえずフィールドに出してみます。ひっくり返ったりしたら前後回転と同様に、センサの出力の±を逆にするか、ヘリエンジンの出力を-5にしましょう。
さてどうですか。
![](https://assets.st-note.com/img/1709448309164-QCNNBZn3h7.jpg?width=1200)
なんかガクガクしますね。おそらく、±1度の設定が広すぎなのでしょう。
±1度から±0.1度にしてみます。また、ヘリエンジンの出力が強すぎるかもしれません。スピードを0.35にしてみます。
![](https://assets.st-note.com/img/1709448590049-HWkYaGBeKZ.jpg?width=1200)
![](https://assets.st-note.com/img/1709448590088-aNFgWQOPgz.jpg?width=1200)
いいですね。ビシッと決まっています。吐かないで済みそうです。
![](https://assets.st-note.com/img/1709448651066-RrNew0LW7x.jpg?width=1200)
3.滞空する
今度は高度を維持できるようにします。
今回使うのは速度センサと高度センサと論理回路です。
まずは高度センサから使います。
![](https://assets.st-note.com/img/1709449030622-2rqp06ejR8.jpg?width=1200)
これで高度を設定して滞空…はしません。高度センサは一定の高度しか設定できないため高度の調整ができません。使えないですね。
ただし別の活用法があります。高度の設定を-500にします。そうすると常に信号を発するようになります。それをジンバルジェットに繋ぎます。
![](https://assets.st-note.com/img/1709449062238-9QSgdBahHT.jpg?width=1200)
これでフィールドに出した瞬間操作無く機体が上昇するようになります。
![](https://assets.st-note.com/img/1709449182331-35VzdujXMr.jpg?width=1200)
飛んでいくのも困るので高度センサの出力値を小さくしてふんわりさせましょう。ちょっとづつ落ちていくくらいが良いので、0.2とします。
![](https://assets.st-note.com/img/1709449265430-dNx0y3ELCd.jpg?width=1200)
ここで上昇と下降のボタン設定をしていきます。まずはジンバルジェットの内部に設定されているキー設定を削除します。制御の邪魔になります。
![](https://assets.st-note.com/img/1709449413071-BIfqpmGqOL.jpg?width=1200)
次にorブロックを2つ置きます。1つは上昇用のボタンを割り当てて出力は1にします。もう1つは下降用のボタンを割り当てて出力を-0.1にします。出力を減らすことで降下するようにします。
下降のとき-0.2以上の値は入れないようにしましょう。ジンバルジェットはマイナスの信号でも上昇する性質があります。
![](https://assets.st-note.com/img/1709449450546-FiBbCTuUe8.jpg?width=1200)
この2つの回路をジンバルジェットに接続します。
![](https://assets.st-note.com/img/1709449885363-8IWH2VbL2H.jpg?width=1200)
フィールドに出してとりあえず上昇と下降できることを確認します。
次は速度センサを使います。
速度センサは矢印を向けた方向の速度を感知します。もちろん、落下方向の速度も。
速度センサを下に向けて設置します。速度を0.1にして少しでも落下を感知したら反応するようにします。
![](https://assets.st-note.com/img/1709450099470-AZH0eBVzSW.jpg?width=1200)
それをジンバルジェットに繋ぎ込むと…
![](https://assets.st-note.com/img/1709450074850-UdI2FwrCV7.jpg?width=1200)
落ちなくなりました。その場で滞空しています。やりましたね。
しかし重大な欠点があります。下降できなくなりました。
4.下降するには
どうやら、下降したいのに下降の速度に反応して速度センサが出力をあげてしまうので下降しなくなったということみたいです。
これを解決するには、下降の時だけ速度センサによる滞空をオフにすれば良さそうです。早速回路を考えます。
ここで使う論理ブロックは、xorです。xorは複数の入力がある時は信号を発さなくなるブロックです。つまり、ボタンによる入力と、センサの入力が同時に入った時、速度センサからの制御を遮断することができます。
ではまずはxorを1つおきます。そこに下降用のボタンを設定していたorを繋ぎます。
![](https://assets.st-note.com/img/1709450802136-Y79G1n1bdp.jpg?width=1200)
次に速度センサのジンバルジェットへの繋がりを解除します。そしてxorに繋ぎます。
![](https://assets.st-note.com/img/1709450860565-eMsY7bfkqK.jpg?width=1200)
xorはジンバルジェットに繋ぎます。
![](https://assets.st-note.com/img/1709450916122-ppQwkhajto.jpg?width=1200)
これでできました。これで下降のボタンを押している間は速度センサの信号は遮断されて下降できるはずです。試してみましょう。
![](https://assets.st-note.com/img/1709451007903-nx0Sq2alET.jpg?width=1200)
うまくいきましたか?
5.移動と回転
ここまで来ればあとやることは簡単です。
まずは移動のためにスラスターを4個四隅につけます。左右並行移動のために左右向きにも4つつけておきます。
![](https://assets.st-note.com/img/1709451533702-ykuoYUmQW4.jpg?width=1200)
まずスラスターに移動のためのキーを設定します。
![](https://assets.st-note.com/img/1709451568410-mhkwlMnzQv.jpg?width=1200)
前進、後退、並行移動ができるようになりました。
次に、回転を設定します。orを2つ置いて片方に右回転用のキー、片方に左回転用のキーを設定します。
![](https://assets.st-note.com/img/1709451983048-eiW1e48pYe.jpg?width=1200)
これを、右回転用は右前と左後ろのスラスターに、左回転用は左前と右後ろのスラスターに繋ぎます。
![](https://assets.st-note.com/img/1709452032594-wkiksfs7DC.jpg?width=1200)
さて、試運転しましょう。うまく動きましたか?
![](https://assets.st-note.com/img/1709452295042-BMlHdy419n.jpg?width=1200)
6.SPACEBOUNDアップデートの追加パーツについて
先日、無料大型アップデート「SPACEBOUND」が配布されましたね。宇宙空間、新しいパーツの追加、素晴らしいですね。
ここで追加された便利パーツを紹介しましょう。
![](https://assets.st-note.com/img/1709452536719-XLIQweGDeK.jpg?width=1200)
まずジャイロスタビライザーです。これは、矢印を向けた方向にビルドを安定させるパーツです。つまり、角度センサーとヘリエンジンが合体したものです。便利すぎますね。
これを使うとたくさん説明した水平制御の部分がこうなります。
![](https://assets.st-note.com/img/1709452656705-48ne3JdAA5.jpg?width=1200)
簡単で振動もなく水平が決まります。
![](https://assets.st-note.com/img/1709452802507-70Y8o1vpG2.jpg?width=1200)
つぎはジャイロです。これはヘリコプターエンジンの代わりに使えます。回転部分がないためより使いやすくなっています。
これらのジャイロは、ビルドが回転させられた時に逆方向に力を出して回転にブレーキをかける性質があります。余計な回転をせずビルドがピタッと止まります。
これら2つのパーツは便利ですが、なぜかメカニックパーツを介して付けると力が弱まります。注意しましょう。
7.おわりに
お疲れ様でした。このビルドが作れればもう初心者ではありません。とっくに初心者は卒業してます。
回路、センサの組み合わせはビルドに無限の可能性を与えます。考え続ければ、きっと理想のビルドが作れます。
次回からはこのビルドガイドも名前を変えて、応用編に入っていこう思います。手始めに高性能なレースカーあたりから始めようかと思います。
宣伝
Trailmakers日本Discordサーバでは常にメンバーを募集しています。参加したいなと思ったら↓の招待から参加してください。
また、当コミュニティでは攻略wikiの執筆も行っています。よろしくお願いします。