この設定は ゲームとしても OS としても非常に良い。
出目金モデルの「生態 OS」をここで定義しておくと、後の AI 実装が破綻しない。
以下、出目金のライフサイクル OS(状態機械)として構造化する。
🧭 出目金のライフサイクル OS(状態機械)
出目金は 5つの状態を持つ。
- Alive(通常)
- Hungry(空腹)
- Weak(天敵に血を吸われた)
- Dead(死亡)
- 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 視点)
- 状態が明確で破綻しない
- AI の負荷が低い(状態ごとに処理が分離)
- プレイヤーの操作(色変更)が状態と衝突しない
- 死体の表現が自然(腹上・白目・浮上)
- 天敵の存在がゲーム性を生む
🎯 次のステップを選んでほしい
- この状態機械を Roblox Script(ModuleScript)として実装する
- 出目金の死体アニメーション(腹上・白目・浮上)をコード化する
- 天敵の水中昆虫 AI を設計する
- 餌システム(餌を食べる・時間管理)を実装する
どれを進める?