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でアヴァン・ガメラを作ってみる 口内の微調整・身体のライン修正

SIGGRAPH 2020はオンライン開催

HerokuでMEAN stack

GoB:ZBrushとBlenderを連携させるアドオン

BlenderProc:Blenderで機械学習用の画像データを生成するPythonツール

フィーリングに基づくタマムシの質感表現

ドラマ『ファーストクラス』のモーショングラフィックス

ZBrush用トポロジー転送プラグイン『ZWrap Plugin for ZBrush』

Boost オープンソースライブラリ

画像生成AI Stable Diffusionで遊ぶ

SDカードサイズのコンピューター『Intel Edison』

BlenderのRigifyでリギング

COLMAP:オープンソースのSfM・MVSツール

CLO:服飾デザインツール

OpenCV 3.1から追加されたSfMモジュール

ZBrushでゴジラ2001を作ってみる 側頭部のボリュームを探る

OpenCV 3.3.0-RCでsfmモジュールをビルド

株式会社ヘキサドライブの研究室ページ

書籍『3次元コンピュータビジョン計算ハンドブック』を購入

オープンソースのネットワーク可視化ソフトウェアプラットフォーム『Cytoscape』

ZBrushで仮面ライダー3号を造る 仮面編

無料で使える人体3DCG作成ツール

リアルタイム レイトレーシングAPI『DirectX Raytracing (DXR)』

AR (Augmented Reality)とDR (Diminished Reality)

スクレイピング

プロシージャル手法に特化した本が出てるみたい(まだ買わないけど)

まだ続くブログの不調

ZBrushで仮面ライダー3号を造る 仮面編 DynaMesh

Faceshiftで表情をキャプチャしてBlender上でMakeHumanのメッシュを動かすデモ

iOSデバイスと接続して連携するガジェットの開発方法

最近のフィギュアの製造工程

After Effects全エフェクトの解説(6.5)

OpenCV 3.3.0 contribのsfmモジュールのサンプルを動かしてみる

ZBrushでアヴァン・ガメラを作ってみる モールドの彫り込み・身体の形出し

ZBrushでアヴァン・ガメラを作ってみる パーツ分割

ZBrushでゴジラ2001を作ってみる 身体のSubToolを分割

ZBrushでアヴァン・ガメラを作ってみる 下アゴと頭部を作り込む

映画『ミュータント・タートルズ』を観てきた

openMVGをWindows10 Visual Studio 2015環境でビルドする

ZBrushでアヴァン・ガメラを作ってみる 歯を配置

Google App Engineのデプロイ失敗

Raspberry Pi 2を買いました

コメント