【ZBrushの記録】Day155 ~ Day161

November 17, 2020

毎日15分以上ZBrushを練習する。その記録である。

zbrush155-161

はじめに

いままでやってきたArrayMeshの機能を続いて調査。

※各Dayの右側に書いてあるmin数は私の作業時間の記録。

Day155

2020/11/10 :33min

ArrayMesh

調査諦め:AlignToAxis(軸に合わせる)

image-20201110020018036

ワールドのXYZを使ってアレイの方向を合わせるボタンのらしい。

AlignToPathがオンになっていないと操作できないので組み合わせて使うのが前提。

ネットで検索+色々試したのだが、やはり計算が複雑すぎて私には理解できない。

どういうアルゴリズムで方向が変化しているのかさっぱりだ。

ネットだと日本語でも英語ではないサイトが1件ひっかかるだけなので使いこなしている人は世界でも片手で数えられるぐらいの人数なのではないだろうか。

今回は諦めることにした。

Day156

2020/11/11 :15min

ArrayMesh

Pivotを使わずワールドの中心で回転させる

ArrayMeshのPivotに関して独学では気づかないであろうテクニックがあったので解説。次の動画を参考にした。

通常はRotateをいじった後にPivotを調整して円を制作するのだがワールドの中心を軸にして回転させる方法。

まずはDrawメニューからFloorをオン、Elvを0に設定する

image-20201111023155107

これをやらないと床が自動でモデルにくっついてきてしまう(中心が自動で調整される)

設定をしたらMoveツールでモデルを動かす。

今回は犬のモデルを上に動かして中心から離した。

image-20201111023355743

次にLock Pos(位置ロック)をオンにしたのちResetを一度押す

image-20201111023448516

この作業でPivotの数値はすべてゼロだが内部的にはワールドの中心がピボットに設定される。

したがって単純にRotateの値をいじってやるだけで円形に犬が複製される。

image-20201111023624756

image-20201111023638380

RotateのZしか弄っていない(Repeatもお好みで増やしておく)

image-20201111023609743

わかりやすい円形に配列された。

なにか正確な位置計算が必要なときに使えるだろうか?

あまり経験がないのでこのあたりの実例は思いつかなかった。

Day157

2020/11/12 :24min

本日もArrayMesh

PatternStart(パターン開始)

image-20201112023638120

設定した回数までの配列を非表示にする。

注意点は1に設定しても元モデルが非表示にはならないこと。2以上で初めて効果が出る

Day159より追記:Pattern1にも意味があることが分かったのでDay159を参照

例えば犬を10でRepeat

image-20201112023759299

ここでPatternStartを5に設定すると

image-20201112023829406

image-20201112024007154

1を除いて5番目までが非表示となった。

PatternLength(パターン長さ)

image-20201112024142230

PatternStartから数えて何番目までを表示するか、というスライダ。

なので基本的にはPatternStartと組み合わせて使う。

例えば先程のRepeat 5PatternStart 5の犬の例

image-20201112024007154

これにPatternLength 2をつけてみると

image-20201112024512042

右の2匹が消えた。

これは何が起こっているのかというと

image-20201112025128697

PatternStartの犬を含めないで、そこからLength分の犬を表示して残りはカット。

0にすると残りはすべて表示になる。

Day158

2020/11/13 :49min

本日はArrayMeshを探る旅を一旦休憩してレンダリングに関する次の動画を視聴

殆どがKeyshotの情報なので私個人としては得られるものは少なかったが、使ってみたくなった。

ZBrush自体でもレンダリング設定がかなり細かくできるのだが、やはり情報が少ない...

Day159

2020/11/14 :30min

ArrayMesh

補足:PatternStartについて(元が消える)

次の公式ドキュメントにてArrayMeshのPatternに関しての記述を読んでいたところ一つ覚えておく必要があることを見つけた。

Array Mesh | ZBrush Docs

配列のコピー元は同一サブツール内では常に表示されているが、別サブツールに移動すると非表示になるという点。

サブツールを2つ用意。

上にアレイメッシュの犬。下は参考用の矢印。

image-20201114025925678

image-20201114025909861

ここで以前の例と同じようにPatternStart5にする。

image-20201114030035991

するとはじめの犬を除いて左側5番目までの犬は非表示になる。

image-20201114030046472

ここでSubtoolを矢印に移動すると1番目が消える

Subtoolを矢印に切り替える

image-20201114030151928

なんと1番目も非表示になった。

簡易まとめ

このようにArrayMeshPatternスライダを設定した時は一時的に同一サブツール内の元モデルが「表示状態」になり、Subtoolを移動すると正しく元モデルも非表示となる。

おまけ:PatternStart 1の意味

ということでPatternStart 1という設定にも意味がでてくる。

image-20201114030311694

この状態で先程の犬のサブツールに移動すると

