RealityCaptureとBlenderを使用したデータ制作の流れ
RealityCaptureとBlenderを使用したデータ制作の流れをまとめました✍
毎年冬にアミュプラザ鹿児島で展示されている薩摩切子をモチーフにした「光の塔」をα7Ⅲで撮影し、フォトグラメトリを行いました🎄✨
とても大きな塔なので、塔全体がフレームに収まるように広角レンズを使用し、塔を囲むように撮影を行いました。撮影枚数は119枚です。
RealityCaptureのsteam版を使用し、最初にフォトグラメトリの計算をかけた結果がこちらです。
下から上を見上げる形で撮影したため、胴体部分は形を生成することができましたが、ツリーの頭の部分はきれいに生成されませんでした。
そこで、3DソフトのBlenderを使用してRealityCaptureでは生成されなかった部分も含めた塔全体の簡易モデルを制作し、RealityCaptureで「テクスチャ再投影」を使用して修正を行いました。
最初に、塔以外の必要のない背景部分を削除します。RealityCaptureの再構築タブにある「なげなわ」ツールを選択し、削除したい箇所を囲みます。
囲んだ状態でツール欄にある「選択をフィルター」を選択します。すると、囲んだ箇所が削除されます。この作業を繰り返し、塔だけが残るように背景をカットして整えていきます。
次に、カットして整えた塔のモデルを選択し、エクスポート欄の「モデル」を選択します。
塔のデータを保存するフォルダを指定します。ファイル名は半角英数字を指定します。(全角だとエラーが表示され保存できないため)
「Your Creation Statistics」という文字が画面に表示されるので「許可」ボタンを押します。
モデルの出力オプションが表示されるので、「変換プリセット」を使用する3Dソフトに指定します。
この設定をすることで、使用する3Dソフトの座標軸に沿うようにモデルが変換され出力が行えます。ここではblenderを指定しました。その後「OK」を選択すると出力が完了です。
無事に出力が行えたか、出力先のフォルダを確認してください。このあとのBlenderでの作業や、RealityCaptureで「テクスチャ再投影」する際に、ここで指定したフォルダを使用するのでフォルダ内のデータは動かさないようにしてください。
次に、blenderを起動してRealityCaptureで出力を行ったフォトグラメトリモデルをインポートします。トップバーの「ファイル」から「インポート」→「Wavefront(.obj)」で先ほどの出力先のフォルダからOBJファイルを読み込みます。
インポートしたフォトグラメトリモデルをガイドとして固定し、モデルに沿うようにBlenderで新たにモデルを制作します。モデリングしやすいようにモデルの色と透明度を変更します。
「3Dビュー」、または「アウトライナー」からインポートしたフォトグラメトリモデルのオブジェクトを選択し、プロパティウィンドウから「マテリアルタブ」を選択します。マテリアルの設定項目が表示されるので下にスクロールすると「ビューポート表示」という項目を表示させ、カラーを選択します。
するとウィンドウが表示されるので、見やすい色を決め、Aの透明度の値を半分に下げます。これで3Dビュー上にあるフォトグラメトリモデルの色と透明度が指定されました。
次に、フォトグラメトリモデルを固定し、選択できないように設定します。アウトライナー右上にある「フィルター」アイコンを選択します。
「制限の切り替え」という項目が表示されるので、矢印のアイコンをチェックします。
「フィルター」を閉じるとアウトライナーに矢印アイコンが表示されます。フォトグラメトリモデルの矢印アイコンを選択します。するとアイコンの色が変わり、モデルが選択不可になります。
フォトグラメトリモデルが固定されたので、新たにメッシュを追加し、フォトグラメトリモデルに沿うように形状を制作します。フォトグラメトリモデルだけではなく、撮影した写真素材等を見ながら全体的に整えていきます。今回はテスト用なのでシンプルなモデルを制作しました。
UV展開を終えたらモデルの出力を行います。「アウトライナー」からフォトグラメトリモデルの表示をオフにして、Blenderで制作したモデルのみを選択します。
トップバーの「ファイル」から「エクスポート」→「Wavefront(.obj)」を選択します。
念のため選択物のみにチェックし、RealityCaptureで出力したフォルダ内にあるフォトグラメトリモデルに上書き保存します。(上書きにする理由は下記の※に説明します。)
(上書きすると元のデータが消えるので、事前にフォトグラメトリモデルを複製して別のフォルダにバックアップをしてもいいかもしれません)
RealityCaptureに戻ります。再構築タブの入力から「モデルの入力」を選択し、指定したフォルダからBlenderで出力したモデルを選択します。
するとRealityCaptureにモデルがインポートされます。次にインポートしたモデルにテクスチャを投影します。
※インポート時に以下の項目が表示される場合
OBJファイルとrcinfoファイルの名前が一致していないと読み込みができず「Model Info File Not Found」という表示がでてきます。そのままインポートするとモデルが異なった座標軸でインポートされるのでファイル名を正しく修正します。
また、UV展開ができていない箇所があった場合は以下の項目が表示されます。
このままRealityCapture側でBlenderのUV展開を削除して新規で自動UV展開もできますが、ペイントソフト等での修正や管理が難しくなり、そのままテクスチャを投影しても、以下のような状態になってしまう場合があるので、もう一度Blender側でポリゴンに異常がないかチェックし、UVを修正します。
無事にインポートができたら、ツールから「テクスチャ再投影」を選択します。すると左下にテクスチャ再投影の設定項目タブが表示されます。
まず、ソースモデル(転写元のフォトグラメトリモデル)を設定します。次に、結果モデル(転写側のBlenderからインポートしたモデル)を設定します。
設定を終えたら「再投影」を選択します。
テクスチャが投影できたら完成です!
こちらがレンダリングを行い、完成した動画です🎵
今回はテクスチャを投影しただけですが、PhotoshopやSubstancePainter等のペイントツールで修正や質感の追加を行えばもっとモデルのクオリティが上がると思います✨
今まで何度か失敗したフォトグラメトリモデルがあったのでもう一度修正を試してみたいと思いました🍀
近況報告としましては、様々な物体を撮影してフォトグラメトリ研究用にストックを集めたり、もっと小物の撮影を気軽にできるような仕組みを作っていきたいなぁと、まだぼんやりとですが案を考えたりしているところです✍
3月中旬には、わたしも所属している3Dプリンタ高度利用研究会がオンラインで行われました。
コロナ禍の状況でも3Dプリンターの技術は以前よりさらに発展していて、精度が高い3Dプリンターや業務用3Dプリンターの小型化・低価格化が進んでいたのでびっくりしました❗
まだまだ取り扱いが難しいツールや難しい技術もありますが、もっと生活の身近になるように活用できないか方法をこれから学んでいきたいです💪
ここまでお読みいただき、ありがとうございました✨🙂