Z-Notes

主にZBrush、3dsMax、3d-Coatなどの3DCGアプリに関する覚え書き。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

銃を作るWIP(その6)

銃の作成手順を整理しつつ覚書

追記しました

gun-modeling-49.png



制作手順をもう一度最初から順を追って振り返りつつハードサーフェースモデリングにおけるワークフローの最適化とZBrushの知識をより深めていく。

今回は初心者向けに詳しく解説すると大変なので基本的なことはいちいち説明しない。

かなり無理してZBrushで作っているけど、はっきり言ってこんなのはポリゴンモデラーかCADソフトでやったほうが楽だ。


(顔の「face:フェース」につられて今までずっと「surface」をサーフェースと書いていたけど正しい発音はサーフィスが近いらしい。ググるとハードサーフェスが圧倒的に多いので業界的にはサーフェスなんだろう。でもこのまま行くw。)




<下絵の準備>


ネットで見つけた三面図をより使いやすくするためにコントラストを調整し補助線(赤い線)を加える。

(写真や他の三面図と見比べたりして間違ってそうなところや不足しているところを修正するのもいい。)



メッシュに下絵を投影するため位置合わせするためアタリとなる立方体プリミティブを銃の外寸(バウンディングボックス)に合わせてスケールして配置。

それに合わせて下絵の各面のスケールや位置を調整する(実際には立方体プリミティブと下絵の位置、大きさを互いにすり合わせる感じ)。

gun-modeling-19.png


下絵は銃身の中心軸がZBrushの3D座標のZ軸と一致するように配置します。

ZBrushにはオブジェクトのローカル座標が無いので、どこを中心にしてモデリングすると効率がいいか考えるのが重要だ。

また作成するモデルによってはこの中心を必要に応じて上下させてもいいだろう(例えばリボルバーを作る場合、銃身を作る時と回転弾倉を作る時では中心軸を上下させるなど)。



下絵の位置合わせが終わったら「Project On Mesh」スライダーで下絵をメッシュに投影する。

(注意:メッシュに投影する機能は「Project On Mesh」の名前の通り、プリミティブはポリメシュに変換しないとオブジェクトに投影出来ません。)

gun-modeling-20.png



<銃身を作る>

普通オートマチック拳銃は銃身がスライドに覆われて隠れているけどこの銃はそれがむき出しになっているのが特徴的だ。

Z軸の円筒プリミティブ「Append」してを下絵に合わせてスケールしポリメシュに変換(Make PolyMesh 3D)。

(3D座標の中心を銃身に合わせているので円筒は勝手に正しく配置される。後は前後位置と太さ、長さを調整するだけ。)

gun-modeling-21.png


両端と側面をそれぞれ別ポリグループにして「Crease PG」でポリグループの境界にクリースを設定する。

gun-modeling-22.png


この円筒を「Duplicate」して3本作る。(わかりやすくするため上からそれぞれ「円筒1」「円筒2」「円筒3」とします。)

gun-modeling-22b.png


「円筒1」サブツールを選択したら、ブラシを「ZModeler」ブラシに切り替える。

側面でポリゴンの一つを選択し「Space」キーを押して出てきた設定ウィンドウからポリゴンの「Extrude」か「QMesh」を選択してターゲットに「Polygroup Island」を選択(他はディフォルト)。

gun-modeling-23.png



側面のポリゴンのどれかをクリック&ドラッグし円筒側面を外側に押し出す。

円筒の半径を銃身先端の下に出っ張った部分より少し大きめにする。

(円筒の半径を拡大して後から銃身の半径でエッジループを追加してもいいが、このやり方は元の銃身の半径をそのまま正確に維持できるので採用した。)

gun-modeling-24.png



円筒先端のエッジループ以外をすべてマスク。

横からの視点で銃身先端の傾斜に合うように円筒のエッジループを後ろに水平移動(Shift使用)。

gun-modeling-25.png


マスクを解除してもう一度「Crease PG」し数回サブディバイド(Divide)。

エッジのクリースを残しつつ曲面がなめらかになればよいので、この場合「4」か「5」くらいで十分でしょう。

