【第9回】Unityでコンベア搬送を実装|ワークを滑らかに流してランダム供給する

機械設計×ゲーム

前回の記事では、12×8のグリッド上にコンベアを配置できるようになりました。

緑色の四角形。その中に白い矢印。
Rキーで90°回転できて、右クリックで削除もできる。
見た目はかなりシンプルですが、ここまでで、

「プレイヤーが自分で工場ラインを組み立てる」

という土台ができました。

そして今回は、いよいよそのコンベアに、ワークを流します。
ここからようやく、画面の中の工場が動き始めます。


STEP4の目的は「青い丸を1個だけ流す」

次にChatGPTから提案されたのが、STEP4:ワークを1個だけ生成して、
コンベア上を滑らかに移動させるという内容でした。

Codexへ渡す指示も、かなりシンプルです。

ワークを1個だけ生成する。
青い丸で表示する。
コンベア方向へ進む。
1マス1秒で移動する。
セル中心からセル中心へ滑らかに移動する。
コンベアが無い場所では停止する。
回転したコンベアでは進行方向を変える。

ただし今回は、

  • 複数ワーク
  • ストッパ
  • ゴール判定

はまだ入れません。

ここでも、一気にゲームを作らないという方針は変わりません。


今回は「カーブコンベア」も作らない

ここで、ChatGPTからひとつ提案がありました。
それが、STEP4ではカーブコンベア専用ブロックをまだ作らないというものです。
最初は、直進コンベアとは別に、L字型のカーブコンベアが必要かな?と思っていました。

でも今のコンベアは、Rキーで向きを90°ずつ変えられます。

つまり、

→ → → ↓ ↓ ↓ ← ←

のように並べれば、見た目上は十分に曲がったラインを作れます。
この段階でわざわざ、「カーブ専用ブロック」を追加する必要はありません。
まずは、ワークがコンベアの向きに沿って正しく動くかだけ確認する。

必要になったら後で追加する。
この判断も、MVPらしい進め方です。


今回の目標は「気持ちよくスーッと動くこと」

前回までの記事で、ワークの移動についてひとつこだわっていました。

それが、グリッドゲームでも、ワークはマス単位で
カクカク瞬間移動させないということです。

配置はマス単位。

でもワークは、セル中心から次のセル中心へ、スーッと滑らかに移動する。
ここはかなり重要だと思っていました。

なぜなら、コンベアゲームなのに、
ワークが

パッ!

パッ!

パッ!

と瞬間移動していたら、

あまり「搬送している感じ」がしないからです。

今回のSTEP4で、いよいよその動きを作ります。


Codexに実装してもらう

前回までと同じように、仕様をChatGPTで整理し、Codexへ渡します。
自分はコードを書きません。

この頃には、かなりこの開発方法にも慣れてきました。
やることは、何を実装するか決めること。

そして、Codexが実装した後に、
本当にその通り動くか確認すること。です。


コンベアを並べてみる

STEP4の実装が終わったら、

UnityをPlayします。

まずは、

グリッド上にコンベアを並べます。

例えば、

→ → → → → → →

という一本道。

これだけで十分です。
そしてワークを生成。

すると、青い丸が、コンベアの矢印方向へ進み始めました。


青い丸が、ちゃんと「流れた」

これまで、

Unity上で何かが動くこと自体は、

最初のWorkMoverで経験しています。

でも今回は少し違います。
自分で置いたコンベア。
自分で決めたルート。

その上を、青い丸がラインに沿って流れていく。
ようやく、「工場ゲームを作っている」という実感が出てきました。

しかも、ワークはセルからセルへ瞬間移動するのではなく、ちゃんと滑らかに移動します。

これが思っていた以上に気持ちいい。
ゲームとしてはまだものすごく単純ですが、
見ていて楽しい動きが初めて出てきました。


コンベアの向きを変えると、ワークも曲がる

次に試したのが、コンベアの方向変更です。

例えば、

⇨ ⇨ ⇨ ⇨ ⇩
⇦ ⇦ ⇦ ⇦ ⇦

と配置します。

ワークが右へ進み、縦向きのコンベアに入る。

すると、進行方向が変わって、下へ移動する。

これがちゃんと動きました。

ここで初めて、プレイヤーが配置したルートに
ワークが従って動くという基本システムが成立しました。

これはかなり大きいです。


コンベアが無ければ停止する

もう一つ確認したのが、コンベアが途中で無くなった場合。

例えば、

⇨ ⇨ ⇨ ⇨ □

のような状態です。

この場合、ワークは最後のコンベアまで移動して、そこで停止する。

勝手に場外へ飛んでいったり、何もないマスを進んだりしません。
これも、ゲームとしてかなり重要です。

プレイヤーがラインを完成させていなければ、途中でワークが止まる。

つまり、配置ミスがちゃんと結果として見えるようになります。


ここで初めて「遊べるもの」が見えた

今回までで、

  • グリッドがある
  • コンベアを置ける
  • 向きを変えられる
  • 削除できる
  • ワークが流れる
  • コンベアが無ければ止まる

という状態になりました。

まだゲームクリアはありません。

点数もありません。

ミッションもありません。

