MAYAでモデリングをしていると、モデルが真っ黒になってしまったり、頂点が黒ずんでしまったりすることがあると思います。
ポリゴンには 向き があります。
向きを間違うとモデリングの形状は綺麗に出来ているのに、黒くなってしまったり、滑らかに作ったはずの面がカクカクしてしまう事があります。
今回はポリゴンを扱う上で大事な法線の表示方法と修正の仕方を紹介します。
|
|
頂点法線とフェース法線
ポリゴンの法線には 頂点法線 と フェース法線 があります。
頂点法線はポリゴンの頂点の向きを示す法線
フェース法線はポリゴン面の向きを示す法線
法線の表示方法
頂点法線の表示方法は
Display/ディスプレイ > Polygons/ポリゴン > Vertex Normals/頂点法線
フェース法線の表示方法は
Display/ディスプレイ > Polygons/ポリゴン > Face Normals/フェース法線
表示される法線の長さを変更出来ます。
モデリングするオブジェクトが巨大なものや小さいもの、凄く入り組んだもの などの時にどの法線なのか判別しにくい時に便利です。
Display/ディスプレイ > Polygons/ポリゴン > Normals Size./法線の長サイズ
デフォルト値 0.4 から 1.96 に変更しました。
法線の長さが変わりました。 画像は頂点法線だけですがフェース法線でも使えます。
|
バーテックスフェースの法線
頂点法線は頂点ひとつに一本の法線に思えますが、実はバーテックスフェースの法線が纏まって一本になっています。
バーテックスフェース法線の表示方法
頂点法線を表示した状態で 右クリックメニュー > Vertex Face
バーテックスフェースの法線それぞれを違う向きに調整出来ます。
Mesh Display > Vertex Normal Edit Tool
バーテックスフェイスを選んで法線方向を変更出来ます。
フェース法線をReverseで修正
ポリゴン面が逆を向いてい黒く表示される場合の修正方法。
対象のオブジェクト 又は 対象のポリゴン面を選択
Mesh Display > Reverse
修正されました。
頂点法線を修正
それぞれ違う向きになったバーテックスフェイスの向きを一つに纏めます。
法線がバラバラになった頂点を選択
Average で法線を修正
それぞれの法線は一つにまとまりました、それぞれの法線の平均をとった方向を向きます。
set to face で法線を修正
この方法が最も簡単で一般的だと思います。
set to face で一旦法線をポリゴン面の向きに正対させます。
次に Mesh Display > Soften Edge
ソフトエッジにします。
もともと複雑な法線調整をしているオブジェクトでなければ最も適切な修正方法でしょう。
Set Vertex Normal で法線を修正
法線方向を指定します。
指定した法線方向を向きました
法線を数値的に細かく調整したい場合に使えるでしょう。
頂点法線を手動で修正する
Vertex Normal Edit Tool で修正
手動で調整します。
これも Set Vertex Normal 同様に細かく調整したい場合に使用できるでしょう。
|
|
アトリビュート転送ツールを使った法線の調整方法
参照モデルの法線をサンプリング、転送コピーして頂点法線を調整する事もできます。
崩れる前の調整済みモデルがある場合や、法線の向きを確認しながら統一したい場合、放射状に広げたい場合はこの方法が良いと思います。
アトリビュート転送ツールを使った法線の調整方法については別の記事で解説しています。興味のある方は是非。↓
|
法線の値を取得するMAYAのスクリプトコード
MAYAで頂点の法線ベクトルを取得するには
polyNormalPerVertex
を使います。
バーテックス(頂点)を選択して以下のMELスクリプトを実行すると
MEL:
polyNormalPerVertex -q -xyz;
結果:
選択したバーテックス(頂点)に含まれるバーテックスフェースの法線の値がすべて返されます。
バーテックスフェースがまとまっている場合は(ソフトエッジや同一平面上のハードエッジ)法線の値は全て同じなので、返された値の 0番目 1番目 2番目の値がバーテックス(頂点)の法線値とみなす事ができます。
MEL:
vector $normal_vect;
float $normal_vector_xyz[] = `polyNormalPerVertex -q -xyz`;
$normal_vect = <<$normal_vector_xyz[0],$normal_vector_xyz[1],$normal_vector_xyz[2] >>;
print("X:"+(string)$normal_vect.x + " Y:"+(string)$normal_vect.y + " Z:"+(string)$normal_vect.z);
結果:
MELにはベクトル型 vector があるので返された値から0番目 1番目 2番目の値をvector型の変数に代入しました。
Python:
import maya.cmds as cmds
normal_vertex_xyz = cmds.polyNormalPerVertex(q=True,xyz=True)
print("X:%s Y:%s Z:%s") % (normal_vertex_xyz[0],normal_vertex_xyz[1],normal_vertex_xyz[2])
結果:
返された値から0番目 1番目 2番目の値をリストから抜き出しました。
MAYAの法線の表示と修正方法の紹介でした。
以上です。
|
|
「Autodesk Mudbox」」3Dデジタルペインティング & スカルプティングソフトウェア |
2005年度版、映画「キングコング」の制作に使用され名を広めたスカルプティング・ペインティングツール。Autodesk製品のMAYA、3ds MAX とのデータのやり取りもスムーズで、競合する「Zbrash」に比べて圧倒的な安さは特質すべきポイント。今後3DCG制作でキャラクター、背景、分野関係無くスカルプティング技術が必須になるのは確実で、機能と価格のバランスを考慮すると、最初に導入するソフトウェアの候補になるでしょう。 |
価格:14,300円/年(税込) |
>>Autodesk Mudbox の詳細/購入はコチラから |
豊富なカスタマイズメニューで、あなた好みの1台が購入できます。
人気の秘密は何と言ってもコスパの高さ。
最新のCPU・GPUパーツを搭載したモデルを驚きの価格で提供。
山口県の自社工場で組み立てられ徹底した試験・検査後に出荷。
無償修理サービスもありサポート体制も安心。
コスパに徹底的にこだわる方は公式サイトへ >> 【FRONTIER】
|
|
BTOパソコンの草分け的ブランドFRONTIER(フロンティア) 3DCG/動画編集/ゲーム用途に合わせてCPUやGPUなどパーツを自由に選べてコスパにもこだわる方にオススメ。 |
|
|
|
|
|