【第27回】Unity工場パズルのワーク4種類を決定|製品ごとにライン設計が変わる仕様へ

機械設計×ゲーム

前回、第26回では、
「今のゲームに、もう少しゲーム性や達成感を加えたい」
というところから、ChatGPTとかなり壁打ちしました。

  • コンボ
  • 設計スコア
  • AI設計レビュー
  • 受注システム
  • 設備の劣化

いろいろな案が出ましたが、その中で一番自分の中でしっくりきたのが、
『 ワークの種類を増やす 』という方向です。

ここまでずっと、設備側を増やしてきました。

でも、そこを流れるワークが全部同じなら、
結局どのステージでも似たようなラインになってしまいます。

そこで今回は、「どんなワークなら、ライン設計そのものを変えられるのか?」
をChatGPTと相談しながら、かなり慎重に決めていきました。


ワーク選びはゲーム全体に影響する


今回の仕様は、単純に、

「青いワークを追加しよう」
「赤いワークも作ろう」

という話ではありません。

ワークの特徴によって、

  • どんな設備を使うのか。
  • どんな経路を通すのか。
  • 分岐する必要があるのか。

まで変わります。

つまりワークの種類を決めることは、
ライン設計のルールを決めることに近いです。

そのため、ここは簡単に決めず、ChatGPTと何度も壁打ちしました。


最初は「標準・重量・精密・高速」を考えた

最初に出てきた案は、

  • Standard(標準)
  • Heavy(重量)  
  • Precision(精密)
  • Rush(高速)

の4種類でした。

例えばHeavyなら搬送が遅い。
Precisionなら丁寧に扱う必要がある。
Rushなら高速で出荷する必要がある。

名前を見ただけでも特徴を想像しやすく、
かなり分かりやすいです。

特に、ワークによって最適なライン設計思想を変える
という考え方はかなり良さそうでした。

ただ、ここで一つ気になりました。


「このワークにはこの設備」だけにはしたくない

例えば重量品なら、加工機Lしか使えない。
精密品なら、ストッパ禁止。

と完全に決めてしまうと、攻略方法がかなり固定されます。

プレイヤーが考えるというより、HeavyだからL設備を置く。
という単純な相性ゲームになってしまいます。

今回作りたいのは、ワークの特徴を見て、
自分でラインを考えるゲームです。

そこで、「専用設備が必要」という方向よりも、
ラインの作り方そのものに制約を持たせる
方向で考えることにしました。


精密品は「接触させない」という案が面白かった


その中でかなり気に入ったのが、精密品は接触NGというルールです。

ワーク同士がぶつかったらNG。
さらに、ストッパへ接触するのもNG。

つまり、普通のワークのように、ストッパ前で一度止めて、
間隔を整える方法が使えません。

ではどうするか。

コンベア速度を変える。
バッファ区間を作る。
十分な間隔を確保して流す。

といった、止めずに流すライン設計が必要になります。
これは普通のワークとはかなり違います。


「こんなルールまで実装できるの?」と思うようになった

精密品のルールを考えていたとき、自分の中では一つ不安がありました。
そもそも、ワークごとにここまで細かいルールを設定できるのか?

ということです。

特に、

  • ワーク同士が接触したらNG
  • ストッパに触れたらNG

といった判定は、ゲーム制作初心者の自分からすると、かなり難しそうに見えます。

「これ、簡単に追加できるものなの?」
正直、まったく分かりません。

そこでいつものようにChatGPTへ聞いてみました。

はじめ
はじめ

「ちなみに、接触判定はうまく取れる?」

すると、

ChatGPT
ChatGPT

「取れます。しかも今のゲームにはすでにMinimum Workpiece SpacingとWorkpieceTrafficControllerがあるので、接触判定は比較的実装しやすい部類です。
Physics2DのCollider接触に頼るより、ワーク中心間距離で判定する方法が安全です。」

とのこと。

言っていることは、なんとなくわかるけど、やっている処理はもはやわかりません。

自分からすると、「そんなことまでできるの?」という感じですが、
ChatGPTに相談すると、毎回かなり具体的に実装方法まで返ってきます。

この頃になると、ChatGPTの立ち位置も最初とはかなり変わってきました。

最初は、ちょっと相談する相手。
それが今では、かなり頼れる相方。

いや、むしろ、ゲーム制作の先生に近い。という感じです。

はじめ
はじめ

こんなの面白そう

と気軽にアイデアを出す。

ChatGPT
ChatGPT

「できます。こういう仕組みにすると実装しやすいです」

と整理する。

そして最終的にCodexがコードにする。
この流れがかなり定着してきました。

ゲーム制作の知識がない自分でも、実装できるかどうかを最初から心配しすぎず、
まずアイデアを出せるようになったのは大きいです。

今回の「精密品は接触NG」というルールも、そんなAIとのやり取りから生まれた仕様の一つです。

短納期品は「5秒以内に出荷」

短納期品については、かなりシンプルなルールにしました。
投入されてから5秒以内に出荷する。これだけです。

でも、この制約があるだけで、
ラインの作り方が大きく変わります。

