ZBrushのZScript入門

漠然とZBrushのプラグインか何かを作れるようになりたいとか思いながら、何も手をつけずに6年も経った(笑)



公式ドキュメントを読んでも、イマイチZScriptやZPluginの感覚(メンタルモデル)が掴めなかったのだ。
http://docs.pixologic.com/user-guide/customizing-zbrush/zscripting/
http://docs.pixologic.com/reference-guide/zscript/

記法もわからない段階からZScriptをゼロから書こうとしてもなかなか前に進まないので、とりあえずZScriptに慣れるところから始めようか。
まずはUI操作を記録してZScriptに書き出してみよう。こちらの記事を参考に↓
http://sassembla.github.io/Public/2018:01:19%2022-12-27/2018:01:19%2022-12-27.html

GUI上での操作がScriptコマンドとして残るのはMayaのMELみたいですね。


スポンサーリンク


普段よくやる操作をZScriptで簡略化するのを最初の目標とする。
最近のアヴァンガメラ制作作業の区切りで必ずやっている作業履歴の動画書き出し(F履歴録画)設定をZScriptで自動化してみよう。
ZBrushでUndo Historyを動画に書き出す
ちょっと遅いけど、ZBrush 2019にアップグレードした。 で、バージョン2019の新機能とは全然関係なく(笑)、最近になってZBrushのUndo Historyを動画にできることを知った。 Undo History Movies モ...


この設定値はZProjectに保存されず、毎回リセットされてしまうので地味に時間を取られていた。

ZScriptのRecord(記録開始)を押して、一連の操作を行ったらEnd Rec(記録停止)を押す↓



そして記録したZScriptをファイルに保存する。ZScriptの拡張子は普通に.txtなのね。
これが設定・録画のZScript↓


スポンサーリンク
//RECORDED ZSCRIPT 2021
[IButton,Play,"Press to play this ZScript. ZScript can be aborted at anytime by pressing the eesci key.",
[IConfig,2021]
[IPress,Movie:Doc]
[IPress,Movie:Large]
[ISet,Movie:Modifiers:Recording FPS,30]
[IPress,Movie:TimeLine:Auto]
[ISet,Movie:Overlay Image :Opacity,0]
[ISet,Movie:Title Image :FadeOut Time,0]
[ISet,Movie:Title Image :FadeIn Time,0]
[IPress,Movie:F History]
]/*End of ZScript*/

ZScriptをシンタックスハイライトするVSCode拡張があるので有難く使わせていただく↓
https://marketplace.visualstudio.com/items?itemName=ouelletjonathan.zscript

読みやすくなった↓



.txtファイルと同じファイル名で一緒に出力される.zscファイルは何だろうと思ったら、ZBrushが.txtのZScriptを読み込むと同じフォルダにコンパイル済み(?)の.zscを書き出すのね。
Pytyonの.pyから.pycが作られるみたいな感じだな。(つまりバージョン管理外にしておいた方が良い)

あ、ZBrushのインストールフォルダの中のZPlugsフォルダ(またはZPlugs64フォルダ)に入っているのも.zscファイルだから、これらはつまりコンパイル済みのZScriptということか。そして、そのZScriptがdllを叩いているわけか。

ようやく理解した。ZPluginと呼ばれるものはZScriptの延長にあり、外部のデータやdllと連携するエントリポイントをZScriptで作るのね。
こちらのブログに書かれていることの意味が分かるようになってきたぞ↓
https://ichiyonnana.hateblo.jp/entry/2017/10/22/200228
https://ichiyonnana.hateblo.jp/entry/2017/10/23/030924

外部に処理を投げて、完了したら結果を受け取るコールバック的な実装はちょっと難しそうだな。クローズドにはSDKが存在するのかな。

公式のZScriptサンプルをちゃんと読んでみよう↓
http://docs.pixologic.com/user-guide/customizing-zbrush/zscripting/sample-zscripts/

ZPlugin interfaceのサンプルに従えば、パレットを自作してボタンから任意のコマンドや外部関数を叩けそうだな。
ZScriptの記法というか、コマンドの一覧はこちらを見れば良いのか↓
http://docs.pixologic.com/user-guide/customizing-zbrush/zscripting/command-reference/

同じページからZPluginのサンプルコードがダウンロードできるね。

GitHubを漁ってみると個人でZPluginを開発している人もチラホラいるようなので、SDKが開示されてなくても結構拡張できるようだ。
https://github.com/fuzzzzzz/zbrush-dll-template
https://github.com/n-taka/n_ZBrushPlugins


スポンサーリンク

関連記事

Raspberry Pi
ゴジラ三昧
プログラムによる景観の自動生成
konashiのサンプルコードを動かしてみた
UnityでShaderの入力パラメータとして行列を渡す
Unreal Engine Tokyo MeetUp!へ行ってきた
顔のモデリング
オープンソースの物理ベースレンダラ『Mitsuba』をMayaで使う
映画『ミュータント・タートルズ』を観てきた
CycleGAN:ドメイン関係を学習した画像変換
Google App Engine上のWordPressでFlickrの画像を貼る
無料で使える人体3DCG作成ツール
TeleSculptor:空撮動画からPhotogrammetryするツール
SculptrisとBlenderで作ったGodzilla 2014 (Fan Made)
世界一下品なクマと世界一紳士なクマ
Google App EngineでWordPress
OpenCV 3.1とopencv_contribモジュールをVisual Studio 2015で...
粘土をこねるようなスカルプトモデリング
Transformers ”Reference & Bulid” Siggraph 2007
ZBrushでゴジラ2001を作ってみる 姿勢の変更
オープンソースの物理ベースGIレンダラ『appleseed』
網元AMIで作ったWordpressサイトのインスタンスをt1microからt2microへ移行した
WordPress on Google App Engineを1週間運用してみて
Autodesk CompositeとAutodesk MatchMoverが無料
Windows Server 2008にAutodesk Maya 2009をインストール
OpenMayaのPhongShaderクラス
ZBrushCoreのTransposeとGizmo 3D
BlenderのGeometry Nodeで遊ぶ
書籍『ゼロから作るDeep Learning』で自分なりに学ぶ
JavaによるCGプログラミング入門サイト (日本語)
ZBrush4新機能ハイライト 3DCG CAMP 2010
OpenCV バージョン4がリリースされた!
バージョン管理の履歴を可視化するツール『Gource』
Raytracing Wiki
Autodesk Mementoでゴジラを3次元復元する
ゴジラ(2014)のディティール制作の舞台裏
ディープラーニング
UnityでOpenCVを使うには?
ZBrush 2018での作業環境を整える
参考になりそうなサイト
ZBrushでゴジラ2001を作ってみる 身体のバランスを探る
ファンの力

コメント