【第12回】加工機をゲームの中心にする|設備能力と投入タイミングを考える工場パズルへ

機械設計×ゲーム

前回の記事では、ワークの終点として「出荷場」を作り、

一定間隔で安定してワークを送り続ける

という成功条件を考えました。

ここまでで、スタートからワークが流れる。

  • コンベアで運ぶ。
  • ストッパで間隔を整える。
  • 最後に出荷場へ送る。

という流れができました。

ただ、ここで少し考えました。
「なぜ一定間隔に整える必要があるのか?」
出荷場で間隔を測るだけでもゲームにはなります。

でも、もっと工場らしく、もっと直感的に、
「間隔を整えなければいけない理由」を作れないか。

そこで出てきたのが、加工機です。

今回から、ワークをゴールへ運ぶゲームではなく、
加工機の能力に合わせてワークを供給するゲームへ、
少し方向性を変えることにしました。


出荷場より、加工機に「間隔の意味」を持たせたい

前回は、出荷場に、

  • 目標排出間隔
  • 許容誤差

を持たせることで、

ワークを一定間隔に整える意味を作ろうとしていました。
ただ、少しゲーム的なルールに見える部分もありました。

なぜ出荷場が、「2秒間隔で出荷してください」と要求しているのか。

もちろん成立はします。

でも、工場としてもっと自然なのは、下流設備に処理能力があるから、
上流の供給を整えるという考え方です。

例えば、加工機の処理時間が、2.0秒だったとします。

1個のワークが加工機へ入る。

↓

2秒間加工する。

↓

加工完了。

↓

次のワークを受け入れる。

これなら、なぜ2秒間隔に整えなければいけないのかが、ものすごく分かりやすい。


加工機が処理中なのに、次のワークが来たらNG

今回の仕様で重要なのがここです。
加工機に、処理時間を持たせます。

例えば、

2.0秒。

ワークが入ると、加工機は2秒間、BUSYになります。

イメージは、

ワーク投入
↓
加工中 2.0秒
↓
加工完了
↓
次ワーク受付可能

そして、加工中に次のワークが入ってきたら、NG。

これなら、ゲームの失敗条件もかなり直感的です。
加工機がまだ処理中なのに、次のワークを突っ込んでしまった。

つまり、設備能力を超えて供給してしまったということです。
これは機械設計や生産技術の感覚でも、かなり分かりやすいルールです。


プレイヤーの目的が一気に明確になった

この仕様にすると、プレイヤーがやることは、かなりシンプルになります。
加工機が処理できる周期に合わせて、上流からワークを送り込む。

例えば加工時間が2秒なら、ワークも、だいたい2秒以上の間隔で入れたい。
でも、スタートから出てくるワークは、不規則です。

だから、そのまま流すと、加工機の前に一気にワークが来る可能性があります。

そこで、ストッパの出番です。

バラバラに流れてきたワークを、ストッパで一度止める。
そして、加工機の処理能力に合わせて、1個ずつ送り出す。

ここで、今まで作ってきた設備同士が、初めて明確につながりました。


ストッパの意味もさらに分かりやすくなった

これまでストッパは、「ワークを一定間隔に整える設備」として使っていました。
でも、「なぜ整えるのか?」という理由は少し弱かったです。

今回、加工機に処理時間を持たせたことで、ストッパの目的が明確になります。

例えば、加工機の処理時間が、2.0秒なら、
ストッパの開放周期も、2.0秒前後に設定したくなります。

つまり、加工機の能力に合わせて、上流設備を調整するという設計になります。
これはかなりゲームらしいです。


ただ2秒周期にすれば終わりではない

ここで面白いのが、単純に、ストッパを2秒周期に設定すれば、
必ずうまくいくとは限らないことです。ワーク供給は不規則です。

上流でワークが足りなければ、加工機が待つ。
逆に、ワークが多すぎれば、ストッパ前に溜まる。

さらに、

  • ストッパの位置
  • 開放周期
  • Start Delay
  • コンベアの長さ
  • 加工機までの距離

などでも、タイミングは変わります。

つまり、加工機2.0秒という要求に対して、ライン全体を調整する必要がある。

ここが、かなりパズルになりそうです。


加工されたワークは色を変える

もう一つ、分かりやすさのために入れたいと思ったのが、ワークの色変更です。

加工前は、白。
加工機に入り、処理が終わったら、青。

これだけで、どのワークが加工済みなのか、一目で分かります。

ゲーム画面でも、白いワークが加工機へ入る。

少し待つ。

そして、青になって出てくる。
かなり工場らしいです。


ワークに「状態」を持たせる

ここで、ゲーム上のワークにも、新しい考え方が必要になります。
今までのワークは、ただの「流れる白い丸」でした。

でも今回から、ワーク自身に、加工済みかどうかという情報を持たせます。

例えば、IsProcessed = falseなら未加工。
加工機で処理されたら、IsProcessed = trueにする。

