「3Dスキャンモデル」とは、LiDARスキャンアプリなどで現実の物体から3Dモデルを生成したものです。スマートフォンだけでモデルが生成できるという手軽さが人気ですが、きれいにスキャンできなかったり、ファイルサイズが大きく扱いずらいということもあります。
本記事では、そうした場合の修正方法をまとめています。ぜひ参考にしてください。
3Dスキャンモデルの修正とは
3Dスキャンモデルは現実空間を手軽に再現しますが、データが重い、モデルの開口部や形を修正したいなど、自動生成されたモデルは必ずしも意図した形ではありません。3Dスキャンで生成されたモデルをそのまま使用すると不都合が出る場合があります。
そういった際にスキャンモデルの修正を行う必要があります。
本記事では重くなりがちなデータを軽量化させるための方法や、実際の事例をもとにスキャン時の開口部をふさぐ方法、凸凹をならして自然にする方法、スキャン時に生成できなかった複雑な形状を整える方法を紹介します。
以下は各種3Dスキャンアプリの比較・使い方の紹介です。
本記事ではBlenderやSTYLY Studio、モデリング入門に当たる知識については説明を省きます。
不明点などがあれば、都度以下の記事を参照してください。
ポリゴンリダクション
ポリゴンリダクションとは、モデルを軽量化する手法のひとつです。
スキャンモデルは再現性が高い一方でモデルのデータ容量が大きくなりがちですが、STYLY上でスムーズに動かすためには軽量化することをおすすめします。
ポリゴンリダクションするには大きく2つの工程があります。
- モデルのポリゴン数を落とす。
- 元のモデルからポリゴンを落としたモデルへ、テクスチャを転写する。
モデルポリゴン数を落とす
blenderにモデルをインポートします。
ここでは一例として、Blenderのプリミティブオブジェクトのひとつでテスト用に使える猿のモデル(通称スザンヌ)を使用しています。
Edgeを確認するためワイヤーフレーム表示をオンにしましょう。
スパナマークのモディファイアープロパティタブを開き、Add ModifierからDecimateを選択します。
Ratioに数値入力してポリゴンリダクションの比率を指定します。
1.0でモデルに変化なし、0.5でモデルは半分のポリゴン数となります。
リダクション処理は数値入力後直ちに開始され、比率が低いほど処理の負荷がかかります。
リダクションによる形状の崩れ具合を見ながら、比率を少しずつ下げてください。
また、マウスのドラッグ&ドロップではなく、数字の直接入力を行う方がおすすめです。
比率を0.1としたところ、オリジナルの3万ポリゴンから5千ポリゴンまでポリゴンを削減することができました。
最後にプルダウンからApplyを選択して適用してください。
モデルのテクスチャを転写する
もともと設定されていたテクスチャは、ポリゴンリダクションしたことで頂点が変わってしまうため、見た目にズレが発生します。ズレはスキャン対象によって目立ち方が変わります。必要に応じて適宜行ってください。
見た目のズレを直す場合は以下の記事をもとに、リダクション前のモデルを使ってローポリモデルにテクスチャを設定し直してください。
事例1・基礎編「開口部を塞ぐ」
この事例では、壁の開口部をMeshで塞ぎます。
個別の表示はオブジェクトを選択して/キーで個別に表示します。
以下の手法でモデルの修正をしましょう。
[tab]キーでEditmodeに移行します。
赤い範囲のMeshを左クリックで選択してxキーで削除します。
一方のEdgeを[E]キーで延長する。
残った2つのEdgeを[F]キーで面をつなげる。
開口部のEdge4つを選択して、[F]キーで開口部をMeshで塞ぎます。
ノーマルの調整を行います。
新たに作成した5つのEdgeを選択して右クリックのメニューからMake Sharpをクリックします。
開口部を塞ぐのはここまでで完了です。
テクスチャを割り当てる場合はUV展開を行います。
UV Editingタブに移行します。
右側の画面をEdit Modeにして、新規作成したMeshを選択します。
UV>Unwrap>Unwrapを選択し、UV展開します。
Tips:UVチェッカー
UVの展開では適切な比率でUVが展開されているかを確認するためにUVチェック用のマップをマテリアルに一時的に適用して確認します。
ネットで探すのこともできますが、以下のサイトで自分好みで作成できます。
UV Checker Map Maker:WEBブラウザでUVチェッカーテクスチャを生成出来るサイト
http://uvchecker.byvalle.com/
事例2・基礎編「凹凸を調整する」
スキャンモデルの表面に凹凸が発生してしまう場合があります。
そのようなときは、Sculptingを使用して表面を均していきます。
①Sculptingタブをクリックして、ワークスペースを切り替えます。
②左上のボタンのモード選択のプルダウンから「Sculpt Mode」を選択するか、[tab]キーをクリックしSculptモードへ移行します。
③Radiusでブラシの大きさ、Strengthでブラシの効果の強さを調整します。
④Flattenブラシを使用し、表面の細かい凹凸を左クリックしてならします。大きな面をならすだけでもかなり見え方が異なります。
細かいディテール部分を調整したい場合はFlattenブラシのRadiusを小さくしたり、画面左のブラシ一覧から他のブラシを使用して見ましょう。
事例3・応用編「複雑な形状を再構成する」
Meshが破綻した部分を削除し、新たにMeshを貼り付け、UVを調整します。
モデルのマージ
スキャンモデルは、見た目では一つのMeshに見えても、細かいMeshの欠片に分かれている場合があります。
その場合開口部をaltで一括選択できないため、以下の手順でMeshを一体化します。
[A]キーで全選択後、[M]キーを押して表示されるメニューでByDistanceを選択します。
左下にMerge Distance:0.0001と表示されます。
もし、形状が崩れてしまう場合はこちらの値を調整してみてください。
Mesh削除
Meshを選択し[X]キー>Faceで削除して、sculptingで[Shift]キー+左クリックで均して断面を滑らかにします。
Edge選択
Select>Select All by Trait>Non Manifold左下のチェックボックスのBoundariesのみをチェックします。(Edge選択モードでのみ)または、[Alt]キー+左クリックで境界を選択する([Shift]キーを押しながら追加選択します)。
Mesh作成
[F]キーで選択中のEdge内をmeshで塞ぎます。
Tips:Grid Mesh
ある程度孔が小さく、かつEdgeを偶数に調整できれば、Grid Edgeで塞ぐのもおすすめです。
通常の[F]キーと異なり、Meshを分割してくれるので塞いだMeshを調整し易いです。
[Ctrl]キー+[F]キー>Grid MeshでとグリッドのMeshで孔を塞ぎます。
Tips:Statistics表示
選択中のEdgeの数を確認するため、Statistics表示します。
ViewpointOverlays>Statisticsのチェックボックスをつけてください。
左上にObject、Vertices、Edge、Faces、Triganglesの数が表示されます。
UV展開・調整
Meshを貼り付けただけだと、画像のように見た目がおかしいため、UVの調整が必要です。
UVEditingタブの右画面で作成したMeshのみを選択します。
UV>Unwrap>Unwrapを選択し、UV展開します。
展開したUVをUVMAP上の任意の色の上に配置する。
STYLYにアップロードする
最後に、スキャンデータをSTYLYにアップロードしてみましょう。
下のシーンはギターのスキャンデータを修正前後で並べて見ました。
まず、blenderからデータをFBX出力します。
File>Export>Fbxをクリックします。
①FBXにテクスチャ埋め込むためにPath ModeでCopyを選択し、右端のアイコンをクリックします。選択中のオブジェクトのみFBX出力したい場合はチェックしてください。
②オブジェクトタイプで出力するものをフィルターしたいときにチェックします。
③今回はMeshデータのみ出力できればいいので画像のようにチェックします。
次にFBXモデルをSTYLY Studioにアップロードします。
方法は以下の記事の「Upload」の章を参照ください。
アップロードしたモデルを選択してシーンに追加します。
そのままではライティングがされていないのでAssetボタン>Environment>LightからDirectional LightやPoint Light、Spotlightなど適宜選択してシーンに配置してください。
最後に、Publishボタンからシーンを公開します。
まとめ
ポリゴンリダクションの方法とスキャンモデルの修正手法を3つまとめました。
スキャンモデル制作は、スマホひとつあれば作れるほど手軽になりました。
CG初心者でもシーン制作に取り入れやすいです。
上手く活用して創作の幅を広げましょう。
事例の一部はVR京急油壺マリンパークの開発時のものです。
ぜひVRシーンを観覧して閉ざされた幻の部屋やアザラシを探してみてください。
STYLYに関する質問、バグ報告、改善してほしい要望はSTYLY FORUMまで
https://jp.forum.styly.cc/support/discussions
Certified (QA) by Shota Yoshizawa
Edited by SASAnishiki