2021年05月19日

【自キ】blenderで面が裏返る問題の解消

閉じた面で構成されたオブジェクト、
たまに面が裏返ってることがある。

これだとDMM.makeのチェックを通らない。
(前は自動または手動で直してくれたが、
最近はキャンセルされることが増えた)

その気づき方と直し方。


そもそもなんで面が裏返るのか?
という話でいうと、
そもそも、
「blenderの面が法線を持っており、
オブジェクトは面の法線が物体の外に全て向いている」
仕様だからだ。
これになっていないと、
「どこかがおかしい物体」扱いされるということである。


オブジェクトを見たときに、
周囲より一際濃い、黒っぽい面があったら、
裏表逆を疑った方が良い。

影になってて暗いのは区別がつかないが、
灯りの当たるところでもなお暗いなら、
チェックをしてみよう。

面の法線表示をする方法、
裏返ってる面を表示する方法などがある。
(バージョンによって微妙に違うらしいので、
詳しくはぐぐってね)

これで裏表逆を見つけたら、
面を選択してFlip normalsを適用すれば良い。
(複数面選択状態でもいける。裏表逆の面を選択する方法はないっぽい?)

どういうときにその異常が発生しやすいだろうか?

1. 立体の、もと裏面を使って作った
2. 中空の物体に発生しがち
3. 反転しようとして-で拡大した
4. 小数点以下の拡大とかでまれに-拡大になるらしい(バグ)


1. 立体の、もと裏面を使って作った

キーキャップのトップ面のスフェリカル型の凹みは、
大きい球をつくり、上だけ残して、
上下反転してつくった。
凸面の裏をつかって凹面をつくったわけだ。

そのままFで線や面を繋いでつくったので、
凹んでる部分だけ裏のままが残っていた。

物体から球でくり抜く方法では、
直感的に大きさや深さをとらえづらいためにこうした手法で作ったんだけど、
裏面が裏面のまま放置されるとは知らなんだ。

これは原因がはっきりさせやすい。
ただしオールキーキャップのトップ面をいちいち選択して裏返すのは、
かなりめんどい手作業だ…(やった)


2. 中空の物体に発生しがち

今回の警告は、
薙刀式ロゴがうまくBooleanされておらず、
立体の中に面が残ってしまったままだったのが原因のようだ。
で、そもそもロゴの中に裏表逆の面があって、
それがBooleanのバグの原因になっていたようだ。
(裏表が一部逆のオブジェクトのBooleanはバグる)

で、薙刀式ロゴは複数のオブジェクトの集合体なので、
たとえば文字の「R」でくり抜いたとき、
中空部分が反転してしまうような現象が、
漢字の中空パーツ中に存在したようなのだ。

表示の角度が悪くて面が暗いのではなく、
表裏逆の兆候だったと知らなかったため、
これに気づけなかった模様。

とくに薙刀式ロゴは、
イラレファイルをインポート→カーブ→メッシュ変換
→頂点を簡略化して減らす→Eで押し出して立体化
と複雑な変換工程を経ている為、
中空部分がどこかで裏返ったくさいんだよね。
どっかで裏返ったら、以降ずっと影響があるみたい。

文字系は複雑な形をしてるのでご注意を。


3. 反転しようとして-で拡大した

Adobe系ではx軸に反転したかったらx方向に-100%拡大することで、
実現している。
これの癖でどこかで-100%拡大をしたことで、
面が裏返るそうだ。
そんなん知らんやん。
Ctrl+Mの軸反転を使えば大丈夫っぽい。


4. 小数点以下の拡大とかでまれに-拡大になるらしい(バグ)

小数点のバグがあるそう。
これはネットに症例があった。
幸いこれに当たったことはない。


一部の裏返り面を持つオブジェクト同士のBooleanなどは、
正しく機能しないことがまれによくある。
物体内に面が残ったり、
二重の点や線が残ったりする。
(Remove doublesをかけて、0か1以上かで異常検知できる)
簡単な形同士ならぐるぐる回してるうちに気づくけど、
複雑な物体になればなるほど、
目視で確認することは難しくなる。

上であげたことをやるときに、
「面が裏表逆になりえるぞ」と注意するには、
一度全キーキャップの裏表逆の面を、
全部選択して手作業で裏返さないかぎり、
痛みとして覚えられないだろうね…


自キ3DCAD勢はお気をつけを。
僕はCAD初心者なので…
posted by おおおかとしひこ at 21:17| Comment(4) | カタナ式 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
すでに調べられているかもしれませんが、Blenderの面が一部裏返っている場合の対処法について、本記事中の方法以外に以下のやり方でも簡単に解消できます。

・編集モードですべての面を選択(ショートカット:A)
・メッシュ>ノーマル>面の向きを外側に揃える(ショートカット:Shift+N)

閉じた形状であればこのやり方の方が楽だと思いますのでお試しください。
Posted by ヒガシ at 2021年06月15日 21:36
>ヒガシさん

ああ、そんなコマンドがあったとは…
ありがとうございます。
もともと球体の凹面を利用したことが、裏返りの原因でした。

しかし「その機能はあるのか」を調べるのが大変難しいですね。
僕の持ってるやつは英語版なので二重に面倒だし、
normalが法線なんか英語で幾何学やってないので知らんわって感じ。

日本語版探そうか迷うな。
僕の目的は小説を書くことで、そのためにキーキャップのモデリングしてるだけなんすよね…
Posted by おおおかとしひこ at 2021年06月15日 22:09
全く専門が違うのに自分の必要とする道具を手に入れるために3Dモデリングまで覚えてしまう熱意は尊敬します。
確かにそもそもどんな機能が存在するかがわからないところから覚えていくので大変ですよね。


インターフェイスの言語はあまりに昔のバージョンでなければインストールしなおさなくても切り替えられると思います。

Ver2.8×系であれば、

 Edit>Preferences
 ↓
 開いたウィンドウの「Interface」タブの中の
 「Translation」>Language
 から使用言語選べます。

2.7の場合はこちらのサイトに説明がありましたので参考まで貼っておきます。

https://jp.renderpool.net/blog/blender%E3%81%AE%E6%97%A5%E6%9C%AC%E8%AA%9E%E5%8C%96#ver279


Posted by ヒガシ at 2021年06月15日 23:11
>ヒガシさん

ありがとうございます。困った時は参考にします。

「そもそも面には裏表があり、
それらが混在するとstlファイルに問題があると警告される」は、
blenderの中にいる時は知り得ない概念なので、
それを最初に教えてくれよ、って感じですね。
だったらそうならないようにモデルを作っていったものを…
手作業で36モデル分の修正はたいへんだったなあ(遠い目)
Posted by おおおかとしひこ at 2021年06月15日 23:32
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

※ブログオーナーが承認したコメントのみ表示されます。