私はコードを直接書いていませんが、ゲームとして考えると、かなり分かりやすいです。

ワークにも、状態があるということです。


加工機を通さずゴールしたらNG

加工機を作るなら、出荷場にも意味を持たせたい。
そこで、前回作ったゴールの役割も、少し変更します。

ゴールは、加工済みワーク専用。
つまり、青の加工済みワークなら、出荷OK。

でも、白い未加工ワークがゴールへ行ってしまったら、NG。
これで、加工機を通す意味がさらに明確になります。

単に、「どこかを通ればポイントが増える」ではありません。
必要な工程を終えた製品だけを出荷する。

工場ゲームとして、かなり自然です。


ゲームの目的を一文で説明できるようになった

今回の仕様変更によって、このゲームの目的が、
かなり簡単に説明できるようになりました。

未加工ワークを加工機へ一定周期で供給し、加工済みワークだけを
ゴールへ送り続ける生産ラインを設計する。

かなり分かりやすいです。

今までの、

「コンベアを置いて、ワークをゴールまで運ぶ」より、
ずっと今回のゲームらしくなりました。


「出荷間隔」から「設備能力」へ仕様変更

ここは、今回かなり大きな仕様変更です。

前回までは、出荷場側に、
2.0秒間隔で出荷してください
という要求を持たせようとしていました。

でも今回から、その2.0秒という意味を、
加工機の生産能力に置き換えました。

つまり、出荷場が、「2秒間隔で来てください」と言うのではなく、
加工機が、「私は1個処理するのに2秒かかります」と要求する。

プレイヤーは、その能力を超えないように、上流のラインを設計する。

こちらの方が、圧倒的に自然です。


加工機が「問題を出す」ゲームになる

さらに面白いのが、ステージごとに加工機の処理時間を変えられることです。

例えば、

  • ステージ1
    • 加工時間:2.0秒
  • ステージ2
    • 加工時間:1.5秒
  • ステージ3
    • 加工時間:3.0秒

というようにできます。

つまり、

加工機が、そのステージの問題条件になるわけです。

プレイヤーは、その設備能力に合わせて、コンベアやストッパを設計する。
これはかなり、設備設計パズルらしいです。


主役がコンベアから加工機へ変わった

この仕様変更で、ゲームの見え方も少し変わりました。
これまで主役は、コンベアでした。

  • どうやってルートを作るか。
  • どうやってワークを運ぶか。

というゲームです。

でも、加工機を入れると、主役は、加工機になります。
コンベアも、ストッパも、加工機へ正しくワークを供給するための設備になる。

つまり、どう運ぶかではなく、
加工機が要求する条件をどう満たすか
を考えるゲームになります。

この方が、自分が最初に考えていた、
「要求仕様を満たす設備を設計する」
というゲームコンセプトにかなり近いです。


ゲームループもかなり完成に近づいた

加工機を入れることで、ゲームの基本ループもかなり整理できます。

スタート・加工機・ゴールが配置されている

↓

プレイヤーがコンベアを設計する

↓

ストッパの位置や周期を調整する

↓

試運転する

↓

30秒連続運転する

↓

加工NGや滞留を確認する

↓

評価を見る

↓

改善する

↓

再試運転

という流れです。

第5回で考えていた、
設計 → 試運転 → 問題発見 → 改善が、
かなり具体的なゲームとして見えてきました。


結果画面にも意味が出てくる

加工機があると、評価項目も増やせます。

例えば、

試運転完了
加工数:14個
加工NG:0個
加工機稼働率:93%
最大待ち数:2個
CLEAR

のような感じです。

単に、「ゴールに14個到達しました」だけではなく、
設備をどれだけ効率よく使えたかを評価できます。

今後考えている、コストと性能のトレードオフとも、かなり相性が良さそうです。


「ワークを運ぶゲーム」から「生産ラインを設計するゲーム」へ

今回の加工機追加は、単に新しい設備が1個増えただけではありません。
ゲームの目的そのものが、かなり明確になりました。

これまでは、ワークをゴールまで運ぶ。

今回からは、加工機の能力を超えないようにワークを供給し、
正しく加工された製品を出荷する。というゲームです。

この違いはかなり大きいです。

ストッパも、コンベアも、出荷場も、すべてに役割が生まれました。


次は加工機を実際にUnity上へ作る

ここまでで、加工機の役割はかなり整理できました。
次にやることは、実際にUnityへ実装することです。

  • 加工機にワークが入る
  • 2秒間停止する
  • 加工機がBUSYになる
  • 加工完了でワークが青色になる
  • 次のワークを受け付ける
  • 加工中に次のワークが来たら待機またはNG

このあたりが、次の実装ポイントになります。
ここまでできれば、画面上でも、
「加工前 → 加工 → 加工済み」
という工場らしい流れが見えるようになります。

次回は、

【第13回】加工機を実装して、白いワークを青色に変えてみた

というところから、

さらに生産ラインらしいゲームへ進めていきます。

コメント

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