それでも、自分でラインを作り、
その通りにワークが動く。

この時点で、最低限の「遊び」が成立し始めた感じがしました。

コンベアを置いて、動かして、

「あ、ここ止まるな」

と気付いて、配置を直す。

すでに、設計 → 試運転 → 改善
の流れがほんの少し出てきています。


次はワークを1個から10個へ増やす

STEP4ができると、次にやりたくなるのは、
当然、ワークを複数流すことです。

1個だけなら、どんなラインでもそれほど問題は起こりません。

でも、複数のワークが流れてきたらどうなるのか。
間隔がバラバラだったらどうなるのか。

ここから少しずつ、工場らしい問題が生まれます。

そこで次は、

STEP5:ワークを複数・不規則間隔で供給

へ進むことになりました。


10個のワークを不規則な間隔で流す

STEP5では、スタートから、青い丸のワークを10個生成します。

ただし、一定間隔ではありません。

例えば、0.5秒後。
次は1.3秒後。
次は0.7秒後。

というように、バラバラなタイミングで出します。

見た目としては、

●  ● ●   ●  ●

のような感じです。

この「ばらつき」が、次に作るストッパの意味につながってきます。


なぜ最初から等間隔にしないのか?

もしワークが最初から、

●  ●  ●  ●

と、きれいな等間隔で流れてきたら、
ストッパを使う意味がほとんどありません。

だから、まずはあえて不規則に流す。

その後、ストッパを使って、バラバラの流れを、

一定間隔に整える。

ここで初めて、設備を置く意味がゲームとして生まれます。

このあたりから、「工場ラインを作るゲーム」ではなく、
「問題を設備で解決するゲーム」になってきます。


STEP5では、まだワーク同士を押し合わない

ただし、ここでも欲張りません。

複数ワークを流すと、現実のコンベアなら、

前のワークに追いつく。

接触する。

後ろから押す。

渋滞する。

といったことが起きます。

でも、この段階ではまだ、
そういった現実的な挙動は入れません。

まず確認したいのは、不規則に供給されたワークを、
後から整列させる遊びが面白いかどうか。

そこに集中します。


STEP5で確認することもシンプル

Codexに実装してもらった後、自分が確認することは6つです。

1. Playする

ゲームを再生。

2. コンベアを配置する

スタートから一本道を作る。

3. 試運転を押す

ここからワーク供給開始。

4. ワークを見る

確認するのは、

  • 青い丸が1個ずつ出る
  • 合計10個
  • 出てくる間隔がバラバラ
  • コンベア上を流れる

ということ。

5. リセットする

リセットすると、ワークだけ消えて、コンベアは残る。

これも重要です。

プレイヤーがせっかく作ったラインまで消えたら、
毎回作り直しになってしまいます。

6. もう一度試運転する

そして最後に、

同じ供給パターンが再現されるか確認します。

例えば1回目が、

0.5秒
1.3秒
0.7秒

なら、

2回目も、

0.5秒
1.3秒
0.7秒

の順番で出てくる。

つまり、試運転するたびに同じ条件で比較できるようにします。

これはゲームとしても重要です。


なぜ同じランダムパターンを再現するのか?

最初は、「ランダムなら毎回違った方が面白いのでは?」とも思いました。

でも、設計を改善するゲームでは、条件まで毎回変わってしまうと、
改善前と改善後を正しく比較できません。

例えば、
1回目はワーク供給が楽だった。
2回目はたまたま厳しかった。

これでは、ラインを改善した効果なのか、
単に供給条件が違っただけなのか、分からなくなります。

そこで、同じステージでは、同じランダムパターンを再現するという考え方にしました。

これも、かなり機械設計っぽい考え方です。

同じ条件で試して、変更前と変更後を比較する。

まさに試運転です。


STEP5の合格条件

今回も、

合格条件を明確にします。

  • 10個生成される
  • 不規則な間隔で出てくる
  • コンベア上を流れる
  • リセットできる
  • 再試運転しても同じ供給パターンになる

ここまでできれば、

STEP5合格。

そして、次はいよいよ、
かなり重要な設備を追加します。


次はゲームの核「ストッパ」

ここまでのワークは、バラバラな間隔で流れてきます。

そのままだと、排出間隔もバラバラです。
そこで次に作るのが、ストッパ。

ワークを一度止める。
決められたタイミングで、
1個だけ流す。

すると、

バラバラだったワークが、

●  ●  ●  ●

のように、一定間隔へ整っていく。

この瞬間、今回のゲームで考えていた、
「設備を使ってラインを改善する」
という体験が初めて本格的に成立しそうです。


「ただ流す」から「流れを制御する」へ

第8回では、コンベアを置けるようになりました。
今回、そのコンベア上を、ワークが実際に流れるようになりました。

そして、1個だったワークが、今度は複数になり、
しかも不規則に流れてきます。

少しずつですが、ただの搬送ゲームから、
生産ラインを考えるゲームへ近づいています。

次回は、このバラバラな流れを制御するために、

【第10回】ストッパを追加して、ワークを一定間隔に整列させてみた

というところから進めていきます。

コメント

タイトルとURLをコピーしました