3Dスキャンしたメッシュをざっくりリトポ サーフェスやソリッドにしてCADで利用しよう Instant MeshesとBlenderでIGESに変換可能でした

CAD系ソフトでは一般に3Dスキャンしたメッシュは扱いづらいです。Blenderやmeshmixerによるポリゴン数削減は有効ですが、なだらかな曲面はなかなか得られません。今回はこれをサブディビジョン(SubD)して滑らかにしサーフェスとしてCADに持っていく手段を紹介します。細かい用途には向きませんが使える手札は多いほうがいいですよね。

はじめに

この記事は私のTwitter(X)のつぶやきを発端とした、3Dスキャンデータを利用しやすくするTipsのご紹介です。興味がある方が判りやすいようにする目的でブログにさせて頂きました。ただ、スゴイ裏技でもなければ別に新しい手法ではないのでがっかりさせたらごめんなさい!

この手段ではリトポロジーとSubDを使用します。形状がなだらかになる反面、設定した以上の細かい凹凸は考慮されません。細かい形状で行う際はリトポロジーを細かくして分割処理することをお勧めしますが、そもそも細かい形状はそのままBlenderでポリゴンのまま使ったほうがいいと思います。今回は細かいメッシュが逆にあだとなるCADで3Dスキャンデータをざっくり扱うための手法です。

今回鍵となるソフト、アドオンは下記の通りです。基本的に費用は掛かりませんが、よく使われるなら開発者への寄付をぜひご考慮くださいね。

また、メッシュの穴埋めや3Dスキャン後の処理にはMeshmixerも有用です。Instant Meshesに持っていく前にいったんコレでチェックをかけるのも良いんじゃないかと思います。どれもむしろ古いソフトウエアなんですよね・・。

CADもパーソナルユースで非営利目的なら無償で利用できるFusion360を例にしていますが、基本どのCADでも利用できます。なお、IGES(アイジェス)はCADの中間ファイルフォーマットで、Wikipediaによれば自動車業界では事実上世界標準との事です。私は知らなかったです(笑)。

今回の一連で具体的にはこんな感じになります。これは3Dスキャナーでお試しスキャンしたコントローラーですが、普通のメッシュのままだと私の用途で使いにくい場面があるのでそれをソリッドに変換する、というものです。左下がオリジナル、上がmeshmixerでリメッシュしたもの、右下が今回の手法でメッシュにしたものです。

Instant Meshesについて

Instant Meshesは、非常に簡便なリトポロジーツールです。GitHubで無料で公開されており、自由に利用出来ます。特徴は基本ワンタッチのリトポツールなのにもかかわらず、メッシュの配列方向等をある程度指定できる点にあります。英語ですが下記公式動画もぜひ最後までご覧ください。ちなみに最終更新が6-7年前の古いソフトです。見るだけで大体使い方は分かると思います。

私も以前ちらっと見たことはあったんですが、あまり記憶になかったこのツール。3DスキャナーやiPhone pro等LiDAR搭載機で手軽に3Dスキャンが楽しめるようになった現在、スキャン結果を手軽にリトポロジーするのに最適なツールのひとつかなと個人的に思っています。利用方法など他のブログでも紹介されていますが、objかplyのメッシュを読み込んでリトポの密度と配列方向を書き込み、稜線などを調整して好みのメッシュ配列を作ることが出来ます。すごいツールですよねこれ・・・。ぜひダウンロードして試してみてください。

一つ注意は保存で、日本語環境だとobjで保存するときにエラーが出ることがあります。その際はファイル名に.objまでつけるとうまくいきます。

当ソフトの一般的に挙げられる欠点としてはメッシュの密度等にメリハリが付けられないことです。均一なメッシュのみが製作可能です。ですが、今回はこれが良い方向で作用し結果としてBlenderでのsubDが行いやすくなりきれいな曲面を得ることが出来ます。緻密なスキャンには向きませんが、VR用途等含め限られたリソースを有効に扱い、CADで利用しやすくなるのはありがたいです。

今回の3Dスキャンの結果を取り込む方法の場合、後々ソリッドにすることを考えてあらかじめメッシュの穴はふさいでおく必要があります。3Dスキャナ付属のソフトでも穴はふさげますが、前述のmeshmixerで穴を塞いでおくといいと思います。

今回は3Dスキャンしたコントローラーではなく、iPad ProのLiDARでスキャンした椅子を使ってみます。このモデルは下記記事、3Dスキャナの紹介記事でスキャンしたモデルになります。こちらの記事もぜひどうぞ。

LiDAR、scaniverse経由でobj出力したものをmeshmixerで取り込んで、床部分を除去し穴をふさいでソリッド化します。ソリッド化の際の厚みは2mmにしました。うまくいかないときは適宜変更してください。

メッシュ数が多すぎると後程Fusion360に持っていく際にかなり時間がかかったり、エラーが発生することがあります。ちなみにコントローラーのモデルはこの際5Kポリゴンくらいです。ポリゴン数が少ない滑らかなサーフェスが作れるの、面白いですよね。。。

なお、利用方法の詳細については、下記の計算力学研究センター RCCMのサイトが非常に参考になりました。ありがとうございます!

