なぜ大規模ARオクルージョンにメッシュが必要なのか？

ARオクルージョンで「メッシュ」が必要になるのはなぜでしょうか？
特に大規模な建物の場合、メッシュがなければ現実とCGの融合に違和感が生じてしまいます。
本記事では、なぜメッシュが重要で、どのように活用すれば効率的にオクルージョンを実現できるのかを解説します。

# ARオクルージョンとは？

オクルージョンとは **遮蔽** という意味の英単語で、ARにおいては、実写映像とCGの前後関係の違和感を軽減する技術を指します。

| ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/221845/194a1d9d-5e0a-6d6d-4ba2-783b20d4df03.png) |
|---|
| 左がオクルージョン適用例、右が未適用例 |
| 図出典 : https://styly.cc/ja/manual/occlusion/ |

上図の場合、オクルージョンを適用していないARでは、象の足が手前のカラーコーンで隠れていないため、前後関係に強い違和感が発生しています。

それに対しオクルージョンを適用したARでは、 **手前のカラーコーンを遮蔽物と認識し、奥にいるゾウの足が隠れています。**

このような処理が行われることで、AR体験が一層リアルに感じられます。

# 2種類のARオクルージョン
ARオクルージョンには、大きく分けて以下の2つの種類があります。

- 深度センサーを利用したARオクルージョン
- メッシュを事前準備するARオクルージョン

# 深度センサーを利用したARオクルージョンとその限界

## 深度センサーを利用したARオクルージョンとは

たとえば、iPhoneに搭載されたLiDARセンサーのように、カメラの前にある物体の深度（距離）情報をリアルタイムで取得できるセンサーがあります。
これを活用して、CGが現実の物体の後ろに隠れるように処理するのが、 **深度センサーを利用したARオクルージョン** です。

| LiDARセンサー |
|---|
| ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/221845/7a0ebd44-800a-d94b-4454-c1d2f464d7bb.png) |
| 図出典 : https://time-space.kddi.com/ict-keywords/20201204/3020.html |

この方法には以下のメリットがあります。

- 即座に周囲の状況を把握するため、 **事前のスキャンが不要** です。
- 形状が変化する対象にも柔軟に対応できます。
  - たとえば、人や動物が動く場合にも、その形状や位置の変化を即座に反映し、リアルタイムに追従します。

## 深度センサーを利用したARオクルージョンの限界

しかし、この方法には大きな制約があります。
それは、 **遠くにある物体には対応できない** ということです。
最新のスマートフォンに搭載されているLiDARセンサーの **最大範囲は約5メートル程度** です。
そのため、 **建物全体をカバーできません。**

# 大規模ARオクルージョンの実現には「メッシュ」が必要

上記の理由から、 建物のような大規模なARオクルージョンを実現する場合には、 **メッシュを事前準備する手法** が採用されます。

## メッシュを事前準備するARオクルージョンとは

あらかじめ現実の物体や建物を再現したメッシュ（ポリゴンモデル）を用意し、それをARオクルージョンの遮蔽物として活用する方法です。

| <img height="400" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/221845/075cda86-2f24-a973-b968-1eb3159e03b1.png" /> | <img height="400" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/221845/e4575e59-84d5-f95e-8d03-1a7064a03bb7.png" /> |
|---|---|
| Step1.<br />建物モデルでキャラクターを遮蔽 | Step2.<br />遮蔽したキャラクターを実写映像と合成 |

上図の場合、以下の2ステップでARオクルージョンを実現しています。

- Step1: 左側にある建物モデルで、右側にいるキャラクターを遮蔽します。
- Step2: 建物モデルを非表示にし、そこに実写映像を合成します。

これによって、建物の向こうにキャラクターがいるかのような表現を実現しています。

この方法には以下のメリットがあります。

- 深度センサーの測定距離を超える **大規模なスケール（建物）に対応できます。**
- 深度センサーの測定解像度を超える精密なオクルージョンに対応できます。

しかし、この方法には以下のデメリットもあります。

- 動くものに対応できません。
  - たとえば、 **動いている船やバス等でARオクルージョンはできません。**
  - 2024年時点のスマホやゴーグルでは、 **大規模かつ動的なARオクルージョンの実現は困難です。**
- 現実世界の物体と形状の近いメッシュを用意する必要があります。

ここからは、どうやってメッシュを用意するのか？という話をします。


# PLATEAUを活用しよう！

| ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/221845/ca890e51-df4d-be22-541b-5cba8239d13d.png) |
|---|
| 図出典 : https://www.mlit.go.jp/plateau/about/ |


日本の主要な都市であれば、国土交通省が主導する **PLATEAU** から、建物のメッシュを無料でダウンロードできます。

これを活用することで、ARオクルージョンの実現が大幅に簡略化されます！

ただ、いくつか気をつけるべきことがあります。

## LOD2モデルが必要

LODとは、Level of Detail （詳細レベル）の略です。どこまで細かく建物を再現するかの段階を指します。
（いわゆるCG用語としてのLODとは別の概念で、PLATEAU固有の用語です。）

ここで、気をつけないといけないことがあります。

建物メッシュでのARオクルージョンには、 **LOD2以上が必須です！**

| LOD1 | LOD2 |
|---|---|
| ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/221845/f9f9bd0c-ffbf-b375-f86d-d7874000eace.png) | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/221845/7b5db532-1d16-01e3-8b73-abaa250aebe2.png) |
| 屋根が再現されていない | 屋根が再現されている |

LOD1では屋根の形が再現されていないため、ARオクルージョンに利用できません！
すべての地域がLOD2に対応しているわけではないので、ご注意ください！

| ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/221845/282a69ed-70c7-0906-04a9-a9f6ca10ffad.png) |
|---|
| 図出典 : https://berise.co.jp/topics/plateau/ |

地域によっては、LOD3のデータが存在する場合もあります。
LOD3ではフェンスや細かい構造物まで再現されていて、とても素晴らしいです。
（これを制作した方々には頭が上がりません！）

しかし、これらの細かい構造物はデータ量が多く、ARコンテンツのダウンロード時間を増やしてしまうという問題があります。

このような理由から、建物規模のARオクルージョンには **LOD2が最適** だと私は考えています。


# 宣伝: STYLYの都市テンプレートについて

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/221845/a2053af5-bbf8-6a09-e72e-c0a187b73641.png)


ここからは宣伝です！

ここまで説明した通り、ARオクルージョンの準備には、建物メッシュの入手や位置合わせなど、意外と手間がかかります。
そこでおすすめなのが、STYLYの都市テンプレートです！

以下の特徴があります。

- オクルージョンに最適化済みのメッシュデータが組み込み済み。
- 全国11都市（東京、大阪、新潟など）に対応。
- 位置合わせ不要で即利用可能。

詳しくは以下をご覧ください。

https://styly.cc/ja/manual/manual-for-creating-ar-cityscapes/

（実は本記事を書いている「せぎゅ」こそ、この都市テンプレート機能の開発者だったりします！）


## さいごに

ここまでお読みいただきありがとうございました。

建物規模でのARオクルージョンを実現するには、現時点の深度センサー技術だけでは不十分であり、 **あらかじめ用意したメッシュ** を活用するのが現実的な解決策です。

STYLYの都市テンプレートを活用すれば、ARコンテンツ制作がよりスムーズになります。ぜひ、PLATEAUと併せてご活用ください！