【第10回】工場パズルにストッパを追加|ワークの投入間隔を整える設備を実装

機械設計×ゲーム

前回の記事では、コンベア上を青いワークが滑らかに流れるようになりました。
さらに、ワークを10個、不規則な間隔で流すことで、

「バラバラに流れてくるワーク」

という、工場らしい問題も少しずつ見えてきました。

そして今回は、いよいよその流れを整えるために、
『ストッパ』を追加します。

このストッパは、今回のゲームにとってかなり重要な設備です。

なぜなら、バラバラに流れてくるワークを一度止めて、
一定間隔で1個ずつ流すという処理ができるからです。

ここまで来ると、ただワークを流すだけではなく、

「設備を使って流れを改善する」

という、今回のゲームでやりたかった遊びが初めて見えてきます。


今回のSTEP6は、ゲームの核になる

ChatGPTからも、

ChatGPT
ChatGPT

ここからが一番面白いSTEP

と言われました。

これまでのSTEPは、

  • グリッドを作る。
  • コンベアを置く。
  • ワークを流す。

という、いわばゲームの土台づくりでした。

でもストッパが入ると、

● ●●  ● ●●

のようにバラバラだったワークを、
ストッパで一度止めて、

●  ●  ●  ●

のように整えることができます。

つまり、「悪い状態を設備で改善する」
という体験が初めて生まれます。

ここは、今回のゲームが本当に面白くなるかどうかを確認する、
かなり重要なマイルストーンです。


Codexにお願いしたストッパの仕様

今回のCodexへの依頼は、かなり具体的です。

必要な機能は、

  • 左パレットにストッパを追加
  • ストッパを配置できる
  • 閉状態ではワークを停止
  • 2秒周期で開放
  • 開放時間は0.3秒
  • 1回の開放で先頭ワーク1個だけ通す
  • 後続ワークはその場で待機
  • 閉状態は赤
  • 開状態は緑
  • リセット時にタイマー初期化

というもの。

そして今回も、まだ入れないものを明確にしました。

  • センサ
  • PLC
  • ゴール判定
  • 成功判定
  • 衝突
  • 詰まり判定

です。

ここでも、まずストッパ単体の面白さを確認することに集中します。


ストッパの周期は固定にしない

最初は、「2秒ごとに開くストッパ」
として作れば十分かなと思っていました。

でもChatGPTから、

ChatGPT
ChatGPT

周期は固定値ではなく、Inspectorから変更できるようにした方がいい

という提案がありました。

例えば、

  • 開放周期:2.0秒
  • 開放時間:0.3秒

を設定値として持たせる。

そうすれば、後から、

  • 1.5秒
  • 2.0秒
  • 3.0秒

と簡単に変更できます。

これはかなり重要です。

なぜなら将来的に、ステージごとにストッパの性能を変える
こともできますし、さらに発展させれば、

プレイヤー自身がストッパ周期を調整する

というゲーム性にもつなげられるからです。

この時点ではまだそこまで実装しませんが、
後から広げられるようにしておく。

少しずつ、ゲームの作り方が分かってきた気がします。


Codexがストッパを実装

STEP6をCodexにお願いすると、

StopperBlock.cs

という新しいファイルが追加されました。

さらに、既存の

BlockBase.cs

BlockPlacementController.cs

BlockPaletteUI.cs

なども変更されました。

ここでも、細かいコード内容はほとんど分かりません。

でも、Codexからの説明をChatGPTに渡して、

「自分は何を確認すればいい?」と聞きます。

すると、やることはかなりシンプルに整理できました。


自分が確認すること

今回の動作確認は、次のような流れです。

まずUnityをPlay。

コンベアを並べて、その途中にストッパを置きます。
ストッパは、コンベアと同じようにRキーで向きを変えられます。

試運転を開始すると、最初はストッパが赤色になっています。

この状態は、閉です。

ワークがストッパの位置まで来ると、そこで停止します。
そして、約2秒ごとに、ストッパが緑色になります。

すると、待っていたワークのうち、先頭の1個だけが通過します。
その約0.3秒後、再び赤に戻る。
そして、次の開放タイミングまで、後続ワークはその場で待つ。

これを繰り返します。


「1回につき1個だけ通す」が大事

今回のストッパで特に重要なのが、1回の開放で先頭ワーク1個だけ通すというルールです。

もし開放中に、後ろのワークまでまとめて流れてしまったら、整列できません。

なので、先頭のワークだけを通す。
後ろのワークは待機。
次の周期で、また1個だけ通す。

これを繰り返すことで、バラバラだったワークが、少しずつ、一定間隔に整っていきます。


目で見て変化が分かる

実際に動かしてみると、かなり分かりやすいです。

ストッパ手前では、

● ●●  ● ●●

のように、バラバラな間隔でワークが溜まります。

でも、ストッパの後では、

●  ●  ●  ●

のように、きれいな間隔で出ていく。

