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


スポンサーリンク

関連記事

ZBrushで仮面ライダー3号を造る 仮面編 ClipCurve
OpenCVの顔検出過程を可視化した動画
Photogrammetry (写真測量法)
Raytracing Wiki
2022年8月 振り返り
GoB:ZBrushとBlenderを連携させるアドオン
Deep Fluids:流体シミュレーションをディープラーニングで近似する
Paul Debevec
Google Colaboratoryで遊ぶ準備
3Dグラフィックスの入門書
ZScript
『ゴジラ キング・オブ・モンスターズ』のVFXブレイクダウン
ラクガキの立体化 進捗
ZBrushの練習 手のモデリング
トランスフォーマーの変形パターンを覚えるのは楽しいと思うんだ
映画『ジュラシック・ワールド』のVFXメイキング
インタラクティブにComputer Visionコーディングができるツール『Live CV』
ZBrushでゴジラ2001を作ってみる 身体のバランスを探る
iPhone・iPod touchで動作する知育ロボット『ROMO』
このブログのデザインに飽きてきた
2012 昨日のクローズアップ現代を見た
Mechanizeで要認証Webサイトをスクレイピング
Raspberry Pi
UnityでPoint Cloudを表示する方法
ディープラーニングに対応したPythonの機械学習ライブラリ『Pylearn2』
Google App EngineでWordPress
ZBrushでカスタムUIを設定する
テスト
OpenCVの超解像(SuperResolution)モジュールを試す
Raspberry PiのGPIOを操作するPythonライブラリ『RPi.GPIO』の使い方
cvui:OpenCVのための軽量GUIライブラリ
OpenCVのfindEssentialMat関数を使ったサンプルを読んでみる
OpenMayaRender
トランスフォーマーロストエイジのメイキング
Vancouver Film Schoolのデモリール
アニゴジ関連情報
ZBrushでゴジラ2001を作ってみる 頭の概形作り
スクレイピング
AndroidもopenGLも初心者さ (でもJavaは知ってるよ)
Point Cloud Libraryに動画フォーマットが追加されるらしい
clearcoat Shader
レンダラ制作はOpenGL とか DirectX を使わなくてもできるんだぜ

コメント