[Shader 入門 #06] VR / WebXR / Unity XR のシェーダー注意点(実戦編)
Shader 入門シリーズ最終回。VR / WebXR / Unity XR でシェーダーを書く際の注意点を、ステレオレンダリングの構造、透明描画の破綻、multipass や SSR の罠、パフォーマンス最適化、頂点アニメーションの重要性など、実制作で役立つ視点から解説する。WebXR 経験を持つ開発者がそのまま XR で強くなれる知識をまとめた。
Shader 入門シリーズ最終回。VR / WebXR / Unity XR でシェーダーを書く際の注意点を、ステレオレンダリングの構造、透明描画の破綻、multipass や SSR の罠、パフォーマンス最適化、頂点アニメーションの重要性など、実制作で役立つ視点から解説する。WebXR 経験を持つ開発者がそのまま XR で強くなれる知識をまとめた。
Unity 開発中に遭遇した3日間連続のトラブルについて、ChatGPT-5.2 と Gemini 3 の対応を比較した実戦レポート。6000系プロジェクト破壊、2022.3 の XR プレハブ破損、Android モジュール再構築失敗など、現場の地獄を通して“どのAIが何に強いか”が明確になった。実装・数学はChatGPT、環境構築・修復はGeminiという役割分担が必要であると結論づける。
Unity 2022.3 LTS環境で、XR Interaction Toolkitを使用してVRスティック移動とPCキーボード操作を共存させる実装ガイド。トラブル時のモジュール再インストール手順も網羅。
Shader入門第5回。水面・炎・発光という“ゲームで一番使う表現”を、sin / noise / depth / Fresnel の4本柱で作る。Three.jsのRawShaderMaterial(GLSL)とUnity URPのShaderLab/HLSLを横並びで比較し、SimpleWater等の実装が読めるレベルまで分解して理解する。
最新版の罠を回避し、安定版Unity 2022.3 LTSを使用してMeta Quest 2向けのVR開発環境を一から構築する手順を解説します。
GLSL と HLSL の違いは文法より“受け渡しの作法”。Three.js と Unity のシェーダー構造を横並びで比較し、attribute→appdata、varying→v2f、time/UV/normal、model/view/projection 行列の対応(modelMatrix ↔ unity_ObjectToWorld 等)を整理。どちらでも同じ表現を再現できる“二刀流の脳”を完成させる。
Unity(URP)で SimpleWater の最小実装を進める過程で、XR/Project Settings の変更を引き金に PlayerArmature(VRM)と Prefab/Scene のリンクが破綻。Overrides → Revert All による破壊、Prefab Overrides の無限ズレ、Library 再生成や Animator 再設定の無効、さらに Git ロールバックが meta/GUID/インポート順依存で機能しなかった経緯を、再発防止のために技術的に記録する。
UnityのShaderLab構造(Properties/SubShader/Pass/Tags)を押さえつつ、HLSL最小サンプルで頂点をsin波で揺らし、時間で色を変える。Three.js/GLSLとの共通点と相違点、初心者の罠(URPタグ、座標変換、Time、前方宣言)を潰す。
Unity 6(URP)で最も簡単な水面表現を作る。Planeを配置し、HLSLの最小シェーダーで頂点を揺らして波を出し、透明合成で水らしさを付与。さらに無料テクスチャを_MainTexに適用してベタ塗り感を解消し、GameViewで“湖として成立する”見た目に仕上げる。
Unity の実制作で本当に役に立つ “自作エディタツール” の基本を、Terrain を一括で 300m 底上げする実例とともに解説。Unity Editor API の基礎と実践が一度で理解できる。
Logicool G304(G305)のホイール逆走問題を、実際に分解して原因を探り、エンコーダ周りの清掃で改善した作業ログ。必要な工具、注意点、再発時の対処法などを、初心者でもできるように解説します。
Shader 入門 第2回。Three.js の RawShaderMaterial を使い、最小の GLSL シェーダーを自分で書いて動かしてみる。頂点を上下に揺らす sin 波アニメーション、時間経過による色変化など、GPU の挙動を直接感じられるステップを丁寧に解説する。Three.js と Unity の両方に応用できる基礎感覚を手に入れる。