前回の記事:【ZBrush】やたら詳しいNanoMesh
こちらにてNanoMesh
のメインの機能をほとんどカバーしたが、紹介しきれない範囲を続いて紹介する。
今回はAlignment
Alignment
にはシンプルな機能であるが正しく理解しコントロールするためにはかなり深い理解が必要。
誰が読んでも分かるように直感的に分かりやすい記事を心がけたので読んでもらえたらと思う。
おそらく直感的に操作して適用する人がほとんどだと思うので、この記事のようにやたら詳しい必要ないかもしれないがあえてそこに切り込んでいく。
はじめに今回使うナノメッシュのモデルを確認。
Y軸(上側)とX軸(右側)に矢印のような形状にして方向が分かりやすいよう配慮した。
※よく見ると微妙に曲がっているのは気にしないでほしい
日本語:エッジ回転
こちらはNanoMesh
タブの機能ではなくZModeler
だがこの先のAlignment
の理解に必要なので先に解説する。
「土台の方向」を変化させるアクション。
※便宜上「土台の方向」と呼ぶが公式も特に呼び方はないように思う。
まずは普通にInsert NanoMesh(All Poligons)
をすると
このように全て同じ方向の矢印が適用される。
これを1コだけ別の方向にしたい場合はIndex
分け(ポリグループを分けて別で適用)する必要があるように思うが方向を変えたいだけならこのSpin Edges
で良い。
まずこの機能を覚えておきたい。
余談:Spin Edges
はZModeler
のポリゴンアクションと切り分けられているが、公式の解説を聞く感じではナノメッシュ(とマイクロメッシュ)専用かと思われる。
日本語: (2021.5.1)では「配列
」になっているが「整列
」の翻訳ミス?
デフォルトはNo Alignment
(整列なし)
ナノメッシュが適用される内部的な方向をまとめて変化させることが出来る。
こちらで土台となっているメッシュの方向が設定された後にOffset
などの変化が計算される。
まず、このAlignment
なのだが直感的に触ってみてもどういうアルゴリズムで方向が変わっているのか全くわからないはずだ。
モデルとの組み合わせによっては何も効果がないことがしばしばあり初心者は間違いなく「なぜ?」となってしまう。
逆にモデルによっては想像以上に変化することもあり理解が非常に難しい。
間違いなくこの機能は最上級者向けだ。
そこでどのような原理でこのAlignmentが作用しているのかを検証して理解する必要がある。
Insert NanoMesh
ブラシはクリックしてからマウスを移動した方向によってナノメッシュの大きさだけでなく方向(ZRotation
)が変わる仕様になっている。
※つまりどれだけ慎重にナノメッシュを設定してもおそらくZRotation
が0以外の値で適用されているはず。
そのため「いまどの方向にナノメッシュを配置したのかわかりにくく」なっている。
正しい理解のために適当にナノメッシュを配置した後**ZRotation
を0に設定する**。
上はAll Polygons
でまとめて全ての面にナノメッシュした例。
まず覚えること①矢印のデフォルト方向は面によって変わる。
冒頭で解説したとおり矢印の内部での軸は**「短い矢印がX軸」「長いほうがY軸」**である。
ここでまずはAlign To Short Edge
の登場である。
日本語:ショートエッジに整列
解説には「最も短いエッジに整列」するとある。
そこで上の例に意図的に「短いエッジ」をもたせたポリゴンを用意してある。
※次の例はNo Alignment
の状態
ここにAlign To Short Edge
をかけてみると
ここで覚えること②「ナノメッシュX軸を元に整列されている」。
※これは私個人の検証による結果なので間違っている可能性もあり
このままZModeler
のSlide
アクションで短いエッジの角度を変えてみよう。
これでひとつスッキリ理解できたのではないだろうか。
Long, Short Edge
へのAlignは
「ナノメッシュのX軸と整列対象となっているエッジが一致するように整列される」
これを覚えておきたい。
またZRotation
はこの整列処理が終わったあとに加算して計算されるので混乱しやすい。
まずはZRotation
を0にしてAlign
することをおすすめする。
日本語:ロングエッジに整列
ショートエッジを理解したらこちらは簡単である。
先程と同様の例に適用すると
長いエッジ側にX軸が一致するように整列された。
長方形にAlingn To Long Edge
を適用すると長い辺はかならず2つあるのでどちらに整列されるかは明確にはわからない。
そこでAlingn To Long Edge
が入っている状態でSpin Edges
を使うことによりこの2辺のうちどちらに整列するかを明示的にコントロールできる。
※画像は正確な長方形ではないが意味は伝わると思う。またShort Edge
も同様である。
日本語:法線に整列
面の法線とナノメッシュのZ軸を合わせたまま、ナノメッシュのX軸、Y軸をそれぞれワールド側のX軸、Y軸に可能な限り近づける。
※あくまで私の検証による「こういうアルゴリズムなのでは」という予測なので注意していただきたい。
全く意味がわからないと思うのでこちらもZRotation=0
にて次の例
まずNo Alignment
。矢印はバラバラとなる。
このモデルにDeformation
>Rotation
をかけてワールド座標に対してねじれた回転を持つモデルにしてみる。
これは簡単な例すぎて逆に「で?」と思うかもしれないが、それでよい。
モデルそのものを回転させればそれにくっついているナノメッシュも同様にくっついてくる。
では、モデルをもとに戻してAlign To Normal
にする。
矢印が上向きに整列されているのが分かる。
ただ、この時点ではどのようなルールで整列されているのかはわからない。
そこで、さきほど同様Deformation
のRotate
を行うと
ここでようやく意味がわかると思う。
モデルを捻っても矢印は上を向こうとしている。
ただし先程述べたが、面の法線にZ軸は固定されているので矢印が面から剥がれることはなく、くっついた状態でX, Y軸が変化している
このように土台のメッシュの角度が変わってもできるだけ同じ方向を向いてほしいケースには有用かもしれない。
日本語:ニアエッジに整列
今回唯一こちらの整列だけ挙動がわからなかった。
公式Docによると「Align Long Edge
のモディファイア」とあるがそもそも別オプションであるためモディファイアかは怪しい。
様々な形状で検証した結果長辺、短辺あたりはあまり関係ないように見えた。
ひとまずわかっていること
Deformation
> Rotate
で回転中に整列が変化するので「ワールド座標となにかしら関係がある」Align To Near Edge
を入れた状態でSpin Edges
をすると、必ず2パターンの変化になるので「一つの土台ポリゴンに対して2つの整列方向が存在する(正方形、長方形でなくても必ず2辺)」※上でも述べたが「2つの整列方向」とは例えば長方形にAlign To Long Edge
で整列をすると、長辺はかならず2つあるのでAlignがオンでもSpin Edges
を使うことによって2方向のどちらかを選択することができる。
また分かったことがあれば追記する。
日本語:頂点順に整列
メッシュの各頂点には内部的に(ユーザーには見えない状態で)番号が入っている。
この番号に沿って整列を行うためユーザーは意図的にこれをコントロールすることは出来ない。
公式DocにもZBrushでは頂点の番号は見る事ができないと明示してあった。
どのような目的でこの整列を使うかは不明。
ただ、唯一変化が分かるものがあることに気づいたので一応紹介しておく。
Modify Topology
にOptimize Points
(頂点番号最適化)というボタンが有る。
このボタンは内部的に割り振られている頂点の番号を最適化し、ZBrush外のソフトに読み込ませるようのファイルとして出力するときに効果があるらしい(番号が変わってもモデルの外観は一切替わらない)
Align By Point Order
をオンにした状態でOptimize Points
すると頂点番号が変化したポリゴンだけナノメッシュの方向が変化する。
逆を言えば**Optimize Points
によって番号が変化したポリゴンを視認したい場合、このAlign By Point Order
を使えば良いかもしれない。**
かなり飛び道具的使い方である。
日本語:ランダムエッジに整列
ナノメッシュの方向がランダムになる。
最も分かりやすい整列。これ以上解説するところはない。
また、このAlignmentのみRandom Seed
を使って調整することが可能
こちらのスライダが動く度にランダムな方向へ再整列される。
正直申し上げると、ここまで深い理解は必要ない。無駄な記事であると私も感じる。
しかし、それでも探求することに意味がある。
これが「謎の技術研究部」なのである。
もしここまで全て読んだ人がいるとしたら、それはもう完全に謎の技術研究部の部員である。