Metasequoia 4以降の新機能(法線)

8 min読了の目安(約7700字IDEAアイデア記事

はじめに

以前主に自分のためにQiitaでメタセコイア4の便利な使い方・強化された機能及び新機能という記事を作りました。
その中でMetasequoia 4(以下メタセコ4)以降で追加された新機能については説明しきれなかった部分があるので追加で解説をしたいと思います。

記事の投稿はZennを使用してみました。

記事の概要

Metasequoia 4.6から法線編集機能が追加されました。
この法線編集機能についての解説及び、便利な使い方を説明したいと思います。

今までメタセコでは法線を個別に設定することはできず、オブジェクト設定のスムージングでしか法線の変更はできませんでした。
オブジェクト設定の場合、面や点に個別に法線を設定することはできず全体に適用されてしまうため、法線を編集したい場合は別ソフトを使用しなければなりませんでした。
公式でも多少紹介されていますが、詳しい解説はメタセコに付属しているマニュアル(メニューの「ヘルプ」、「目次」の順にクリック)を見た方が良いと思います。

基本的な使い方

点や面ごとの法線を変更することができます。
法線とは何かというとポリゴンの向きを示します。
非常に長くなってしまうため、詳細はこの記事では解説しません。

メタセコの場合は法線を変更した場合、マニュアルによると、

編集された法線は固定され、他の編集コマンドでオブジェクトの形状を編集しても向きが変わらなくなります

とのことです。
法線を編集したあと元々のオブジェクトの形状に沿った法線を適用したい場合は編集をリセットもしくは解除する必要があります。

操作方法

1. 編集オプション

画像の赤枠の部分で編集時の操作方法を変更することができます。
点|辺|面か、面角どちらかを選択することが可能です。
setting_01

1.1. 点|辺|面

点、線、面を選択して法線を変更することが可能です。
どの方法を選択するかによって影響する範囲が異なるので細かく解説したいと思います。


頂点の法線を変更します。
vertex_normal_edit_01
点をクリックして法線を変更した場合、この頂点を持つ面全てに影響を与えます。
vertex_normal_edit_02


辺の法線を変更します。
side_normal_edit_01
辺をクリックして法線を変更した場合、この辺をもつ面全てに影響を与えます。
点をクリックして変更した場合とを比べてもらえるとわかりますが、点の法線を変更したときとは異なり選択した辺の左右にある面の頂点の法線は元のままになっています。
side_normal_edit_02


面の法線を変更します。
surface_normal_edit_01
面をクリックして法線を変更した場合、選択した面の頂点のみに影響を与えます。
点や辺と比較すると、その面の頂点のみに影響を与え、同じ頂点でも他の面の頂点の法線は元のままになっていることがわかります。
surface_normal_edit_02

1.2. 面角

面角はその面の頂点の法線を変更することができます。
操作としては頂点を選択するときの操作に近いですが、編集を行いたい面が黄色の状態になっていることを確認してその後編集したい頂点を選択します。
face_angle_normal_edit_01
面角をクリックして法線を変更した場合、その面の頂点のみに影響を与えます。
面選択の頂点版と考えた方がわかりやすいかもしれません。
face_angle_normal_edit_02

2. 表示オプション

画像の赤枠の部分で編集時の操作方法を変更することができます。
display_setting_01

法線表示

チェックを外すことで法線を非表示にすることができます。
非表示にした場合選択中の法線のみ表示されるのかな?と思ったら選択中の法線も表示されなくなりました。
どんな場合でも全く法線が表示されなくなってしまうので基本的には使用しないと思います。

表示設定

赤枠右側のレンチのアイコンをクリックすることによって表示設定を変更することができます。
オブジェクトの形状によっては見づらくなることがあると思うので、見づらくなった場合はこちらから変更できます。
初期設定に戻すで元に戻すこともできます。
display_setting_02

ハンドル

チェックを外した場合、後程解説する「回転」で編集を行っている場合に表示されるハンドルを非表示にすることができます。
こちらも基本的には使用しないと思います。
display_setting_03

3. 移動と回転

法線を手動で変更する場合は「移動」または「回転」を行うことができます。

移動

法線をドラッグした方向に移動させます。
下の図では面を選択した後下に向かってドラッグしました。
青い法線が元々の位置の法線になります。
normal_move_01

回転

法線をハンドルまたはマウス操作で回転させます。
ハンドルを非表示にしている場合はマウスのドラッグで回転になりますが、どれだけ回転させたかが非常にわかりづらいです。
的にはハンドルを使用して回転させた方が良いです。

x、y、z軸それぞれ個別に変更したい場合は移動より回転の操作で編集した方が操作しやすいと思われます。
normal_rotate_01

4. 単一化と平均化

ここからは追加操作です。

単一化と平均化の違いは、単一化は選択した範囲にまとめて実行しても同一頂点の法線にしか影響しませんが、平均化は半径を設定した場合、選択した範囲内の頂点の法線がそれぞれ影響を及ぼす形になります。
複数のオブジェクトに対して実行していないので推測ですが、平均化で半径0を指定した場合は単一化の動作と同一になる気がします。

単一化

同一の頂点に対して複数の法線があるときに法線を統一します。
単一化を行う場合は基本的に線または辺を選択する必要があります。
面選択の場合は複数の面が選択されている必要があります。

下の図は真ん中二つの頂点(オレンジ枠)に対して単一化を行いました。
左右の緑枠と違い、法線が一つになっていることがわかります。
normal_integration_01

平均化

選択した頂点の法線の向きを平均化します。
normal_average_01
また、平均化をする場合に半径を0以上にした場合は設定した半径を元に(恐らく球状の)範囲を設定し、その範囲内の法線の平均の法線が与えられます。

下の図は半径が5の場合の平均化の結果です。
上の図と比べてみると、円柱の上下の法線の角度が緩やかになっていることがわかります。
normal_average_02
半径が0の場合(この説明の最初の図)と半径が5の平均化の結果を法線無しで並べてみました。
半径0と比較して、全体的にスムージングが掛かっていることがわかると思います。
normal_average_03

5. 転写

自分で法線を編集するのではなく、別のオブジェクトの法線を現在のオブジェクトに適用します。
注意点としては、転写を使う場合は転写を行いたいオブジェクトを選択状態にする必要があります。

転写はよく使用することになると思うので後程追加で説明します。

6. 固定とリセット

頂点を固定またはリセットします。
リセットは編集した法線の初期化を行うことも可能です。

固定

選択した部分の法線を固定します。
頂点を固定した場合はメッシュの形状を変更しても変更後の形状に基づく法線の再計算が行われなくなります。

なお、頂点を固定した場合でも移動、回転、単一化、平均化、転写を実行した場合は影響を受けます。

下の図を例に示します。
左側は頂点を固定したあとメッシュの形状を変更しました。
右側は頂点を固定せずにメッシュの形状を変更しました。
左側はメッシュの形状に沿わない影が当たっていることがわかります。
normal_fix_01

上の形状を横から見てみます。
青色が隣接する面の法線、黄色の法線が固定化した部分です。
normal_fix_02

リセット

法線を初期化します。初期化される内容は以下になります。
リセットでは折り目の解除が出来ません。折り目の解除を行う場合は解除を選択する必要があります。

  • 頂点の固定
  • 法線の移動・回転
  • 法線の単一化(平均化)
  • 転写

7. 折り目と解除

選択した部分のシェーディングを際立たせます。
折り目の解除を行う場合はリセットではできません。
必ず解除を選択する必要があります。

折り目

ハードエッジ化するともいいます。
実行すると選択した部分の頂点の法線が単一になっていた場合は分離します。
折り目を設定する場合は面選択になっている必要があります。
折り目が設定された場合辺の色が変更されます。(標準色だと黄色)

下の図は上半分に折り目を適用しました。
下半分と比べて面がカクカクしているのがわかるでしょうか。
hard_edge_01

ハードエッジやソフトエッジの詳細については下記の記事が詳しいです。
【Maya超基本8】ソフト/ハードエッジ と ヒストリ
Filament公式ブログ 「法線」について

注意点

尚、アウトラインを表示する場合はハードエッジを多用するとアウトラインが分離してしまうので、使いどころを注意した方がよいです。
VRChatでUTSを使用する場合は確実にアウトラインが分離してしまいます。
ハードエッジにしないようにするか、ハードエッジにも対応しているシェーダを使用しましょう。

https://twitter.com/AkatsukiWorks/status/1019630664654524416

解除

折り目を解除します。
折り目が解除された場合、辺の色が元に戻ります。

便利な使い方

ここからはよく使用される方法を説明していきます。

法線を別オブジェクトから転写する

twitter等で良く説明される方法です。
法線転写用のオブジェクトを別に作っておき、転写用のオブジェクトの法線を現在編集中のオブジェクトに転写するやり方です。

  • 法線転写用のオブジェクトを作成
  • 転写したいオブジェクトを選択
  • 転写したい面 or 線 or 点を選択
  • コマンドの転写をクリック
  • 転写元オブジェクトに法線転写用に作成したオブジェクトを選択

メタセコ4での法線転写はまじかる☆しげぽんさんが動画サンプルをあげています。

https://twitter.com/m_sigepon/status/1305825878736207873

こちらはBlenderですが顔の影の変化がわかりやすいのでリンクを貼っておきます。

https://twitter.com/K_youhinten/status/1174230529610326016
https://twitter.com/K_youhinten/status/1270393887136157699

アニメ調のキャラクターの顔や髪はそこまで立体的な影が落ちることは少ないです。
しかしモデルを作成したそのままの法線ではかなりリアルに影が落ちてしまい、アニメ調のキャラとしては不自然な影になってしまいます。
そこで狙った形に影が落ちるように法線を編集してあげる必要があります。
一つ一つ法線を編集することもできなくはないですが、非常に時間がかかってしまいます。
基本的には理想に近い法線を持つオブジェクトを作成しておき、そのオブジェクトの法線を転写する方式が行われています。

法線の編集を行う必要性についてはこちらでも説明されているため、リンクを貼っておきます。
GUILTY GEAR Xrd開発スタッフが送るアニメ調キャラモデリングTIPS
blenderでToon用に顔の法線を整える

参考

まじかる☆しげぽん さんのツイート
クロイニャン さんのツイート
クロイニャン さんのツイートその2
GUILTY GEAR Xrd開発スタッフが送るアニメ調キャラモデリングTIPS
blenderでToon用に顔の法線を整える
暁ゆ~き さんのツイート
【Maya超基本8】ソフト/ハードエッジ と ヒストリ
Filament公式ブログ 「法線」について