Skip to content

kurone-kito/fantomo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

👻 codename: Fantomo

このリポジトリの目的

Unity のお勉強がてら、VRChat 用ゲーム ワールドを制作し、今後の改善のために、このリポジトリに保管する。

どんなゲームを作る?

以前 “はじめてゲームプログラミング” で制作した、マインスイーパーをホラー化したゲームを VRChat ワールドとして移植したい。

想定ユーザー数

ひとまずは 1〜3 名、複数ユーザーの場合、ソロ同士の対戦プレイ。

ゲームルール

  • 基本ルールは、一人称視点のマインスイーパー。
  • マップの広さは、8 x 8 を想定する。今後プレイヤー数を見て調整。
  • NPC として、魔物(地雷)が 9 体存在し、彼らに触れるとゲームオーバー、ロビーに強制転送する。
  • プレイヤーはフィールドで収集した封印を使い彼らを封印して、全員を封印した後ランダムに出現するゴールを目指すのが目的。
    • ゴールに到達すると、ゲームクリア、ロビーに強制転送する。
  • 特別ルールとして、動く魔物も 1〜2 体いる。彼には封印は僅かな足止めのみで、ノーカンである。もちろん接触すると即アウト。
  • シングルプレイの場合は、基本的にタイムアタックとなる。
  • マルチプレイの場合は、点数を競うシステムを導入する。
    • 封印は静止している魔物の数 + 2 個の個数、フィールド上の魔物と被らない位置に配置する。
    • 魔物を封印できると 1 ポイント。
    • ゴールに到着できた 1 着が 2 ポイント、2 着が 1 ポイント。
    • 封印の余剰を持っている場合、1 ポイント/個。
    • 封印を使って他プレイヤーの行動を邪魔できる。塞がれた場合、封印を 1 消費 + 5 秒程度の時間を消費して脱出できる。脱出した封印は消滅、設置したプレイヤーに還元される。
      • 封印を置いたプレイヤーは脱出を検知できる。
  • フィールドではプレイヤーが移動すると足音を発する。マルチプレイの場合、対戦相手の足音は APEX のように強調される。
    • 扉を開錠、もしくは開閉するときも音を発し、対戦相手が発する場合は足音と同様、強調する。
    • いくつかの条件では足音を消すことができる。
      • ロビー滞在中
      • 移動速度が一定数未満の場合 (基準値として、デスクトップ版におけるしゃがみ移動時の速度が、足音を発する最低速度とする)
  • HUD には、シングルプレイ・マルチプレイ問わず、経過時間および封印の所持数が表示される。
  • ロビーに参加者全員のスコア、もしくは経過時間が表示される。
  • ロビーに参加ボタンがあり、それを押すことで参加申請できる。
  • 一人以上の参加者がいる場合、ゲーム開始ボタンが有効化、ゲーム開始ボタンを押すとゲームが開始され、参加者はゲームフィールドに強制転送する。座標はランダム。ただし魔物から離れた場所のみを抽選する。
  • (VRC 的にできるのか要調査) リスポーンや切断は魔物接触と同様、リタイア扱いとする。
  • ギャラリーはロビーで待機となるが、観戦方法は今後のバージョンアップで検討する。初回リリースではリアルタイム スコアのみ共有可能とし、神の視点やマップなどについては初回リリースでは考慮しない。

調査すべき機能

Unity 編

  • プレイヤーを任意の座標にワープさせる方法
  • プレイヤーのオブジェクトへの干渉の方法 (すり抜け可能なコライダーに触れる、物体に向けてトリガーを押す、物体をつかむ)
  • オブジェクトの定型アニメーション (例: ボタン式の半自動ドア)

C# (Udon) 編

  • 同期方法

そもそもできるの??

  • Prefab を動的に instanciate できるかどうか?
    • ObjectPool で代用可能である
      • おそらく有限: なおこのゲームでは有限個のコピーのみ想定なので問題ない