(約 6,000文字の記事です。)
Zbrush 2023が本日公開された。新機能の一つとして、斜めに配置したメッシュについてローカル軸を設定できる「ダイナミックシンメトリ(Dynamic Symmetry)」という機能が追加された。
どこまで実用的なのか、早速検証してみた。
更新履歴
2023/01/14 正式名称の誤記を修正。機能名はダイナミックシンメトリ(Dynamic Symmetry)。だが利用しているボタンはローカルシンメトリボタン。なので「機能全体を指す場合」にはダイナミックシンメトリ機能と明記し、ワールド軸ではなくてローカル軸に注目したシンメトリの話をしたい場合にはローカルシンメトリと表記し、全体の表記を統一した。
検証環境
- Windows 10 Pro
- Zbrush 2023.0
- 初期プロジェクトのデモヘッドでテスト
- 最下位サブディビジョンのみを残して上位サブディビジョンを削除
- スマート再シンメトリを適用して100%シンメトリにする
- その後、ワールド原点からずらし、XYZ3軸について平行しない角度まで回転移動させた
ダイナミックシンメトリ機能とは?
ギズモの1つの軸(緑色の軸)を左右対称な境界面に沿わせる(左右の境界線の方向に向ける)ことで、ワールド軸に対して斜めに配置されたメッシュについても左右対称なブラシ操作ができるようになる機能。
以前からあったローカルシンメトリ機能+ギズモの緑色の軸と位置情報の利用=任意の場所にシンメトリなブラシの軌跡を描かせることができる機能、それがダイナミックシンメトリ機能だ。
正式な機能名は「ダイナミックシンメトリ」だが、ユーザーが任意の位置にギズモをセットした状態でシンメトリ作業を行なえる状態のことを本記事では「ローカルシンメトリ」とも書く。
ワールド軸ではなくて「ローカル軸に対して」シンメトリな話をするときに特にローカルシンメトリと表現することにした。
- ギズモの緑軸をメッシュの中心線に沿わせるように配置
- トランスフォームのローカルシンメトリボタンをONにする
- Xキーでシンメトリ編集モードに入る
- ブラシをかけたりZModelerを利用可能。IMMブラシも使える。
BlenderやMayaなどのDCCツールではお馴染み「ローカル軸」の概念がZbrushについに導入された、わけだが……。
一見するとパーフェクトに見えたが、4時間ほど検証した結果、できることとできないことが明らかになった。まずは「できること」から解説。
できること
ブラッシングによるスカルプト。これについてはほぼ理想的だ。シンメトリを出したい部位の中心にギズモを配置すればいい。具体的には、
- ギズモを表示させる(Wキー)
- メッシュのトポロジの中心線上をAltキーを押しながら縦にドラッグ
- ギズモの緑色の軸が境界線となり、左右方向のブラシの軌跡がシンメトリになる
ギズモなので任意の場所にミラーの境界位置を設定できる。
だが多くの人の場合、その位置はど真ん中、正確にメッシュの中心位置にギズモを配置することがほとんどだろう。
ギズモを正しく配置できてしまえば、ブラッシングに関しては理想的なローカルシンメトリ機能だと思う。
またZModelerによる、トポロジ変更を伴う変形も可能。ギズモのデフォーマ変形も可能。
ただしデフォーマ変形はローカルシンメトリであることに依存せず、旧来製品でもギズモを正しく配置できてさえいれば普通に左右対称変形可能。(赤い三角記号を最大まで伸ばすこと。)
IMMブラシによるメッシュの追加も正常に動作した。
できないこと
そして残念なことに、ダイナミックシンメトリ機能では「できないこと」のほうが多かった。
ギズモを用いた変形をローカルシンメトリに適用できない
ローカルシンメトリの左右対称の基準軸はギズモの緑軸。なのでローカルシンメトリ編集時にギズモそのものを使った移動や変形は、残念ながらシンメトリにできない。というのも、ギズモで変形させると当然ながらギズモの緑軸の位置や方向が変わる。なので毎回ローカルシンメトリの基準軸の位置と角度をセットし直さなければならない。
- 顔の左右方向をシンメトリ方向にキープしたいのだが、
- 肩の一部をギズモで回転変形させた場合(画像ではスムーズに変形させてみた)、
- ギズモの緑軸の方向が変わった=シンメトリの基準線の位置も方向も変わった(画像の緑の四角枠に注目)
- 次に操作するためには1の状態にギズモを再セットする必要がある
これはとても煩わしい。要するにギズモを用いた変形では「1操作ごとに緑軸の位置や角度を所定の位置に正確に再セット」しなければならないのだ。ギズモ変形時にはローカル軸の位置が固定されない、といえば分かりやすいか。
また画像を見れば分かるように、ギズモを用いたスムーズな変形の場合、変形の中心位置を指定するためにギズモを移動させた段階で、もう既にローカルシンメトリは機能しなくなる。右肩が変形していないことは明らかだ。
また別の例として、おでこにハの字に開いたツノをギズモ変形で作ろうとしても、イメージと違う変形になってしまう。
対象軸についてハの字のように開かず、ギズモの移動方向に平行移動してしまう。つまりローカルシンメトリが機能していない。
これを解決するためにはローカル軸専用の「第2のギズモ」が必要だろう。今の実装では論理的に回避できそうもない😭
ブラシ操作以外は基本的にシンメトリにならない
例えば矩形マスクをかける場合も、ローカルシンメトリにならない。マスクラッソも謎の挙動だった。
またトリム系ブラシもローカルシンメトリに対応しない。
なのでブラッシングによるスカルプト操作時のみ、ローカルシンメトリが導入されたという印象だ。
ZRemesher、スマート再シンメトリ、ミラーはワールド軸基準のまま
ZRemesher、スマート再シンメトリ、ミラーについては残念ながらローカル軸で対称化されず、ワールド軸が基準のまま。そもそもZRemesherの挙動はまったく想定外だ😱(ミラーと比較してほしい。)
ミラーと結合(Mirror and Weld)は挙動が怪しい?
これは恐らくギズモの緑軸を数学的に正確にメッシュの中心に配置できない限り、ハッキリ言ってローカルシンメトリでは使いたくない。挙動がどうにも怪しい。例えば私の場合はこんな具合に、なんだかちょっとおかしい結果に。
境界線部分に謎の山(または谷)ができてしまった。これはいけない。
【結論】スカルプト造型以外ではかなりの制約がある
ブラッシングによるスカルプトならばほぼ理想的なローカルシンメトリの挙動だが、それ以外のトポロジ操作に関わる部分のほとんどは、残念ながら従来通りのワールド軸が基準となっている。なので思ったほどダイナミックシンメトリ機能でやれることは多くはなかった。
その他の感想など
検証中にいくつか感じたことなど。主にデメリットに関する「危惧する点」だ。
サブディビジョンモデリングなら有効だが、超絶ハイポリになると「どこがど真ん中?」
サブディビジョンモデリング中ならば中心線が割と見つけやすい。だがポリゴンとして適用すると、果たしてどこが中心線だ?
ちなみに中心線を選び間違うと、当然ながら正確なシンメトリ操作にはならない。あとでそれに気付いたとき、一体どこまで作業がロールバックされるか、そう考えると、ちょっと恐ろしい。
以下には否定的な内容が含まれます。読まずにOK。
例えばローポリのキューブなどを事前にメッシュのど真ん中に参照オブジェクトとして設置するアイディアには賛成できない。
もちろん技術者としてはその発想はよく分かる。というか、今の実装ではそうせざるを得ないのだ。
だが、クリエーターからすれば「不要なメッシュオブジェクトは一切作りたくない!」というのが本音だ。なのでクリエイトに本質的ではない技術的な回避策を回避手法に採用することには、私は賛成できない。(加えて「サブツールの分離・結合」によって作業履歴が損なわれるリスクがある。Ctrl + Zによる作業履歴のUndoとRedoの再現性はクリエーターにとっては、とても重要なことだ。)
それがサードパーティー製プラグイン製作者による「苦肉の策」ならしょうがないかも知れないが、開発元やそれに近しい者がそれを推奨するようではいけない。根本的にZbrush側の実装方法を変えた方がいい。なぜなら、それはクリエーターに寄り添った改良とは思えないから。
ギズモの位置の保存や再読み出しできる機能があればいいけれど
これはかなり検討したが、残念ながらZscriptで実装できそうもない。Zscriptではギズモの操作関連のほとんどを制御できないのだ。制御用の関数が用意されていない。
もしギズモの位置と角度を保存したり読み出したりできればまだ救いはあるのだが、現状ではZbrushプラグイン開発者の私にも対処不可能だ。
ポーズ可能シンメトリで十分な気もする
もちろんスカルプトリスプロのようにトポロジを無視して造型している場合、ダイナミックシンメトリ機能は「一見すると有効」に見える。だが三角ポリまみれの自動生成トポロジのど真ん中にギズモを正確には配置できない可能性が高いので、ローカルシンメトリも「だいたい、ほぼ、左右対称」という曖昧な使い方に留まってしまう。
逆にど真ん中にトポロジがあるメッシュならば、それは多くの人が左右対称なトポロジでメッシュを組んでいるはずなのだ。そうなれば従来からある強力な機能の「ポーズ可能シンメトリ(Posable Symmetry)」で事足りる。
左右対称な形を出したいならば、トポロジもまた左右対称が最適だろう。
アレ?結局、ダイナミックシンメトリ機能の出番はかなり少ないかも?そう思った。
もちろん「目分量で、見た目重視でOKで、だいたい・ほぼ左右対称」でOKな場合ならば、実はダイナミックシンメトリ機能を便利に使えるシーンが結構ある。具体的な事例はまた別記事にて。
問題なのは「だいたい・ほぼ、ではなくて、しっかり・キッチリと左右対称であって欲しい」場合に対処できないことなのだ😭
これは実はポーズ可能シンメトリにも言える。ブラシの挙動が正確に左右同じ量だけ移動していない場合もあるのだ。なので左右で数学的にキッチリ同じ操作をすることは、ポーズ可能シンメトリでも難しいし、ダイナミックシンメトリ機能でもまた難しい。
(おまけ)鉄板なのはワールド軸基準で操作して、元の位置に戻すこと
これは手前味噌だが、YT SymmetrizerやBack To the Centerプラグインの基本概念の通り、
- メッシュの現在の位置や角度をメモリに保存し
- 一度ワールド軸に沿って左右対称な位置に移動させ
- 必要な左右対称編集を行なったあとで
- 再び元の位置に戻す
これが一番自由度が高い。論理的に考えても制約事項がないのだ。また「しっかり・キッチリ」左右対称にできる。
今はZbrushのStager機能でもこれができるのだが、条件によっては色々と問題が起こるらしい。
私は自前のプラグインを使っているのでそのような不具合には遭遇していないが。
YT Symmetrizerの使いにくいところも発見
結局、今回の検証中にも何度もYT Symmetrizerを使うことになった(笑)というのも、斜め配置の状態でのローカル軸操作の結果が本当に左右対称をキープしているのか検証するために、一度ワールド原点に移動させてみる必要があったから。そして検証が終わったら元の位置に戻す必要がある。なのでYT Symmetrizerがピッタリだった。
YT Symmetrizerではトランスポーズブラシで左右対称な2点に線を引き、ワンボタンでワールド軸の左右対称位置に来るし、戻すときにもReturnボタンワンクリックで元の位置に戻る。超絶シンプルな使い心地。
ローカル軸のど真ん中にギズモを配置するために四苦八苦するよりも、左右対称な2点を見つけて線を引くほうが早いし楽だし、確実だ。そしてその場合にはかなりのハイポリメッシュでも、たいていの場合は極の集中点など2点を見つけることができるので。
ただし今回の件で、Zbrush 2023ではXキーがオンのままYT Symmetrizerを実行すると予期せぬ動作があることが分かったので、なるべく早くにYT Symmetrizerを改修する予定。そういう部分も見つけることができたのは幸運だった😊
個人的なまとめ
ブラッシングによる「だいたいでいいので左右対称化してモリモリスカルプトしたい」ときには、ダイナミックシンメトリ機能はかなり便利だ。
ただし「なるべく正確な左右対称編集」には、ちょっと使いたくないと思った。正確性に疑問が残る。
ここで言う正確性とは、プログラムの挙動の正確さというよりもユーザー自身が誤操作することなく常にメッシュの中心位置に、正確な角度でギズモの緑軸を配置できるか、ということ。これが怪しいということだ。それさえできれば正しくシンメトリ動作するのだろうが、人は間違う生き物なので、ここに不安が残る。自分がミスしても嫌だし。そういう意味での正確さ・確実さには、不安が残る実装だった。
あとは主にローポリを扱うハードサーフェスモデラーにとっては、ローカルシンメトリ編集時には実質的にギズモ編集が行えないという制約も気になった。ハードサーフェスモデリングでは完全なシンメトリが重要なのは間違いない。そこにギズモ編集が現実的に機能しないとなると魅力がかなり損なわれる。
なので今回のダイナミックシンメトリ機能によるローカルシンメトリ編集のメリットを受けるのは、ブラッシングによるスカルプト操作に特化した人だけ、という印象だ。そういう意味では思ったよりもできることが少ないと感じた。
う~ん、またしても中途半端な実装か、というのが個人的な感想だ😭
だが上手く活用して作業の効率化を図れる人もいるだろう。そういう人にはZbrush 2023はそこそこ便利な機能を実装してきた、とも言える。あとは各自の判断次第だろう。
今回の創作活動は約6時間(累積 約3,120時間)
(875回目のブログ更新)
筆者はAmazonアソシエイト・プログラムに参加しています。(Amazon様の商品を宣伝することで紹介料をAmazon様から頂けるという大変ありがたい仕組みのこと。)
以下の商品名や画像アイコンをクリックしてからAmazon様で何かお買物をして頂ければそのご購入総額の1~2%が私に寄付されます。クリック後に別の商品のご購入でもOKです!誰が何を買ったかは私に通知されませんのでご安心下さい😊
また当サイトは楽天アフィリエイト、バリューコマース Yahoo!ショッピング アフィリエイト、および第三者配信の広告サービス(Googleアドセンス)を利用しています。