側のカレンダーにエントリーしたつもりでいたんですが、無印の方に間違ってエントリーしていたことが判明しました。Apperentice側ももう空きが無いようですし、巨匠に囲まれていて恐縮なのですがせっかくなので深堀りの調査系記事で勤めを果たそうと思います。肝心のネタですが、あまり関連記事を見かけない気がするので、HoudiniとZBrushとの連携を司るGoZについて挙動をくわしく追ってみます。(GoZはHoudini以外にもPhotoShopやMayaなどいろいろなDCCツールとZBrushを連携させるツールの総称です。)HoudiniとZBrushは正反対?の性格なソフトにも感じますが、連携は強力な機能だと思うので詳細を知りたく。Labsもかなり進化が早いので、すぐ細かい部分は変わってしまうかとは思います。Houdini用のGoZが付いています。シェルフにGoZボタンがあります。一応利用前に最新にアップデートするといいでしょう。GoZボタンでGoZを有効化してからでないとダメなようです。ZBrush側では最初にHoudiniのありかを選択しないといけません。*core/fxなどHoudiniの種類の選択肢が出ますが、Indieの場合は通常のHoudiniを選択すれば大丈夫でした。当然ですが、Houdiniを立ち上げるたびにシェルフのボタンを押して接続準備をしてあげなくてはいけません。ZBrushでは他にもシステムにインストールしている対応アプリケーション(PhotoShop/Maya/Cinema4Dなど)も認識します。一度にGoZでZBrushと連携が取れるのは1つのアプリだけなので、切り替える場合はリセットボタンを押します。関連動画リンクがこのページの最後にあります。ZBrushからHoudiniへのメッシュインポートZBrush側の操作はツールパネルから行います。ZBrush側からGoZボタン(もしくは全てボタン/表示のみボタン)を押せばHoudini側にすぐインポートされる、、ようなんですが、手元ではどうもうまくいかず(空のSOPネットワークは作られるがメッシュが引き渡されて来ない。作り、ZBrushからエクスポート後、リロードボタンを押してやることでメッシュの読み込みができました。自分の使い方がおかしいのかもですが、そもそも仕様が変わったのかもしれません。ZBrushのサンプル犬をHoudiniに読み込んだ様子。ZBrush側でサブディビジョンをかけてる場合、一番低レベルの物しかエクスポートされないようなので必要であれば低レベルの物を削除します。ジオメトリ以外では、ポリペイントと、ポリグループ情報とマスクがエクスポートできました。(マスクをやりとりに使うか若干疑問ですが、通常グループと異なるグルーピングがやりとりできるので便利なのかもしれません。)サブツールもグループに変換はされませんが、アトリビュートで区別できる状態で持っていけます。それぞれ、どこの何アトリビュートに変換されるかは後述します。ZBrushに取り込まれます。この時SOPの名前がZBrushのサブツール(メッシュ)名になるという情報をみましたが、自分の場合はそうなりませんでした。代わりにプリミティブにnameアトリビュートがある場合、それがサブツール名として使われました。rubbertoyをエクスポートした様子。ジオメトリ以外ではポイントのカラー(頂点ではない)がエクスポートできました。グループはエクスポートできません。(が、ほかの方法でグループ的なエクスポートはきます。かますと良さそうです。)こちらも詳細は後述します。UV情報もエクスポートできましたが、テクスチャーは自動で設定されませんでした。動作の仕組みここからもうちょっと突っ込んで挙動を追います。両ソフトお互いに、エクスポートを行うと、ファイルシステムにメッシュデータが書き出され、相手のソフトに読み込みを促します。拡張子GoZのバイナリファイルが中間データとして使われていました。SOPで読み込む事が可能でした。独自のバイナリ形式をインポートできるようにするための仕組みがあるのですかね。関連ファイルは以下の場所に置かれています。C:\Users\Public\Pixologic\GoZProjects\Default一時ファイル置き場です。Houdini以外とのGoZ連携時もここが使われるようです。C:\Users\Public\Pixologic\GoZBrushZBrushが連携するアプリケーション(今回はHoudini)からメッシュをエキスポ―とする際などに呼び出すプログラム(exe)と、そのための情報を保持するテキストファイルがいくつかあります。C:\Users\Public\Pixologic\GoZBrush\ScriptsGoZのためのZBrushプラグインファイル(zsc)がたくさんあります。バイナリらしく詳細不明です(が、ファイル名で何をしてるかはなんとなく予想が)。C:\Users\Public\Pixologic\GoZApps\HoudiniHoudiniと連携させるための設定テキストファイルとpythonファイルが配置されています。いうpythonファイルがあり、これがZBrushから呼び出され、Houdiniを操作するようです。hrpycモジュールを用い、RPyCというプロトコルでHoudini外からHoudiniを操作します。モジュールを知りませんでしたが、このように外部ソフトと連携させる際に便利そうです。https://ikrima.github.io/houdini_additional_python_docs/hrpyc.html150行程度なので内容も難しくないです。このプログラムが自分の手元で中途半端にしかうまく動いていない感じで、いろいろ記事に間に合わせようとしていましたが、調査中となってしまいました。(別記事にまとめられたらいいなと思います。Houdiniへメッシュの読み込みをしました。GoZ_importの中身は意外とシンプルで、指定されたファイルの数だけ読み込みを繰り返して出力としているだけでした。HoudiniからZBrushへのメッシュエクスポート(詳細)ネットワークはこのようになっており、さして複雑ではないです。エクスポート関連の処理は行うものの、Houdini内でのメッシュ編集は行っていないので、インプットがそのままアウトプットになっています。エクスポート前にnゴン(3角、4角以外のポリゴン)を分割する処理が入ります、それとnameアトリビュートがない場合、名前づけの処理が入ります。最後にGoZファイルを書き出します。設定に記述されています。下記、ソースそのまま張りますが、日本語コメントは自分が書いたものです。hrpyc.start_server()インポート・エクスポート時に相互に変換される内容について下記のような割り当てになっていました。ダイレクトにHoudiniのグループが変換されないので、エクスポート・インポート時にグループを下記アトリビュートに変換・復帰するvexなど用意するといいかもしれません。サブツールはZBrushのメッシュのレイヤー構造のようなものです。ポリグループはZBrushのグルーピングで、1ポリゴンは複数のポリグループには属せません。マスクはそのままではHoudini上で可視化されません。この状態でZBrushからエクスポートすると、このようにHoudiniに読み込まれ、ポイントアトリビュートはこのように(Cdとmaskがある、マスクは小数値を持つ)頂点アトリビュートはこのように(uv情報がある)プリムアトリビュートはこのように(nameとpolygroupがある、polygroup値はマイナスの値も持つ)それぞれなります。ハイメッシュで編集する場合、頂点カラーでの着色でも十分な細かさで着色ができます。下手に低解像度テクスチャを使うより美しくなります。(もちろんZBrush内でもUV+テクスチャの表示自体はできますし、ポリペイントとテクスチャを相互に変換する機能はあります。)よってHoudini内でテクスチャを適用したメッシュをZBrush内でリペイントしたい場合は、一度どちらかのソフト上で頂点カラーに変更する必要があります。公式の動画(URLは後述)では、適当にテクスチャをポイントカラーに変更してから、ZBrushにエクスポートしてペイントしていました。自分がざっと試したかぎりではHoudiniで頂点にカラーを割り振るよりも、ZBrushでテクスチャを張りなおしてからポリグループに変換した方が良い見た目の結果になりましたが、後者の場合手間が増えてしまうので、適切なノード構成でHoudini側でポイントにカラーを割り振った方がいいでしょう。なると次の項目にあるように前もってメッシュを細かくしておいた方がよいでしょう。カラー以外のマテリアル情報はやりとりできないようです。maskアトリビュートを使ってマテリアルを変更したい部分を受け渡す事はできそうです。(合計2つしかマテリアルの分布を指定できず、かつZBrush側で手作業でマテリアルを設定しなくてはいけなくなりますが。)サブディバイドをかけるタイミングについて公式ビデオでは、ZBrushにもっていってからサブディバイドをかけてスカルプトをほどこして低レベル削除してHoudiniに戻す、という手順の作業が録画されていましたが、ここについては、Houdini側であらかじめサブディバイドをかけてしまったほうがHoudini内の前後の編集に影響を与えずらい(頂点番号などが変更されない)ので好ましいように思います。そんなに使い込んでいないのでわかりませんが。関連動画2年前の動画で今とだいぶ状況違いますが公式ページなので張っておきます。雰囲気はつかめると思います。新しい動画で良いものがあれば追って追記します。株にカラー情報付きメッシュをエクスポートしてインポートしている動画ありMacでGoZを動かしたい自分は普段Macでプログラムもクリエイティブ制作も行うのですが、NVidiaのGPUがMacに積まれる見通しが全くないため、Windowsマシンも別途購入しました。MacでHoudiniを使っている際は、ずっとGoZがWindowsしか対応していない事がとても残念だったのでここはなんとかしたく。実はこのポストは当初、MacでもがんばったらGoZが動いたよ、的なサプライズな内容にしたかったのですが、このように調べてみると、サクッと対応はできなさそうだなあという印象を持ちました。調査中ではあるので、Mac側でMayaなどのソフトとのGoZの挙動も行いつつ、どうにかできないかは引き続き考察してみたいです。HoudiniユーザーはほとんどがWindowsユーザーで、ついでLinux、Macはほぼいないという現状だという事なので、もし実現したところで需要は少なそうですね。感想などHoudiniとZBrushと連携させてかつサブスタンスプラグインを連結するとモデリング環境としてかなりの強い状態だと思っているのですが、最近勢いのすごいBlenderもスカルプト機能が今後かなり強化されていくようで、そちらも気になります。素の状態でZBrush+Mayaのような状態になるわけなので。あと、ZBrushのプラグインを作ってる人はあまり見かけない印象ですが、今回GoZを解析してみて可能性は感じました。皆が期待しているいけてるテクニック系の投稿でなく恐縮ですが、以上です。imai@harayoki職業エンジニアです。エンジニアとしてそこそこ良い働きをしますが、趣味興味はデザインやアナログ方面にある変わった人です。アウトドア派なので休日にコンピュータはほとんどいじりませぬ。最近はてぃーえーとか名乗るようにもなりました。upLoginユーザーは見つかりませんでした。