遠回りできない。
長時間ストッパで待たせられない。
加工機前で渋滞させられない。
できるだけ短い経路で、スムーズに出荷する必要があります。

土地を広く使えばいいとも限りません。
場合によっては、コンパクトなラインの方が有利になります。

これはかなりパズルとして面白そうです。

精密品と短納期品は同じラインにしづらい

さらにここで面白い関係も見えてきました。

精密品は、接触させないために、ある程度余裕を持って流したい。
一方、短納期品は、できるだけ早く出荷したい。

この2つは、求めているライン設計がかなり違います。

精密品に合わせれば遅くなる。
短納期品に合わせればワーク間隔が詰まりやすい。

つまり、同じラインですべてを処理するのが難しい。
これこそ、ワークの種類を増やす意味だと思いました。



もう1種類は「未加工品」にした

最後まで悩んだのが、4種類目でした。

  • 重量品。
  • 小型品。
  • 大型品。
  • 高付加価値品。

いろいろ考えましたが、最終的に選んだのが、
未加工品です。

このワークだけ、加工回数のスタート地点が違います。

通常のワークは、加工回数0から始まります。
しかし未加工品は、加工回数 -1からスタートします。

つまり、

1回加工しても、-1 → 0になるだけ。
さらにもう1回加工して、0 → 1となります。

そのため、例えば、「加工1回の製品を出荷してください」
という条件なら、通常品は加工機を1回通せばいい。

でも未加工品は、加工機を2回通す必要があるということです。
これなら同じ加工機を使いながら、ワークによって必要工程数を変えられます。


最終的に4種類のワークへ


いろいろ考えた結果、最初に実装するワークはこの4種類に決めました。

ワーク特徴ライン設計への影響
標準品特殊条件なし基本となるノーマルワーク
未加工品加工回数-1から開始同じ出荷条件でも加工が1回多く必要
精密品ワーク同士の接触・ストッパ接触禁止接触させずに間隔を作るラインが必要
短納期品投入から5秒以内に出荷短い経路・高速搬送が重要

この4種類なら、同じ設備を使っても、
最適なラインが変わるという状態を作れそうです。

  • 標準品は基本を学ぶ。
  • 未加工品は工程数を考える。
  • 精密品はワーク間隔を考える。
  • 短納期品は時間を考える。

かなり役割が分かれました。


標準品はあえて「普通」にする

標準品には特殊ルールを付けません。

これは初心者向けでもありますし、
他のワークとの差を分かりやすくするためでもあります。

標準品なら、

  • 投入
  • 加工
  • 出荷

という基本的なラインで成立する。

まず標準品でゲームの基本を覚える。

そこから、

  • 未加工品
  • 精密品
  • 短納期品

と増やしていく。

この順番なら、ルールも理解しやすそうです。


ワークの「種類」と「加工状態」は別にしたい

そして、もう一つ大事な仕様も決めました。

これまでワークは、

白=未加工
青=加工済み

のように、色で加工状態を表現していました。

でも今回、ワークが4種類になります。

ここで、

標準品=青。
精密品=紫。
短納期品=黄。

のように種類まで色で表現すると、加工回数を何で表現するのか?
という問題が出ます。

そこで、

ワーク種類は「形」で判別
加工回数は「色」で判別

することにしました。

例えば、同じ精密品でも、
加工前と加工後で色が変わる。

でも形は変わらない。

これなら、何の製品かと、
何回加工されたかを同時に見分けられます。

この考え方は今後ワーク種類が増えても使えそうです。


識別センサとの相性も良さそう

将来的には、複数種類のワークをランダムに投入する設備も考えています。
そうなると必要になるのが、識別センサです。

ワークの形を見て、「これは精密品」「これは短納期品」と判定する。
その情報を使って分岐コンベアで、それぞれ別ラインへ振り分ける。

つまり、ランダム投入 → 識別 → 分岐 → 専用ライン → 出荷という流れが作れます。
第24回で作った分岐・合流も、ここでかなり意味が大きくなってきます。


今回はかなり重要な仕様決めになった

今回の第27回では、実装そのものよりも、
ワークにどんなルールを持たせるかを考える時間の方が長くなりました。

でも、これはかなり重要だったと思います。

設備を1個増やすのとは違って、ワーク種類を追加すると、
今まで作ってきたライン設計全体に影響します。

だからこそ、ChatGPTと何度も相談しながら、
少しずつ条件を絞っていきました。

そして最終的に、標準品・未加工品・精密品・短納期品の4種類で進めます。


次は「形」と「色」を具体的に決める

4種類の役割は決まりました。

次に必要なのは、ゲーム画面を見ただけで、
それを判別できることです。

標準品はどんな形?
未加工品は?
精密品は?
短納期品は?

さらに、

加工回数0。
加工回数1。
加工回数2。

を、どんな色で表すのか。

ここが分かりにくいと、
せっかくワーク種類を増やしても遊びにくくなります。

次回、第28回では、
ワーク4種類の「形」と加工回数を表す「色」
をさらに詰めていきます。

ワーク種類が増えたことで、
いよいよ工場を流れる製品そのものにも、ゲーム性が出てきました。

コメント

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