トップ >CG_TIPSメニュー >現ページ
写真から3Dモデリングを作成する (記事記載:2016年 5月18日)
一般的に思い浮かぶCGツールと言えば、3DCG作成ソフト、画像処理ソフト、イラスト作成ソフト、編集・合成・特殊効果ソフトあたりでしょうか?しかし、CGI(※コンピューターによって生成される画像)はホントに幅が広くて、それに対応するためのハードウエアやソフトウエアも数多く存在します。例えば、最近流行りの3Dプリンター、それからゲームや映画で使用されるモーションキャプチャーシステム、あと3Dスキャナーなどもその例。しかし、それらは現在でもとても高価です。普通に数百万円しますし、安い物でも数十万円もします。よほど大規模なCGプロダクションでもない限り、そう言ったツールを全部揃えられないでしょう。
3Dスキャナーもそうです。とても高価です。数万円程度の安いスキャナーが出始めていますが、調べるとまだまだ仕事で使えるレベルではありません。現在の私のCGの業務で、3DCGモデリングのみで数十万や百万円いただける仕事は皆無です。3Dスキャナーに数百万円投資しても、その費用は回収は不可能です。過去、クライアントに促されて、高価な設備の先行投資で失敗した事例の経験はたくさんあります(笑)。一度も業務に使用することなく旧くなって、そのままお蔵入りになったソフトウエアだけでもかなりの量と額です。
その高価な3Dスキャナーの代わりとなろうと言うのが、「写真から3Dモデリングを作成する」ソフトウェアです。以前から、複数の写真を利用して3DCGモデリングを行うと言う考え方はありましたし、それなりの価格のソフトもいくつか存在しました。複数の写真から対象物の特徴的な点をいくも探し出して、3次元空間上の位置を探り出してつなぎ、3Dポリゴンを形成する技術です。最近ベータ版(※開発途上のバージョンの事)のフリーソフトが出て来ました。今回、AutoDeskのフリーソフトを試しました。そのレポートです。今回は、どうやると失敗するかの事例も"敢えて"記載いたします。何故、それを行うと上手くいかないのかの原理を知っていただくことも、無駄な手順と時間を省くために必要かと思います。
1.AutoDesk・Mementoを使う
私が最初に試したソフトは、AutoDeskの123D・Catchです。クラウドを利用したシステムで、2つ以上の高さ(仰角)&360度外周から撮影した写真をクラウドにUPし、クラウド上で3Dモデリング化すると言うツールです。ソフトダウンロードして試しました。
数十枚の写真はUPできましたが、3Dモデリング処理は"数時間"待てど暮らせど、インジケーターが1%にも達しません。ずっと0%のまま。動いているのかいないのか、数種のデータで4回試しましたが、4回とも1%にも達しませんでした(汗)。クラウドが交通渋滞なのでしょうか?(笑)…これではとても時間がかかりすぎなので、123D・Catchの使用は一日で諦めました。
①ダウンロード&インストール
そのような訳で、AutoDeskが出しているもう一つのフリーソフト、Mementoを試しました。このソフトは、こちらからダウンロードできます。インストールして、起動します。AutoDeskの無料アカウントを持っていなかったら、必要なので作ります。
②写真を撮影する
3Dモデリングに使用する写真を撮影します。高さは3ヶ所(つまり仰角は3種)から、外周の角度は5~10度で撮影することが推奨されています。私は、テスト撮影用として15度ずつに分割された自作の回転台を使用します。
今回は、簡易撮影スタジオセットでミニカーを撮影してみます。1つの仰角ごとに24枚、計48枚の写真を撮影しました。
③写真を読み込んで3Dモデリング化する。
上記で撮影した写真を、Mementoに取り込んで3Dモデリングします。①のPhotosをクリックします。すると、Onlineで作業するか、Offlineで作業するかを尋ねられます。オンラインは、クラウドを利用すると言う事です。オフラインは、自分のPCで実行&計算すると言う事です。123D・Catchでクラウドの超遅さにげんなりしたばかりですので、onlineは避け、躊躇せずOfflineをクリック!
写真を読み込みます。そして「Create Model」をクリックします。矢印のところに、プロジェクト名(モデリング名)を入力します。Qualityが、StandardとUltraから選択できますので、今回はUltraを選択します。GeometryのSurfaceとResolutionもスライダーで選べますので、smooth寄りかDetail寄りか、Coarse寄りかfine寄りか選びます。UVテクスチャ―が必要な場合は、Generate Texturesのボックスをチェックします。
Startボタンを押すと、「処理に時間かかるけど、ホントに続ける?」と聞いてくるので、Yesを選択して実行します。モデリングが実行されます。
123D・Catchで1%も進まなかったのが嘘のように、さくさく進みます。Offline(=自分のPCで処理する)は速いです。数分で処理が終了。
出来上がったのが、下記のモデリング。まあ、ひどいです(笑)。どっちが後ろだか、前だか分からないし、一部大きく避けている。グリグリと回して見ても、とても3Dモデリングデータと呼べるものではありません。
実は、3Dモデリングに相応しくない画像があって、「透明な物」「光沢のある物」「模様のない物」は上手くいきません。このミニカーは、その条件を全て満たしています。ボディは光沢があり、単一色の赤いボディーで、ウインドウは透明です。写真を使った3Dモデリング処理は、写真の特徴的な点を見つけて3次元空間内のポイントををつなげていくので、特徴のない単色のオブジェクトや透明ガラスなどは特徴点を検出するのに向かないのです。
④写真を再撮影&3Dモデリング
さて、上記のことを踏まえて、今度は光沢がなく、透明でもなく、特徴的な模様のあるキャラクターの貯金箱を撮影します。今度は、3ヶ所の高さから計72枚撮影しました。
これを③の写真を用いてモデリングしたのが、下記の写真です。ちなみに、表示は、テクスチャ―無し、ポリゴンなど計5種類から表示選択可能です。
たいへん惜しいですね。帽子の上の所が、何故か裂けてしまっていますし、モデリングの外観もなんだか凸凹しています。これを、3DソフトのLightWaveにFBXファイルでエクスポートしたのが下記の画像です。しっかりUVテクスチャ―も生成されていて、エクスポートも問題なくされています。ただこの外観ではとてもモデリング成功とは言えないので、もう少し手間をかけましょう。
⑤写真を追加撮影して3Dモデリング処理
帽子の所が裂けてしまっているので、写真撮影の精度を上げてみます。上述の撮影は、15度づつ回転させ24枚を3つの高さから計72枚撮影しました。今度はもっと細かく、半分の7.5度ずつ回転させて撮影していきます。つまり一つの視点で48枚、3つの視点で計144枚も撮影します。
これを再び同じ手順で、再モデリングします。ちなみに「144枚の写真が選択され106枚が利用可能」だと言う表示がされました。全部で250枚使用することが可能なようです。こうして完成したのが、下記の3Dモデリングデータです。だいぶ良くなりました。写真撮影の角度の細かさとクオリティが、3Dモデリングの完成出来を左右することはこのテストから明らかです。
⑥不要なポリゴンの削除
最後に、Mementoのツールを使用して、足元の台座の不要なポリゴンを削除していきます。①のツールから、ズームや移動や回転を選択できます。②のツールはポリゴンを選択するために、投げ縄ツールやブラシツールなどを使用できます。選択されたポリゴンは、③のように青く表示されます。
deleteキーを押して、選択したポリゴンを削除します。
この作業を繰り返して、足元の不要なポリゴンを削除したのが下の画像です。72枚の写真で作成したモデルより、数段完成度が上がりました。
このモデリングデータを3DCGソフトで扱えるように、FBXファイルで出力します。Exportを選択し、そこからExport 3D modelを選びます。ウィンドーが開きますので、ExportタイプからFBXを選択します。UVテクスチャ―も自動で書き出されます。Exportボタンをクリックします。
こうして3DCGソフトに呼び込んだ3Dモデリングデータ及びUVマッピング画像データが下記の写真です。背景用の小道具や、モデリング参照用の"あたり"に使用するのであればこれで十分なレベルですが、メインのモデリングデータとして使用するのであれば、やや凸凹したポリゴン表面の修正(スムージング処理など)や、ポリゴン数減少処理(ポリゴン・リダクション)、また足裏のポリゴン生成などの手間をかける必要があるでしょう。これは、CADデータを中間ファイルであるIGESファイルやSTEPファイルを介して、3DCGソフトで使える形式に変換した時の修正作業と似ています。ポリゴンデータが重く、かつ壊れてかなりグシャグシャになったCAD変換データを修正するのと同じような手間の作業になるでしょう。
いかがでしたか、写真から3Dモデリングをするソフト。撮影にそれなりの技術や手間・時間は必要ですが、使えない安物の中途半端な3Dスキャナーよりはずっと精度が高く、工夫すれば仕事でも使えそうです。Mementoはまだベータ版ですが、改善されてより進化した製品版の登場が今から楽しみです。
2016年5月19日追記:より複雑な形のモデリングにチャレンジ
さて、とりあえず写真からそこそこの3Dモデリングができることがわかりました。次は、より複雑なオブジェクトを3D化してみます。上記の例では、7.5度ずつ撮影しましたが、更に細かく5度刻みの表示がある回転台を作成しました。この回転台を使って撮影していきます。
今回は5度刻みなので、高さ1つにつき72枚、3つの高さで計216枚撮影します。なかなかの手間です。このデータをMementoに取り込んで、処理を実行します。
こうして完成したのが、下記左の図です。より複雑な対象物でも、それなりに3Dモデル化されました。中央の画像は、台座のポリゴンを削ったもので、右側の画像はLWにFBXでExportした画像です。
あと下面もモデリングするには、無反射ガラスの上に対象物を載せるなどの何らかの工夫が必要のようですね。