「Del Lower」で下位のサブディビジョンレベルを削除します。

(「Del Lower」しない場合、次の手順でダイナメッシュする時「Freeze SubDivision Levels」を実行するか聞いてきます。その時は「No」を選択。)

gun-modeling-25b.png


「Ctrl+W」でポリグループを一つにまとめます。




次にこれをダイナメッシュにします。

最後までハードなエッジを保ちたいので「Blur」は「0」にします。


どの程度の解像度にするかはどの程度のクオリティが必要かによります。

「Project」をオンにした場合「240」程度でエッジが立ってかつなめらかな曲面になりました。

「Project」をオフにした場合は「400」程度で同様の結果になりました。

当然後者のほうがポリゴン数が多くなりますがそれ以上に「Project」の計算に時間がかかるので後者を選択することにします。

gun-modeling-26.png




モデリングが進んでより形状が複雑になっていくとこの解像度では不足するかもしれませんが、その時は必要に応じて解像度を上げます。


このオブジェクトは約260万ポリゴンになりました。

人物など有機的なものをスカルプトする場合は通常できるだけ少ない解像度、ポリゴン数からモデリングを始め、モデリングが進むにつれ段階的に解像度を上げていきます。


しかしハードサーフェースの場合はなめらかなサーフェースや鋭いエッジを維持するため最初からある程度高い解像度にするほうがよいでしょう。

後から滑らかにしたりエッジを立てたりするのは難しいからです。


ダイナメッシュを使う場合、特にハードサーフェースモデリングでは漫然と解像度を決めず、常にパフォーマンスとクオリティのバランスを見極めながら決めていくのが重要です。


ダイナメッシュは1000万ポリゴン近くになるとかなり不安定になりメッシュの生成に失敗して破綻したりクラッシュしたりすることがあります。

普通どんなに解像度を上げてもZBrushが自動的にポリゴン数を制限するらしくダイナメッシュが1000万ポリゴンを越えることはほとんどありませんしそれを超えそうになるとメモリー不足の警告が出ることがあります。

警告が出た場合は警告が出なくなるまで解像度を少しずづ下げながらダイナメッシュします。

どうしても解像度を上げる必要がある場合、可能ならオブジェクトを複数のパーツに分解して別のサブツール分けます。

(通常のポリメッシュはもっと多くのポリゴン数で使えます。かなり重くなるので実用的かは別にしても64ビット版の場合最大一億ポリゴンまで可能になりました。)

ダイナメッシュであっても更新しなかったりオフにしている限りは通常のポリメッシュと同じなのでディバイドすることで1000万を超えるポリゴン数にすることも可能です。

だだし再びダイナメッシュ化するとポリゴン数はもとに戻ります。


ダイナメッシュの場合、ポリゴン数は解像度の設定に加え、大きさとメッシュの複雑さを合わせたもの、つまり表面積で決まります。

(例えば6ポリゴンの立方体はどれだけ大きくしても6ポリゴンであるように、通常のポリメッシュは表面積とポリゴン数は必ずしも比例しません。)


解像度が低すぎるとディテールの表現力が下がり、解像度が大きすぎるとパフォーマンスや安定性が低下します。

どの程度のクオリティが必要で、それにはどの程度のポリゴン数が必要なのかを考えながら解像度を決めてモデリングします。


ただモデリングで途中リトポしたり最終段階でリトポして仕上げる場合はそれほどダイナメッシュのクオリティにこだわる必要もないでしょう。

ここではリトポせずにできるだけ高いクオリティのハードサーフェースを目指してモデリングして行こうと思っています。




話がそれたので手順の解説に戻ります。


ダイナメッシュに変換したらシンメトリーをオンにする。

「Clip Circle」ブラシを選択して「Center」をオン。X座標の「0」の位置からドラッグして正面下端の曲線にブラシのカーブを合わせて楕円にカットする。

ZBrushにはこの中心をスナップさせる機能がない目測でできるだけ正確に合わせるしか無い。

gun-modeling-27.png



