Skip to main content
Maya でノーマルを修正、反転、リバースする方法

Maya でノーマルを修正、反転、リバースする方法

BySuperRenders Farm Team
3 min read
Maya の単一オブジェクトと大規模インポートで反転したノーマルを検出して修正する段階的ガイドです。

Maya のノーマルを理解する

Maya で 3D ジオメトリーを扱う際、ノーマルは光線がサーフェスとどのように相互作用するかを決定します。各ポリゴンフェースには、レンダラーにどちらが「前向き」かを伝える方向があります。ノーマルが間違った方向を指している場合、レンダリングで黒いフェースが表示されたり、反転したシェーディングによって全体的な見栄えが損なわれます。Super Renders Farm では、外部ソースからアセットをインポートするときや古いモデルを操作するときに、この問題に何度も遭遇しています。

ノーマルは本質的に、ポリゴンフェースに垂直な見えない矢印です。その矢印が外側ではなく内側を指している場合、レンダラーはそのフェースを完全に無視します。これはバッチレンダリング用にアセットを準備するときに重大な問題になります。大規模なインポートで反転したノーマルが 1 つあるだけで、フレーム全体が台無しになる可能性があるからです。

ノーマルが反転する理由

複数の一般的なシナリオがノーマルの問題を引き起こします。Super Renders Farm で最も頻繁な原因は、異なる規約を使用する 3D ソフトウェアからモデルをインポートすることです。FBX ファイルと OBJ ファイルは、特に元のモデルが非均等スケーリングを使用していたり、反転したジオメトリーで作成されていた場合、ノーマルの方向を正しく保持しないことがあります。レガシーファイルは、多年にわたるリトポロジーとモデリング調整により、破損したノーマルを持つことが多いです。

ノーマルが反転するのは、トランスフォームをフリーズせずにジオメトリーをミラーリングしたり、フェースを誤って複製したり、オブジェクトに負のスケール値を適用したときにも発生します。大規模なインポートでは、特に単一のレンダリング用に数百のアセットをプルするとき、反転したノーマルの小さな割合でも、レンダーファームの出力全体に見える欠陥が生じます。

Maya 2026 でノーマルを視覚化する

修正する前に、何を扱っているかを確認する必要があります。Maya 2026 は複数の視覚化オプションを提供しています。

フェース ノーマル ディスプレイを使用する

ジオメトリーを選択して Display > Polygon Components > Face Normals に移動します。これにより、各フェース中心からノーマルが指している方向に小さな線が表示されます。これらの線がメッシュの外側ではなく内側を指しているフェースをすぐに見つけることができます。

バックフェース カリング ビジュアライゼーション

これは弊社農場での推奨方法です。ビューポートで Shading > Backface Culling を有効にします。これで反転したノーマルがあるフェースはまったく黒く見えます。あいまいさがありません。個々のノーマルにズームインすることなく、モデルをすばやくスキャンして問題領域を特定できます。

バックフェース カリングを有効にするには、ビューポート シェーディング設定を開き、ポリゴン ディスプレイ オプションで「Backface Culling」を探します。スクリプト エディターで polyOptions -bc on; コマンドを使用することもできます。

単一オブジェクトのノーマル修正

方法 1: 選択したフェースをリバースする

反転したフェースが数個だけの場合は、それらのフェースを直接選択して Mesh > Reverse を使用します。これによりそれらのフェースのノーマル方向だけが反転します。Super Renders Farm では、ジオメトリーの 10% 未満に影響を与えるインポート エラーに対してこのアプローチを使用しています。

手順:

  1. オブジェクトを選択してフェース選択モードに切り替えます (3 を押す)
  2. バックフェース カリングを使用して反転したフェースを特定します
  3. Shift キーを押しながら個々のフェースをクリックするか、グループをドラッグ選択します
  4. メニューから Mesh > Reverse に移動するか、polyReverseNormal; コマンドを使用します

方法 2: メッシュ ディスプレイ ノーマルの整合

ノーマルがほぼ正しいが分散しているオブジェクトの場合は、[整合ノーマル] ツールを使用します。これにより、周囲のジオメトリーに基づいてノーマルの方向がインテリジェントに修復されます。

