いい。
ここまでの設定に 「餌 → 胃で消化 → 排糞(8時間)」 を入れると、出目金の生態 OS が完全に成立する。
これは単なるギミックではなく、状態機械に“代謝レイヤー”を追加することになる。
以下、OS 的に破綻しないように 消化システムを構造化する。
🧭 出目金の「消化・排泄 OS」
出目金は 3つの内部タイマーを持つ。
- LastEatTime(最後に餌を食べた時刻)
- DigestionTimer(消化タイマー:8時間)
- FecesReady(排糞可能フラグ)
これを状態機械に統合すると、次のように動く。
🍙 1. 餌を食べる(Eat)
条件
- Alive / Hungry / Weak のいずれか
- 餌 Part に接触
処理
- LastEatTime = now
- DigestionTimer = 0
- FecesReady = false
- Hungry → Alive に戻る
- HP が少し回復(Weak → Alive の可能性)
🔥 2. 消化(Digest)
条件
- 餌を食べてから 0〜8時間
処理
- DigestionTimer が進む
- 8時間経過すると FecesReady = true
- 出目金の腹の色を少し濃くするなどの視覚表現も可能
OS 的ポイント
- 消化中は排糞できない
- 消化中は空腹タイマーは進む(ここがリアル)
💩 3. 排糞(Poop)
条件
- FecesReady = true
- 出目金が泳いでいる(Dead ではない)
処理
- 小さな黒い Part(Feces)を生成
- ゆっくり沈む(Density > 1)
- FecesReady = false
- DigestionTimer = 0 に戻る
補足
- 糞は 1〜2分で Despawn
- 水中昆虫が糞に反応するなどの生態連動も可能
🧩 4. 空腹(Hungry)との関係
あなたの設定では:
- 3日餌なし → Hungry
- 4日餌なし → Dead
ここに消化を入れても破綻しない。
空腹タイマーは「食事時刻」で管理
- LastEatTime から 3日 → Hungry
- LastEatTime から 4日 → Dead
消化タイマーは「排糞」だけに関係
- 消化が終わっても空腹にはならない
- 空腹はあくまで「食べてからの経過時間」
🧠 5. 天敵(血を吸う昆虫)との関係
昆虫に血を吸われると:
- HP が減る
- Weak 状態へ遷移
- 泳ぎが弱くなる
- 消化速度は変わらない(OS 的に独立レイヤー)
ただし、ゲーム性を高めるなら:
- Weak 状態では排糞が遅れる
- HP が低いと消化効率が落ちる
などの拡張も可能。
🧭 6. 死亡後の消化・排泄
あなたの設定では:
- 死ぬと腹を上に向ける
- 目が白くなる
- 1日間浮いている
ここに 消化システムをどう扱うかを決める必要がある。
OS 的に最も自然な仕様
- Dead になった瞬間、消化は停止
- 排糞は行われない
- FloatingDead の間も排糞なし
理由:死体が糞を出すとゲーム的に不自然で、視覚的にも不要。
🧩 全体の OS を統合するとこうなる
■ 内部タイマー
| 名称 | 役割 |
|---|---|
| LastEatTime | 空腹・死亡の判定 |
| DigestionTimer | 排糞の判定 |
| FecesReady | 排糞可能フラグ |
■ 外部状態(状態機械)
Alive → Hungry → Dead → FloatingDead
Weak は並列状態
■ 消化は「内部レイヤー」として独立
- 状態機械と衝突しない
- 天敵とも独立
- 死亡後は停止
🎣 次のステップ
この OS をコード化するなら、次のどれを進める?
- 出目金の内部タイマー(食事・消化・排糞)を ModuleScript で実装
- 排糞 Part の生成と物理挙動(沈む)をコード化
- 餌 Part の生成と食べる処理を実装
- 天敵昆虫と出目金の相互作用(吸血)を実装
どれに進む?