3Dモデルをいろいろ作ってみたい

3Dモデルをいろいろ作ろうとがんばっています。苦労した点、役に立ちそうな情報を発信していきます。

ZBrushを使ってスジ彫りを行う

以前に3Dモデルにディテイルを作り込むためFusion 360でスジ彫りを行った経験を報告しました。

ichidaya.hatenablog.jp

 正直このやりかたでいろいろ複雑なパターンを彫っていくのはかなりしんどくて、その後あまりやっていなかったのですがZBrushのパネルループスという機能で比較的簡単にスジ彫りと同じ効果をだせることを発見しました。パネルループスは3Dモデルの面に対して(スジを彫るのではなく)、スジの部分を残して他の面(パネル)を盛り上げることができます。ZBrushはきちんと寸法を決めてのモデリングがとてもやりにくいのでロボット制作には使っていなかったのですが、スジ彫りのような装飾的な要素を付加するにはけっこう便利かなと思ったりしています。

以下、ロボット骨格の脛部分につけるボディアーマーを対象にしてスジ彫りを行ったときの手順を記録しておきます。

1.ボディアーマーの3DモデルをZBrushに読みこむ

Fusion 360 大きさやダボ穴の位置を決めたアーマーのモデルを作成し、OBJ形式でエクスポートします。パネルループスの処理によって厚みがつくことを考慮してモデルは少し薄く作っています。ZBrushでそのファイルをインポートします。

f:id:ichidaya:20191221181900j:plain

Fusion 360で作成した3Dモデル(OBJファイル)

2.Dynamesh化を行う

Fusion 360 で作成されたOBJファイルのメッシュは不均一で大きさがまちまちです。これではパネルループスの機能が使えないのでDynamesh(解像度256)をつかって均一で細かいメッシュに変換します。

f:id:ichidaya:20191221183344j:plain

Dynamesh適用後のメッシュ

3.対象メッシュだけをきりとる

アーマーの裏側(ロボットの骨格と接する面)にまでパネル(厚み)をつけたくないので外側の面のメッシュだけを残して残りを削除します。CTRL-ドラグでマスク、Split Masked Pointsで分離、Deleteで削除といった作業です。

f:id:ichidaya:20191221190123j:plain

処理対象のメッシュだけを残す

4.メッシュをポリグループに分割する

SliecCircle、SliceCurveなどのブラシを使ってメッシュをポリグループに分割します。このポリグループごとにパネル(厚み)が生成されます。

f:id:ichidaya:20191221190926j:plain

ポリグループ分割の例

5.パネルループスを適用する

Geometry>Edge Loop>Panel Loopsを適用します。パラメータがいろいろあり対象のサイズや3Dプリンタの性能によって最適値は変わってきます。今回は以下のように設定しています。

Loops: 3

Thickness: 0.05

Bevel: 50

Bevel Profile: 低い四角形に設定 (スジの断面のかたちを規定する)

Elevation: 100 (100より少し小さくしたほうがいいかも)

 あとはデフォルトのまま。

以下のようにポリグループ分けに従ったパネルのメッシュが生成されます。

f:id:ichidaya:20191221202001j:plain

パネルループス適用結果

6.オリジナルのメッシュとマージする

このようにして作成された3Dメッシュはパネルの部分(厚みが増した分)だけなので元のメッシュとマージして3Dプリント用のデータ(下図の右)を作成します。

f:id:ichidaya:20191221203602j:plain

元メッシュ(左)とパネルループス結果をマージした結果(右)

 

元の3Dモデルとスジ彫り処理後のモデルをAdventure 3で出力してみました。品質にかかわるパラメータ(印刷やヘッド移動の速度)は標準のままです。

f:id:ichidaya:20191221204313j:plain

オリジナル(左)とスジ彫り処理後(右)の出力結果