ロボットを使って未開の惑星を開拓していくシミュレーションゲーム『オートノーツ(Autonauts)』
プログラミングは、オートノーツの大切な要素の一つ。ボットにプログラミングすることで、すべての作業を自動化することが可能です。
Scratchのようなブロックを使った視覚的なプログラミングなので、プログラミング経験がなくても内容を理解できますよ。
しかも、ボットにお手本を見せてプログラミングをするので、ブロックの機能を全部覚える必要はありません。
この記事では、「繰り返し」や「もし」など命令ブロックと条件ついて解説。また、基本的なプログラムのパターンも紹介します。
プログラミングの手順
オートノーツのプログラミングは、ボットにやってもらいたい作業を見せて覚えてもらう「ならって学ぶ」方式で行います。
また、移動、拾う、置くなどの基本的なコマンドの他に、繰り返しや条件文(もし)を使うこともできます。スクリプトエリアの右下にある追加命令タブから追加しましょう。
- 自分が必要な道具を持つ
- ホイッスルでボットの注意を引く(Yボタン)
- プログラミングしたいボットを選ぶ(カーソルを合わせ、Aボタン)
- 記録ボタン(赤い丸)をおす(カーソルを合わせ、Aボタン)
- ボットブレーンの選択を解除(十字←ボタン)
- ボットにお手本を見せる
- ボットブレーンを選ぶ(十字←ボタン)
- プログラムを手直し
繰り返し・もし・待機を追加、探知エリアの指定など - 再生ボタン(緑の三角)をおす(カーソルを合わせ、Aボタン)
- ボットブレーンを閉じる(Bボタン)
- ボットに必要な道具を持たせる(カーソルを合わせ、Bボタン)
スクリプトの修正方法
後でプログラムを修正することもできます。
- ホイッスルでボットの注意を引く(Yボタン)
- プログラミングしたいボットを選ぶ(カーソルを合わせ、Aボタン)
- 停止ボタン(青い四角)をおす(カーソルを合わせ、Aボタン)
- 記録ボタン(赤い丸)をおす(カーソルを合わせ、Aボタン)
- スクリプトエリアを編集する
ブロック解説
追加命令タブにある命令ブロックを解説します。
繰り返し
繰り返しブロックは、条件を満たすまで中にあるプログラムをくり返します。
繰り返しブロック内の命令が実行できない場合(例:アイテムを拾う命令で対象のアイテムがない)、ボットはその命令が実行できるようになるまで一時停止します。
ただし、条件の右側のボックスにチェックを入れると、繰り返しブロック内の命令が実行できない場合、繰り返しからぬけ出します。
繰り返し終了
繰り返し終了ブロックは、現在の繰り返しからぬけ出す命令です。
もし
もしブロックは、条件を満たした場合、中にあるプログラムを実行します。
もし/でなければ
もし/でなければブロックは、条件を満たした場合とそれ以外の場合で、実行するプログラムを分けます。
待機
待機ブロックは、指定された秒数、一時停止します。
条件解説
繰り返しブロックと、もしブロックの条件について解説します。
手がいっぱいになるまで/手がいっぱいです
- 繰り返し:ハンドスロットがいっぱいになるまで、中にあるプログラムをくり返します。
- もし:ハンドスロットがいっぱいなら、中にあるプログラムを実行します。
手が空になるまで/手が空です
- 繰り返し:ハンドスロットが空になるまで、中にあるプログラムをくり返します。
- もし:ハンドスロットが空なら、中にあるプログラムを実行します。
バックパックがいっぱいになるまで/バックパックがいっぱいです
- 繰り返し:バックパックスロットがいっぱいになるまで、中にあるプログラムをくり返します。
- もし:バックパックスロットがいっぱいなら、中にあるプログラムを実行します。
バックパックが空になるまで/バックパックが空です
- 繰り返し:バックパックスロットが空になるまで、中にあるプログラムをくり返します。
- もし:バックパックスロットが空なら、中にあるプログラムを実行します。
?がいっぱいになるまで/?がいっぱいです
- 繰り返し:指定された構造物がいっぱい(95%以上)になるまで、中にあるプログラムをくり返します。
- もし:指定された構造物がいっぱい(95%以上)なら、中にあるプログラムを実行します。
構造物は?をおして指定します。また、作業台など何かを作る構造物は、作るアイテムが出力タイルにある場合、いっぱいと判断されます。
?が空になるまで/?が空です
- 繰り返し:指定された構造物が空になるまで、中にあるプログラムをくり返します。
- もし:指定された構造物が空なら、中にあるプログラムを実行します。
構造物は?をおして指定します。また、作業台など何かを作る構造物は、作るアイテムが出力タイルにない場合、空と判断されます。
持っているオブジェクトがいっぱいになるまで/持っているオブジェクトがいっぱいです
- 繰り返し:ボットが持っているアイテムがいっぱいになるまで、中にあるプログラムをくり返します。
- もし:ボットが持っているアイテムがいっぱいなら、中にあるプログラムを実行します。
上質なバケツやジョウロなどの中を判定します。
持っているオブジェクトが空になるまで/持っているオブジェクトが空です
- 繰り返し:ボットが持っているアイテム(バケツなど) が空になるまで、中にあるプログラムをくり返します。
- もし:ボットが持っているアイテム(バケツなど) が空なら、中にあるプログラムを実行します。
上質なバケツやジョウロなどの中を判定します。
回
繰り返し:中にあるプログラムを指定された回数くり返します。
永遠に!
繰り返し:中にあるプログラムをずっとくり返します。
次を聞くまで/聞く
- 繰り返し:ボットが叫び声を聞くまで、中にあるプログラムをくり返します。
- もし:ボットが叫び声を聞いたら、中にあるプログラムを実行します。
Yボタン長おしで「叫ぶ」命令を追加でき、叫ぶ内容も指定できます。プレイヤーが叫ぶ場合は「Go!」固定のようです。
聞くブロックの右側のテキストボックスに叫ぶ内容を指定します。
プログラミングの基本パターン
ほとんどの作業は、大きく3つのパターンに分けられます。
アイテムを集めて保管
ハンドスロットいっぱいになるまでアイテムを拾い、ハンドスロットが空になるまでケースなどの保管場所に追加します。
アイテムを作る
保管場所からアイテムを取り、何かを作る構造物(作業台など)に追加してアイテムを作ります。
バックパックを使うと一度に2種類以上のアイテムを運ぶことができます。
道具を使う
道具がこわれるまで(手が空になるまで)、道具を使ってアイテムの採取などを行います。
さらに保管場所がいっぱいなるまでの繰り返しで囲むことで、保管場所がいっぱいの時は作業をしないようにすることができます。
まとめ
「繰り返し」や「もし」など命令ブロックについて解説しました。
ボットのメモリの大きさに制限があるため、一つのボットでできることは限られます。
作業を小さく分けて、シンプルなプログラムになるよう心がけましょう。
集落モードの解説もしています。よかったら見てみてください。