3DCGで何をどう作るか考え中

ZbrushとBlenderの使い方、ヒント、コツなど。たまにZbrushプラグイン開発も。

ZbrushとBlenderを連携・同期させる「GoBアシストツール」の使い方

(約 10,100文字の記事です。)

f:id:yamato-tsukasa:20200516220352j:plain

はじめに 効率重視の「プロ志向ツール」です

当ツールは「プロ志向」です。手間暇を惜しまないセミプロ・アマチュアであれば純正GoBアドオンを駆使して「何とか」できます。ですが、当プラグインがプロ志向という理由は、それを「現状で可能な限り最短の手順で実現させられる」からです。特に複数オブジェクトの扱いについては純正GoBアドオンでは、オブジェクト数に比例して手間がかかります。耐えがたい苦痛です。

まずはGoB純正アドオンを試して頂き、その後に改めて当プラグインの各種デモ動画をご覧頂いた上で、当プラグインの価値をご判断下さい。
ZbrushとBlenderとを駆使するユーザーにとっては「他に代替手段がない」ほどの価値があると信じています。

当ページは書籍レベルで丁寧に記載してありますのでボリュームがありますが、当プラグインに関する全ての情報が記載されています。
ZbrushとBlenderユーザーはぜひ当プラグインをご検討ください。




更新履歴

2020/05/20
ポリグループ問題についてJose氏にバグ報告した記事のリンクを追加。

GoBアシストツールの概要

ZbrushのサブツールとBlenderのオブジェクトを連携させるプラグイン。2クリックでZbrushからBlenderへ。BlenderからはワンクリックでZbrushの同名サブツールに上書き(置換)される。名前の保持以外にもサブツールの変更履歴・並び順・ディビジョンレベル・ポリグループ・ポリペイント、を保持。

ポリグループについては純正GoBアドオンのバグにより仕様上の制限がございます。トラブルシュートをご覧下さい。

f:id:yamato-tsukasa:20200517012619g:plain

BlenderでリトポしてからZbrushの元の位置に戻せます。リトポフローなどの優秀なトポロジ編集機能をBlenderで使ってから「ワンクリックで」Zbrushの元の位置に戻せます。

f:id:yamato-tsukasa:20200517175221g:plain

BlenderからZbrushに戻してもZbrush内の過去の履歴は保持されているという優れ物。

f:id:yamato-tsukasa:20200517013802g:plain

Blender上で複数のオブジェクトを選択しても「ワンクリック」でまとめて一気にZbrushに戻せる。

f:id:yamato-tsukasa:20200517014702g:plain

ALT+右クリック(または左クリック)で、キャンバス上の各サブツールを選択状態にできます。憶えておきたい豆知識。

サブツールの上書きなのでサブツール数が増減することもなく、名称のダブりもない。完全にZbrushキャンバスとBlenderビューポートがリンクする。
理想的なツールです。

なお事前にGoBプラグインのインストールが完了していることが前提です。




更新履歴

2020/05/19
純正GoBアドオンのバグによりポリグループの保持について仕様上の制限があることをトラブルシュートに追記。

2020/05/17
慣れたGIF動画を1つにまとめた方が分かり易かったので作り直しました。ついでにテロップを入れて分かり易くしました。
GoBアシストツールの全貌を理解するならこちらの動画(2分15秒)を見た方が早いです。

なお細部を見る場合には当ページのGIF動画の方が高解像度なのでそちらもご覧下さい。


2020/05/17
Twitterのmp4動画で紹介した内容を細切れにしてGIF動画にして当ページ内に配置しました。

https://twitter.com/yamato_tsukasa/status/1261669742294691840

はじめに

f:id:yamato-tsukasa:20200516220412j:plain

このプラグイン「GoBアシストツール」はGoBプラグインを支援するアシストツールです。以下、GoBアシストツールの事をGoBAツールと略記します。

GoBAツールではZbrushとBlenderとのメッシュの往復のために、Zbrushの機能である「GoZ機能」を呼び出しています。ツール内にあるGoZボタンが押されたときにGoBプラグインが動作するようにして下さい。ですのでまずはGoBプラグインを正しくインストールしてからご利用下さい。


重要な了解事項

GoBプラグインとの関係

GoBAツールではGoBプラグインのソースコードなどは一切使用しておりません。GoBプラグインの挙動に関しては開発元にお問い合わせ下さい。GoBAツールはGoBプラグインの実行前と実行後にZbrushの挙動を制御するだけのツールであって、GoBプラグイン実行時のメッシュの転送そのものには関与していません。ですので、Zbrushのサブツール及びBlenderのオブジェクトの転送の失敗や不具合についてはGoBプラグインの仕様や既存のバグの影響を受けることを予めご了承下さい。
(既存のバグに対する対処法は最後のほうでご紹介しています。)

