【速報】誰でも簡単に3Dスキャンができる?EpicよりRealityScanアプリを試してみました。 #reinvent

2022.12.02

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

せーの@ラスベガスでございます。

先程Dr.Wernerの息が苦しくなるような白熱のKeynoteが終わりまして、新しいサービスがたくさん発表されました。

私はその中でWernerではなく、EpicのUnreal Engine担当バイスプレジデント、Nathan Thomasさんから3Dスキャンアプリ「RealityScan」が本日正式ローンチ、との発表がありましたので、早速試してみました。

どんなアプリ

それまでの3D空間の構築はマテリアルの作成からテクスチャ貼り、ライティングへのエフェクト対応など、非常に手間のかかるものでした。
ですが、最近のモバイルデバイスの進化によりLidarやDepthカメラなどが端末内に入り、かなり性能の高いスキャニングがスマホのみでできるようになりました。

RealityScanはバックエンドにAWSを使うことでニアリアルタイムにスキャンしたデータを3Dマテリアルへ変換することが可能となりました。

構成

アプリ上で物体をスキャンし終えたら

Sketchfabという3Dモデル用のプラットフォームにエクスポートします。

その際Cloudfrontを通してファイルはS3に保存、転送し、セッション情報をAPI Gatewayを通してGPUベースのEC2インスタンスにリクエストします。
セッション情報やメタ情報はPostgresSQLのRDSにて保管され、Redisの入っているElasticacheにも一時保管してアプリとのやり取りを行います。
EC2上で3Dモデリング変換が完了したら、API Gatewayを通してSketchfabプラットフォームにリクエストが飛んで、エクスポートが完了する、という仕組みです。

やってみた、、、そして失敗

早速ためしてみました。まずはApp StoreからRealityScanをダウンロードします(無料)。

サインインすると簡単な使い方の説明が出てきます。

光の加減が重要だそうで、なるべくフラットな環境で行うのが良いようです。

準備ができたら早速始めましょう。要するに対象物に対して四方八方から写真を取りまくる、という感じです。

ちょうどre:Inventの会場内でワールドカップのパブリックビューイングが行われていましたので、そこで自分のかばんで試してみることにしました。

写真を撮ると、撮った位置が保存されて空間上に残ります。まずはぐるっと一周回った上で、細かくいろんな角度から撮っていきます。

[Preview]というタグをタップすると写真を撮った位置と共に、ターゲットが点群(3D point cloudとかいったりします)となって徐々に現れていきます。
緑の点はスキャニングとして充分、黄色はまだまだ、赤は全く足りない、という意味です。
この場合、全体的にまだまだですね。

一度点群を表示させると、キャプチャ画面上にもARで点群が映りますので、黄色や赤の点を中心に、どんどん撮影していきます。

だいぶいい感じになってきました。

pointcloudのモードを[color]に変えると、色付きのモデリング情報がプレビューされます。こうみると正面はかなりいい感じですね。

と、ここで突然のエラー表示。なんと撮影は200枚が限度のようです。撮影はここで断念。

結果を見てみると、、、正面はだいたいOKな感じです。

が、後ろがスカスカですね。

そしてなによりスキャン範囲が広すぎます。

スキャン範囲は右下のトリミングマークをタップすると3Dの直方体が出てきます。これがスキャン範囲のようです。

前後左右の青いオブジェクトをドラッグしてスキャン範囲を調整します。

かばんのみが表示されました。

あとあとちゃんと確認すると、オレンジの枠で囲われたオブジェクトはアラインメントに失敗した画像のようで、隣などに適切な画像をさらに撮影することで調整されるものなのだそうです。このオレンジが多いことと、照明の関係でかばんの後ろ側が暗かったのが失敗の原因かな、と推測します。

まとめ

というわけで、初めてのスキャニングは見事に失敗してしまいました。とはいえ、ほとんど何も考えずにシャッターを押してるだけで3Dモデルが作成できるのはすごいですね。
今度は撮影間隔や照明などに気をつけながらまたトライしてみたいと思います。

参考リンク

https://www.unrealengine.com/ja/blog/realityscan-is-now-free-to-download-on-ios