Skip to content

shaunnnaka/digitaltwinescapegame

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

digital twin escape game

デジタルツイン脱出ゲーム

概要

デジタルツインな謎解き脱出ゲームは,従来型の脱出ゲームと,会場の 3D  モデル内で行う VR 脱出ゲームを組み合わせた新しいタイプの脱出ゲームである。
リアル空間と会場の 3D  モデル内のバーチャル空間を使用するため,並行世界のような表現が可能である。 2 つの並行した空間のインタラクションを楽しめる会場型脱出ゲーム。
ただし,リアル空間とは,従来型の脱出ゲームをプレイする実際の会場を指す。バーチャル空間とは,使用する会場をスキャンし,バーチャル上に構築した 3D 空間のことを指す。

ソースファイル構成

  • UnityScript

    Unity 内で使用している自作 Mono クラス。

    主要スクリプト

    • RoomCalibrator.cs

      リアル空間とバーチャル空間の位置や角度を一致させるキャリブレーションを行うプログラムである。  実際の会場の3点( A , B , C )の座標をMeta Quest 2 のコントローラーで取得する。ただし,BA・ BC。会場の3Dモデルの同じ位置に来る点( A' , B' , C' )の座標を一致させる。ただし,B'A' ・ B'C' 。 まず,センシングした点 B に点 B' を移動させる。そして,点 B を起点としてリアル空間とバーチャル空間の3点の座標が一致するようにする。 3点の座標が一致するのはエネルギー E を最小化するのを勾配降下法で実装した。 E = B'A' ∙ BC B'A' ・ BC だけの条件では,想定外の演算結果になってしまう場合も考えられる。しかし,バーチャル空間の会場の位置や角度の初期値はリアル空間との会場と少ししかずれでいない(大きくて45°程度のずれ)と仮定している。 このキャリブレーションにより本来,壁の位置に壁のオブジェクトが来るようになる。壁や家具にぶつからずに部屋を動き回ることができる。

    • RemoteControlObj.cs

      フラグによってオブジェクトを移動させる。

      「連動する椅子」

    • BoxLock.cs

      鍵によって金庫を解錠させるプログラム。

      「連動する金庫」

    • Bomb.cs

      爆弾が爆発するまでのタイムリミットのカウントダウンをする。爆弾解除の判定を行う。

    • CrossWord.cs

      正解の文字ブロックが近づいたら自動で文字ブロックを当てはめるプログラム。

    • StoryProcessor.cs

      進行状況によって表示する文字列(ストーリー)を切り替えるプログラム。

    • SecurityCamera.cs

      カメラ映像をレンダリングし,レンダーテクスチャを画像に変換しする。

    • WebSocket.cs SecurityCamera クラスで出力された画像を Web Socket を介して同じネットワーク上にブロードキャストする。なお,受信側の PC では画像をブラウザで表示する。

    • WebRequest.cs

      60フレームに1回 GET, POST メソッドでHttp通信をする。連動する椅子や連動する金庫の状態を同期する役割がある。

  • NodeServer

    同ネットワークで動作している Meta Quest 2 からの監視カメラの映像を Web Socket で受け取り,ブラウザで表示する。

  • Server

    Python の Flask ライブラリを使用して実装した。 mongoDB を使用して, http 通信で送受信される情報を格納おり,適宜更新をする。ゲーム内で使用する椅子の動きや金庫の開閉の状態フラグの管理を行っている。

  • Receiver

    フォトリフレクタ,サーボモーターを制御している Arduino とシリアル通信をするホスト PC 用プログラム。

  • rp220

    「連動する椅子」の実装に使用しているフォトリフレクタを使ったセンシング。

  • ServoMotor

    ホスト PC からの命令でサーボモーターを動作させる。「連動する金庫」で使用。

  • Contents

    ゲーム内で使用するリアル空間を担当するプレイヤーが参照できるテキスト(爆弾解除マニュアル)。

About

digital twin escape game

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published