3dプリント用のモデルのテクスチャー化法 (2種類) 備忘録
はじめに
3dプリントするとき、モデルに模様をつけたいときがある。ただのツルッとしたケースじゃ味気ない!和風の模様とかつけたい!とか。そういうときは、何かしらのツールが持つ「テクスチャ」という機能で表面に模様をつけるのが一般的。
それを実施する手段としては
1. ウェブアプリ
2. 何かしらのソフトの機能
3. 自作のプログラム
などが上げられる。
ここでは1.と2.の方法を紹介していく。3.は作成中。なお、内容は半分以上マルス電子サービスさんという神が紹介している以下の手順を、3dモデリング超絶初心者の自分でも理解できるレベルで、より細かく分解してマニュアル化したもの。前に習得したのだが一瞬で忘れてしまったので備忘録として残すことにした。
一通り手順を書きますが処理が重くなる為、無駄な手順を含みます
— マルス電子サービス (@sabineko7777) April 24, 2024
blenderでstlファイルを読み込み、統計を表示して頂点数を確認しておきます。 https://t.co/9GXLF4Kjw3 pic.twitter.com/AoANZGGxIr
1. モデルの用意
stlファイルを用意する。
ここでは定番のお船モデル、ベンチーを使っていく。下記のFiles→一番下の3dbenchy.stlをダウンロードする。
2. 画像の用意
テクスチャ用の画像を準備する。
基本、たくさんテクスチャ用画像を並べることになるので、シームレス (繋いだときに不連続部分が出ない) 画像を用意する必要がある。下記画像のようなイメージ。
画像はフリー素材を探してもいいし、自分で作ってもいい。最近は生成AIでシームレス画像も簡単に作れるようになっているので、独特な模様とかを作りたいならそちらを利用するのもあり。英語だが下記のポストが参考になる。
This might be a good prompt structure to generate seamless textures/materials on 4o:
— Emm | scenario.com (@emmanuel_2m) March 30, 2025
1. Description: What the texture is (e.g., cobblestone road, metal surface, wooden plank).
2. Style: Realistic, stylized, hand-painted, cartoonish, pixel-art, futuristic, etc.
3. Details:… pic.twitter.com/I5FjGNP5Qi
以下のような具合でChatGPTに頼んで生成できる。若干シームレスじゃなかったりするので、調整は必要になる。著作権は重要ということで、今回はこの生成した画像を使っていく。グレースケールとお願いしてるのは、色の濃淡をモデルの凹凸に反映させるからで、色がついても意味がないかむしろ邪魔になるから。
3. リメッシュ
非常に重要な工程。元の3dモデルファイルではファイル容量を抑えるために必要最低限の粗いポリゴンで構成されており、いまやりたいテクスチャパターンを浮かび上がらせるにはほぼ100%分解能が足りない。
なので下処理としてポリゴンの細かさを上げてやる必要がある。どのくらい上げるかはテクスチャパターンの細かさ次第となる。
やりかたとしてはBlenderを使った方法と、外部ソフトを使った方法とがあり、前者を紹介してくい。こちらもマルスさんが紹介してくださっているので、それを更に分解していく。
3-1 STLファイル読み込み
Blenderを起動する。なおここではBlender4.4を使用した。中央に邪魔なキューブがあるので左クリックで選択してオレンジ色にし、Deleteボタンを押すか右クリック→削除で消す。
ウインドウにstlファイルをドロップしてインポートする。
読み込むと下記のような画面になる。
3-2 モデュファイアーによるリメッシュ
この画面のまま、「モデュファイアー」の「リメッシュ」機能を選択する。
・右下の青いスパナマーク(モデュファイアータブのアイコン)を左クリック
・タブが切り替わり「モデュファイアーを追加」という文字が出てくるので左クリック
・「生成」にマウスカーソルを当てる
・いろいろな機能が出てくるなか、上から10個目に「リメッシュ」があるので選択する
そうするとモデュファイアーのタブにリメッシュの設定が出てくる。リメッシュ設定は
・ボクセル
・ボクセルサイズ 0.2 m
・適応力 0
・スムーズシェーディング なし
とする。ポリゴン (ここではボクセル) を小さくしたい場合はボクセルサイズを0.2 mから0.1 mなどに小さくする。 詳細は
https://docs.blender.org/manual/ja/dev/modeling/modifiers/generate/remesh.html
を参照のこと
※※ここ非常に重要※※
カメラマーク右の↓アイコンを左クリックし、「✓適用」を左クリックしてモデュファイアーを適用する。この工程は知らないと一生気づかないので注意。モデルを左クリックしてCtrl+Aから「表示の形状をメッシュ化」でもできるが、前者のほうが早い。
3-3 リメッシュの確認
上のメニューで「UV編集」のタブを選択して編集モードに切り替え、メッシュのチェックをする。細かくメッシュが切られていれば成功。
4. テクスチャ化
テクスチャ化は、上で紹介したようにウェブアプリを使った方法とBlenderを使った方法の2種類があるので両方紹介していく。
4-1 ウェブアプリによる方法
こちらではFormlabsさんのウェブアプリ「Formlabs Texture Engine」を用いた方法を紹介する。
・リメッシュしたstlファイルを、新たなリメッシュ済stlファイルとしてエクスポート (not保存) する。 ファイル→エクスポート→STLでOK。
・リメッシュしたstlファイルを用意したら、以下のサイトにアクセスしてウェブアプリを開く。読み込みがおかしいことがあるので何回かリロードすると良い。
このような画面が出てくる。
こちら、ファイルを出力するにはFormlabでユーザー登録が必要なので、右上の人型アイコンをクリックして登録を済ませ、ログインをすること。
・ログインしたら、左上の「Upload 3D model or displacement map」を押し、先程保存したリメッシュ済みstlファイルを選択して読み込む。そうすると下のような画面になる。
・stlファイルを読み込んだら、次はテクスチャを変更する。左のメニュー上でマウスホイールを動かすか中央やや左にある灰色の上下スライドバーを動かし、画面の下の方を見る。そうするとDisplacement Mapというのが出てくる。ここには既に用意されているテクスチャが何種類かある。
ここにもし気に入ったテクスチャがあればそれを使っても良いし、オリジナルのテクスチャを使いたければ、自分で用意した画像ファイルをこの画面の左でも右でもどこでも良いのでドラッグアンドドロップする。
・あとはパラメータを調整する
Scale: 大きくするほど、テクスチャのパターンが細かくなる
Amplitude: 大きくするほど、模様に応じた表面凹凸が大きくなる
Sharpness: よくわからない。モデルのカーブ部分でなにか効くらしい
Offset: モデルに対してテクスチャの凹凸を食い込ませるかオフセットさせるか。おそらく薄壁のモデルではオフセットしないと穴があく
Max Triangles: 大きいほど出力するstlのメッシュが細かくなるがファイル容量も大きくなる。
・最後に出力をする。右に表示されているモデルの下部に青色の「Generate↓」というボタンがあるので左クリックし、好きな場所にstlファイルを保存する。
4-2 Blenderによるテクスチャ化
Blenderによるテクスチャ化も紹介していく。リメッシュをBlenderでやっているのでこちらのほうが早いこともある。
流れとしてはUV投影→ディスプレイスというのをやっていく。
【UV投影】
・UV編集タブ画面のまま、右下の赤い◯のマーク(マテリアルタブのアイコン)を左クリックするとタブが切り替わるので、その画面にある「+新規」を左クリックする。
そうすると、少し時間が掛かったあと、このようなマテリアルの各種項目が出てくる
非常に分かりづらいが、「ベースカラー」の左にある黄色い◯を左クリックすると左にメニューが展開され、その中の左から2列目の「テクスチャ」の上から5番目にある「画像テクスチャ」を選択する。
そうすると先程の「ベースカラー」のところが真っ白から「画像テクスチャ」に変わり、更に「開く」というボタンが追加されているので、そちらを左クリックして作成したテクスチャ画像を選択する。
・モデルのメッシュを選択するため、キーボードのAを押して全選択をする。
全選択したら、モデルの上くらいにある「UV」を左クリックし、上から6番目の「スマートUV投影」を左クリックする。設定はそのままで「展開」を左クリックする。
そうするとこのような画面になる。
また非常に分かりづらいが、左画面と右画面との間、虫めがねマークの右あたりに「<」というアイコンがあってタブが隠れている。なので「<」マークを左クリックすると下記のようなタブが3つ出てくる。
そのうちの「ビュー」タブを左クリックして、「画像をリピート」をOnにする。これでテクスチャを細かくしやすくなる。
ここまでしたら、左画面で左上の「ボックス選択」アイコンをクリックして黒くなった3dモデルのパーツたちを選択し、その後4つ下にある「スケール」アイコンをクリックし、選択した黒いパーツたちを拡大 or 縮小させる。パーツを拡大させればテクスチャが細かく入り、逆に縮小させればテクスチャが大きく入る。
【ディスプレイス】
テクスチャに合わせて歪ませていく。
・まず見やすくするためにモードを編集モードからオブジェクトモードに変える。右画面の左上にあるドロップメニューから変更する。
・右下の赤いチェッカーボードの四角(テクスチャタブのアイコン)を左クリックし、タブを切り替えて「+新規」を左クリックし、「開く」から同じテクスチャ画像を開く。
・画像を開いたら、更に右下の青いスパナマークを押してモデュファイアータブを開き、「+モデュファイアーを追加」→「変形」→「ディスプレイス」を左クリックする。
・ディスプレイス画面になにやらテクスチャアイコンがあり、その右に「+新規」というのがあるので左クリックする。
・テクスチャ選択画面が出てくるので、先程テクスチャタブで読み込んだ画像を選択する。サムネイルが出ているのでどれが該当テクスチャなのかはわかる。
そうするとモデルに凹凸がつく。
「座標」のところを「ローカル」から「UV」にすると、テクスチャに沿った凹凸になる。「強さ」のところを変えると凹凸の強弱が変化する。Formlabsのウェブアプリのようなオフセットはつけられないかもしれない。
さらにテクスチャを滑らかにしたいときやポリゴンを減らしたいときなどは、モデュファイアーとして
・生成→サブディビジョンサーフェス
・生成→デシメート
を追加して下のような順番で適用すると良い (マルスさん説明によると)。
・最後にstlファイルとしてモデルをエクスポート (not保存) する。
ファイル→エクスポート→stlファイルでOK。
5. 出力ファイルのプリント
出力されたファイルをPrusa slicerなどのスライサで開いてプリントをする。 プリント時の注意として、ボトムのほうにまでテクスチャが反映されており、ほぼ確実にファーストレイヤーが点接触になる。そういったことが発生したら、モデル全体のz座標を下げ、埋め込み状態にしてスライスをすると良い。いやボトムもテクスチャほしい、ということであればサポートを使うこと。



コメント