What it does
できること
研究条件に合わせた空間
刺激までの距離、視線の高さ、明るさ、開始位置など、結果へ影響しうる要素を数値と配置で固定します。装飾は研究目的を妨げない範囲へ抑えます。
- 原点と基準スケールを統一
- 開始位置・向き・移動範囲を固定
- 条件ごとの差分を記録
迷いにくい体験導線
参加者が説明を読んで開始し、指定位置へ移動し、課題を終えるまでの順序を空間で示します。研究者が毎回口頭で補足しなくても進められることを目標にしました。
- 次の行動が視界に入る配置
- 必要な操作だけを提示
- 誤操作時に開始状態へ戻せる
VRで安定して動く軽量設計
ポリゴン数、マテリアル、ライト、影、衝突判定を整理し、描画負荷を抑えます。フレームレート低下はVR酔いと計測条件の変化につながるため、見た目と同じ優先度で扱いました。
- 静的な要素をまとめる
- ライトと影の数を制限
- 実機でフレーム時間を確認
Why I made it
きっかけと課題
研究で必要な刺激、距離、動線を満たす既存ワールドがなく、利用条件や更新によって環境が変わる問題もありました。
そこで、実験条件を自分で固定でき、同じ版を再利用できる専用ワールドを作ることにしました。制作物ではありますが、完成条件は『きれいに見えること』ではなく『条件を説明し、再現できること』です。
Process
進め方・実装手順
- 01
研究要件を数値化
必要な広さ、距離、視野、刺激、移動方法、記録イベントを一覧にし、必須条件と装飾を分けます。
OUTPUT — 要件表と空間仕様 - 02
ブロックアウト
立方体など簡単な形だけで床、壁、経路、開始位置を作り、HMDでスケールと動線を確認します。
OUTPUT — 低詳細プロトタイプ - 03
機能を追加
VRChat SDKを導入し、スポーン、コライダー、案内、必要なトリガーを一つずつ追加して動作確認します。
OUTPUT — 操作可能なワールド - 04
見た目と負荷を調整
条件へ影響しない範囲で素材と照明を整え、プロファイラーと実機で重い箇所を特定します。
OUTPUT — 軽量化したアセット - 05
実験手順として検証
初見の人に説明書どおり進んでもらい、迷った場所、誤操作、所要時間、VR酔いの兆候を記録します。
OUTPUT — 運用手順と修正記録
Problems & decisions
苦労したこと
01見た目と条件統制の衝突+
装飾や照明を増やすほど魅力は上がりますが、注意や明るさが条件ごとに変わる可能性があります。
研究に必要な要素をロックし、装飾は全条件で共通かつ視線を奪わないものだけに限定しました。
デザイン判断を好みではなく、研究要件との関係で説明できるようになりました。
02Unity上とVR内のスケール差+
モニターでは自然に見えても、HMDで入ると通路が狭い、文字が読めないといった差が生じました。
人型基準、目線高さ、実寸メートルを統一し、変更のたびにHMDで確認しました。
デスクトップ確認だけで完成とせず、体験するデバイスを基準に調整できました。
03修正が別の場所へ波及する+
床や壁を動かすと、照明、コライダー、案内、開始位置までずれることがありました。
空間を機能単位の親オブジェクトと再利用部品に分け、位置関係をまとめて管理しました。
影響範囲を小さくし、条件別ワールドの差分も追いやすくなりました。
Reproduction guide
再現するための手順
未来の自分や、同じものを作りたい人が迷わないように、最短の再現手順を残します。
1. UnityとSDKの版を固定
対応するUnity版、VRChat SDK版、導入パッケージを記録します。途中で版を変える場合は複製してから検証します。
2. 1 Unity unit = 1mで作る
目線、扉、通路、対象物の距離を実寸で設計し、最初からHMDで確認します。
3. 機能を一つずつ足す
スポーン、移動、衝突、刺激、記録の順に追加し、どの変更で問題が起きたか分かる単位で保存します。
4. 公開版を保存する
実験に使ったUnityプロジェクト、ワールド版、設定、実施日を対応付けます。後から最新ファイルで上書きしないようにします。
Reflection
振り返り
WHAT I LEARNED
- VR空間は画面ではなく身体スケールと移動を含むUIである
- 研究用制作では、魅力より条件を説明できることが優先される
- 版、設定、アセットを固定して初めて同じ実験環境を再現できる