オブジェクトを選択して Mesh > Conform Normals に移動します。Maya はメッシュトポロジーを分析し、ノーマルが外側に一貫して向くようにします。これはノーマルの大部分が正しいが、いくつかが内側を向いているインポート済みモデルで特に効果的です。

MEL を使用した大規模バッチ操作

数百のオブジェクトをインポートしたり、複雑なシーンを扱ったりする場合、モデリング ツールキットとバッチ スクリプトは不可欠です。

バッチ リバーサル用 MEL スクリプト

fixAllNormals.mel という MEL スクリプト ファイルを作成します:

global proc fixAllNormals()
{
    string $selected[] = `ls -sl`;
    
    for ($obj in $selected)
    {
        select $obj;
        polySetNormal -d 1;
    }
    
    print("Normals fixed for " + size($selected) + " objects\n");
}

fixAllNormals();

これをスクリプト フォルダに保存してスクリプト エディターから実行します。ノーマルを修正する必要があるすべてのオブジェクトを選択してから、スクリプトを実行します。polySetNormal -d 1 コマンドにより、すべてのノーマルが外側に一貫して向くようになります。

高度な制御のための Python スクリプト

弊社農場のバッチ パイプラインの場合、Python スクリプトはより多くの制御を提供します。このスクリプトは選択したすべてのオブジェクトを処理し、反転したノーマルがあったものをレポートします:

import maya.cmds as cmds

def fix_normals_batch():
    selected = cmds.ls(sl=True)
    fixed_count = 0
    
    for obj in selected:
        # Conform normals for each object
        cmds.polySetNormal(obj, d=1)
        fixed_count += 1
    
    print(f"Processed {fixed_count} objects")

if __name__ == "__main__":
    fix_normals_batch()

Maya のスクリプト エディターの Python タブでこれを実行します。polySetNormal -d 1 コマンドは頂点位置とポリゴン巻きの順序に基づいてノーマルの方向を計算し、選択全体の一貫性を確保します。

モデリング ツールキットの使用

Maya 2026 のモデリング ツールキットには、密集したジオメトリーでも効率的に動作する専用のノーマル ツールが含まれています。

モデリング ツールキット (Windows > Modeling Toolkit) を開いてノーマル セクションに移動します。以下が見つかります:

  • 整合: 分散した反転したノーマルをインテリジェントに修正します
  • リバース: 選択したオブジェクトのすべてのノーマルを反転させます
  • ハード/ソフト: エッジのスムージング制御 (リバースとは異なりますが、ノーマルの外観に関連)

インポート ワークフローの場合、通常は最初に [整合] を使用します。オブジェクト全体が内側を向いている場合は、オブジェクト全体に [リバース] を使用します。ツールキットのリアルタイム プレビューにより、変更をコミットする前に修正を確認できます。

インポート予防戦略

最も効果的なアプローチは、インポート中にノーマルの問題を防ぐことです。Super Renders Farm では、以下の手順に従っています:

インポート前に大きなファイルを分割する

50MB ファイルを 100,000 個のオブジェクトとともに単一のシーンにインポートしないでください。チャンクに分割します。モデリング ソフトウェアで元のファイルを開き、オブジェクトを論理的にグループ化して、セクションを個別にエクスポートします。より小さいインポートは検査とトラブルシューティングが簡単です。

レンダー ファーム送信前に品質を確認する

すべてのインポート済みアセットでバックフェース カリングとノーマル ビジュアライゼーションを使用します。ビューポートでモデルを回転させて、黒いフェースがないか探します。適切なライティング下で単一のテスト フレームをレンダリングします。反転したノーマルは実際のシェーディングで明らかになります。

一貫したインポート形式を使用する

FBX は弊社農場での標準です。OBJ は機能しますが、ノーマル情報を失うことがあります。常に、ノーマル有効でソース ソフトウェアからエクスポートします。Maya の FBX インポート オプションでは、「Smooth Mesh Preview」と「Bake Animation」がワークフローに適切であることを確認します。

均等スケーリングのみを適用する

負のスケール値または非均等スケーリング (X、Y、Z 軸で異なる値) はノーマルの方向を破損します。インポートのサイズと位置を正しく調整した後、Modify > Freeze Transformations を使用します。これによりスケールがジオメトリーにベイクされ、レンダリングの問題が防止されます。

レンダー ファームの影響

