3Dスキャンスタジオ"iris"を訪問!【写真からゲームで使える3Dキャラを作ってみよう! vol.2】
■最高峰から学ぶ、フォトグラメトリ入門
こんにちは、茶里です!
写真から3Dを作る技術「フォトグラメトリ」でゲームキャラを作る【写真からゲームで使える3Dキャラを作ってみよう!】シリーズ2回目となる今回は、フォトグラメトリの基本的な原理、写真から3Dモデルが作成される過程について触れていきたいと思います。
さて、この手の入門系記事は通常、身の回りのものや、手ごろな機材を使い、簡単な例から説明するというのが鉄板でしょう。例えば……
こういうのをiphoneで撮って3Dにしてみよう、とか、いいと思います。
いいと思います……が、テンション上がらないですよね。
そこで当シリーズでは、初心者系記事の通例を無視して、もっとテンションの上がるところからスタートしていきたいと思います!
そのため、ご協力いただいたのがこちら!
映画、ドラマ、CM、MV等、数々のコンテンツの制作に携わっている、業界のトップランナー。steam studioさまの3Dスキャンスタジオ"iris"です!(上記ページ下部にお仕事リストがありますので是非ご覧ください!そうそうたるラインナップです……^^;)
今回はこの"iris"にお邪魔して、最新の設備で、最高峰のフォトグラメトリを体験させていただきました(※取材は2020年3月初旬)。その体験記を交えながら、フォトグラメトリ技術の基礎をお伝えする贅沢な企画です!
■ご協力いただいたモデルさん
なお、フォトグラメトリのモデルとなっていただいたのは、フルート奏者の北山朝美さん。なんと光文社『STORY』の読者モデルとしても、マルチに活躍されている素敵な方です!
★北山さんのinstagramはこちら★
@asami.flute
https://www.instagram.com/asami.flute/
■ズラリと並んだ164台のカメラ
さて、撮影ブースに移動して、早速撮影開始です。
ご覧の通り、沢山のカメラが所せましと配置されています。これこそが、irisが誇る164台のNikon製一眼レフカメラです。
フォトグラメトリというのは、やろうと思えばiphoneで撮った写真でも使える技術です。ただ、精度を上げるためには、良いカメラで撮るにこしたことはありません。
その164台の良いカメラでとらえた良い写真がこちら!
このように、さまざまな角度から、まんべんなく写真を撮影するのがフォトグラメトリのミソなのですが、自力でやるのはなかなか骨が折れます(その苦労は次回以降、お話しすることになります……!)。これを一瞬で、164台同時にシャッターを切れるのは、スタジオ撮影ならではですね。
また、一度に撮影することで、被写体のブレを気にしなくてよくなるのも大きなメリットです。
下記動画のように、1つのカメラでフォトグラメトリ用の写真を撮る場合、被写体のまわりを少しずつ移動しながら撮影していくのが基本ですが、
https://youtu.be/RYM7uZeiXH0?t=264
人物の場合どうしても撮影中にちょっとしたブレが発生してしまい、それがフォトグラメトリの精度低下につながってしまうのです。
でもここ、irisで撮影すれば……
片足立ちも、ジャンプも自由自在!被写体のブレを気にすることなく、個人レベルでは実現できない、大胆な構図にチャレンジできます。
■写真をフォトグラメトリソフトに取り込む
撮影された写真は、ブース脇にて、すぐさまフォトグラメトリソフトへと取り込まれます。それこそが、RealityCapture(リアリティキャプチャー)。プロの現場でフォトグラメトリを扱う際、必ずといっていいほど登場するソフトです。
ここに取り込まれた写真が、どのようにしてRealityCaptureで3Dモデルになるのか?その過程を追ってみましょう。
※便宜上、手持ちのSteam版RealityCaptureを使用して説明します。
■まずは写真から"点群"を作る
こちらは、RealityCaptureで写真を取り込んだあとの最初の工程、”点群(Point Cloud)” を作成したあとの様子です。多数のトンガリの中央で、うすぼんやりと北山さんがジャンプしているのが見えますね。これを拡大してみると……
このように、北山さんが点々の集まりとして表示されているのが分かります。これが、"点群(Point Cloud)" です。
TV画面をおもいきり拡大すると、無数の点々が並んでいるのが確認できますが、あれを立体的に配置したようなイメージです。
そして、トンガリのひとつひとつをよく見てみると、164台のカメラで撮影された写真がうっすら見えています。
じつは、このトンガリの位置は、RealityCaptureが考えた、カメラの推定位置。トンガリの中にみえているのは、その位置で撮影された写真です。
RealityCaptureは、こうして読み込んだ写真の位置関係を自動的に分析し
「この位置で撮った写真では、左耳がここに見えている」
「こっちの位置で撮った写真では、左耳がそっちに移動している」
⇒「ということは、左耳の位置ってここらへんかな?点群に追加だ!」
……こんな感じで(喋りませんが)写真を利用して北山さんの立っていた位置を測定し、点群という形で表示してくれるわけです。
※いまさらですが、フォトグラメトリ(photogrammetry)という言葉は、写真(photograph)と「測定法」などを意味する接尾語(-metry)から成る言葉です。写真で被写体を測定する、というニュアンスですね。
■点群からメッシュをつくる
さて、点群が完成すれば、いよいよそれを元に3Dメッシュを作成していくことになります。ちなみに、メッシュってなんだ!という方のために超ざっくり説明しておくと……こんな感じです。
このイルカ、たくさんの3角形で構成されていますね。このひとつひとつの面がポリゴン(多角形という意味)で、それをつなげてできた立体がメッシュとお考えください。これはイルカのメッシュということになります(もっと細かい定義も色々ありますが、とりあえずはこれだけ分かっていればOK)
フォトグラメトリのソフトはRealityCaptureでなくても基本的に上述の点群からメッシュを作り、さらに色を塗る(正確には、テクスチャを生成する)機能をもっています。早速やってみましょう!
※ちなみにRealityCaptureが点群からメッシュを作成するのに、用いているアルゴリズムは企業秘密だそうです。そりゃそうか……。
■メッシュが完成しました
こちらが、RealityCaptureで先ほどの点群をメッシュにして色をつけたものです(注:設定を間違えて周囲までメッシュになってしまいました……)
どうでしょうか?言われなければ、写真と見間違えるほどのクオリティ。でも驚くなかれ、これでもプレビュー用のクオリティなのです……(最終的には更に綺麗になる)
※ちなみにイルカの例から一足飛びで綺麗になってしまったのでわかりづらいですが、こちらのメッシュも色を抜いて拡大すると、ちゃんと三角形のポリゴンでできていることがわかります(下記はデニムのベルト部分)。
■サクサクと高クオリティのメッシュが量産される
さて、上記のような流れで、irisでは高クオリティのメッシュが、本当にサクサクと作成されていきました。各ポーズの撮影は一瞬で完了しますし、プレビュー用のメッシュもその場で作成して見せてくださったので、安心して撮影をすすめることができました。
こちらは、当日オペレーションいただいた、3Dスキャン スーパーバイザーの中島俊彦さん。1時間で20ポーズ以上の撮影を行い、メッシュも作成いただきました。従来の3D制作のフローでは考えられないスピードですね。
当たり前ですが、本当にどれも高クオリティで、irisの撮影精度の高さがバンバン伝わってくるものでした。
例えばこちら。右がメッシュで、左側がそれに色を乗せたものです。やはりこれも、作成時から何も手を加えていないメッシュ(いわゆるRAWメッシュ)なのですが、頬の微妙な筋肉の動きなど、かなり精密に再現されていることがわかります。これがポンと作成できてしまうとは、Iris、恐るべし……。
■「フォトグラメトリは写真が9割」
以上、写真を元に点群をつくって、そこからメッシュを作成するという、フォトグラメトリの大まかな流れについてご理解いただけたかと思いますが、上記のようなクオリティになるのは、irisの最新の設備があってこそです。
こちらは、マネージャーの久保江陽介さん。今後のためのアドバイスを伺ったところ、「フォトグラメトリは写真が9割」という金言をいただきました。
要は、しっかりと写真が撮れていれば、どんなフォトグラメトリソフトを使っても、しっかりした結果が得られるということ。
逆に撮影中に被写体が1cmほどブレれば、精度は1cm以下になってしまいます。
当たり前ですが、一定以上の精度が求められる場合は、プロにお任せするのが圧倒的にオススメ、と身をもって体験した取材でした。仕事でフォトグラメトリをお考えの場合は、ぜひirisのHPをご覧ください……!
■次回予告
いかがでしたでしょうか。「フォトグラメトリってすごい!」と感じていただけたなら幸いです。
さて、相当にハードルが上がってしまっておりますが、次回からとうとう、個人でフォトグラメトリをする際のポイントや、撮影手順を紹介していきたいと思います。
既に反省点ばかりなので、反省を踏まえてもう一度撮影したい……!という気持ちが高まっておりますが(汗)、そういった失敗点なども含め、シェアしていけたらと思っております。お楽しみに……!