image-20201114030327656

全く変化がない。一見するとPatternStart 1を用意したのは運営のミスなのでは?と思うが...

Subtoolを矢印に移動してみよう。

image-20201114030418881

1番目の犬は正しく非表示となった。

このような使い方となる。

Day160

2020/11/15 :29min

ArrayMesh

PatternOn, PatternOff(パターンオン, パターンオフ)

image-20201115014759771

少し難しいので順番に読んで理解できるよう解説する。

考え方

  1. スタートからPatternOn個「表示」する
  2. PatternOn個表示した後PatternOff個「非表示」にする
  3. これを1セットとしてRepeatが終わるまで繰り返す。

例1

まだ理解しきれないと思うので例を出す

まずはPattern系スライダはすべてゼロ(PatternOnは1が最低値)のデフォルト。20匹犬を並べた。

犬はOffset Xで増やしているので、一番左がコピー元。右側へアレイが増えていっている。

image-20201115020638886

PatternOn 2

PatternOff 2

にしてみよう。

考え方を元に説明すれば「2個表示して2個隠す」となる。

image-20201115015231330

つまり表示2+非表示2で4個のまとまり(パターン)が繰り返されている。

例2

PatternOn 3

PatternOff 2

であれば「3個表示して2個非表示」の5個セットが繰り返されるので

image-20201115015405747

例3:PatternStartを混ぜる

PatternOnOffだけのセットではなくPatternStartPatternLengthも影響してくる。

今回はPatternStartと混ぜた例を出す(PatternStartに関しては以前解説している)

PatternStartの数字は最初のN個をまず非表示にしてからパターンが始まるという機能だった。

例2にPatternStart 2を追加すると「はじめの2匹は問答無用で非表示。その後からパターンが開始」になる。

image-20201115020839219

image-20201115015738836

※以前述べたがPatternStart 2の場合本来左側の2体は非表示になるはずがコピー元の1体は「表示」になっている。これはサブツールを切り替えると正しくと非表示になるので実際は「非表示」として考える

難しいかも?

なかなか複雑で解説が難しい。

こういうのはプログラミングをしている人がまさに「配列」でよく考える構造なのでプログラミングが得意な人ならサクっとわかるかもしれない。

とはいえやはり複雑なためかこちらも解説しているサイトが殆どヒットしない。

わからなければやはり実際触ってみるのが良いかと思う。

Day161

2020/11/16 :38min

ArrayMesh

X Mirror, Y Mirror, Z Mirror(~鏡面)

image-20201116040058779

ArrayMeshで複製されるもののそれぞれの軸を反転する。

image-20201116040008095

まずいつものわんこ。右側2つがArrayMeshにより複製されたもの。

Y Mirrorをオン

image-20201116040249412

image-20201116040257980

複製されたもののY軸が反転。

さすがに複製元は反転しない。Subtoolを切り替えたら反転するということもない。

おまけ:犬の場合X Mirrorは効果なし

image-20201116040448308

image-20201116040441278

もともとX軸で左右対称なので、反転しても効果はない。

Transformのシンメトリ軸と同じなので

image-20201116040642628

このXがオンで制作されたものは必然的にMirror Xをオンにしても効果がないということ。

X Align, Y Align, Z Align(~整列)

image-20201116041722196

各Mirrorがオンになっている時やRotate, Scaleの値が0でないときに動作する。

先程の犬三匹の例をそのまま使う。

例:Y Align

まずはY Align 0Y Mirrorだけオン

image-20201116042015461

配列の犬はY軸で反転。

次にY Align 100にする

image-20201116042058605

image-20201116042117982

これで犬1体分Y軸方向にズレる。

マイナス100だと上に1体分移動する。

100が100%という認識でよいか?

例:X Align

こちらも基本的にはX Mirrorがオンでないと作用しない。

X Align 100にすると

image-20201116042310125

一体分右に移動。

この場合マイナス100にすると1体がコピー元と重なってしまうため見かけ上2体になる。

Rotate, Scaleとの組み合わせ

Rotateの数値やScaleの数値が0でない場合もAlignスライダーが影響する。

単に位置がズレるだけであるが、こちらとの組み合わせを文字で説明しようとするとまたIQが必要そうな複雑さとなるので、とりあえずは組み合わせられるということだけ覚えておけばよいかと思う。

さいごに

ArrayMeshの細かい機能を使っていくと内部のアルゴリズムが組み合わせによって複雑になりすぎる。

そのためどんな結果になるかを想像するには深い理解とIQが必要になりそう。

今の所ユースケースも特に思いつかないので「そんな機能があるよ」程度にとどめておく。

まだArrayMeshに関しては調査するところが少し残っている。


今週の合計:218min

総合計:102.63h

この記事をシェア:

author icon

Ultra-Noob @Neve1074
当BLOGのオーナー。元DTMer。