事前に別名ZPR保存を推奨

GoBAツール及びGoBプラグインの不具合によるデータの消失については当方では責任を負いません。ですので事前にバックアップや別名保存など、データ管理をユーザー自身の責任において行った上でご利用下さい。

名称の定義と確認「ツール」「サブツール」とは?

f:id:yamato-tsukasa:20200516155338j:plain


まずはGoBプラグインを導入

こちらの記事を参考にインストールを完了させて下さい。

Zbrush とBlenderにGoBを正しくインストールする方法 - 3DCGで何をどう作るか考え中

動作環境

執筆時点の動作確認済みの環境は以下の通り。

  • Windows10 Pro
  • Zbrush 2020.1.3
  • GoB Ver.3.2.5
  • Blender 2.81a, 2.82a

インストール方法

Zbrushを終了させておく。
DLしてzipを解凍後に出てくる.zscファイルをZbrushのプラグインフォルダに置く。
(例)

C:\Program Files\Pixologic\ZBrush 2020.1.3\ZStartup\ZPlugs64

Zbrushを起動させてZpluginタブの配下にこれが現れればインストール完了。

f:id:yamato-tsukasa:20200515235725j:plain

使い方(初回のみの初期化編)

GoBAツールをZbrush起動後に始めて動作させる際には初期化動作を1度だけ行います。

具体的にはGoB1ボタンを押すと、初めて押した場合にのみ、「初期化動作します」というメッセージが出ます。

f:id:yamato-tsukasa:20200516000003j:plain

その後どこかをクリックすると、キャッシュのクリア画面がでてきます。文字列は読まなくていいのでOKボタンをクリック。

f:id:yamato-tsukasa:20200516000101j:plain

ここまでの流れは定型です。2度目からは表示されません。Zbrushを再起動させた場合のみ再び表示されます。

実際の使い方(ZbrushからBlenderに送る)

f:id:yamato-tsukasa:20200517012619g:plain


シンプルです。

f:id:yamato-tsukasa:20200515235725j:plain

  1. Blenderに転送したいサブツールを選択する
  2. GoB1ボタンを押す
  3. GoB2ボタンを押す

これだけ。サブツール名と同じ名前のオブジェクトがBlender上に作成されます。

GoB1ボタンで「前処理+転送」、GoB2ボタンで「必須となる後処理」を行っています。なのでGoB1,GoB2は2つをクリックすることでワンセットの動作です。
本当はワンクリックで実現させたかったのですがZscriptの仕様上の制限です。何も考えずにGoB1, GoB2ボタンをポンポンッとクリックすべし!

BlenderからZbrushに戻す

GoBプラグインの「Zbrushにエクスポートボタン」を押すだけ。

f:id:yamato-tsukasa:20200516152641j:plain

リトポフローなどの優秀なトポロジ編集機能をBlenderで使ってから「ワンクリックで」Zbrushの元の位置に戻せます。

f:id:yamato-tsukasa:20200517175221g:plain

GoBプラグインの正常動作のためにはZbrush側ではフォルダー機能をOffにする必要があります(Zbrush側での受け取り時にエラーが出る)。そこでGoBAツールでは強制的にOff化してから動作しています。必要な人は「Folder On/Offボタン」でOnに戻すことができます。必要な場合にはBlenderから戻した後にOnにする事をオススメします。

実現できること

サブツールの重複作成の回避

  1. サブツールの数が増えない
  2. 同名サブツールに置換される

GoBAツールを使うとZbrushとBlenderとを何往復させてもサブツールの数が増減しません。同名サブツール(同名オブジェクト)に上書き(置換)するためです。

ただし正しい手順ではない操作や、GoBプラグインのバグにより、Zbrush側に「新規ツール」及びその中に同名サブツールが作成される場合があります。その場合にはBlenderとZbrushとがリンクしていないので、何度Blenderから戻しても必ず「新規ツール」及びその中に同名サブツールが作成されます。詳細はトラブルシュートをご覧下さい。

置換前のサブツールの履歴の保持

Blenderから戻す以前の履歴も保持されたままです。履歴バーを動かしてご確認下さい。

f:id:yamato-tsukasa:20200517013802g:plain

置換前のサブディビジョンレベルの保持

f:id:yamato-tsukasa:20200517020006g:plain

私はサブディビジョンレベルの上げ下げに左右の矢印キーをホットキーとして割り当てています。が、標準ではそうなっていません。念のため補足。

Blenderに送る直前のサブディビジョン情報が、置換後も保持されます。なお、送る直前にサブディビジョンレベルのあるメッシュについて、Blender側でトポロジの追加変更やリトポを行った後でZbrushに戻すと、このような確認ダイアログがでることがあります。YESボタンを押して下さい。(NOを選ぶと最低レベルを残してディビジョンレベルが削除されます。)

