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

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

BTC Ver.2.4を作者が使ってみて分かったこと

(約 5,200文字の記事です。)
f:id:yamato-tsukasa:20190210060515j:plain
ご飯を一口食べてみて「米が悪いんじゃない。水が悪いんだ。」というように、BTCはとても便利なのだがZbrushのサブツールの操作性が悪すぎるのだ。今回はそんな記事と今後の開発予定のメモ。

BTCの堅牢性はほぼ確実

自分で使ってみてそう思うから間違いないだろう。なので原点移動と配置の復帰については折り紙付きだ。作者が保証します。問題はその使い勝手の悪さがZbrushに起因することなのだ。

作者が実際に使ってみた

例えばこれ。今回もテスト造形の無名(むめい)さんに登場してもらおう。甲鉄城のカバネリの無名さんね。ななしさんではない。念のため。

f:id:yamato-tsukasa:20190124213032p:plain:h360

この画像は肩の防具の作成テストにCWAを応用してみたときの図。懐かしい。

今回、腰の黄色いタンクを左右対称編集したいと思った。このタンクは複数のサブツールに別れている。1つではないので試しにCWAモードでパーツ全体を回転させてみた。

CWAモードは全体的に時間がかかる

無名さんはハイポリなので、全体を処理するにはとにかく時間がかかる。しかもトランスポーズマスターを経由するのでスキャン、結合、分解、ということで、結構時間がかかる。しかも復路では再び再結合、再分解をしなければならないので、パーツ類が2,3個の場合にCWAをやっていてはイライラする。CWAは仕上げ直前の各パーツの修正に向いている気がする。全体を見ながら左右対称編集でパーツのバランス取りをしたい場合などに有効だ。これはBTCではできない技。

CWAモードを使ってタンクの中心にワールド軸を移動させてみた。もちろん可能である。だが、重い。トランスポーズマスターが想いのだ。片道24秒、往復で48秒もかかる。これはテンポが悪すぎる。

BTC+回転情報のコピペを試す

そこで、1つのパーツをBTCして、Ver.2.4で実装された「回転情報のコピペ」を使ってみよう。コピペ操作は一瞬である。だが、いくつか使いにくさを発見した。

原点付近に色んなパーツがかぶってくると見づらい

例えば、台座が原点にいる。なので、パーツの可視状態がかぶって見づらい。

f:id:yamato-tsukasa:20190211062909p:plain

いちいち台座の可視状態をON/OFFするのも面倒だと思った。

複数パーツにプチプチとPasteとBTC Againボタンを押すのが面倒

これも面倒だ。一気に回転情報をペーストして自動的にBTCAやRelocationしてくれれば便利なのに。

とりあえず何とか移動させることはできた。

f:id:yamato-tsukasa:20190211063037p:plain

編集後、再びプチプチして元の位置に戻す。う~ん、面倒くさい。

Zbrushはそもそもサブツールの可視状態の変更が苦手

例えばPhotoshopやCLIP STUDIO PAINTのように、一時的にソロ表示からのレイヤー表示復帰がZbrushではできない。全てのサブツールを「全表示させるか全非表示にさせるか」の二択しかないってのが、そもそもおかしい。

開発アイディア

目玉アイコンの記憶と復元

今回の場合、背中の蒸気タンクの4つのパーツだけが注目されている。なので、一時的にこの4つ以外を非表示にし、ワンクリックで元の表示状態に戻せるようにしたい。要するに、目玉アイコンの状態の記憶と復帰をさせるボタンがあれば便利。

表示中のサブツールへの回転情報のペースト&BTCA, Relocation

そして、表示状態の4つのサブツールについて、選択中のサブツールの回転情報をコピーしてBTC Again またはRelocationを次々と適用するようなボタンがあれば楽ちんだ。

つまりBTCとCWAの中間的な機能が欲しい

BTCは単体サブツールの回転情報を得ることができる。原点移動と再配置も1つのサブツールが前提だ。そのため動作が軽い。
一方、CWAは可視状態の全サブツールの結合と回転なので、手順が完了するまで1分程度かかる。心理的に重い作業だ。その代わりに全体を見ながら一部のパーツを対称編集できるというメリットがある。これはパーツだけを移動させるBTCではできないメリットなので、CWAにもきちんと存在意義がある。

今回必要性を感じたのは、その中間なのだ。2~3個程度、せいぜい10個未満程度の複数のサブツールを、軽快に、元の位置と原点とで往復させられたらいいな、と思ったのである。
それをきっかけとして、Zbrushのサブツールの表示状態の記憶と復元機能が欲しいと思った。
背中の蒸気タンクを編集したいときには、蒸気タンク以外のパーツは消えて欲しいが、ワンクリックで元の全表示状態(非表示パーツの非表示状態も含めて)を復帰させたい。

毎回、1つのパーツを見るためだけにプチプチと全体の目玉アイコンをクリックしていられない。発狂しそうだ。どうりでZbrushが使いにくかったわけだ。

今後の開発予定

全サブツールの表示状態の記憶と復元機能のプラグイン

まずはBTCとは無関係に、1つのツール内の全サブツールの表示状態を取得して、現在の表示状態を記憶し、ワンクリックで元の表示状態を復元させるプラグインの開発。開発名は例えば、BTC Visibility Switcher など。BVSボタン。

この開発にもBTCのサブツール名との関連づけするDBのノウハウを生かして、「サブツール名に回転情報を紐付ける」実装にする予定。そうすればユーザーは、

  1. 全体のサブツールの表示状態を目玉アイコンをクリックして決定する(元の表示状態)
  2. 1つの代表的なサブツールを選択する。
  3. 「元の状態記憶ボタン」をクリックして表示状態をメモリに記憶させる。
  4. 表示状態とサブツール名とがリンクする。(表示、非表示状態が入り交じっていても構わない。それごと状態を記憶する)
  5. そのサブツールを選択した状態で、次に、絞りたいサブツールのみを表示状態にする。
  6. 「限定表示の記憶ボタン」を押して表示状態をメモリに記憶させる。
  7. 表示状態とサブツール名とがリンクする。
  8. 以降は、そのサブツール選択した状態で、限定表示ボタンか全体表示ボタンかをクリックするだけでツール内全体の「目玉アイコンの状態」が切り替わるわけだ。

こんな感じかな?だいぶ便利になる気がするぞ。

ただし、表示状態とサブツール名とを個別にリンクさせるとなると、これまたサブツール名の単一性問題が出てきて実装が非常に複雑になる。

表示状態とサブツール名とを1対1で関連づけるならば、確かに並び替えがあっても問題ないが、BTC並に開発が大変になる上に、サブツール名の重複一致しない厳密な管理が必要になる。実際の運用も、例えばBVSリネーマーを使ってもらうことが前提になるなど。

とにかく開発が相当に面倒くさい。だが便利だ。


苦労するかもしれないが、サブツール名と目玉アイコンとの一対一の関連性にこだわりたい。これは作者の美学である。

人がツールを使うのであって、人がツールに使われるのではない。
 
サブツールの並び順と目玉アイコン状態とを紐付けるのは超簡単だ。それで実装を済ますのも簡単だ。だがユーザーがサブツールを並び替えるとルールが破綻する。それが原因でユーザーがミスをする可能性がある。(例えば本来一緒に回転すべき物が回転せずに、仕上げ直前でそれに気付く、あるいは納品まで気付かない、などの致命的な原因になり得る)


なお、表示情報は「単一のサブツール名」に紐付ける予定。なのでBTCリネーマー相当の機能も移植予定。
もちろん記憶情報は外部ファイルに保存可能にする予定。この辺はBTCのノウハウを流用できる。
保存ファイル拡張子は、vsi(nfo), vsn(ame)かな?例えばね。


……割と大規模なプラグインになる感じがした。

なので簡単にできるとは言えないな。でも個人的には欲しい機能だなぁ。

BTC専用の複数サブツールへの回転情報ペースト機能

仮名をBTC Multiple Applierとしよう。

例えば、一度、蒸気タンクの1つのパーツをBTCして元の位置に戻す。そして回転情報をコピーする。そして、蒸気タンクのパーツだけを表示状態にする。上記のVSSプラグインが活躍するだろう。そしてその状態で、表示状態のサブツールに次々と回転情報をペーストする。

BTC専用の複数サブツールへのBTC Again, Relocation機能

BTC Multiple Applierと呼ぼう。
同様に、表示状態のサブツールを次々とBTC AgainまたはRelocationさせるボタンがあると便利だね。
とはいえ、現状、「クリック&↓キー」の繰り返し連打で実現できるので、そんなに困る人もいないだろう。あくまでもオプション的な位置づけだ。

速攻で実装するなら「Paste&BTCA」ボタンを実装するのが一番だろう。これならば、「クリック&↓キー」の繰り返し連打でBTC Againできるし、復帰もRelocationの「クリック&↓キー」の繰り返し連打でいける。う~ん、とりあえず、次のアップデートで実装しておきます。大した手間でもないので。

BTC MAは将来的に実装するかもしれない。優先順位は低め。だって「クリック&↓キー」の繰り返し連打で実現できるんだから。

それよりもむしろVSSのほうが重要。それが実現できたとすれば、表示状態全てのサブツールに対してBTCAやRelocationをワンクリック適用に意味が出てくる。特に可視サブツールが飛び飛びの場合には「クリック&↓キー」の繰り返し連打が難しくなるので。サブツールの位置を一カ所に固められない事情があるときなど特に有効だろう。でもそれもレアケースだし、根性でなんとかなるレベル。BTCがなかった頃と今とでの比ではないよね、難易度の差が違いすぎる。それくらいは気合いでGo。

BTC Visibility SwitcherとBTC Multiple Applierは別プラグインとして開発予定

VSSに関しては、BTCとは無関係なので別プラグインとして開発予定。

BTC MAに関しては、BTCがインストールされていることが前提なので、BTCのアドオンとして別開発。BTCがないと使えない機能なので。BTCの機能を呼び出す方向での実装を考えているので。優先度はVSSの次。


色々考えたんだけど、名前の単一性の確保とBTCのデータベース管理とは関係がある。なので、BTCを導入した環境ではBTCと連携し、BTCを入れていない場合には単体で動作する仕様にする予定。やっぱりBTC派生のアイディアなので、名前にBTCは冠する予定。

アルゴリズムは決まった(笑)早いな。あとは実装するだけだ。


*何にしても実現したらZbrushがさらに便利に

というか、仮に完成してもようやくZbrushが普通に使えるツールに近づくだけなのだが。マイナスがゼロに近づくイメージ。まだまだだ。Zbrushの使いにくさは、実はサブツールの管理のし辛さにあるのだと、今更ながらに気付いた。


今後の開発に乞うご期待。
寄付大歓迎(笑)

Zbrush用プラグイン「Back To the Center」(斜め配置と原点配置とを往復可能) - YAMATO - BOOTH


今日のアイディアはここまで。

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