この設定は ゲームとしても OS としても非常に良い
出目金モデルの「生態 OS」をここで定義しておくと、後の AI 実装が破綻しない。

以下、出目金のライフサイクル OS(状態機械)として構造化する。


🧭 出目金のライフサイクル OS(状態機械)

出目金は 5つの状態を持つ。

  1. Alive(通常)
  2. Hungry(空腹)
  3. Weak(天敵に血を吸われた)
  4. Dead(死亡)
  5. FloatingDead(死体が1日浮いている)

これを 状態遷移図として整理する。


🐟 1. Alive(通常)

条件

  • 餌を食べている
  • HP 正常
  • 天敵に襲われていない

行動

  • 泳ぐ(AI)
  • 色・マテリアル変更可能(プレイヤー操作)
  • 餌を探す

遷移

  • 3日餌なし → Hungry
  • 天敵に噛まれる → Weak

🍙 2. Hungry(空腹)

条件

  • 最後の食事から 3日経過

行動

  • 泳ぎが遅くなる
  • 餌を優先的に探す
  • 色変更は可能(プレイヤー操作)

遷移

  • 餌を食べる → Alive
  • 空腹状態が続く(+1日) → Dead

🩸 3. Weak(天敵に血を吸われた)

条件

  • 水中昆虫に噛まれる
  • HP が減少

行動

  • 泳ぎが弱くなる
  • 反応速度が低下
  • 色変更は可能

遷移

  • 時間経過で回復 → Alive
  • HP が 0 → Dead

💀 4. Dead(死亡)

条件

  • 空腹 4日目
  • Weak で HP 0
  • その他の死因

行動

  • 腹を上に向ける(Rotation 180°)
  • 目が白くなる(Material or Color 変更)
  • 浮力でゆっくり上昇(VectorForce)

遷移

  • 死後 1日 → FloatingDead

🕊️ 5. FloatingDead(死体が1日浮いている)

条件

  • Dead から 1日経過

行動

  • 水面付近で静止
  • プレイヤーは触れるが何もできない
  • 色変更不可

遷移

  • 1日経過 → Despawn(削除)

🧩 状態遷移まとめ(OS 的表)

状態 行動 遷移条件
Alive 普通に泳ぐ 3日餌なし → Hungry / 天敵攻撃 → Weak
Hungry 泳ぎが遅い 餌を食べる → Alive / 1日経過 → Dead
Weak 泳ぎが弱い 回復 → Alive / HP0 → Dead
Dead 腹上・白目・浮上 1日経過 → FloatingDead
FloatingDead 水面で静止 1日経過 → Despawn

🎨 プレイヤーができること(色・マテリアル変更)

これは Alive / Hungry / Weak の3状態のみ許可する。

変更可能項目

  • BodySphere の Color
  • TailFin の Material
  • Eye の Color(死後は白固定)
  • 背びれ・胸びれの色

変更不可

  • Dead / FloatingDead
    (死体の色が変わるのは不自然なため)

🦟 天敵:水中昆虫(BloodSucker)

行動

  • 出目金を探す
  • 近づくと吸血(HP 減少)
  • 一定時間で離れる

出目金への影響

  • HP が減る
  • Weak 状態へ遷移
  • 泳ぎが弱くなる

🧠 この設定の強み(靖の OS 視点)

  1. 状態が明確で破綻しない
  2. AI の負荷が低い(状態ごとに処理が分離)
  3. プレイヤーの操作(色変更)が状態と衝突しない
  4. 死体の表現が自然(腹上・白目・浮上)
  5. 天敵の存在がゲーム性を生む

🎯 次のステップを選んでほしい

  1. この状態機械を Roblox Script(ModuleScript)として実装する
  2. 出目金の死体アニメーション(腹上・白目・浮上)をコード化する
  3. 天敵の水中昆虫 AI を設計する
  4. 餌システム(餌を食べる・時間管理)を実装する

どれを進める?