/ACG_grpwk

Final Project of Advanced Computer Graphics Course

Primary LanguageGLSL

Game Client by Babylon.js Server Deploy to Azure App Servise

Documentation

環境構築

リポジトリのクローン

このリポジトリを好きな場所にクローンする。

$ cd WORK_DIR_ROOT
$ git clone https://github.com/udemegane/ACG_grpwk.git

エディタのインストール

babylonjs.editorを以下のリンクからインストールする。

Windows の場合、全てのユーザーにインストール:管理者権限を選択すること。手元の環境ではユーザーインストールだとよからぬエラーが起きた。

バックエンド用サーバのインストールとセットアップ

$ ./run-backserver.sh --init  # install all dependencies (requires user input along the way)
$ ./run-backserver.sh -s      # starts up a local backend server

その他のオプションの説明 | run-backserver.sh


エディタのつかいかた

ここに全てが書いてある。https://doc.babylonjs.com/extensions/editor/gettingStarted

Q&A

  • ソースコード(src/のファイル)変更しても何も変わらないが??
    • エディタ左上メニューバーにある Edit から、Restart Typescript Watcher を連打すると治る。

仕様

シーンのスクリプト

babylonjs editor はシーン中に存在するものに typescript ファイルを割り当てて挙動を制御できる。詳しくはドキュメントを読め。 ゲームのルールなどシーンそのものにスクリプトを割り当てたい場合は、グローバルな処理(あらゆるシーンに対して有効)なら src/scenes/GameScripts/sceneScriptBase.ts に書く。 シーン事の固有のスクリプトの場合は src/scenes/scene/scene.ts とか src/scenes/MainMap/mainMap.ts みたいに SceneScriptBase を継承して書く。

ランタイムデバッグ用 UI

tweakpaneをランタイム用デバッグ UI として採用した。ランタイム中に色々調整したいパラメータ(キャラクターの速度とかジャンプ力とか)はこれを使おう。 使い方は、sceneScriptBase.ts にパブリックな Pane 型の静的変数 pane がいるから、

import SceneScriptBase from '../GameScripts/sceneScriptBase';
/*
 * なにかの処理
 * */
SceneScriptBase.addInput(PARAMS, KEY);

みたいに使う。詳しくはドキュメントを見よう。 デバッグ UI 自体はエディタから GUI で消せるようにしてある。左の graph パネルから scene を選択して、右の inspector パネルの script タブの中にある Show Debug Menu でオンオフができる。

シーンの切り替え

シーンをランタイム中に切り替えるswitchScene()src/GameScript/environment.tsに書いた。サンプル実装としてデフォルトの FPS のシーンで0キーを押すと MainMap に切り替わる。詳しくはsrc/scenes/scene/camera.ts_onZeroKey()を見よう。

bash run-backserver.sh

Usage:  ./run-backserver.sh [OPTIONS]

Options:
  --init          Install all Requirements and Setup Environment for Python Development
  -s, --startup   Start Up Backend Server
  -r, --rebuild   Delete All Auto-Generated Files -> Create All Requirements and Initialize
  -t, --test      Run All Tests
  -d, --db        Show Data Inside Database
  -y, --yes       Say yes to all questions
  -h, --help      Show help