はじめに
3Dプリンタを手に入れ実用品をプリントして遊ぶつもりでしたが、いろいろ記事を読むにつれ別で遊んでいたScaniverseのデータが実体化できそうであったためやってみました。
また技術面ではすべてど素人でもあり、自分の整理の為に書いている側面もあります。
「もっと効率が良い」「まちがっている」等があれば教えていただけると嬉しいです。
全体の流れ
1. 3Dモデルの取得
2. 点群データのメッシュ化
3. メッシュデータのメンテ
4. プリント用STLデータの作成
5. 3Dプリント
環境
- ハードウェア
- iPhone(iOS26)
- Windows11 PC
- AnkerMake M5C
- ソフトウェア
- Scaniverse
- CloudCompare
- Blender
- Fusion
- AnkerMake(Slicer)
3Dモデルの取得
3Dモデルの取得にはNianticが提供しているScaniverseを使用しています。
Splatモードで取得し、PLYでエクスポートを行いました。
ここでなるべく隙間なくスキャンをしておくことが後工程で楽になるコツです
初手からメッシュもいい気がしますが、ディティールがつぶれ気味なので
Splatで取得して後処理したほうがクオリティが高いと思ってます。
Scaniverseのメッシュでいいやって場合はメッシュデータのメンテまで読み飛ばしてください。
下記を気を付けるとうまくいきます
- 点群に間がないように全体を取得する
- 特に上面は意識して取得する ※取りこぼしがちです
- 反射素材系は反射しないようにする ※布やマスキングを張ったりとか
※アプリは3分で警告してきますので、効率よく回りましょう。
また最後にトリミングして余計なものを削っておくほうが良いです
点群データのメッシュ化
PLY(メッシュデータ)を開く
準備として取得したPLYデータをPCへコピーしておきます。
CloudCompareを開いたらFile > Open で保存したPLYを開きます。
出てきたWindowはApply All で大丈夫です。

点群の向きを戻す
Scaniverseで取得したPLYですが、なぜか上下が反転して表示されます。
Edit > Transformation を開き、180度向きを変えておきます。
Axis,AngleのタブでRotation Angleを180degにします

点群の整理
取得した点群は不要なオブジェクトや不要な点群が多くありますので削除していきます
Edit > Segment を開き、不要な点群を左クリックしていき選択します。最後に右クリックして選択範囲を確定します。次に外が赤色の五角形”SegmentOut”をクリックし、チェックマークをクリックします。

そうすると選択していた場所がDBTreeで~~.Segmentedという名前で切り出されるので
右クリック➡Deleteで削除しておきましょう。

点群のノイズ除去
上記点群の整理で削除してもいいですが、オートである程度削除できます
消されすぎちゃったりすることもあるので適宜使用してください。
※モデル化するという意味ではよくないことが起きる確率高いような。ほどほどで。。。
- SOR
画面にある SOR をクリックして OK をクリックすることで削除できます
パラメーターを変えることで削除される率を変更できるので、この辺は適宜やってみてください。
※あんまりやりすぎると消えすぎちゃうので注意
- Sub Sampling
画面にある青と赤の点のアイコン Sub Sampling をクリックして OK をクリックすることで点群が間引けます。
法線の計算
不要なものが削れて来たら、法線というもので裏表?を判定させます
Edit > Normals > Compute で法線を計算させます。
基本的にパラメータはそのままで大丈夫です。
メッシュ化
Plugins > Poisson Surface を開きます。
Octree depthに15~17あたりを入れ
Densityのoutput~のチェックを入れておきます。

そしたらOKをクリックでメッシュ生成されます。
生成されたら左下のPropertyのツリーを操作して絞るとメッシュの出来具合が変わるのでいい感じになるよう調整します
※できてる山のすそ野を除外するイメージ

確定
すべて完了したら、Edit > Scalar fields > Filter By Value を開き
Exportをクリックしてメッシュモデルを確定させます

エクスポート
最後に File > Save でSTL形式で出力してメッシュデータは完成です
メッシュデータのメンテ
現時点ではメッシュデータに穴があります。
特に地面側は大きな穴になっているので埋める必要があります
BlenderでSTLを開く
穴埋めする
メッシュ > クリーンアップ > 穴を埋める
※大きすぎる穴は埋まらないので、メッシュ化の際に開かないようにすることの方が大事
底辺を押し出す
底辺を選択していき、押し出します
押し出し > 法線に沿って面を押し出し
押し出したものをカットして底面を作る
バイセクトツールを使用しいいところで底辺をカットします。
FILL、内面をクリアor外面をクリア にチェックを入れ、
残したい時所に底辺を作成します
STLでエクスポート
ファイル > エクスポート > STL
でエクスポートします
プリント用STLデータの作成
ここはそのまま印刷するのなら不要ですが、調整を行います。
※Blenderで対応しても可ですが、僕は台座等をFusionで作りたいのでこの流れで作業します。
メンテしたメッシュデータをインポートします。
インポートした後、尺度を「0.0069」に指定しプリントできるサイズにします 。
※ここでは1/144にしていますが適宜変更してください
Fusionで作成した土台とくっつけます。
ソリッドで作成した土台をメッシュ化し、合成します。
できたボディをSTLでエクスポートします。
3Dプリント
ここまで来たらSlicerにインポートし印刷するだけです。
適宜サポート等を付け、印刷してください。
おつかれさまでした。
ポイント
- 取得するSlpatは抜けがないよう注意する
- Blenderで穴を埋める
- Fusionでソリッドと結合する場合はソリッド側をメッシュ化して結合する
参考にさせていただいたサイト
助かりました、ありがとうございました。
https://qiita.com/Qiita/items/c686397e4a0f4f11683d
https://qiita.com/shizen-shin/items/a997bc228fa2850c9fce
