Starworshipperの裁縫箱
-
全てのサブツールをミラーするマクロ
[IPress,Tool:Deformation:Mirror]
のところを、録画したマクロのボタンの名前で置き換えれば、
全てのサブツールに何かを適用するマクロとして、これ以外にも何でも応用が効くと思います。//ZBRUSH MACRO - Recorded in ZBrush version 2020 [IButton,???,"Press to run this macro. Macros can be aborted by pressing the ëescí key.", [IShowActions,0] [IConfig,2021] [VarDef, qwSTN, [SubToolGetCount]] [VarSet, qwSTN, [SubToolGetCount]] [IFreeze,//画面描画を停止して高速化するおまじない [Loop, qwSTN , [SubToolSelect, [Val, n]]// 上からn番目のツールを選択した状態にする [IPress,Tool:Deformation:Mirror] , n ] ] ]
-
マスクをじわっと広げるマクロ
交差したり、埋まっていたりする部分に、
マスクを染み込ませてほじくり出すのとかに使えるのではないでしょうか。//ZBRUSH MACRO - Recorded in ZBrush version 2021 [IButton,???,"Press to run this macro. Macros can be aborted by pressing the ëescí key.", [IFreeze,//あるとないとじゃ、画面のチラツキがぜんぜん違うんだぜ [IShowActions,0] [IConfig,2021] [IPress,Tool:Masking:GrowMask] [IPress,Tool:Masking:SharpenMask] ] ]
マスクの拡張と、マスクのシャープを交互に押しているだけのボタンですが、
「拡張する代わりにどんどんボケていくマスクの拡張」よりは、より直感的な拡張なのではないかと思います。効きが弱いなって思ったら、
//ZBRUSH MACRO - Recorded in ZBrush version 2021 [IButton,???,"Press to run this macro. Macros can be aborted by pressing the ëescí key.", [IFreeze, [IShowActions,0] [IConfig,2021] [IPress,Tool:Masking:GrowMask] [IPress,Tool:Masking:SharpenMask] [IPress,Tool:Masking:GrowMask] [IPress,Tool:Masking:SharpenMask] [IPress,Tool:Masking:GrowMask] [IPress,Tool:Masking:SharpenMask] ] ]
こんなファンシーな追記をすると、良い効きのボタンになると思います。
-
全てのサブツールに同じ動作を適用したい時
マクロを録画して、適当に保存したマクロファイルを開き、
//このあたりに録画したマクロをコピーする のところに
その「IPress ナンチャラ」あたりの群をコピーすれば、
全てのサブツールにその動作が適用されるマクロの出来上がり。[IButton,???,"Press to run this macro. Macros can be aborted by pressing the ëescí key.", [IShowActions,0] [IConfig,2021] // [VarDef, qwSTN, [SubToolGetCount]] //マクロの時は多分要らないと信じたいもの [VarSet, qwSTN, [SubToolGetCount]] [IFreeze, //画面描画を停止して高速化するおまじない [Loop, qwSTN , [SubToolSelect, [Val, n]] // 上からn番目のツールを選択した状態にする //このあたりに録画したマクロをコピーする //このあたりに録画したマクロをコピーする //このあたりに録画したマクロをコピーする , n ] ] ]
で、あれです。こんな事しなくても、「ZRepeat It」があるじゃないですか。🤪
https://pixologic.com/zbrush/downloadcenter/zplugins/
保存したマクロを、「選択のみ」「表示」「全て」みたいな感じで適用できる孫の手公式プラグイン。
なんで最初から入ってないんだろう。 -
Zモデラーのカメラ移動(に近い挙動)をショートカットで
CameraControlという結構古いプラグインなのですが、
実は、「PixolGyro」と言うボタンの挙動が、Zモデラーに新しく追加された、
「カメラを垂直に設定する」というアクションとほぼ同じなのです。
こちらはボタンなので、お気に入りのショートカットに追加すれば、
いちいち筆を切り替えなくてもサッサッと視点を変更できます。
ハードサーフェスなどで、視点を頻繁に水平に保つような方は、
こちらのプラグインが役に立つのではないでしょうか。他にもトランスポーズを利用したカメラ移動など、様々な方法があるので、色々試してみるとニーズに合った動きが見つかるかもしれません。
https://www.zbrushcentral.com/t/orienting-view-based-on-transpose-action-line/206347/15(内部の正しい動きがよくわからないのですが、
カーソル上のpixolデータをもとにしているらしいので、ねじれポリゴン上などでは、
癖のある動きになったりするのではないかと思います。
絶対的な垂直が欲しい人は、また違った方法が必要でしょう。) -
好きな刻み幅のブラシスライダー!
2021.5からブラシの挙動が変わってしまい、刻み幅が現状仕様とのことでしたので、
刻み幅1のブラシを強制的に「ドロー」の一番下にくっつける雑なマクロを書きました。
(スライダーの幅500とかなってるけど、どの数字が適正なんでしょ。)【追記
>オプション追加 : Shiftキーを押しながらスライダーを調整することにより、整数で数値を調整できるようになりました。
やっぱり2021.5.1で機能が付きましたね、余計なマクロなどが不必要になって何よりです】動的なスライダーの作り方が分からなかったので、調整しやすいように
0~30までのスライダーになっています。
多分、1刻みが欲しいのはこのへんかと。ついでに、5,7,13,15,20のワンタッチドローサイズ変更ボタン付き
//ZBRUSH MACRO - Recorded in ZBrush version 2020 [ISlider,"Draw:Draw Size1.0", 4,//デフォルトの値 //ここを好きな刻み幅にする 1.0 //ここを好きな刻み幅にする , 0,30 //スライダーの最小値から最大、5~10までとか、ニッチなスライダーを作れます , "Change Drawsize", //ポップアップテキスト [VarSet,qwBrush,[IGet, "Draw:Draw Size1.0"] ] [ISet,"Draw:Draw Size", qwBrush ] ,0,500 //slider width ] [IButton,"Draw:5","Change draw size.", [ISet,"Draw:Draw Size", 5] ] [IButton,"Draw:7","Change draw size.", [ISet,"Draw:Draw Size", 7] ] [IButton,"Draw:10","Change draw size.", [ISet,"Draw:Draw Size", 10] ] [IButton,"Draw:13","Change draw size.", [ISet,"Draw:Draw Size", 13] ] [IButton,"Draw:15","Change draw size.", [ISet,"Draw:Draw Size", 15] ] [IButton,"Draw:20","Change draw size.", [ISet,"Draw:Draw Size", 20] ]
-
ギズモの位置をサブツール間でコピペするマクロ(になる予定)
追記2023/04/24:完成版
http://zbrushcentral.jp/topic/1416/starworshipperの裁縫箱/47一時保存がないので公開状態ですが、色々問題あります。
位置は大丈夫そうなのですが、軸コピーがとてもきな臭いです。マーカスさんからTransposeGetでギズモの位置も記録できると教えて頂いたので、マクロを作ってみました。
ギズモだけでなく、由緒正しきトランスポーズラインの一時保存的な使い方もできます。
そんなにサブツール間で位置保持したいなら最初からトランスポーズライン使えとマクロのフォルダにこんな感じでtxtと空フォルダを配置すると、
ギズモの位置をサブツール間でやり取りできるマクロの出来上がりです
(フォルダにギズモの位置を記録するための情報が入ります)
コピー側で「GizmoCopy」して、ペースト側で「GizmoPaste」押す。
それだけです。コピペできないときは、ペーストする側のギズモをほんの少し動かしてから、もう一度ペーストしてみてください。
何故か分かりませんが、複数回ペーストするとこの問題が発生します。
また、数字を見てもらうとわかりますが、ただGetしてSetしてるだけなのに、
処理の過程でほんの少し数値が丸められてしまうようです。
完全完璧な位置コピーではありません。更にコピーの過程で、コピー元のギズモの角度で、+ー方向やXYZが入れ替わったり、
ひどいと目に見えるくらいで地味にずれてます。凶悪です。GizmoCopy.txt
//ZBRUSH MACRO - Recorded in ZBrush version 2020 //最初にフォルダ作らないと動かない [IButton,???,"Copy the Gizmo and Transpose Position.", [IShowActions,0] [IConfig,2021] // [VarDef, qwSTN, [SubToolGetCount]] [VarSet, qwxPos, 0] [VarSet, qwyPos, 0] [VarSet, qwzPos, 0] [VarSet, qwRedx, 0] [VarSet, qwRedy, 0] [VarSet, qwRedz, 0] [VarSet, qwGreenx, 0] [VarSet, qwGreeny, 0] [VarSet, qwGreenz, 0] [VarSet, qwBluex, 0] [VarSet, qwBluey, 0] [VarSet, qwBluez, 0] [VarSet, qwendx, 0] [VarSet, qwendy, 0] [VarSet, qwendz, 0] [VarSet, qwTLength, 0] [TransposeGet, qwxPos, qwyPos, qwzPos, qwendx,qwendy,qwendz,qwTLength,//終端側の位置、そして長さ qwRedx,qwRedy,qwRedz, qwGreenx,qwGreeny,qwGreenz, qwBluex,qwBluey,qwBluez ] [VarSet, qwFFLUSH, [StrMerge,"x:",qwxPos, ", y:",qwyPos, ", z:",qwzPos ]] [Note, qwFFLUSH] [VarSave, qwxPos, "Rtem/qwxPos"] [VarSave, qwyPos, "Rtem/qwyPos"] [VarSave, qwzPos, "Rtem/qwzPos"] [VarSave, qwRedx, "Rtem/qwRedx"] [VarSave, qwRedy, "Rtem/qwRedy"] [VarSave, qwRedz, "Rtem/qwRedz"] [VarSave, qwGreenx, "Rtem/qwGreenx"] [VarSave, qwGreeny, "Rtem/qwGreeny"] [VarSave, qwGreenz, "Rtem/qwGreenz"] [VarSave, qwBluex, "Rtem/qwBluex"] [VarSave, qwBluey, "Rtem/qwBluey"] [VarSave, qwBluez, "Rtem/qwBluez"] [VarSave, qwendx, "Rtem/qwendx"] [VarSave, qwendy, "Rtem/qwendy"] [VarSave, qwendz, "Rtem/qwendz"] [VarSave, qwTLength, "Rtem/qwTLength"] ]
GizmoPaste.txt
//ZBRUSH MACRO - Recorded in ZBrush version 2020 [IButton,???,"Press to run this macro. Macros can be aborted by pressing the ëescí key.", [IShowActions,0] [IConfig,2021] [VarSet, qwxPos, 0] [VarSet, qwyPos, 0] [VarSet, qwzPos, 0] [VarSet, qwRedx, 0] [VarSet, qwRedy, 0] [VarSet, qwRedz, 0] [VarSet, qwGreenx, 0] [VarSet, qwGreeny, 0] [VarSet, qwGreenz, 0] [VarSet, qwBluex, 0] [VarSet, qwBluey, 0] [VarSet, qwBluez, 0] [VarSet, qwendx, 0] [VarSet, qwendy, 0] [VarSet, qwendz, 0] [VarSet, qwTLength, 0] [VarLoad, qwxPos, "Rtem/qwxPos"] [VarLoad, qwyPos, "Rtem/qwyPos"] [VarLoad, qwzPos, "Rtem/qwzPos"] [VarLoad, qwRedx, "Rtem/qwRedx"] [VarLoad, qwRedy, "Rtem/qwRedy"] [VarLoad, qwRedz, "Rtem/qwRedz"] [VarLoad, qwGreenx, "Rtem/qwGreenx"] [VarLoad, qwGreeny, "Rtem/qwGreeny"] [VarLoad, qwGreenz, "Rtem/qwGreenz"] [VarLoad, qwBluex, "Rtem/qwBluex"] [VarLoad, qwBluey, "Rtem/qwBluey"] [VarLoad, qwBluez, "Rtem/qwBluez"] [VarLoad, qwendx, "Rtem/qwendx"] [VarLoad, qwendy, "Rtem/qwendy"] [VarLoad, qwendz, "Rtem/qwendz"] [VarLoad, qwTLength, "Rtem/qwTLength"] [TransposeSet, qwxPos, qwyPos, qwzPos, qwendx,qwendy,qwendz,qwTLength,//終端側の位置、そして長さ qwRedx,qwRedy,qwRedz, qwGreenx,qwGreeny,qwGreenz, qwBluex,qwBluey,qwBluez ] [VarSet, qwFFLUSH, [StrMerge,"x:",qwxPos, ", y:",qwyPos, ", z:",qwzPos ]] [Note, qwFFLUSH] ]
-
扱いにくいところのシンメトリ編集
ZBrushに限った話ではない奴ですが、昔困ってたことをふと思い出したので。
独学だと、こういうベーシックなテクほど抜け落ちてたりするんですよね
「言ってよ~~!!!」みたいな。脇の下とか内股とか、シンメトリ編集中に扱いにくいところってよくありますよね。(画像の赤部分)
かと言って、シンメトリ編集中は、片足だけを非表示にしたりはできない。
しかも、モデルは中途半端にアシンメトリー&ハイポリで、後でミラーリングするには重すぎる、
みたいな塩梅の時・・・。そんなときは、片足全部消そうとせず、邪魔な表側だけに一部非表示かければ、
裏側から内側にアクセスできるのです。
(他にもSmartResymとか、UV展開してモーフして編集とか、
軽い奴なら複製してミラーして投影とか、色々方法がありますね) -
BPRレンダーパスの一括保存
Photoshop以外の他のソフトでコンポジットその他色々してる人。
一連のBPRレンダーパスを予め指定した場所へ、ワンボタンでボン!とファイルを記録します。PhotoShopでコンポジットしてる人はZPluginがあるから気づかなかったと思いますが、
実はレンダーパスのボタンをマクロ記録する際に落とし穴があったんですよね。(マクロで記録すると、謎の間違った記述になって、再生してもエラーになるという・・・。
Ctrl押してボタンのパスを見ても、同じボタンパスが記述がされていてお手上げ!ところが、以下の記述にしたら動いた、謎!
ファイルネームから推測して、ダメ元で書き直したら通りました。)記録される間違った記述→きちんと動く記述
[IPress,Render:BPR RenderPass:Img]→ [IPress,Render:BPR RenderPass:Shaded] [IPress,Render:BPR RenderPass:Dep]→ [IPress,Render:BPR RenderPass:Depth] [IPress,Render:BPR RenderPass:Shdw]→ [IPress,Render:BPR RenderPass:Shadow] [IPress,Render:BPR RenderPass:AmOc]→ [IPress,Render:BPR RenderPass:AO] [IPress,Render:BPR RenderPass:Mask]→ そのままで大丈夫 [IPress,Render:BPR RenderPass:Sss]→ そのままで大丈夫 [IPress,Render:BPR RenderPass:Floor]→ そのままで大丈夫
一連のレンダーパスを保存するマクロを録画したら、上の部分を書き直すと、
好きな場所に好きなものを保存するマクロが出来上がると思います。例えば:
"C:\tmp\ZBrush
に、一連のレンダーパスをbmpで吐き出すマクロ。
bmpをtiffとかに書き換えれば、お好きな形式に手軽にも変更可能。
(ちなみに、フォルダを予め作っておかないとエラーになります。この場合、c\tmp\ZBrush)flatとか、影なしも一応保存。
*AOとかSSSとかがオフになってると、「画像がないぞ」っていう注意ポップが出ます。//ZBRUSH MACRO - Recorded in ZBrush version 2021 [IButton,???,"Save flat render, none shadow render and shadow BPR", [IShowActions,0] [IConfig,2021] [IPress,Render:Preview] [IUnPress,Render:Render Properties:Shadows] [IPress,Render:BPR RenderPass:Render Best Preview] [FileNameSetNext,"C:\tmp\ZBrush\BPR_Render.psd"][IPress,Render:BPR RenderPass:Shaded] [IPress,Render:Render Properties:Shadows] [IPress,Render:BPR RenderPass:Render Best Preview] [FileNameSetNext,"C:\tmp\ZBrush\BPR_Render2.psd"][IPress,Render:BPR RenderPass:Shaded] [FileNameSetNext,"C:\tmp\ZBrush\BPR_Depth.bmp"][IPress,Render:BPR RenderPass:Depth] [FileNameSetNext,"C:\tmp\ZBrush\BPR_Shadow.bmp"][IPress,Render:BPR RenderPass:Shadow] [FileNameSetNext,"C:\tmp\ZBrush\BPR_AO.bmp"][IPress,Render:BPR RenderPass:AO] [FileNameSetNext,"C:\tmp\ZBrush\BPR_Mask.bmp"][IPress,Render:BPR RenderPass:Mask] [FileNameSetNext,"C:\tmp\ZBrush\BPR_SSS.bmp"][IPress,Render:BPR RenderPass:Sss] [FileNameSetNext,"C:\tmp\ZBrush\BPR_FloorDepth.bmp"][IPress,Render:BPR RenderPass:Floor] [IPress,Render:Flat] [FileNameSetNext,"C:\tmp\ZBrush\Flat.bmp"][IPress,Document:Export] ]
ボタンコードよりは何保存してるか見やすいかなと。
https://www.zbrushcentral.com/t/question-coding-image-sequence-with-passes/316612
https://www.zbrushcentral.com/t/question-macro-script-problem/337859/2 -
Zpluginの作り方
認識が間違っていたら申し訳ないですが、
結局の所Zpluginは、マクロのテキストから生成されたZSCファイルが正体です。
要はソースコードを隠して、商材として使えるようにしてるのでしょう。自分でサブパレットを作る1文をマクロの本文内に追加して、
ボタンに対してフルパスをぴちっと記述すれば、
そのままプラグイン(風?)になります。
では、一例として、実際にプラグインを作ってみましょう。
まず、STW0.txt
というファイルをマクロフォルダに用意して、//ZBRUSH MACRO - Recorded in ZBrush version 2020 [ISubPalette, "ZPlugin:STW0 Tools"] [ISubPalette, "ZPlugin:STW0 Tools:Tools2"] //この辺が生成されたマクロ、普通は[IButton,???, とか書いてあるはずです [IButton,"Zplugin:STW0 Tools:Hello1","say hello1", [Note, "Hello1"] ] //End of IButton [IButton,"Zplugin:STW0 Tools:Tools2:Hello2","say hello2", [Note, "Hello2"] ] //End of IButton
みたいな感じで記しましょう。
これ説明しますと、生成されたマクロの一番てっぺんに、
[ISubPalette, "ZPlugin:STW0 Tools"]
という感じで、サブパレットを生成するための文言をフルパスで置きます。
パレットを入れ子にしたいなら、
[ISubPalette, "ZPlugin:STW0 Tools:Tools2"]
のようにコロンで区切って、文字を付け足していきます。次に、マクロの「???」部分をボタンを置きたい場所のフルパスに書き直します。
全てのボタンにおいて、フルパスで名前が書かれていなければなりません。これを一旦マクロフォルダに置いて、ZBrushでマクロを読み込みます。
すると、
「STW0.zsc」
というファイルがマクロのtxtと同じ場所に生成されます。あとは、プラグインを一度でもインストールしたことがある人ならご存知、
いつものあの場所(\ZStartup\ZPlugs64)にこれを放り込めばいいのです。
これで、STW0 Tools謹製、「ハロー!」と叫ぶプラグインが完成しました。いい感じのマクロが組めたら、2~3文書き加えて、Plugin化するのもオツではないでしょうか。
自分の書いたマクロをまとめて、「なんとかTools」とかネーミングして、
名だたるプラグイン達に仲間入りしちゃいましょう
ボタンの自在性
他のプラグインでもチラチラ見かけますが、
ボタンのパスはかなり柔軟で、Zplugin内に置く必然性はないらしく、[IButton,"Draw:Hello in draw","say hello!", [Note, "Hello from Draw palette!"] ]
なんて書けば、ドローパレット内にボタンを潜り込ませることも簡単です。
どこのボタンがどんなパスなのかは、ボタンの上でCtrlを押すと表示されるので、
プラグインパレット以外にボタンを置きたいときはそれが重宝するでしょう。
ボタンをフルパスで書かないとどうなるか?
[IButton,"Hello there","say hello there", [Note, "Hello there"] ]
例えばこれをSTW0.txtに付け足すと分かりますが、ZBrushの下に居座っている、
「チュートリアル表示」ことスクリプトウィンドウ
のところに追い込まれてしまいます。
スクリプトの方から再生を行っていた人には、お馴染みの場所ですね。マクロのボタンに名前をつけようとして、「???」を書き換えてしまい、
「あれ、マクロパレットに居ねぇ!ボタンどこ行った!?!?」
となった人は多いのではないでしょうか。
(なんでファイル名がそのままボタン名なの?なんて思った方も。)「???」は結局、「マクロのフォルダ構造そのままの場所に、ファイル名でボタンを置け」
と言うコマンドのようなものなのだと思います。
だから、1ボタン1ファイルなんですね。フルパスでボタンを書く方法を使えば、1ファイル1ボタンの必要もないですし、
ファイル名も好きな名前でつけることができ、管理が楽になります。
メモ群
マクロの再読み込みだけでOKな部分と、
ZBrush自体を再起動しないと反映されない部分がある。
少なくとも、サブパレットやボタンの位置や画像変更みたいなのは要再起動。ボタンの設置順序は、スクリプトが読み込まれた順序そのまま。
ファイル名でのソートや、ファイル内で記述する際、順番をを考えないといけない。
(と思う。ボタンの位置を繰り上げるようなコマンドがないように見えます。)処理のちょっとした高速化
長いスクリプトを書いた際は、適時、[iFreeze]と[MergeUndo]を練り入れると、
処理の高速化と、履歴のコンパクト化ができる、はず。
ついでに、リバースエンジニアリング防止ボタンを好きな画像にして気分アップ
[IButton, "Zplugin:STW0 Tools:test", "Logo", //Commands [Note, "I am the LOGO!"] //Commands ,0// Initially Disabled? (0:Enabled(ByDefault) NonZero:Disabled) //ただのロゴにしたいなら0以外、ボタンにしたいなら0か空欄 ,0 //Button width in pixels (0:AutoWidth NonZero:Specified width) , //Optional hotkey , "フォルダ名/ファイル.psd"// (.psd .bmp + .pct for Mac Systems) //スクリプトフォルダから下に潜っていく。 上行きたい場合はフルパスで? 横幅160くらいが限界な気がする。ZBrush公式のやつはだいたい160x50の大きさ ,// Button height in pixels (0:AutoHeight NonZero:Specified height) ]
ノートに変数を出す
普通にやると、変数か、文字列のみのどちらかになってしまう。
StrMergeで変数と文字列をマージしたものを出力する
[Note,[StrMerge,"文字列", 変数, "文字列", 変数], 表示時間(0で待機、それ以外で秒)]
みたいな感じ。1StrMergeごとに255文字まで。255文字以上を、例えばNoteに表示したい場合は、Noteコマンドを追記型にするとよい。
ノートコマンドの最後に、,表示時間(省略可),-1(追記型)
[Note,長いの,,-1][Note,長いの2,,-1][Note,長いの3]
注意:あくまでも、頭がBASIC止まりで、
オブジェクト指向がどうとか、ポインタがどうとか、
もう聞きたくないレベルの人が苦心して書いてるので、
間違っていたら申し訳ないの一言です。 -
ボタンを好きな画像にして気分アップ
マクロのボタンを画像化したり、好きなサイズに調整して、UIを更にお好みの風貌にしましょう。
ちなみにwin10ではpsdだけではなく、pngも読めました。(ただ透過が死ぬようです)マクロを記録した.txtを開いて、Ibuttonのところへ下のような感じで追記すると、
ボタンサイズを柔軟に変えたり、お好きな画像ボタン化することができます。[IButton, ???, "ボタンの説明は英語", [IShowActions,0] [IConfig,バージョン] //Commands [処理] [処理] [処理] ・ ・ ・ //Commands //以下辺りをコマンドの下にコピペするといい感じになると思います。 ,0// Initially Disabled? (0:Enabled(ByDefault) NonZero:Disabled) //ただのロゴにしたいなら0以外、ボタンにしたいなら0か空欄 ,0 //ボタンの横幅ピクセル (0でオート横幅) , //Optional hotkey 書き方知らん , "フォルダ名/ファイル.psd"// (.psd .bmp + .pct for Mac Systems) //スクリプトフォルダから下に潜っていくきます。 上行きたい場合はフルパスを書く必要があると思います。 横幅160くらいが限界な気がします。ZBrush公式の「Z REPEAT IT」みないなヤツは160x50の大きさ ,0// ボタンの縦幅ピクセル (0でオート縦幅) ]
コメントなしのコンパクトバージョンの例
[IButton, ???, "ボタンの説明は英語", [処理] [処理] [処理] ,0,0, , "フォルダ名/ファイル.psd",0 ]
要は、
「,0,0, , “フォルダ名/ファイル.psd”,0」をボタンの中に追記して、
フォルダとファイルをマクロフォルダ内部に置くだけです。注意:私自身がやって不具合ないので大丈夫だと思いますが、
マクロ内に存在するボタン達に、こんな追記を勝手にしていいかちょっと怪しい所があります。 -
Sculptris Proを使ってる方、そのモデル、非対称です。
前提として、以下のような作業フローをしている方限定のお話です。
- Sculptris Proを使っている
- グローバル座標のセンターに、キャラクターやクリーチャーを置いて作業している
- Symmetry:ONで、左右対称なキャラを作っている
- Local Symmetryも基本的にON
- ハイポリを練ってから、それを元にZremesherなどでローポリ原型を作っている
このフローの方は、作業時間が積み重なるほど、
モデルの重心がグローバルに対して狂って行き、
ローポリ作成段階で、モデル自体が中心から僅かにズレた状態になっている可能性があります。先に結論:--------------------
見た目でズレを感じなくとも、Zremesherなどで仕上げをする際は、
Local SymmetryはOFFにする!以下読み物--------------------
Local Symmetry、便利ですよね。
Gizmoやトランスポーズラインを使って、手首をちょっと大きくしたいときとか、顔を整えるときとか、
移動や拡大の動作としてより直感的なのは、この機能がONのときだと思います。Sculptris Proもこれまた便利です。
外形をザクザク作っていく時やディテールを煮詰めたいときなど、
ポリゴンというものを気にせず、自由に粘土をこねることができます。
(例えば、snakehookブラシなどは、Sculptris Proのあるなしでは、別物と言っていいほど挙動が違いますよね。)ここでSculptris Proの癖なのですが、完全な左右対称モデルで使っていても、
時折左右でごく僅かに違うトポロジが発生する場合があります。
(コンピュータの演算というものがアナログデータを扱えない以上、
小数点以下でどうしても丸め誤差が発生することがあり、それが微細な非対称性になってしまうそうです。)ZBrushは、ブラシの位置のミラーリングにより左右対称編集をしているようで、
トポロジ自体が違っていても、モデルの位置さえあっていれば、
何の問題もなくシンメトリー編集をし続けることができてしまいます。
故に、通常ビューでの目視やブラシのフィーリングから、
トポロジが非対称になってしまったか判別するのは、ほぼ不可能だと思います。
(トポロジをほとんど気にしなくて良い、これはZBrushの良さそのものでもあります)
そんなわけでSculptrisProで自由にコネコネされたモデルは、
見た目は完全なシンメトリでも、モデルの重心がグローバルのセンターからほぼ確実にズレています。この僅かに左右違うトポロジが発生した状態で、
Local SymmetryがONのまま、Zremesherなんかを掛けてしまうと、
晴れてズレたモデルの完成となります。
(Local SymmetryがONのZremesherは、
モデルの重心に対しての左半分でシンメトリ処理を行うので、
ここで僅かにグローバルのセンターからモデルそのものがズレます)見た目のトポロジがシンメトリなので、そのまま気づかず細分化して、
ハイポリの投影なんかしてしまうともう気づくことはできないでしょう。
投影でモデルの僅かなズレは補正されますので、モデルの見た目としては再びシンメトリに落ち着きます。見た目はシンメトリでいいんだから、トポロジが全体的にちょっとズレてくるらいで何が悪い?と言う話ですが、
他のソフトに持っていったときに、トポロジではなく、座標でシンメトリを扱うタイプの処理が挟まれたりすると
具合が悪くなったりするわけです。なので、
>見た目でズレを感じなくとも、Zremesherなどでシンメトリ仕上げをする際は、
>Local SymmetryはOFFにすると良い!というお話でした。
-
マスクと表示選択の切り替え
今更気づいたのかシリーズ。
「Ctrl押下→左クリック押下→Ctrlを離す」
そのまま左ドラッグすると、左手がフリーのままでもマスクの挙動になるのはご存知かと思いますが、
更にそのドラッグしたまま、Ctrlを押すたびに、
マスク→四角表示選択→マスク→・・・と切り替わるのは意外と知らない人がいるのでは?Ctrl+shiftをスライスやトリムなどで使っていても、
ちょっと隠したいときにこの四角表示選択を呼び出せると、便利なことがあるやもしれません。 -
好きなフォルダを開くマクロ(Windows)
なんかエクスプローラで好きなフォルダをポンと開きたいときありません?
そんなときに、以下のマクロを少し手直しすれば、
あなたの好きなフォルダを一発で開いてくれるボタンが完成します。例えば以下は、2021のマクロフォルダをエクスプローラで開くマクロ。
(アドレスが書いてある行を置き換えるだけであなたの好きなフォルダを開いたエクスプローラを立ち上げてくれるボタンに)//ZBRUSH MACRO - Recorded in ZBrush version 2021 [IButton,???,"Open Macro folder 2021", [IShowActions,0] [IConfig,2021] //エクスプローラーを開く [ShellExecute, "explorer "" C:\Program Files\Pixologic\ZBrush 2021\ZStartup\Macros\ "" " ] ]
「ボタンの名前.txt」で保存して、C:\Program Files\Pixologic\ZBrush 2021\ZStartup\Macros
みたいなマクロフォルダに放り込むだけです。 -
Z糸ノコ!
追記:ナイフカーブ出たじゃん!!
以下、消すのも忍びない旧記事ー
旧記事
まず、空の画像(全部透明 or 真っ黒なpngとか)を放り込んだスポットライトを用意します。
スポットライトをドローモードにし、空の画像に対して線を描き、
Snapshot 3DをAltを押しながら使うことで、
糸ノコで切るみたいに、スパン!と直感的にモデルを分割できます。線の太さの分だけモデルの体積が消失するため、最終的なモデルの調整には向かないと思いますが、
大まかな形をさっくり作ってる時などのスケッチ段階では使えるのではないでしょうか。(ブーリアンした後は、すごいトポロジになってるので、リメッシュの必要があります。)
-
MakeHuman
人間!二足歩行! 一から作るとなると、一生勉強の世界!積み上がる解剖学書、崩れ落ちる膝!
そんなあなたに、MakeHuman。生成されたモデルのライセンスは、無敵のCC0!筋肉や体型などをそれっぽくいじって、素体として出力できるソフトウェアです。
UIの色味が超ZBrush風味なのも◎?イチから人間を作るのは大変だなって人は、これを素体に盛ってみるのもどうでしょ。
http://www.makehumancommunity.org/ただ、ゴリゴリマッチョとか、エクストリームガリガリとか、
そういう「人間から逸脱したクリーチャー」はできないみたい。(深い所弄ればできるのかも。知らんけど)でも、出力されたモデルのトポロジが既に完成されているので、
Inflatとかでトポロジの流れ通りにちょっといじるだけで、
直ぐお好みのクリーチャーに仕上げることが可能です。他にも、EPIC製のMetaHumanとか、探せば色々・・・。さすが美麗ですよね。
でもこっちは、最終的にUnrealEngineを使った作品以外は使用不能というライセンスだったり・・・
ちょっとZBrush関係ないけど、ZBrushで人間を作り始める人にピッタリかと思ったので、メモ。
-
正面、横、後ろなどへ、ビューカメラを動かすショートカット
追記:もっと便利な物がありました
http://zbrushcentral.jp/topic/1416/starworshipperの裁縫箱/39–
以下旧記事
ちょっとひと手間入りますが、セッティングに20秒も掛からないやつです。
要は、ドキュメント→ZAppLinkのところにあるボタンを使えば、
正面カメラビューへのショートカットに使うことができます、というものです。最初に「正面だな」と思うカメラアングルにしたら、「正面」ボタンを。
「右向いてるな」って思うカメラアングルにしたら、「右」ボタンを。
「上から見てるな」って思うカメラアングルにしたら、「上」ボタンを。
ついでに、「斜め」とか、自分なりに欲しいアングルがあったら、それぞれCust1・2を押しましょう。(ドキュメント画面の右上に浮いてる、カメラビュー機能を使えば、
精細な正面や横面にスナップできると思います)オレンジになったら準備完了です。
後はそのボタンを押したりショートカットを当てれば、自在にカメラが動かせます。
ちなみにこれを設定した人は、ZappLinkにて、外部ペイントソフトで精細にペイントする機能を使えたり、
「キャラクターシート作成」で、キャラシートを簡単に出力できるおまけ機能が付いてきます。
(というか、本来はそっちがメインの機能なんですがね
キャラクターシートとか出力して、一旦二次元として見つめると、
これまた違った発見があったりするものです) -
色付き影とAO
BPRレンダーを使ってる時、グローバル強度を0.02、ガンマを25にしておくことで、
ほぼレンダー画像に影響せず、影やAOのデータだけを作ることができます。
(0.02というのがコツで、最小値の0.01ではデータが発生しません)フィルターの方でそのデータを使ってマスキングをすることで、
影やAOに対してバラバラの色を当てたりできるようになります。一味違った影やAOを演出してみてはどうでしょう。
こっちの、ノーマルによる擬似ライティングと合わせれば、
色々クリエイティブな効果ができるのではないでしょうか。
http://zbrushcentral.jp/post/6286 -
カーソル下のサブツールを非表示にするマクロ(紹介)
追記:有名な「FJ Tools」のQuick Selectに同じ機能入ってましたね。
スクリプトの例ばかり見てて、既に製品化されてるレベルの物があることを忘れてました️
こちらは、QuickSelectと言うボタンにショートカットキーを当てると、
自在にモードが切り替えられるように、いろいろな調整が加わっております。
以下の記事は、スクリプトとしてどう組んでいるかの「HOW」まで知りたい人向けになると思います。便利なものを見かけたので紹介。
2017.7で動作確認しております。まず、以下のリンクの有志のマクロをセーブして、ボタンにします。
そのボタンにショートカットキーを当てましょう。
https://www.zbrushcentral.com/t/hide-subtool-under-mouse/304720/11?u=star0worshipper消したいサブツールにカーソルを載せた状態でショートカットキーを押すと・・・、
BOOOM!!
そのカーソル下のサブツールだけが非表示になるというマクロなのです。普通、いらないサブツールを非表示にしたい場合は、
「Alt+クリック→目玉→再びAltクリック」
という手順を踏んでいると思います。このボタンが有れば、ワンキーで邪魔なサブツールを非表示!
ハードサーフェスなんかで、フォルダ分けとフォルダ分けの間の、
複合箇所の10~20のサブツールをちょっとどかせたい時とかありません?
ボタンをポチポチ押すだけで、ネジやパネルやバネがポロポロ外れていく気持ちよさは、
まるで解体ゲームの如く!気分は鈴木爆発。これは便利!!!ありがとう、寄稿してくれたスクリプター達!!!
サブツールマスターの表示反転(Invert Vis)と組み合わせると、
選んだサブツールだけを表示、なんて芸当もできます。
以下は一応のメモです
// Goes into ZStartup/Macros folder. [IButton,???,"Hide subtool under the cursor", [If,[SubToolGetCount]>1, [IFreeze, [VarSet,autoReset,0] [VarSet,tmpST,[SubToolGetActiveIndex]] [VarSet,tmpScroll,[IGetSecondary,Tool:Sub Tool:SubTool ScrollBar]] [If,[IGet,Preferences:Edit:Auto Select SubTool]==0, [VarSet,autoReset,1] [ISet,Preferences:Edit:Auto Select SubTool,1] ] [IKeyPress,1024,[CanvasClick,[MouseHPos],[MouseVPos]]] [VarSet,activST,[SubToolGetActiveIndex]] [VarSet,st,[SubToolGetStatus,activST]] [SubToolSetStatus,activST,st-0x01] [SubToolSelect,tmpST] [ISet,Tool:Sub Tool:SubTool ScrollBar,0,tmpScroll] [If,autoReset,[ISet,Preferences:Edit:Auto Select SubTool,0]] ] ] ,,0.5]// end of button
-
ビューカメラ操作をテンキーで!(紹介)
または、ショートカットキーで一発正面!一発背面!一発横!
(4R6の頃のものですが、普通に2017.7で動きます)まず、テンキーがテンキー以外の機能を持ってる人
(NumLock OFFにすると、カーソルキー機能とかあるやつ)、
残念、それ使えないと思います。
殆どのテンキーがそれだと言うのに勘弁願いたい話ですが、仕方ありません。シンプルなテンキーの人:
テンキーをテンキーボタンとして認識させるには、NumLockをオフにしないといけないそうです。
(ONのままだと、ただの通常キーボードの数字入力と同じ扱いになる)
https://www.zbrushcentral.com/t/hotkeys-to-numkey/207407/2?u=star0worshipper
さて、対応したテンキーがあろうとなかろうと、なんにせよこちらのプラグインを導入しましょう。
導入すると、プラグイン欄ではなく、「ツール」の一番下に導入されます。
https://www.zbrushcentral.com/t/single-axis-navigation/369900/3?u=star0worshipper
後はショートカットを割り当てるだけで、普通のCGソフトのようにテンキーでそれなりのカメラ操作ができるようになるでしょう。もちろん、対応したテンキーがなくとも、
この小ちびなボタンを己のカスタムメニューあたりに入れておくだけでも、結構オペが捗ると思います。
こんなの前に書きましたが、これより手間が少ないので便利ですね。
http://zbrushcentral.jp/topic/1416/starworshipperの裁縫箱/36 -
[IKeyPress]
いきなりマクロのコマンドについてメモしたって良いじゃない。
だって、忘れっぽいにんげんなんだもの --すたを
IkeyPressはアスキーコードでキーを指定する。
https://www.rapidtables.com/code/text/ascii-table.html(https://www.zbrushcentral.com/t/dynamesh-refresh-script/336351?u=star0worshipper
preferences : utilities : keyboard :view keyboard statusにて、
Ctrlを押しながらX~などを行った時の数値も見れる
例えば、Ctrlを押しながらコマンドを実行したい場合、IkeyPressは512になる)以下の例なら、MaskLassoを選択した時に現れるダイアログをEnterキーで閉じる
スクリプトになる。[IKeyPress, 13, //press enter [IPress,Brush:MaskLasso] ]
以下の例だと、一見、MaskLassoを押して、Enterを押しているので何も問題ないように見えるが、
EnterがMasklassoのダイアログに伝わらず、動かない。[IPress,Brush:MaskLasso] [IKeyPress,13]
IkeyPressとは、IkeyPressの中で呼び出されたスクリプトに対して1行ごとにキーを送る作りのようである。
誤作動防止のためだと思う。一行ごとに送られている証拠として、
[IKeyPress, 13, [IPress,Brush:MaskPen] [IPress,Brush:MaskLasso] [IPress,Brush:MaskPen] [IPress,Brush:MaskLasso] ]
こんな感じのスクリプトを書くと、全てのダイアログがEnterで閉じられたことになる。
[IKeyPress, CTRL+‘Z’]という書き方ができるなら、[IKeyPress, CTRL+90]って書き方もできるのかしら?
#macro