「Unity でつくる建築 VR 入門」完読したので殴り書きまとめ
TL で見かけたこの本をやりました.昔は建築士に憧れていた時代もあった.
そういえば購入した
— xr:dnk (@xrdnk) 2020年3月19日
パラパラページ捲った感じ、すぐ終わりそう pic.twitter.com/SH9lZLH2pV
- 1 章 Unity の導入
- 2 章 Unity の基本操作
- 3 章 簡単なゲームを作成する
- 4 章 ウォークスループログラムを作成する
- 5 章 建物モデルへの適応
- 6章 VR プログラムを作成する
- Appendix
- 終わりに
1 章 Unity の導入
Unity,Unity Hub のインストール方法が丁寧に書かれている. Language Pack を「日本語」に設定しているので,わかりやすいかも. Unity2019.2 と Unity2019.3 向けになってます. また,6 章は SteamVR に対応した VR 機器が必要です.
Unity2019.3 から Unity のインタフェースが大きく変わっているのですが, 以前のバージョンとどのようにアイコンなど変わっているのか細かく説明されています.
この参考書のメインはマテリアルとライト設定だなあという感想.
2 章 Unity の基本操作
プロジェクト作成時のテンプレートそういえば気にしていなかった.
【テンプレートの種類】
- 2D : 横スクロールなどの 2D アプリ用のテンプレート
- 3D : 3D アプリ用の基本的なテンプレート
- 3D With Extras : レンダリング効果設定やサンプルコンテンツが含まれたテンプレート
- High Definition RP : HDRP.高解像度用のレンダリング効果設定やサンプルが含まれたテンプレート
- LWRP : Light Weight Render Pipeline.動きのパフォーマンスが重視されたテンプレート.レンダリング効果設定やサンプルも含まれる
初心者が躓きやすい,エラーの解決方法についてちゃんと書かれている.To recap,ggr.
3 章 簡単なゲームを作成する
プリミティブを利用した簡単な 3D ゲームの説明.序盤よくあるRigidbody について,Script について.
4 章 ウォークスループログラムを作成する
サンプルファイルから家の FBX ダウンロードが出来るので,それをインポート.
Unity で FBX 形式のファイルをインポートすると,テクスチャの画像がマテリアルに反映されないことがある.それを防ぐため,インポートするモデルと同じフォルダ内に「Textures」フォルダを作成し,テクスチャに使用されている画像ファイルをコピーしてから FBX ファイルをインポートすることが推奨されている.
ボクもこの現象に遭遇したことあるので,FBX ファイルインポート時は注意しましょう.
FBX データをインポート後,衝突判定の処理を設定できるようにしたい場合は,
Meshes/Generate Colliders
をチェックしましょう.
移動処理,マウスによる回転処理,トリガーによるドア開閉処理が説明されています.
5 章 建物モデルへの適応
マテリアルやライトについて詳しく書かれています.
マテリアルについてまとめ
- Metallic : 0 に近いほどマットな質感になり,1 に近いほど金属のような質感になる
- Smoothness : 0 に近いほど周りの景色が反射されなくなり,1 に近いほど反射される
- Normal Map : 法線マップ.グレースケールからでこぼこさを実現できる
Render Mode (Shader が Standard のとき)
- Opaque : 透明な部分がない場合に利用する
- Cutout : 透明と不透明な部分をはっきり分けるときに利用する
- アルファカットオフ値を変更すると,徐々に消えるように変更できる
- Fade : 半透明の幽霊やホログラムなどを表現するときに利用する
- アルファ値を下げると透明になり,輪郭も消える
- Transparent : 半透明なガラスなどを表現するときに利用する
- アルファ値を下げると透明になるが,輪郭は残る
Reflection Probe : 現在の位置における周囲の映り込みをキャプチャするオブジェクト
- キャプチャできる映り込みは,[Inspector]の[Static]にチェックが入ったオブジェクトに限られる
- Reflection Probe が複数ある場合,映り込みが合成される
- 合成したくない場合は,[Mesh Renderer]/[Probes]/[Anchor Override]で限定したい Probe を設定する
- Bounding Volume を調整することで,影響範囲を変更できる
ライトについてまとめ
- Directional Light : どこの位置にあっても,影の方向や強さ等には影響しない.
- Point Light : 中心から全方向に光を放ち,全体を明るくするライト(豆電球など
- Spot Light : 配置した位置から円錐状に光を放つライト(懐中電灯など)
- Area Light : 面光源.片面から光を投射するライト.(蛍光灯など)
- [Static]チェックされたオブジェクトのみに作用する
- [Shape]が[Rectangle]ならば面状,[Disc]ならば円形になる
発光する物体の仕方は[Material]/[Main Maps]/[Emission]にチェックし, Color の HDR をクリックして,発光色を設定すると出来る.
マテリアルで発光するライトは,Static オブジェクトのみに影響を与える. Character 等の動く Object を静的に設定しまう場合,ゲーム中に動かせなくなるため, 動的な Object にライトの影響を反映したい場合はLight Probeを利用する.
ライティングについてまとめ
- Color Space (色空間) : Gamma か Linear 選択できる
リニア色空間 # とは
【Unity3D】リニア色空間ってなんだよ – soy-software
Gamma 設定している場合,逆ガンマ補正されているため,暗くなる. Linear 設定している場合,最後にガンマ補正されるため,明るくなる.
難しいなあ.ブラウン管時代の規格を引きづっているわけか.
- Generate Lighting の処理速度を上げる
- Post Processing Stack (PPS)
PPSv2 の機能はそろそろちゃんと細かく覚えたいなー.
上のブログと動画がわかりやすかった. 何度も視聴して,自分で手を動かして覚えたい.
6章 VR プログラムを作成する
Steam VR プラグインの導入と Teleporting の説明. 自分は Oculus Link を用いてやってみた.
フム… pic.twitter.com/9T9FyhXnfb
— xr:dnk (@xrdnk) 2020年3月21日
Appendix
Google CardBoardでやってみた版.
終わりに
初心者でも休日半日程度で終わる量です.コードそのものは10ページにも満たない. そういえばちゃんと Unity のマテリアルやライティングについて勉強してなかったなあ. VR ではマテリアルやライティングの設定って大事になってくるよね. この参考書に取り組むことで改めて勉強できる機会ができました.感謝.
""建築""とは書かれていますが,建築に関することはあまり出ていない. VRウォークスルーを軽く作りましたよ~という感じです.