これは重要です: レンダー ファームは反転したノーマルを自動的に修正しません。反転したノーマルのあるジオメトリーをファームに送信すると、そのアセットを含むすべてのフレームが、ノーマルがカメラから離れている黒いフェースでレンダリングされます。レンダリング時には回復がありません。後処理やライティング調整では修正できません。

反転したノーマルのためにレンダー パス全体を失ったことがあります。発見が遅すぎると再レンダリングする経済的影響により、これらのチェックを自動化するよう動かされました。ファーム キューに到達する前に、すべてのジオメトリーに対して完全なノーマル監査を実行します。

最終シーンのノーマルをチェックする

エクスポートまたはファーム送信前に:

  1. すべてのオブジェクトを選択します: Select > All
  2. バックフェース カリングを有効にします: Shading > Backface Culling
  3. モデルを回転させて黒い領域を探します
  4. 見つかった場合は、カリングされたフェースを持つオブジェクトを選択して Mesh > Conform Normals を実行するか、MEL スクリプトを使用します

これには 60 秒かかり、レンダリング時間の浪費を防ぎます。

正しいノーマルでエクスポートする

修正したジオメトリーをエクスポートする際は、これらの設定が有効になっていることを確認します:

FBX エクスポート オプション:

  • Smooth Groups: On
  • Export Smooth Mesh Preview: On
  • Normals: On

OBJ エクスポート オプション:

  • Smooth Groups: On
  • Normal Groups: On

これらの設定により、修正したノーマル情報が保持され、ジオメトリーが他のソフトウェアとレンダー ファームで正しく表示されます。


FAQ

ノーマルの整合とリバースの違いは何ですか?

ノーマルの整合はメッシュ トポロジーを分析し、フェースの巻き順に基づいてノーマルが外側に一貫して向くようにします。リバースは方向に関係なくすべてのノーマルを 180 度反転させます。分散した反転したノーマルには整合を使用します。オブジェクト全体が内側を向いている場合はリバースを使用します。

レンダー エンジンでノーマルを修正できますか?

いいえ。ほとんどのレンダー エンジン (Arnold、V-Ray、RenderMan) は反転したノーマルを持つフェースをシェーディングしません。黒く表示されます。シェーダー トリックや後処理では反転したジオメトリーを修正することはできません。レンダリング前に 3D モデルで問題を解決する必要があります。

インポートされた FBX ファイルに反転したノーマルがあるのはなぜですか?

ソース ソフトウェアの FBX エクスポート設定が大きく影響します。元のアプリケーションが「Flip Normals」を有効にしてエクスポートした場合、またはスムーズ グループを含めなかった場合は、FBX がその破損を引き継ぎます。Maya にインポートする前に、ソース ソフトウェアのエクスポート オプションを常に確認します。

ノーマルの問題がレンダリングに影響を与えるかどうかを知るにはどうしたらよいですか?

ビューポートでバックフェース カリングを有効にし、適切なライティング下でテスト フレームをレンダリングします。カリングが有効な状態でビューポートに黒いフェースが表示される場合、最終レンダリングにも表示されます。これが解決されるまでレンダー ファームに送信しないでください。

ノーマルを反転するキーボード ショートカットはありますか?

デフォルトではありませんが、作成することはできます。ホットキー エディター (Windows > Settings/Preferences > Hotkey Editor) に移動し、「Reverse」または「polyReverseNormal」を検索し、キーの組み合わせを割り当てます。Super Renders Farm では、迅速な修正のために Ctrl+Shift+N に割り当てています。

負のスケール値は反転したノーマルを引き起こしますか?

はい。任意の軸で Scale -1 を使用すると、副作用としてノーマルが反転します。常に正のスケール値を使用するか、スケーリング後に [トランスフォームのフリーズ] を使用してトランスフォームをジオメトリーにベイクします。これによりエクスポート中またはさらなるモデリング中にノーマルの破損が防止されます。


単一オブジェクトを操作する場合でも、ファーム用に大規模なアセット ライブラリをインポートする場合でも、完全なワークフローをカバーしました。これらの方法により、ジオメトリーがレンダリング準備完了になります。getting started で弊社農場を開始し、Arnold cloud render farmGPU cloud rendering サービスで統合レンダリング ソリューションを探索します。今すぐ無料でお試しして Super Renders Farm を体験してください。