また、下記サイトではBlenderでテクスチャをリベイクする方法等も紹介されています。私なんかよりよっぽど詳しいのでBlenderでそのまま利用される方はぜひこちらをどうぞ。(私はやったことがないです)

LiDARや3Dスキャンしたものをこうして簡易にリトポして均一なメッシュにするのは色々なことに応用できるんじゃないかと勝手に思っています。(自分には知識も技術もないので使い方がよくわかっていませんが・・・)

Blenderでの調整とExport IGESでのエクスポート

Blenderはご存じの通り基本メッシュのソフトウエアなので、エクスポートもメッシュが基本です。ですがExport IGESのアドオンを使用することでサーフェスとしてオブジェクトをエクスポートできます。このツールもBlenderとCADを繋ぐツールとして非常に強力です。下記で無償でもダウンロードできますが、その後私は寄付しました!

このツールは元々airuさんという方が利用されているのをTwitterで見かけて使ってみたのが始まりです。Plasticityを使われている方なのですが、この方のモデリングもめちゃカッコいいんですよね・・・。憧れます。

いずれにせよ世の叡智が集まるTwitter(新名称X)、素敵です!いつもありがとうございます!!

ということで検索すると、Twitterでもお世話になっているボンクラーズ総長さんがかなり以前に色々されていることに気付きました。偉大な先人に感謝を。

そもそもどうしてメッシュをサーフェスに出来るかという話ですが、SubDすることで法線がそろうからなんですよね。なのでこのアドオンを使用するためには必ずサブディビジョンモディファイアを使用している必要があります。

このSubDされたローポリのクリース付きメッシュをCADに持っていくことを前提としたソフトに、先程のメッシュを持ってくることでサーフェスに変換できるわけです。なのでFusion360に持っていく前にBlenderでクリースを付けるなど処理をしておきましょう。

また、標準搭載されている3D-print Toolboxも使って面はすべて閉じておいてください。まだアドオンが有効になっていない場合は有効にしておきましょう。Non-manifold edgesがなくなっていればOKです。ポリゴン数も少ないと思うので、この時点で行うのがおすすめです。他の項目はサブディビジョンかけるので気にしなくていいと思います。

処理後はモディファイアとしてサブディビジョンを行っておきます。せっかくなのでLiDARの元データと並べてみました。細かい凹凸が消えてしまいますが、CADで扱うにはこれが正解だと思います。VR等で利用するときもローポリがいいですよね。凹凸なんてバンプとかで処理すればいいんですよ・・・(暴論)。ということでこの手法、結構色々な用途に使えるんじゃないかな・・・?私には役立てるスキルがありませんが、何かの参考になったらぜひ教えてください!

最後にExport IGESがインストールされていればオブジェクトを選択してエクスポートすればサーフェス化が終了します。

サーフェスをステッチしてソリッド化 時間はかかります

CADソフトでエクスポートされたIGESを開きます。まず、IGESを開くのにそれなりに時間がかかります。IGESが50MBとかだと結構かかるので最初お試しするときは小さめのものにしてくださいね。今回お見せするCADは私がいつもお世話になっているFusion360です。作業途中のものを出しますが、読み込むと一つ一つがサーフェスの状態で取り込まれます。そりゃ時間かかるよね・・・。

というわけでサーフェスモードに入ってステッチを行います。ここでのコツは一気にやらないことです。適当に範囲選択してステッチしていきましょう。この椅子は5分割くらいでサーフェスをステッチしました。図にあるようにステッチされたサーフェスが並んでいき、「ステッチ解除」内のサーフェスがどんどん減っていきます。

ステッチ処理にはPCにもよりますがやはりそれなりに時間がかかると思います。これを取るときはノートPCでやっていますが、各5分くらいはかかったかも。時間があるときに試してくださいね。サーフェスのグループが出来上がったら今度はそれをステッチして最後はソリッドになります!

ソリッド化してしまえばこっちのもの、冒頭のTwitterのようにブーリアンもできます。ソリッド化するとかなり軽くなる印象です。細かいものは消えてしまいますがざっくり利用する場合にはとても便利ではないかと思います。必要な方がいらっしゃるといいのですが・・・3Dスキャン全般に使えるテクニックだと思うので皆さん色々教えてくださいね。

完成!Fusion360で比較

ということでソリッド化も完了したので、Fusion360で並べてみました。一番左が今回の手法で行ったソリッド化、真ん中がInstant meshesで出来たobjを読み込んだもの、一番右がiPad Pro、scaniverse経由のobjファイルです。細かい形状は端折られたりしていますが概ねイメージ通りにソリッド化が行われています。iPhoneのLiDARデータがサブディビジョンとはいえ、こういうきれいな面でだせるのは個人的にはとても面白い発見でした。Instant meshes、すごい。メッシュデータであればplyにも対応しているところも良いですね。

今回の一連の流れの何かが、皆さんの作業やワークフローに少しでも役立てば幸いです。今回も最後までお読みいただきありがとうございました!

当ブログでは私個人が3Dプリンター等中心に色々遊んだ?内容を書いています。もしかしたらどこかに役立つ情報があるかもしれませんのでよかったらこれからもよろしくお願い致します!