漠然と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で自動化してみよう。
この設定値は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
関連記事
Paul Debevec
白組による『シン・ゴジラ』CGメイキング映像が公開された!
Javaで作られたオープンソースの3DCGレンダラ『Sunf...
TensorFlowでCGを微分できる『TensorFlow...
3D Gaussian Splatting:リアルタイム描画...
ZBrushCoreのTransposeとGizmo 3D
AmazonEC2のインスタンスをt1.microからt2....
Mitsuba 2:オープンソースの物理ベースレンダラ
Google App EngineでWordPress
Runway ML:クリエイターのための機械学習ツール
参考書
『スター・ウォーズ 最後のジェダイ』のVFXブレイクダウン ...
UnityでARKit2.0
サンプルコードにも間違いはある?
ZBrushでアヴァン・ガメラを作ってみる 頭頂部と首周りを...
Theia:オープンソースのStructure from M...
ラクガキの立体化 進捗
ZBrushでアヴァン・ガメラを作ってみる 腕の作り込み
geometry3Sharp:Unity C#で使えるポリゴ...
SDカードサイズのコンピューター『Intel Edison』
TVML (TV program Making langua...
Autodesk CompositeとAutodesk Ma...
AndroidもopenGLも初心者さ (でもJavaは知っ...
ラクガキの立体化 分割ラインの変更・バランス調整
『スター・ウォーズ フォースの覚醒』のVFXブレイクダウン ...
ROSの薄い本
ブログをGoogle App EngineからAmazon ...
Amazon Web ServicesでWordPress
Open Shading Language (OSL)
Human Generator:Blenderの人体生成アド...
この本読むよ
仮想関数
OpenCV 3.3.0-RCでsfmモジュールをビルド
トランスフォーマー/ロストエイジのメイキング
2022年8月 振り返り
ZBrushの練習 手のモデリング
OpenCV 3.1から追加されたSfMモジュール
KelpNet:C#で使える可読性重視のディープラーニングラ...
ZBrushでアヴァン・ガメラを作ってみる 口内の微調整・身...
MPFB2:Blenderの人体モデリングアドオン
Blenderでよく使うaddon
TensorSpace.js:ニューラルネットワークの構造を...
コメント