VRChatパブリックログ

VRChatでの体験を紹介します

【Blender講座】自動スムーズとシャープ辺で面をキリッとさせよう

スムーズ面って面がぼやぁっとするんだよなあ

f:id:mekokka:20180827004250p:plain

メガネのモデル、全てのメッシュをスムーズ面に設定したところ。全体にスムージングがかかるのでぼんやりしている。

最近フレンド間で小物を作るのがプチブームなのですが、フレンドが作ったもののメッシュの法線がぼんやりしているものがあり、設定を聞いてみたところ、シャープ辺を使っていないことが原因だったと言うことがありました。

メッシュの法線は詳細にはノーマルマップなどで定義する必要があるので難しいのですが、頂点や辺ごとにならば、Blender上で簡単に法線のつけかた*1を自動設定することができます。

この設定、以外と知らないでモデリングしている人も多いようです。

主に使うのは「自動スムーズ」と「シャープ辺」です。この二つの機能を知っている人はブラウザバックでいいですね。

今回は上記二つの機能を使って、ぼんやりしている面をきりっとさせる(法線をととのえる)方法を紹介します。

f:id:mekokka:20180827005923p:plainなめらかにしたいところはなめらかに、カクカクさせたいところはピシっと、この外見を目指す。

どんなときに必要か

日本ユーザーの間でよく使われるアバターのシェーダーは基本的にトゥーンシェーダーで描画します。トゥーンシェーダーは光源処理を簡略化していることが多いので、マットキャップなどを使わないのであれば、法線が乱れていても全く問題ありません。

問題は無機物などのモデリングをして、Unityのスタンダードシェーダーのような光源処理が厳密なシェーダーを利用したい場合です。法線の乱れがそのまま描画に影響するので、かっこよくするためにはシャープ辺を用いて法線を整える必要があります。

やり方

f:id:mekokka:20180827005730p:plainスムーズ面に設定している場合の外見

f:id:mekokka:20180827005747p:plainフラット面に設定している場合の外見

特に設定せずにモデリングを進めた場合、上のどちらかのような外見になっていると思います。ぼんやりしていて変なところに影ができる全スムーズ面か、一昔前のゲームみたいなカクカクポリゴン表示の全フラット面かのどちらかです。

これの設定を整えて想定ししている外見に近づけていきます。

実際には、全面スムーズ面にしてから部分的にシャープ辺を挿入していく方法と、全面フラット面からスムーズ面を挿入していく方法がありますが、大抵のモデリングでは前者の方法で形を整えると思うので、今回はシャープ辺を挿入する方法を説明します。

1.メッシュのオブジェクトを選択し、全スムーズ面に設定する

オブジェクトモードで編集したいメッシュを選択し、左のメニューからツール→シェーディングで「スムーズ」を選択する。
f:id:mekokka:20180827011211p:plain

2.自動スムーズを設定する

オブジェクトモードのまま、画面右のプロパティ(デフォルト設定の配置)のオブジェクトデータの項目を開き、ノーマル→自動スムーズのチェックボックスをON。角度を180度に設定する。

この角度は、面のなす角度によってシャープ辺とスムーズ辺を自動で切り替えてくれる機能ですが、今回は手動でシャープ辺を設定したいので、180度に設定して、この時点では全ての面がスムーズ面になるようにしました。

f:id:mekokka:20180827011837p:plain

3.シャープ辺を設定する

最後は編集モードに切り替えて、シャープ辺を割り振る作業です。

f:id:mekokka:20180827012300p:plain

画面中央の角の部分が全部スムーズ面なのでぼんやりしています。

f:id:mekokka:20180827012412p:plain

角をつけたい辺を選択して、Ctrl+E→シャープをつける*2を行うことで、選択された辺をシャープ辺に設定して、角をつけることができます。

f:id:mekokka:20180827012734p:plain

シャープ辺に設定された辺は水色で表示されます。

f:id:mekokka:20180827012847p:plain

全て設定しました

f:id:mekokka:20180827012947p:plain

オブジェクトモードに切り替えて頂点の表示を消すとこのようになります。なめらかにしたい部分はなめらかに、角をつけたい部分は角になります。シャープ辺を選択することでそれ以外のスムーズ面の法線の流れも整うので、全体的にしゃきっとした見た目になりました。

以上で完了です。

このままfbxファイルを出力してUnityに持っていけばこの設定のままVRChatでも表示されます。特に無機物のモデリングをするときは重要な設定項目だと思うので、活用してください。

*1:面の傾き

*2:ショートカットを使わない場合は左のツールや下のメッシュのプルダウンメニューから選択