この変化が、見た目で分かります。

ここで初めて、「設備を置いたことでラインが改善された」
という感覚が出てきました。

ただのギミックではなく、ちゃんとゲーム上の意味がある設備です。


赤→緑→赤が分かりやすい

今回、ストッパの状態を

  • 閉:赤
  • 開:緑

にしました。

これもかなり重要でした。

もし見た目が変わらなければ、
今ストッパが止めているのか、
通しているのか、分かりません。

でも、赤なら止める。緑なら通す。

というルールなら、一目で理解できます。

ゲームとしても、かなり分かりやすい表現です。


リセットすると、タイマーも最初に戻る

もう一つ大事なのが、リセット処理です。
リセットボタンを押すと、ワークが全部消える。

ストッパも赤に戻る。

そして、タイマーも最初からやり直し。
これによって、再試運転しても、同じ条件で確認できます。

前回、ワーク供給のランダムパターンを固定したのと同じで、
改善前と改善後を同じ条件で比較できることが重要です。


Inspectorで周期を変えてみる

今回のストッパは、Inspectorから、

  • Stopper Open Period
  • Stopper Open Duration

を変更できます。

例えば、周期を2秒から3秒へ。
開放時間を0.3秒から0.5秒へ。

こうすると、ストッパの動きも変わります。

ここで自然に、「周期を変えたらどうなる?」
と試したくなってきます。

これは、かなりゲームらしい感覚です。


ここで一度、ゲームとして遊んでみる

ここでChatGPTから、かなり重要な提案がありました。

ChatGPT
ChatGPT

一度ゲームを遊んでください。

コードや機能の確認ではなく、ゲームとしてどう感じるかを確認する、ということです。

見るポイントは3つ。


① 面白い?

ストッパを置いたとき、

「おお!」

と思えるか。

単に機能が動くだけではなく、

ワークが整列することに、

ちゃんと気持ちよさがあるか。


② 改善したくなる?

例えば、

「ストッパはここじゃなくて1マス右の方がいいかな?」

「周期をもう少し短くしたいな」

「この配置だと詰まりそうだな」

と、自然に改善したくなるか。

これは今回のゲームにとってかなり重要です。

なぜなら、このゲームのコアは、
試運転して、問題を見つけて、改善することだからです。


③ 見ていて気持ちいい?

これもかなり重要です。

ただ、止まる。動く。ではなく、

カチッ

↓

スーッ

↓

カチッ

というリズムになっているか。

工場ゲームは、機械が動いているのを眺める楽しさも大きいです。
ストッパが開いて、先頭のワークだけがスーッと流れていく。

その瞬間に、少しでも気持ちよさがあるか。
ここは今後のゲーム全体にかなり影響しそうです。


初めて「改善したくなるゲーム」になってきた

ストッパを追加する前までは、コンベアを並べて、ワークを流すだけでした。

もちろん、それでも少し遊べます。

でもストッパが入ると、一気に考えることが増えます。

  • どこに置く?
  • 周期は何秒?
  • ワークが溜まりすぎない?
  • もう少し下流に置いた方がいい?

こうした判断が自然に出てきます。

つまり、プレイヤーが、

「もっと良くしたい」

と思える状態になってきました。

これは、今回のゲームで一番やりたかったことです。


BlockBaseの考え方も活きてきた


前回の記事で紹介した、BlockBaseの考え方も、ここで少し活きてきました。

コンベアとストッパは、見た目も機能も違います。

でも、

  • グリッド座標
  • 向き
  • ブロック種類
  • 有効状態
  • 回転
  • 配置

といった基本部分は共通です。

そこへ、コンベアなら、
「常にワークを通す」

ストッパなら、
「閉じていると止める」

という固有機能を追加する。

少しずつ、設備を増やしていける構造になってきました。

🔗 BlockBaseについての記事はこちら


今回のSTEP6はかなり大きな一歩だった

今回までで、ゲームには、

  • グリッド
  • コンベア
  • ワーク生成
  • 不規則供給
  • 試運転
  • リセット
  • ストッパ
  • 周期制御

が入りました。

そして何より、設備を置くことでワークの流れが変わるようになりました。

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

今までのゲームは、
「置いたコンベアに沿ってワークが動く」だけでした。

今回から、設備の性能や設定によって、ラインの結果が変わるようになった。

ここでようやく、「工場パズル」としての核が見えてきました。


次は、さらに工場らしい設備へ

ストッパで、バラバラなワークを一定間隔に整える。

この仕組みができたことで、次は、加工機やゴール判定など、
より生産ラインらしい要素へ進めそうです。

ここからは、ただ流すだけではなく、
正しい状態でゴールへ送る
というゲームへ広げていきます。

次回は、

【第11回】出荷場を追加して、ワークを『ゴール』を作成してみた

このあたりから、工場パズルらしさがさらに強くなってきます。

コメント

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