f:id:yamato-tsukasa:20200516151330j:plain

Blenderから複数オブジェクトをまとめて一気に転送

Blender上で複数のオブジェクトを選択状態にして、Zbrushにそれらをまとめて一気に戻せます。

f:id:yamato-tsukasa:20200517014702g:plain

ただし条件があって、Blenderで選択した全てのオブジェクトが過去にGoBAツール経由でZbrushからBlenderに送られている場合のみ、正常動作します。

何か一つでもGoBAツールを経由していないオブジェクトが含まれている場合にはそれは新規ツールとしてZbrushに転送されます。(あるいはBlender上で名前が変更された場合など。詳細はトラブルシュートをご覧下さい。)

その他、維持される内容

  1. ポリペイント(頂点カラー)の維持
  2. ポリグループの維持(ただし色はランダムに変化します。)

制限事項

GoBプラグインが動作すること

最初に述べたとおり、ZbrushとBlenderとのメッシュの往復はGoBプラグインが行っています。GoBプラグインの準備はユーザー自身で行って下さい。

Zbrushのフォルダ機能はOFF時のみ正常動作

これはGoBプラグインの仕様制限です。もしフォルダ機能がONの場合にはBlenderからZbrushへのオブジェクト転送に失敗します。ですのでGoBAツールでは強制的にフォルダ機能をOFFにしています。

f:id:yamato-tsukasa:20200515235725j:plain

それだけでは不便な人もいると思ったので、その機能をOn/Offさせる「Folder On/Offボタン」を設置しました。Blenderからオブジェクトを受け取った後にZbrushのみで作業する場合にのみ、再びフォルダ機能をOnにする事をオススメします。
なおZbrushのフォルダ機能を使っていない人は気にする必要はありません。

必ずZbrushからBlenderにGoBAツールで転送すること

これはGoBプラグインの仕様です。新規でBlenderで作成したオブジェクトをZbrushのサブツールにリンクさせることはできません。
ですが工夫することでBlenderで新規作成したオブジェクトを、Zbrushの作業中のツールにリンクして転送する(戻す)ことはできます。詳細はTipsをご覧下さい。

GoBAツールでは1つずつしかBlenderに送れない

これはGoBAツールの制限事項ですが、ZbrushからBlenderに送る場合だけの制限です。BlenderからZbrushへは複数をまとめて一気に戻せます。
ただし条件があって、Blenderで選択した全てのオブジェクトが過去にGoBAツール経由でZbrushからBlenderに送られている場合のみ、正常動作します。

何か一つでもGoBAツール非経由のオブジェクトが含まれている場合にはそれは新規ツールとしてZbrushに転送されます。(あるいはBlender上で名前が変更された場合など。詳細はトラブルシュートをご覧下さい。)


Tips

その他の便利なヒントやコツです。

時々Zbrushに戻したサブツールにマスクがかかっている

これはGoBプラグインの謎の動作の仕様です。マスクを解除してから作業してください。

マスクがかかるときとかからないときがあるから謎。

(Zbrush側ではなくて)Blender側で新規作成したオブジェクトをZbrushに送りたい

f:id:yamato-tsukasa:20200517021545g:plain

  1. Zbrush側で適当なサブツールを複製する
  2. サブツール名を適当に変更する(例、Monkey)
  3. サブツールをGoB1, GoB2でBlenderに転送
  4. Blender側でオブジェクト名「Monkey」を文字列コピー
  5. そのオブジェクトを削除、またはリネームする
  6. SHIFT+Aキーで、例えばモンキー選択して新規作成
  7. Zbrushに送りたいモンキーのオブジェクト名「Suzanne」を「Monkey」にリネーム
  8. そのMonkeyオブジェクトが選択された状態でZbrushにエクスポート

結局やっていることは、Zbrush>Blender>Zbrushだったりする。理屈が理解できていればやっていることは単なる名前と実体メッシュの差し替えでしかない。

GoBAツールで転送したBlenderには転送情報が保持される

GoBAツールで転送したBlenderには転送情報が保持されます。ですのでGoBAツールで転送した後にそのBlenderファイルを名前を付けて保存すれば、Blender再起動後にそれを開くとそこにはリンク情報があるので、過去にGoBAツールで転送したオブジェクトはすぐにZbrushに再び戻すことができます。(それで上手くいかなければ諦めてください(笑)トラブルシュートをご覧下さい。)


トラブルシュート

以下は、GoBプラグインに起因する問題の解決方法です。

Zbrush側に新規ツール及び同名サブツールが新規作成される

f:id:yamato-tsukasa:20200516154807j:plain

