イベント
[CEDEC 2013]写真から高精度な3Dデータを作る「リアリティキャプチャー」が,ゲーム開発者にも手の届くところにやってきた
「リアリティキャプチャー」という言葉に,馴染みがない人も多いだろう。要は,「現実にある物体から,高精度なモデリングデータを作り出す」ことだと思ってもらえればいい。なにも最近出てきた概念というわけではなく,古くから3Dスキャナやレーザースキャナなどで使われていたものだ。
従来のリアリティキャプチャーは,高価な機材と膨大なデータ処理が必要であるため,ゲーム開発で気軽に使えるようなものではなかった。しかし,最近では膨大なデータ処理をクラウドで行うソリューションが出てきたため,驚くほど高度な処理が,手軽に使えるようになっている。
工業デザインなどでも広く使われるAutodesk製品では,そういった分野で使えるツールの開発も行っており,今回のセッションは,こうしたツールを紹介する場でもあったわけだ。
リアリティキャプチャーで得られた「ポイントクラウド」を
扱うツールが多数披露される
門口氏のセッションで解説されたのは,後述する「ポイントクラウド」を手軽に扱うソリューションと,写真を元に高精度なデータを扱う方法についてだ。「Autodesk 360」というクラウドサービス上に,これを行うツール「Autodesk ReCap Photo」(以下ReCap)が実装されている。
クラウドを使ってこのような処理を行うシステムとして,Autodeskは入門者向けの「Autodesk 123D」(以下,123D)を無料公開している。そちらを知っている,使ったことがあるという人も,いるかもしれない。ReCapは123Dに含まれるアプリのうち,「123D Catch」を発展させたようなものだ。
さて,レーザー計測などで得られる結果は,3次元座標の塊で頂点だけのデータ,いわゆるポイントクラウドとなっている。これをそのままポリゴン化すると,それはそれは膨大なデータ量になってしまい,まったく実用的ではない(表示するだけなら不可能ではないが)。また,ReCapを使って3Dオブジェクトに変換すると三角形ポリゴンになるが,モデリング素材として使うには,Autodesk製品で使われている四角形ポリゴンにしたうえで,ポリゴン数削減を図ることが望ましい。
こうした処理を行うAutodesk製品が,3Dモデルの加工を行うツール「Auto
Autodeskの研究開発部門「Autodesk Labs」が手がけた「Project Memento」がそれで,簡単な操作でデータの補修が可能だという。
講演では,レーザー計測したポイントクラウドをProject Mementoのツールで補正して,Mudboxでローポリ化するといった手順が説明された。
ポイントクラウドを3ds Maxで使うテクニックを紹介
今までなら,さまざまなツールを組み合わせて,3Dツールで扱いやすい形に加工する必要があったポイントクラウドだが,これを3Dツールで直接扱うことも可能になりつつある。現在では,「Autodesk 3ds Max」(以下,3ds Max)でポイントクラウドを直接扱えるようになっているほか,「Autodesk Maya」用に作られているという,インポートツールも紹介された。今後提供されるようだ。
ただし,これらの3Dツールに取り込まれたポイントクラウドは,そのままレンダリングされるわけではない。今のところは,「モデリング時のリファレンスとして扱う」という位置付けにすぎない。
講演では3ds Maxを使って,ポイントクラウドをポリゴン化する手法も披露された。3ds Maxに読み込んだポイントクラウドに,モデリング時の3Dポインタが“吸着”するように設定すると,画面に表示されたデータを簡単にポリゴン化できるのだ。
実演されたデモでは,画面上に表示されたポイントクラウドにマウスで線を引くと,ポイントクラウドの表面をなぞるように線が引かれていた。こうして何本か引いた線を元にポリゴンを生成すれば,元のポイントクラウドに近い形状のポリゴンデータが簡単に作れる。Mudboxで自動的にローポリ化するのは手軽だが,もっと細部にこだわってモデリングしたい場合には,3ds Maxが使えますよというわけだ。
写真からポイントクラウドを作り,
高精度なモデルデータを生成することもできる
ReCapには,レーザー計測のデータ処理だけではなく,様々な角度から撮られた写真を素材に,ポイントクラウドの3Dデータを自動生成する機能もある。
やり方はわりと簡単で,データ化したいオブジェクトを様々な角度から撮影し,その画像データをReCapに送って処理するだけだ。レーザースキャナのように特殊な機材は,誰にでも使えるわけではないので,少し手軽な解決策も加えたというところだろう。
素材用の写真を撮るときに,「どのように撮影すれば,精度の高いデータを生成できるのか」といった,撮影の注意点も説明された。ReCapは写真からオブジェクトの特徴点を識別して比較するので,たとえば真正面と真横の写真といった具合に,写っている絵があまりにかけ離れていると,正確に判定できない。角度にすると,5〜10度ごとに撮影しておくのがいいとのことだった。つまり360度全方向のデータを得るには,最低36枚くらいは撮っておく必要があるわけだ。
それに加えて上や下からの写真もあれば,横からの写真だけでは見えない部分が減らせるので,上下の角度を変えて撮っておくのも望ましいようだ。露出なども固定して撮影することが望ましく,テクスチャ精度が必要な部分は望遠は使わずに,「寄って撮れ」とのことだった。
当然ながら,動いている物体も適さない。人物もその意味では向かない対象物と言えそうだが,人物は1台のカメラで何回も撮るのではなく,多数のカメラを使って一度に撮る方法がお勧めとのこと。ちなみに,人物をレーザースキャンするとノイズが多くて処理が大変なので,複数のカメラを使うほうが適当なのではないかと,門口氏は述べていた。
人物の写真を多方向から一度に撮るシステムの例。中央の顔が被写体で,周囲に見えるライトのような物がカメラだ |
多数の写真から形状とカラーデータを得て,生成された胸像のモデルデータ。なかなかリアルにできている |
こちらは写真から生成したマッピングデータ。写真が元なので,肌の色や血管,しわやほくろも再現できるだろう |
最終的なレンダリングデータ。形状だけでなく顔の細かい部分まで緻密に再現されているのが分かる |
さて,カメラによって撮影されたテクスチャは非常に高品質なのだが,3Dデータ用のテクスチャとして使うには,実はいろいろと問題がある。撮影環境のライティングが,そのまま反映されてしまうからだ。たとえば,物体の上に影が落ちていると,テクスチャにも影がそのまま描き込まれてしまう。ゲーム内で出てくるキャラクターやオブジェクトに,ゲームの光源とはまったく違う向きの影が描かれていたら,なまじ他がリアルな分だけ興醒めするだろう。
講演の最後にはまとめとして,恐竜の模型を写真撮影して,その写真をReCapでデータ出力し,Mudboxでポリゴン化したうえで,3ds Maxでアニメーション用の「リグ」を割り当て,歩かせるまでのデモが実演された。
撮影したデータをReCapへ登録すると(左),こんな感じでデータ化される(右) |
Mudboxでポリゴンを削減すると,モデルデータはこうなる |
法線データだけを,Mayaで生成したものに差し替えているところ |
3ds Maxで4脚アニメーション用のリグをつけると…… |
写真から作った恐竜が歩いた! |
講演を通してみた感想を述べると,複雑な形状では遮蔽部が多くて,写真を元に完全再現するのは,さすがに難しそうだった。しかし,ほとんどの物体は十分な枚数の写真さえ用意できれば,この方法でオブジェクトを生成できるように思える。パッと見では見えない部分の詳細は,オブジェクトを生成するに当たって重要ではないので,そこは簡略化しても問題ないという理由もあるだろう。
まとめると,ReCapは現実にある物体からデータを作るのに,非常に有用なサービスである。現在試験提供中なので無料で利用できるというのも利点だ。ReCapを含むAutodesk 360のサービスは,誰でも登録できるので,興味のある人はぜひ試してみてほしい。
Autodesk ReCap PhotoのWebページ(英語)
CEDEC 2013 公式Webサイト
- 関連タイトル:
Autodesk
- この記事のURL: