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

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

8方向のスクショをまとめて一気に保存するツールの開発秘話

(約 4,800文字の記事です。)
f:id:yamato-tsukasa:20190424014135p:plain

新しいプラグインを公開しました。その名もずばり「8方向のスクショをまとめて一気に保存するツール」です。そのまんまの名前です。解説不要なくらい分かりやすい。
8方向のスクショをまとめて一気に保存するツール(正確に45度回転のスクショが撮れる) - YAMATO Tools - BOOTH

booth.pm

きっかけはユーザー様からのリクエスト

リクエストを積極的に受け付けているわけでない。そんな文言は私の発する情報のどこにもない。だって受託開発するつもりはないんだから。自分が必要なツールを作って、便利そうだから公開しているだけなのだから。今回、それに共感してくれる人がいて、熱烈な方でこちらが恐縮しそうなくらいだったのだが、そこでぼそっと、こんなのがあったらいいな、という一文がメッセージの中にあって。

気になっていた。内容は実現できそうな気がしたが、BTC開発時期からだいぶ経って忘れていることも多い。だが、直感では「いけるな」とも思っていた。問題はいつ作れるか、だが。

色々あって、今後も忙しくなりそうだから、やるなら近日中かな、ということで試行錯誤。で、今日完成した。

インターフェースにかける想い

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


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

実は仕様を満たすだけならZoomスライダーとSaveボタンの2つがあればお終いなのです。
私から、「キャンバスに収まる大きさより小さめにしてね」「Save後の画像で確認してね」
と言えば終わりです。

ユーザーからしても、まぁ、「間違いではないし、事実8枚の画像が手に入るならいいか」ということになると思います。画像ツールでトリミングするか、で済ますことも出来るでしょう。

ユーザーに○○を強いるツールなんてツールではない、というポリシー

では使いやすいか?と問われるとNoです。ユーザーに○○を強いるツールなんてツールではない、というポリシーです。ワンクリックで全てが終わることが理想であり、それを常に意識してプラグインを作っています。これはYAMATO Toolsに一貫するポリシーです。

まず、Zoomスライダーの数値幅ですが、これはユーザーのオブジェクトが2Zbrushユニット単位より大きいか小さいかで変わるため、幅を持たせたスライダーにせざるを得ません。となると微調整がとても難しい。しかも微調整後にFrontかSideボタンを必ずクリックしなければならないのがとても面倒。

±ボタンを実装しました。

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

これでワンクリックで即座にオブジェクトが拡縮する。これはいい。
これも、今は10ポイントで移動しますが、20ポイントにしたり、15ポイントにしたりと試した上での中庸を選んだ結果、10ポイントとしました。多少のことなら連打してくれ、という思いと、30ポイント移動用のボタンを作るとユーザーインターフェースがごちゃごちゃする。使ってみると、微妙に遠くても多少連打すれば想いの位置にピタリと収まるのだからそれでよしとしました。±ボタンに真に求める価値は「微調整」だからです。

連打クリックは楽で、2つのボタンを交互にクリックするのは地獄。

ボタンも+とマイナスの二択なら誰も迷わない。クリックすれば即座に変化が見て分かる。これ、わかりやすさそのものです。Zoomスライダーを何度か試したら、誰しもが迷わずFrontボタンを押すでしょう。だってスライドさせただけなら何も起こらないもの。それを2,3回繰り返せば、だいたいの位置に拡縮させられるはず。
あとは何にも言わなくても、何となくプラスマイナスボタンを押すでしょ?見た目が変化するでしょ?あとは連打するのが自然な流れ。で、イメージ通りの位置に来る。

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

次に、Sideボタン、気になるでしょ?

押すでしょ?側面視になる。これ、例えば立絵なら別にいいけど、ユーザーは実は「自動車」をモデリングしているかもしれない。となると、側面視でキャンバスからはみ出たら画像保存やり直しだよね?それは面倒くさすぎる。

ということで、Sideボタンで側面視を確認した後に±ボタンを押しても、いちいち正面視に戻らないような一工夫が仕込んであります。(地味にメモリにわざわざ変数を1個格納させてそれに基づいてFrontかSideかをキープさせてます)

普通にやると、1ボタン1機能なのです。条件分岐を仕込んでいます。誰も気付かないだろうな……。

斜視図が最大投影面積の可能性

前も横もOKなら、じゃあ8枚出力か?Noです。槍を構えたフィギュアなら、実は斜めから見た時の投影面積幅が最大で、キャンバスから切れるかもしれない。そこでリアルタイムプレビューボタンPreview 8の実装です。

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

これも、実は、オブジェクトをどんな適当な位置に置いても、これをクリックすると真っ正面にきて、「一呼吸置いてから」回転し始めるのですよ!ボタンクリック直後から回転開始までの間にワンクッション遅延をかませています。そうしないといきなり回り始めてNo.2のアングルを見逃すのです。作者が見逃すくらいだからユーザーは絶対見逃す。というわけでディレイを入れていたりします。細かいよね~。

回転速度も、0.2秒、0.25, 0.3, 0.4秒 などいくつか試してほどほどの速度、イラつかない時間数ということで0.25秒にしています。

ちなみにSideボタンがなかったときには1秒まで設定しました。8秒もかかる。イライラするので、Sideボタンの必要性に気がついたのでした。


さて、ここまでくれば満を持してSaveすれば99%問題なしだ。

保存形式をPNGに限定した理由

が、保存形式も、jpeg, png, psd, bmp, tiffとあるが、Jpegだけは仕様上複数処理がNGだったので除外。当初、マルチ拡張子に対応できるようにしようとしたが、Zbrushのインターフェースで拡張子の扱いが微妙で、ユーザーが拡張子を打たないとそのまま拡張子なしファイルができる(ファイル形式自体は指定した物になっているが、アイコンは謎アイコンのファイル)

で、一番汎用性のあるPNGに固定すると拡張子があっても無くても強制的に.pngにできるので安定動作する。

反時計回りの可能性

これで完璧かと思ったが、まだ足りない。もしかしたら世の中には時計回りではなくて反時計回りでないと困る人がいるかも知れないぞ?ということでReV(Reverse、リバース)ボタンの実装です。


とまぁ、たった8つのボタンにここまでの物語が隠されていたのです!だからあっさりと普通に思い通りに使えたはずです。そういう風に作ったからです。

英語訳が地味に時間を取られる

ちなみに、マウスホバーで出てくる解説の英語も全部自分で翻訳してます。もちろんGoogle翻訳も使っていますが、半分は当てにならないので自分の英語力で書いてます。(Screenshots [were] saved. ではなくてScreenshots [have been] saved. にしてあるのは、現在完了形で「たった今それが完了した」という意味を表現するためです。また、未来形のwill なのか、当然そういう動作をする「現在形」なのかも意識して書いてます。)

なので、プラグインの英語名称が、マルチスクリーンショットではなく、マルチスクリーンショッ「ツ」になっているのも、スクショが複数枚あって成立するプラグインだからです(笑)

人がツールを使うのであって、人がツールに使われるべきではない

こんな具合に、見た目だけでは分からない沢山のエネルギーが、私の作るプラグインに注がれています。だからこそ、自分で作って使いやすいし、人が使っても使いやすいはずだと自信を持っておすすめできるのです。これは今後のプラグイン開発においても変わることはないでしょう。人がツールを使うのであって、人がツールに使われるべきではないのです。私にとって重要な考え方です。

で、こんな試行錯誤をBTC(Back To the Center)プラグインの開発ではこの20倍くらいは軽くしてます(笑)フローが2系統もあるし、パーツ間の回転情報コピペだったり、サブツール名をサーチしていたりなど、本当に10万文字のコードは半端ないんです。ユーザーからはサクサク動いて便利、位にしか思われていないだろうけど。それでいいのだろうけど。むしろそうでないと作った意味がないんだけど。使いやすさの効果の何十倍も、裏で試行錯誤して苦労した結果が「使いやすさ」なのです。これは作る側に立たないと分からない。そしてそれを感じさせないのが真の使いやすいツールだと思っている。

便利なツールなので使ってみてください

8方向のスクショをまとめて一気に保存するツール(正確に45度回転のスクショが撮れる) - YAMATO Tools - BOOTH

といっても、アマチュアのホビーユーザーには「45度」にこだわる理由がない人も多いので、むしろ時間との勝負の商用ユーザーに使ってもらって楽してもらいたいと願っています。納期前の「分単位」のピリピリした中、何度も8枚のスクショを取るくらいなら、ワンクリックで済ませてください。撮り直しもワンクリックです。

シンプルだけど強力、シンプル故に安定している、シンプルだから信頼で出来るというのは、1本の線でつながっています。
YAMATO Toolsも極限までシンプルにこだわって作っています。ワンクリックで完成というのもその象徴です。

シンプルだけど、シンプルだからこそ、力強い。

これがYAMATO Toolsのコンセプトです。
なんてったって、私自身が最高に面倒くさがりだから(笑)


じゃあ何でZscriptなんてマイナーな言語で1ヶ月近くかけてプラグインを作ろうと思ったのかって事自体が矛盾してるけどねw



でもさ、








無いなら作るしかないでしょ?
クリエーターなら。






プロとかアマとか関係ないよね。

心が叫びたがっているんだ!


今回の創作活動は約30分(累積 約846時間)
(246回目のブログ更新)