検索対象:検索ほろほろりなゲーム置き場ジャンル雑多なゲーム・ゲーム制作関連のブログ記事置き場。最近はBlender中心に学習中。方法について取り上げさせていただきたいと思います。※この記事は、連載記事となっております。この記事単体でも読める内容とはなっておりますが、『シェーディング』についてよくご存じない方は、前回の記事をご覧になることをオススメします。[シェーディング]前回の記事では、「『シェーディング』とは?」といった基礎的な知識を重点的に、基本となる「メッシュ全体の『シェーディング』の変更」と、「メッシュの一部だけ『シェーディング』を変更」する方法について取り扱わせていただきました。今回は、実は前回省いてしまった『シェーディング』において重要な『法線』についての基礎知識から、更に、『法線編集』で『シェーディング』を別物のように変化させる方法についても、取り扱いたいと思います。今回取り扱う内容も「知識」に重点を置いたものとなり、概要は以下のようになっております。加筆修正を行いました。加筆修正を行いました。加筆修正を行いました。(Normals)』とは?非常にざっくりとした説明になりますが、”法線(Normals)”とは、「線や面に対して垂直な方向を表すもの」で、光の反射や、衝突演算などで使われるものです。ほとんどの3DCGソフトでもそうだと思いますが、Blenderではメッシュを作ればそこでもう自動で”法線”を計算してくれて、意識しなくても非常にクオリティの高い描画をしてくれるので、意識することが少ないかもしれません。※ごく稀に、面が逆になった時に、「面の向きを外側に揃える([Shift]+[N])」を使ったりしますが、あまり無いので。“法線”という物を、Blenderで活用・編集する方法だけに絞ってご紹介します。FreeStyleWiki特に難しい計算などはやらないですし、大体はBlenderが自動でやってくれるので、気構えず気楽にいてください。3Dビュー上での『法線(Normals)』の表示方法メッシュオブジェクトの”法線”については、[ビューポートオーバーレイ]のプルダウンメニューの中の[Normals]という項目にある各ボタンを操作すれば、各面・頂点などの法線を表す線を表示させてくれる機能があります。目で見ることができれば、直感的にも分かりやすいかと思いますので、触って確かめてみてください。ボタンは右から、それぞれ下記についての設定を操作出来るボタンとなっております。面法線の表示スライダーバーは、「法線の表示サイズ」を設定できます。『シェーディング』と『法線』の関係とは?『法線』というものを扱うのに1つだけ認識しておいてほしいのが、『シェーディング』と『法線』の関係です。『法線』は、『シェーディング』を行うのに、使うと格段に立体感が出る、『シェーディング』にとって大変重要な情報。前回の「『シェーダー』とは?」の項では、次のようなことを書いたと思います。「陰影付けや表面の質感や凹凸の設定、各画素の表示色の決定などを行うプログラム」の事を『シェーダー』と言い、『シェーダー』で一番良く使うものが『マテリアル』。『マテリアル』にデフォルトで設定されている『シェーダー』タイプの『プリンシプルBSDF』を例にとってみると、この『ノーマル』という部分がその『法線(Normals)』です。『シェーダー』に読み込まれる情報の1つが『法線』という訳です。この『法線』は主に、「陰影付けにおいて立体感を出す」のために使われる情報です。『シェーディング』の際に「どこに、どんな風に、陰影付けすれば立体感が出るか」を決める1つの要素として、『法線』という情報が使われる、という関係なので、『シェーディング』が『法線』を使わない場合もあります。陰影の無い、立体感を無視した『シェーディング』ですね。「『陰影付け』なのに『陰影の無い』とは...?」と思われるかもしれません。自動で法線が使われている可能性もあるので、あくまでそういう”イメージ”、として例に挙げます。[3Dビューのシェーディング]の[ワイヤーフレーム]モードでの表示や、[ソリッド]モードで、[Lighting]を[フラット]に設定したような表示であれば、法線情報は必要ありません。[ワイヤーフレーム]3Dビューのシェーディング[ソリッド]モード>[Lighting]を[フラット]に設定した、Cubeの回転アニメーション結論としましては、『シェーディング』は必ずしも『法線』を使わなくても出来るけど、使うと格段に立体感が出る物、というのが、「『シェーディング』と『法線』の関係」なわけです。『法線(Normals)』編集の各操作方法について先述の通り、法線の方向は、基本的にBlenderが自動で計算してくれるものです。その例外として、法線を編集する方法も用意されています。([メッシュ]>[ノーマル])Blenderで法線を編集する方法には大きく分けて4つのタイプがあります。面(及び頂点)の法線方向を反転。法線方向を外側の向きに揃える。法線方向を内側向きに揃える。面の法線から頂点のカスタム法線を設定する。法マウスカーソルを操作して法線を編集する。任意のターゲットの方向へ法線を編集する。頂点全ての法線をマージして1つの平均法線を作成する。面の法線を分割したカスタム分割法線を作成する。頂点の法線を平均化する。法線をバッファにコピー。バッファから法線を貼り付け。周囲の頂点の法線を元にカスタム法線をスムージング。バッファや選択中の法線をリセット。指定した『面の強さ』の面を選択。『面の向き』とは?この方法では、ただ単に、面の表裏の向きを反転させる操作を行います。なってしまう面の反転を修正するのにも使うような、『法線編集』の中ではおそらく一番単純で身近な方法かと思われます。2019下の画像は、下から見上げた視点からのグラス底を、[ビューポートオーバーレイ]のプルダウンメニューの中の[面の向き]という項目にチェックを入れ、表向きの面を青、裏向きの面を赤で表示したものになります。([オブジェクトモード]表示ver)直す前(←)と直した後(→)を比較してみると、こんな感じになります。底部分(法線が正向きver)という事でこの方法は、面の表裏が逆になってしまったときの修正という目的で使われるのがほとんどだと思われます。「『スムーズシェード』に変えると、オブジェクトで変な線が出る」場合、『面の向き』が一部逆向きになってしまっている事が原因である場合が多いように思います。稀に起こるのですが、特に何も可笑しなことしていないような所で、面の向きが逆向きで生成されてしまう事があります。『フラットシェード』では、特にそこまで目立った異変は出ないのですが、『スムーズシェーディング』にすると急に変な線が出る場合、これを一度確認してみて下さい。『面の向き』の操作[反転]選択した面の法線方向を反転させます。[面の向きを内側に揃える]選択した面の法線を、メッシュオブジェクトの形状から再計算して、面の向きが外側(または内側)に向くように調整します。内側・外側の方向は、隣接する面との角度によって決まります。[面の向きを内側に揃える]いずれかの操作直後であれば、『オペレーターパネル』の[内側]という項目のチェック操作をすることで、揃える『面の向き』を反転させることが可能です。『カスタム法線』とは?『面の向き』を単純に反転させるのではなく、より複雑な『法線編集』をしたい場合には、『カスタム法線』というものを使います。『カスタム法線』は、法線の方向を、自動で計算されるデフォルトとは違う方向に編集することによって、ある種”現実離れ”、あるいは”フェイク”的なシェーディングをする方法です。ゲーム開発で用いられる手法で、低ポリオブジェクトのシェーディングをコントロールし、「より自然に見える表現」を実現するために使われます。(草や樹木などの低ポリオブジェクトに多く用いられます)。ローポリで作られた草(『カスタム法線』無しver)ローポリで作られた草(『カスタム法線』有りver)『カスタム法線』を使用していない方は、影が草1本1本毎について全体的にバラついた印象なのに対し、『カスタム法線』を使用している方は、全体でひと塊のようにまとまって見えます。Blenderでは、『面の角』ごと、『隣接面の角』ごと、または『頂点』ごとに『カスタム法線』設定が出来ます。※[オブジェクトデータ]>[形状データ]では、[カスタム分割法線データ]に『カスタム法線』のデータも一緒くたの扱いをされているようですし、表記揺れなのか『分割カスタム法線』というものもみられるので、『カスタム法線』の正確な呼称について自身がありません。ここでは仮に、「『カスタム法線』を『隣接面の角』ごとに分割したものを『カスタム分割法線』」と定義させていただき、以降、そのように記述させていただきます。設定した『カスタム法線』を一から設定しなおしたい、または削除したい場合、『カスタム法線』のデータを削除する必要があります。[プロパティエディター]>[オブジェクトデータ]>[形状データ]>[カスタム分割法線データをクリア]という項目をクリックすれば、『カスタム法線』のデータを削除することが出来ます。『カスタム法線』を使用するためには『自動スムーズ』を有効にする必要がありますが、『カスタム法線』に関する編集を行うツールのいずれかの操作を行うと、自動的に『自動スムーズ』が有効になります。1つのメッシュで『スムーズシェーディング』と『フラットシェーディング』を混在させたい時に使う機能です。『自動スムーズ』は、シェーディング方法を切り替えるしきい値として『角度』を指定できますが、『カスタム法線』を使用した場合、この『角度』での指定が無効になります。『シャープ』をマークした辺以外は全て、面間の角度に関係なく、スムーズとみなされます。『シャープ』に関しまして、詳しくは↓の記事をご覧ください。2.8]クリース、シーム、シャープの違い『カスタム法線』の操作[面から設定]選択した面の法線から、頂点の『カスタム法線』を設定します。オプションとして『シャープ』をマークした辺を強調する事も可能です。このオプションを有効にした場合、[分割]したのと同じように『カスタム分割法線』が出来るようです。[シャープ辺を維持]有効ver[回転...]選択した部分の法線を、マウスカーソルを操作して編集します。[ターゲットの方へ...]選択した法線を、任意のターゲットの方向へ編集します。対象となるターゲットは、キーで指定します。このツールを選択すると、独自の編集モードみたいな感じになります。ツール選択後、ヘッダーの表示が切り替わって、操作できるコマンド一覧と現在の状態が出てくるので、それを元に操作します。有効である間、マウスカーソルの位置に法線の方向を変更し続ける。『法線の反転』切り替え。有効である場合、指定したターゲットの方向と逆向きの法線方向になる。有効である場合、各法線は、元の値とターゲットへの方向との間の補間になる。有効である場合、全ての法線は、「選択した部分の中点からターゲットまで」のベクトルで統一される。[マージ]選択した頂点ですべての法線をマージし、全ての面に対して1つの平均法線を作成します。言葉の意味合い的にもですが、[分割]の反対のような気がします。『カスタム分割法線』を『カスタム法線』にまとまめるのにも使えそうです。[マージ]使用前[マージ]使用後[分割]選択した頂点から『カスタム分割法線』を設定します。『カスタム分割法線』とは、『カスタム法線』を面の数だけ分割したもので、その頂点に構成されている面毎の別々の法線を作成します。[面から設定]から設定される『カスタム法線』の分割バージョンですね。[分割]の、見た目にも分かりやすい[面から設定]との違いは、選択した中で『辺』が形成されていれば、もれなく『シャープ』がマークされるというところです。『シャープ』に関しまして、詳しくは↓の記事をご覧ください。2.8]クリース、シーム、シャープの違い[分割]使用前[分割]使用後[平均]選択中の頂点の法線を平均化します。平均化タイプが3種類あるようです。[回転...]を使って適当に法線の方向を編集しておくとします。面積タイプと、コーナー角度タイプは、どちらもメッシュの面の情報から計算して、編集した法線方向が大体元の方向に戻るようです。何か分かったら追記します...。『法線のベクトル情報』とは?選択した要素の『法線のベクトル』を使用して操作を行います。ツールによっては『バッファ』を利用して、ベクトル情報をコピー・貼り付け、といったメッシュの要素間でのベクトル情報の受け渡しが出来ます。(※ただし1度に扱えるベクトル情報1つずつのようです)バッファとは、複数の主体がデータを送受信する際に、処理速度や転送速度の差を補うためにデータを一時的に蓄えておく記憶装置や記憶領域のこと。e-Words『法線のベクトル情報』の操作[ベクトルをコピー]単一の法線が選択されている場合、法線をバッファにコピーします。今回は例えばこの位置の法線ベクトルをコピーしてみます。[ベクトルを貼り付け]選択した法線にバッファ内の法線を貼り付けます。先程の[ベクトルをコピー]でバッファに保管したベクトルを取り出して、この位置のベクトルに貼り付けします。オプションとして、[絶対座標]でベクトルを貼り付けることも可能なようです。[ベクトルをスムーズに]選択したカスタム法線を周囲の頂点の法線を元にスムージングします。オプションの[係数]から”0′′~”1′′までの数値で、スムージングの度合いを指定できます。[ベクトルをリセット]バッファや選択中の要素の法線をデフォルトの状態にリセットします。当然ですが、『バッファ』もリセットするので、[ベクトルをリセット]した後に[ベクトルを貼り付け]しても、ベクトル情報が残っていないので、貼り付けられません。一度[ベクトルを貼り付け]したい場合は、また[ベクトルをコピー]からやりなおす必要があります。『面の強さ』とは?法線に影響を与える方法で、メッシュの『面』毎に設定できる『面の強さ』を操作する、という方法があります。※『面の強さ』は『重み付き法線モディファイアー』と組み合わせて使うことでシェーディングに変化が出せます。メッシュの『面』毎に『面の強さ』を”弱”、”中”、”強”で設定し(デフォルトでは”中”)、シェーディングに影響を与えます。頂点で交わる複数の法線を組み合わせる時、『面の強さ』が強い方の面の法線情報が、シェーディング時に優先されます。『面の強さ』の操作[面の強さで選択]『面の強さ』を”弱”、”中”、”強”から指定し、その『面の強さ』を持つ面を選択状態にします。[面の強さで設定]選択中の面の『面の強さ』を、”弱”、”中”、”強”の中から選んで変更できます。法線を編集する機能を持つ『モディファイアー』をご紹介します。メッシュの[面]がそれぞれ保持する『面の強さ』を操作できます。...法線の編集が可能です。別のメッシュから法線をコピーすることが出来ます。今後、それぞれの『モディファイアー』について、詳しい解説記事を執筆予定です。wiki参考にさせていただいた書籍(マテリアルに関するオススメ書籍)Blenderではありませんが、3DCGモデルに「法線編集」を施すという知識は、こちらの書籍から学ばせていただきました。(2020/1/18時点)楽天で購入それ以外にも、私の中の「マテリアルの知識の基礎」はほとんどこちらの書籍で得た、と言っていい程、「マテリアルの基本~応用した実践的な事」までを学べる良書だと思います。4に興味があって、且つ、「マテリアルについて全くの初心者さん」である場合の、マテリアル学習”第一歩目”、としてもオススメの書籍です。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。twitterfeed当ブログと管理人についてはをご覧ください。twitterfeed。