前回の記事:【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を使って調整することが可能
こちらのスライダが動く度にランダムな方向へ再整列される。
正直申し上げると、ここまで深い理解は必要ない。無駄な記事であると私も感じる。
しかし、それでも探求することに意味がある。
これが「謎の技術研究部」なのである。
もしここまで全て読んだ人がいるとしたら、それはもう完全に謎の技術研究部の部員である。