上半分は必要ないので「Clip Curve」ブラシで水平にカットする。

gun-modeling-28.png


コピーした別の円筒サブツール「円筒2」を選択します。

この「円筒2」サブツールも上と同様の手順で単一のポリグループにしてディバイドしダイナメッシュします。エッジのクリースを維持したままなめらか曲面であることを確認します。


「円筒1」サブツールを選択して「Marge Down」し「円筒2」と同一サブツールにします。

(後でもう一度分割するのでマージした状態の時はダイナメッシュを更新しないでください。更新すると2つのメッシュが一つに融合してしまいます。「DynaMesh」を一時的にオフにすると安全です。)


正面から「Clip Curve」で正確に側面をカットします。

gun-modeling-29.png


ZBrushのカーブは仕様上「Alt」のシングルタップを使って曲線と直線を組み合わせようとすると直線までカーブしてしまい正確な直線になりません。

なのでここでは「Alt」のダブルタップで直線的にカーブを折り曲げ、曲線部分は「Clip Circle」ブラシで後から曲線にします。

(実銃ではほとんど直線で切り取られているようなので無理にカーブさせなくてもいいかも。)

gun-modeling-29b.png


追記

一応直線と曲線を組み合わせる方法も考えていたので追記。
わずかだが段差ができるのでこのやり方は採用しなかった。またどんな場合にも使えるというわけでない。

gun-modeling-52.png




gun-modeling-30.png

gun-modeling-31.png

gun-modeling-32.png

ZBrushには精密にモデリングするという設計思想は無くかなりアバウトなモデリングソフトだという感じがします。

エンターテイメント用途ではあまり問題無いのでしょうがもう少し精密にモデリングできるように機能強化すればもっと楽しく効率的にモデリングできると思うんですけど。




続きます。ここで一旦マージしたメッシュを分離します。

「Select Rect」で「円筒1」だったメッシュを「Ctrl+Shift」を押しながらクリックして「円筒2」を非表示にし「Split Hidden」します。

「円筒1」を「Dupulicate」し、コピーしたサブツールの名前を「Slide」にします。これは後でスライドを作るのに使います。

gun-modeling-33.png


「円筒1」を側面図の分割線で後ろ部分をカットします。

gun-modeling-34.png



「Slide」は同じ分割線で反対に前部分をカットします。

gun-modeling-35.png


切断部分に多少隙間があいたり重なったりしても後で修正できるので問題ありません。

gun-modeling-36.png



「Slide」サブツールは今はここにあると邪魔なのでサブツールリストの下の方に移動させます(「Ctrl」+「↓」)。

gun-modeling-37.png


もう一度「円筒1」と「円筒2」をマージします(まだ融合させないので「DynaMesh」はオフ)。

このマージしたサブツールの名前を「Barrel-A(バレルA)」とします。


「円筒3」を選択し前と同様に単一のポリグループでディバイドしてダイナメッシュに変換。シンメトリーをオンにします。


この状態で円筒3」を「Duplicate」でコピーし、コピーしたサブツールは非表示にします。


「Barrel-A」サブツールとオリジナルの「円筒3」サブツールだけを表示します。


「Shift」を押しながら横からの視点に変更し「Rotate On Z Axis」をオンにしてZ軸にカメラの回転を制限します。

できるだけズームして斜めにカットした2つのエッジがぴったり一致するようにカメラを回転させます(どの方向にドラッグしてもZ軸にカメラの回転が制限されます。)

gun-modeling-38.png


正確にエッジを一致させるための目安として表示のジャギーを使うと便利です(モニターの解像度によってはうまく機能しないかもしれません)。

gun-modeling-39.png


2つのエッジが完全に一致したら「Clip Circle」で下のようにカットします(形や位置は後で修正できるのである程度適当でいい)。

gun-modeling-40.png


カットした部分の後ろ半分から側面図の削りこみ部分の少し後ろまでを除きすべてマスクします。

カットした後ろ半分をトランスポーズで「Shift」を押しながら後方へ平行移動し図面の位置と合わせます。