これはGoBプラグインの仕様です。BlenderとZbrushとのリンクが上手く生成されていないようです。このリンクを作るためには、GoBAツールのGoB1, GoB2ボタンをクリックして「ZbrushからBlenderに転送する」以外に解決方法が見当たりません。

なお、リンクがない状態でBlenderからZbrushに何度戻しても必ず新規ツール及び同名ツールが新規作成されます。諦めてGoBAツールを再実行して下さい。

他にも例えば、予期せぬタイミングでZbrush側のサブツール名が変更されていたり(末尾に数字が勝手に付いていた)、Blender側のオブジェクト名が変更されていたりと、リンク作成時のサブツール名とは異なるオブジェクト名になっている場合にも同様に新規ツールと同名サブツールが新規作成されます。ただしリンクが正常ならば、正しい名前にリネームすれば転送に成功します。それでも駄目な場合にはGoBAツールでやり直して下さい。

例えばBlender上でQuad Remesherをかけると、「Retopo_Monkey」のように、接頭語が追加されたオブジェクトが作成されます。これをそのままZbrushにエクスポートすると、Zbrushにはそんなサブツールがないため新規ツール内に転送されます。ですがリトポ後にMonkeyに戻すようにリネームして転送すれば正しく置換されます。

Blenderに転送するとオブジェクト名の末尾に数字が追加される

f:id:yamato-tsukasa:20200515235725j:plain

こちらのClearボタンを押してGoZ機能のキャッシュファイルを削除してから再度お試し下さい。
それでもだめならZbrushとBlenderの再起動、これしかありません(笑)

何かしらのタイミングでZbrush側のサブツールの名前に数字が付いている場合もあります。ならばそりゃBlenderのオブジェクト名にも数字が付きます(笑)罠。一度両方の名前をご確認下さい。

GoBプラグインの動作が不安定

f:id:yamato-tsukasa:20200515235725j:plain

こちらのClearボタンを押してGoZ機能のキャッシュファイルを削除してから再度お試し下さい。このキャッシュファイルはGoZ機能によって一時的に作成される中間生成ファイルなので消してもOKです。ユーザーデータが削除されることはありません。これが悪さをして不安定になることもあるので、クリア後に再度お試し下さい。

それでも駄目な場合にはZbrush再起動、または「別名保存後に、ファイル>元に戻す(File > Revert)」をお試し下さい。

それでも駄目な場合にはGoBAツールでBlenderに転送し直してください。それができない場合には、諦めて一度Zbrushに新規ツールごと転送させてから手動でサブツールの移動・リネームを実行し、正しいツールの中に移してから、以後、GoBAツールをご利用ください。

一つ飛ばしのポリグループは保持されずに壊れる

これは純正GoBアドオンのバグです。GoBAツールではどうしようもありません。

f:id:yamato-tsukasa:20200519212845j:plain

GoBアドオンの対応待ちです。私にもどうしようもありません。
考え得る対策は以下の通り。

f:id:yamato-tsukasa:20200519220651j:plain

Smt(スムーズ)ボタンをオフにしてディバイド後に低レベルを削除してメッシュとして確定させてからBlenderに送るしかありません。(Blender上でトポロジを変更する操作をしていなければZbrushに戻した後にZbrush上でディビジョンレベルの再構築を実行することで元の低レベルメッシュに戻せます。)

1つ飛ばしのポリグループも保持させたいし、ジオメトリの変更も行いたい場合には、手動でFBXファイルとしてZbrushとBlenderとを往復させるしかありません。(ポリグループをマテリアルに相互変換するオプションをONにすること)

f:id:yamato-tsukasa:20200519221654j:plain

超絶ローポリ限定の問題ですが、ZbrushとBlenderとの往復に発生する残念なバグです。どうしようもありません。これがなければかなり完成度が高かったのですが。

なお、Blenderのface mapsを利用するとBlender上では正しく面を選択できるのですが、GoBアドオンのオプション選択でface mapsを利用する設定にしてもそれが正しく機能しないというバグがあります。ここが正常になればこの問題は解決されます。GoBアドオンの対応待ちです。

f:id:yamato-tsukasa:20200519214048j:plain

(翌日追記)
GoBアドオンのバグについて作者のJose氏とGitHubで議論した - 3DCGで何をどう作るか考え中

最後に

これでZbrushのキャンバスとBlenderのビューポートとがリンクします。煩わしいサブツール数の増大や繰り返されるリネーム作業から解放されます。
ZbrushとBlenderを駆使して快適なモデリング環境をGoBAツールで構築して利用してみてください。

ZbrushとBlenderを連携させるZbrush用プラグイン「GoBアシストツール」 - YAMATO Tools - BOOTH



今回の創作活動は約2時間30分(累積 約1,655時間)
(578回目のブログ更新)