maze

maze

English | 日本語

maze

maze は、first-person移動、衝突判定、spot light、Compute Effect、レーダー表示を備え、動的に生成した迷路を歩き回るウォークスルー用サンプルです。

main.jsは固定seedの疑似乱数から15×15 cellのDFS迷路を生成し、Primitive.cuboid()で床、壁、天井、部屋入口のside jamb、上部lintelを組み立てます。固定のModelAssetは読み込まず、生成した形状をWebgAppで描画します。

迷路は1階建てです。通路グリッド幅は2.5m、壁厚と天井厚は0.1m、天井下面は床面から3.0m、歩行者のbaseはy = 0.0EyeRig.eyeHeight = 1.6mです。壁厚を通路幅に含めるため、有効通路幅は概ね2.4mです。

床色は通常通路、部屋、開始エリア、ゴールエリアで分けています。迷路生成後には複数箇所へ 2 x 2 cell 以上の room を上書きし、room の内部壁を取り除いたうえで、幅 2.0m、高さ 2.4m の入口を作ります。入口の上部 lintel は高さ 0.55m とし、天井下面 3.0m との間へ 0.05m の余白を残します。

レーダーは walk_around と同じ heading-up 方式で、現在位置近くの collision segment を右上の 2D canvas へ重ね表示します。door の上部 lintel はプレイヤー円柱の高さ範囲と重ならないため、衝突対象にもレーダー表示にも含まれません。door の左右 jamb は歩行者に対する衝突対象として残ります。

迷路生成、部屋、扉、衝突判定、レーダーの詳しい規則はmaze_spec.mdに記載しています。

実行方法

使用している webg 機能

操作方法

確認ポイント

ファイル