少しカット面のカーブが一致していないので、この部分以外をマスクして水平方向に少し拡大します。大体図面と合いました。

gun-modeling-41.png



ここで一旦ダイナメッシュを更新します。

先端部分にある残り半分は必要ないのでカットしますが、このままだと出っ張りがバリになるので先端以外をマスクし正面から出っ張りを最初にカットします。

(反省点>最初から楕円の後ろ部分だけ使ってカットすればよかったかも。)

gun-modeling-42.png


追記

結果的に望み通りの形ができればどんなやり方でやろうとそれが正解ですが、もう少し効率的なやり方あったので書いておく。

まず先端をカットする時「Trim Curve」ブラシを使うと一発でできるのに気がついた。

このブラシ、曲線でカットする時はあんまり使えないが直線でカットする時はバリができずに強力だ。

gun-modeling-50.png


そもそもここの手順を下のようにすればクリップブラシでも簡単にカットできた。

gun-modeling-51.png


まだまだ他にも改善できるところはあるはず。

最初に作った時の手順に引きずられて大胆な発想の転換ができていない。





カットした曲面が荒れている場合はポリッシュモードのスムーズ(Shift離し)で滑らかにします。

gun-modeling-43.png


ここで「円筒3」を「Barrel-B」とリネームします。

「Duplicate」で「Barrel-B」をコピーし、コピーした「Barrel-B」は非表示にしておきます。


「Barrel-A」と「Barrel-B」サブツールだけを表示します。

「Barrel-A」を選択します。

切れ込み部分のエッジを「Move」ブラシで図面に合わせてます。ここではあまりチマチマいじりすぎないで少ない手順で輪郭を滑らかに図面に合わせて曲げるようにします。

gun-modeling-44.png


「Barrel-B」のコピーを選択して少し前方に平行移動します。ここではコピーした「Barrel-B」を表示、オリジナルの「Barrel-B」を非表示にします。

(次に使う「ZProject」ブラシは選択したサブツールでストロークすることで、表示サブツールに投影して貼り付けます。)

gun-modeling-45.png


もう一度「Barrel-A」サブツールを選択して「ZProject」ブラシに切り替えます。


「Barrel-A」の歪んだサーフェースを「ZProject」ブラシで「Barrel-B」のコピーサブツール表面にプロジェクションして整えます。

カーブしたエッジの部分がきれいになるように特に注意します。

ときどき「Barrel-B」のオリジナルとコピーの表示を切り替えて「Barrel-A」の表面がなめらかになっているか確認しながら作業します。

gun-modeling-46.png


表面が綺麗になったら「Barrel-A」を「Barrel-B」にマージします。

最初に作った3つの円筒がここですべて一つのサブツールとしてマージされました。

マージした時点でもう一度メッシュに歪がないか確認します。

OKならこのサブツールを「Barrel」にリネームします。

この状態の「Barrel」を「Duplicate」してコピーし、コピーを非表示にします。

オリジナルの「Barrel」サブツールを選択してダイナメッシュしすべてのパーツを一体化させます。

複数のメッシュをダイナメッシュで一体化させるとどうしてもメッシュ同士が重なったり接したりしている部分にノイズがでます。

gun-modeling-47.png


このようなところも前と同様にコピーした「Barrel」サブツールと「ZProject」ブラシで整えていきます。

「ProjectAll」してもいいですが「ZProject」ブラシのほうが確実なようです。

ただしバグなのか「ZProject」ブラシを使うと反対側が大きくえぐれてしまうことがあります。

シンメトリーなら「Mirror And Weld」で修正します。

gun-modeling-48.png


以上で銃身の基本的な形状が出来ました。ここに細かいディテールを加えていきます。

はっきり言ってこれは最初に作った時のやり方とは異なりますw。

最初作った時よりかなり洗練、効率化したワークフローになってますが暗中模索、試行錯誤して作った最初の方がなんか出来がいいみたい。

けっこう大変だったので続きをやるかどうかわかりませんw。



コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://momonchan574.blog65.fc2.com/tb.php/912-f691834e
この記事にトラックバックする(FC2ブログユーザー)

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。