画力がないなら立体を作ればいい

3DCGでワンシーンメイキング(オリジナル小説の挿絵作り)

Zbrushの凄いマクロを開発中(ほぼ完成)

(約 3,200文字の記事です。)
f:id:yamato-tsukasa:20190124181025j:plain
バックトゥーザセンターマクロ(Back To the Center Macro, BTCM)。
斜め配置したどんなサブツールも原点に移動させてXYZ軸をそろえる。作業後にはワンクリックで元の位置に戻る。
これで斜め配置したどの部位でもどのタイミングでも自由に左右対称編集ができる。リトポも可能。
ほぼ実装完了。前回からの続きの記事。
Zbrush用プラグイン「Back To the Center」(斜め配置と原点配置とを往復可能) - YAMATO - BOOTH

Twitterで反響があったようで嬉しい。私のツイートが初めてたくさんリツイートされた(笑)

BTCMは「チェンジザワールド(軸)」の元になる機能だ。

チェンジザワールド(軸)の機能は「いつでも、どこにでも、どの方向にでもワールド軸を設定可能。」というものだ。一見すると謎な、まか不思議な説明なのだがワールド軸を自在に設定できてしまうのだからしょうがない。詳細はこちら

マクロ名が「Back To the Center」なのだが、機能の名前だけだと落ち着かないので、マクロ全体を差す場合にはBTCMとする。

現在の実装状況

過去の記事を見れば大体分かると思う。
f:id:yamato-tsukasa:20190124174357p:plain

まずは左右方向を向く辺を指定。マクロで回転。
f:id:yamato-tsukasa:20190124174410p:plain

次に前後方向を向く辺を指定。マクロで回転。
f:id:yamato-tsukasa:20190124174434p:plain
これでXYZはそろった。だが、ひっくり返っていることがある。なので機能を追加。
ひっくり返っている場合に対応。上下回転させますか?Yes/No 今回はYes
f:id:yamato-tsukasa:20190124174438p:plain

はい。回転しました。引き続き前後の向きをそろえる。左右に180度回転させますか?Yes/No 今回はNo
f:id:yamato-tsukasa:20190124174442p:plain

原点となる頂点を指定。マクロ実行。
f:id:yamato-tsukasa:20190124174447p:plain

移動完了。
f:id:yamato-tsukasa:20190124174451p:plain

マウスで適当に造形。5分作業。
f:id:yamato-tsukasa:20190124174457p:plain
f:id:yamato-tsukasa:20190124174501p:plain

作業が終わったので元の位置に戻す。マクロのホットキーをプッシュ、確認画面でワンクリックしただけ。
全ての回転・移動操作は逆順を追って復元される。
f:id:yamato-tsukasa:20190124174506p:plain
これで完了。

念のため前後の画像を比較。
f:id:yamato-tsukasa:20190124175138p:plain

以上がBTCMの機能です。

効果

いつでもどの部位でもサブツール単位で原点に移動させて作業できるので、いつでも左右対称編集が可能。編集が終わったら元の位置に戻せる。

制限事項

メッシュに中心線があること。中心線に対して左右対称な頂点があること。(元々非対称で三角ポリゴンだらけのオブジェクトは正確な2軸を指定できないので無理です。)

作業中にZbrushが落ちるとパラメーターがメモリから消えるので復元できない。
なお、サブパーツを複製してから移動を開始すれば、Zbrush再起動後でも移動の往路を複製から行い、作業後のパーツで復路で移動させれば元に戻る。サブパーツの複製を忘れないように質問ダイアログを設置予定。

「チェンジザワールド(軸)」

f:id:yamato-tsukasa:20190124002817p:plain
全てのサブツールを「トランスポーズマスター」で結合した後に、BTCMを適用する。そして編集したいオブジェクトの中心が原点に来るようにBTCMを適用する。
そうすれば全体の相対位置が変わることなく、お目当てのパーツだけが原点に移動して左右対称編集が可能になる。トランスポーズマスターで結合解除。
言い換えると、ワールド軸を、望んだパーツの頂点に設定したような物なのだ。
f:id:yamato-tsukasa:20190124003503p:plain
なので全体像を見ながらそのパーツを左右対称編集できる。
また、複数のサブツール群からなるパーツを結合させずに左右対称編集する場合にもこちらがいい。

f:id:yamato-tsukasa:20190123072429p:plain
編集後、再びトランスポーズマスターで結合し、元の位置に戻す。
なお、チェンジザワールド(軸)を適用する前に台座のようなパーツを足元に用意しておけば、復元という手順ではなくて、台座にワールド原点を再設定するという手段で全体を元の位置に戻すことが出来る。
f:id:yamato-tsukasa:20190124005120p:plain
その場合は、メモリに回転情報が保持されていなくてもいいので、ZPRで保存して複数回にわたって作業可能。Zbrushが落ちても復元可能。

チェンジザワールドの方が低リスク。全体を細かく調整するときに向いている。トランスポーズマスターの手間を惜しまないならばこちらの方がいい。

一方、1つのサブツールの小物をちょっとだけ左右対称編集してすぐに戻したい場合もあるだろう。そのときにはBTCMを1つのサブツールに適用したほうが早い。

開発状況

ほぼ完成。後は自分で使いながら微調整。確認ダイアログやオブジェクトの透明表示化、自動で正面向きにするなどのちょっとした使いやすさの向上を図る予定。
日本語化も考えたけど、バージョン管理が日本語と英語で面倒なので、英語のみの予定。使い方は画像を見れば分かるので。Zbrushは基本英語なので。易しい英語しか使ってません。

とりあえずこんなところです。
最初の基礎的な機能だけのときには120行だったソースが、今や380行(笑)主に質問ダイアログやYes/No/Cancelの条件分岐とエラー処理で一杯。
といっても私はプロのプログラマではなく普通の人なので、大学時代のコーディング能力しか無いのであまりソースは美しくない。が動けばいいのよ、固まらなきゃいいのよ。美しさより可読性。メンテするとき大変だからね。なんせ自分が使うために作った道具なんだから。


今回の創作活動は約45分(累積 約686時間)
(157回目のブログ更新)

続きはこちら