サイトアイコン NegativeMindException

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


スポンサーリンク

関連記事

  • OpenMVS:Multi-View Stereoによる3次元復元ライブラリ
  • 画像生成AI Stable Diffusionで遊ぶ
  • ZBrushで手首のモデリングをリファイン
  • Unityをレンダラとして活用する
  • OpenCV3.3.0でsfmモジュールのビルドに成功!
  • Unityの薄い本
  • BGSLibrary:OpenCVベースの背景差分ライブラリ
  • 法線マップを用意してCanvas上でShadingするサンプル
  • iPhone 3GSがますます欲しくなる動画
  • Model View Controller
  • 単純に遊びに行くのはだめなのか?
  • 2D→3D復元技術で使われる用語まとめ
  • KelpNet:C#で使える可読性重視のディープラーニングライブラリ
  • Mayaのレンダリング アトリビュート
  • ZBrushで仮面ライダーBLACK SUNを作る 頭部~バストの概形
  • Super Resolution:OpenCVの超解像処理モジュール
  • 海外ドラマのChromaKey
  • ZBrushでアヴァン・ガメラを作ってみる おでこ(?)のバランス調整
  • SIGGRAPH Asia
  • オープンソースの顔認識フレームワーク『OpenBR』
  • OpenCVで動画の手ぶれ補正
  • ラクガキの立体化 3Dプリント注文
  • ワンダーフェスティバル2024[冬]に行ってきた
  • フルCGのウルトラマン!?
  • ワンダーフェスティバル2019[冬]に行ってきた
  • PeopleSansPeople:機械学習用の人物データをUnityで生成する
  • ManuelBastioniLAB:人体モデリングできるBlenderアドオン
  • ラクガキの立体化
  • CGレンダラ研究開発のためのフレームワーク『Lightmetrica (ライトメトリカ)』
  • AR (Augmented Reality)とDR (Diminished Reality)
  • AMIMOTO(PVM版)で作成したインスタンスをAMIMOTO (HVM版)へ移行する
  • openMVG:複数視点画像から3次元形状を復元するライブラリ
  • iPhone x ロボットハッカソン~RomoのiPhone用SDKで目覚ましアプリを作る~
  • 『ローグ・ワン/スター・ウォーズ・ストーリー』のVFXブレイクダウン まとめ
  • トランスフォーマーの変形パターンを覚えるのは楽しいと思うんだ
  • Cartographer:オープンソースのSLAMライブラリ
  • ポリゴン用各種イテレータと関数セット
  • ZBrushのZmodelerとDynamic Subdivisionを学ぶ
  • Rerun:マルチモーダルデータの可視化アプリとSDK
  • UnityのAR FoundationでARKit 3
  • 『ゴジラ キング・オブ・モンスターズ』のVFXブレイクダウン
  • OpenCV 3.1とopencv_contribモジュールをVisual Studio 2015で...
  • モバイルバージョンを終了