blender 2.8x 以降のバージョンで注意すべき操作
blender 2.8x 以降のバージョンで注意すべき操作
先日、自作の初音ミク3Dモデルを動かしていたところ、メッシュオブジェクトの数カ所に頂点位置が崩れている不具合を見つけました。どうやら気がつかないうちに意図せず頂点を編集していたようなのです。崩れていたメッシュオブジェクトは、どれもモデリングの早期に編集が確定しており、ここ最近は触る必要がなかった(はずの)箇所でした。にも関わらず意図せずに変更が入っていたのです。今回の記事ではその原因について書いていこうと思います。
編集したはずのない箇所になぜか謎の変更が入っている
実はこのような現象は今回が初めてではなく、blender 2.8xに変えて以降はちょくちょく発生していました。指先の編集をしただけのはずなのに、なぜか髪の毛の頂点が崩れていたり下着の頂点位置がずれていたりということに暫く経ってから気がつく、ということが過去に何度かありました。ちなみに指先(ボディ)のオブジェクトと髪の毛や下着のオブジェクトは別のオブジェクトになっており、本来ボディのオブジェクトを変更するだけならば頂点位置が変わるはずはありません。
もちろんこの現象がblenderのバグにより引き起こされているとは言いません。しかし操作系のくせにより、ヒューマンエラーが発生しやすい構造になっているとは言えます。
blender2.79以前とblender 2.8x以降で大きく変わった点
blender 2.79以前では一度に一つのオブジェクトしか編集できませんでしたが、2.80になって複数のオブジェクトを同時に編集できるようになりました。(オブジェクトモードで複数のオブジェクトを選択し、その状態で編集モードに切り替える)
■頭、足、肩は別々のオブジェクト
■頭、足、肩のオブジェクトを複数選択後、同時に編集モードで編集
使ってみると実感するのですが、この変更により編集作業が相当便利になりました。
複数オブジェクトの同時編集で注意すべき点
複数オブジェクトの同時編集は非常に便利で強力な編集機能です。一方で意図せずに他のオブジェクトを気づかぬうちに変更してしまうというリスクも内包しています。では実際に意図せず他のオブジェクトを変更してしまうようなケースがあるのでしょうか。実は十分あり得るケースなのです。そういった状況が発生するケースを動画にまとめてみました。
【動画解説】
1)まず最初にフェイスパーツをオブジェクトモードで選択し編集モードに切り替えます。この状態では3Dビュー内のどこをクリックしても別のオブジェクトに切り替えることはできません。
2)別オブジェクトを編集したいときは一旦、オブジェクトモードに戻してから別のオブジェクトを選択し直します。動画では脛パーツを選択して編集モードに切り替えました。この時点では編集モードで編集できるのは脛パーツのみであり、頭部パーツは編集できません。
3)もう一度、オブジェクトモードに戻り頭部パーツを選択し直し、編集モードに切り替えます。今度は3Dビューではなくアウトライナー(右上のオブジェクト名が並んでいる枠)から脛パーツ(LBX02 shin)をクリックします。
4)すると強○的にオブジェクトモードに切り替わり、脛パーツのみが選択された状態になります。
5)この状態で編集モードに切り替えると、オブジェクトモードでは選択されていなかった頭部パーツも編集モードになり、編集可能になってしまいます。(※頭部パーツは編集モードからオブジェクトモードに切り替えられていないので、内部的には編集モードになったままであったと推測されます)
この動画では、モデル全体が見えるようにビューを設定しているので、頭部パーツが編集可能になってもすぐに気付くことができます。しかしもしこれが一部を拡大しているような状況だったならどうでしょうか、例えば脛を拡大表示していて頭部が画面の外に置かれている状態の時に、頭部まで編集可能になっていることに気がつけるでしょうか。もしも頭部が編集可能になっていることに気づかぬまま、脛部を全選択(A)し移動や拡大縮小を行なったら……
今まで自分の作業内で発生していた不具合は、このような背景で発生したと思われます。
再発防止案
不具合原因がヒューマンエラーであるならばその対策を考えなければなりません。そもそもアウトライナーでオブジェクトを選択しなければ、上記のような状況は発生しませんが、しかしアウトライナーの機能の一つがオブジェクトの直接選択である以上、それを使わないというのは作業効率の低下につながり、あまり良い方法とは言えません。それよりも良いのは設計がFIXしたメッシュオブジェクトにはプロテクトをかけて変更不可にすることです。しかしそのような機能はblenderにはありません。仕方がないので擬似的にプロテクトをかける方法を考えます。
まず一つ目はオブジェクトを選択できないようにする方法です。アウトライナーの右上のプルダウンメニューをクリックします。
選択の可否を決める三角のアイコンをクリックしてオンにします(デフォルトではオフ)
アウトライナーに選択の可否を決めるアイコンが表示されるので、編集したくないオブジェクトを選択不可にします
これで、3Dビューからでもアウトライナーからでもオブジェクトを選択できなくなりました。
もう一つは、編集モードで頂点を全て非表示にする方法です。非表示の状態は実質的に編集不可の状態でありプロテクトをかけたことと同義になります。全選択(A)コマンドは表示中の頂点のみに対してのみ効果があるので、非表示中の頂点は編集モード中の処理から完全に除外・保護されます。
以上、不具合発生状況と、その考えられる原因、対策方法でした。
おまけ
不具合修正(とblenderの強○終了連発)で作業に1日費やしたミクたち。