Edit_Normals - superclass: modifier; super-superclass:MAXWrapper - classID: #(1252338403, 902438110)
Edit_Normals モディファイヤでは、編集可能なポリゴン オブジェクトのリアルタイム レンダリングで使用される法線ベクトルを編集できます。
3ds Max 5 では、編集した法線をサポートしていたのは PolyObject だけでした。Edit_Normals の結果を非 PolyObject へ変換する操作 (たとえば、「パッチに変換」や「メッシュ選択」など) を行った場合、法線が失われていました。
3ds Max 6 ではこの点が変更され、編集した法線が TriMesh によってサポートされるようになりました。
トポロジを変更するすべてのモディファイヤでは、法線は削除されます。このモディファイヤには、MeshSmooth、Tessellate、Slice、ミラー、Symmetry、Face Extrud、および Vertex Weld があります。また、Normal モディファイヤ (面方向の反転に使用) では、編集した法線がサポートされないことになります。[ポリゴンに変換]は面トポロジの修正に使用できるため、編集した法線も取り除きます。
すべての複合オブジェクトは、編集した法線をそのオペランドから取り除きます。
トポロジ演算が多いため、[編集可能ポリゴン]は編集した法線をサポートしません。スタックを集約した場合、法線が失われます。EPoly に集約しながら、法線を保持する必要がある場合、[法線を編集]の下で、そのモディファイヤに対して[集約]を使用してください。
すべての変形モディファイヤとマップ モディファイヤでは、法線は保持されます。たとえば[ベンド]を適用する場合、法線はジオメトリとともに曲げられる必要があります。マップ モディファイヤ (UVW アンラップ など) は法線にまったく影響しません。
ジオメトリック モディファイヤの中には、編集した法線を完全にはサポートしないものもあります。法線は取り除かれませんが、すべての明示的な法線が正しく変形されません。このモディファイヤのカテゴリには、Push と Relax が含まれます。
Smooth モディファイヤでは、指定した明示的な法線が変更されず、すべての未指定の法線が正しく修正されます。
Edit_Normals は次の点で[メッシュ選択](Mesh Select)または[ポリゴンを選択](Poly Select)に似ています。ボックスを作成し、Edit_Normals を適用し、いくつかの法線を変更してから、2 番目の Edit_Normals モディファイヤを適用した場合、1 番目の Edit_Normals は、ユーザ指定の法線をパイプラインから「継承」します。ただし、その後1 番目の Edit_Normals は元の Edit_Normals モディファイヤに対して行ったすべての変更を無視します。これは[メッシュ選択](Mesh Select)で、パイプからの選択部分に対する変更がすべて無視される場合と類似します。
Edit_Normals モディファイヤには、3 つのカテゴリの法線があります。
Unspecified - スムージング グループから計算される通常の法線です。 既定では、すべての法線が Unspecified です。
Specified - スムージング グループに関係なく、特定の面の特定のコーナーで使用される法線です。 Specified の法線は、明示的な値に設定されません。つまり、スムージング グループを無視しますが、それらを使用する面の面法線に基づいています。
Explicit - 特定の値に設定される法線です。 また、すべての Explicit の法線は指定されることになります。
コンストラクタ
Edit_Normals ... editNormals ...
プロパティ
<Edit_Normals>.displayLength Float default: 10.0 -- world units; Display_Length
ビューポートで表示する法線の長さを取得/設定します。
<Edit_Normals>.ignoreBackfacing Boolean default: false -- boolean; Ignore_Backfacing
[バックグラウンドを無視]オプションを取得/設定します。
<Edit_Normals>.selectBy Integer default: 0 -- integer; Select_By
選択オプションを設定します。
0 - 法線で選択
1 - 頂点で選択
2 - エッジで選択
3 - 面で選択
<Edit_Normals>.showHandles Boolean default: false -- boolean; Show_Handles
true に設定すると、モディファイヤは法線の端にハンドルを表示します。
Interface:EditNormalsMod
プロパティ:
.SelLevel: enum : Read|Write
SelLevel enums: {#Object|#Normal|#Vertex|#Edge|#Face}
選択レベルを取得/設定します。
メソッド:
<boolean>Move <&point3>offset
offset is In and Out parameter
選択した法線を、指定のオフセットだけ移動します。成功時に true
を返します。
<boolean>Rotate <&quat>rotation
rotation is In and Out parameter
選択した法線を、指定の四元数値だけ回転します。成功時に true
を返します。
<boolean>Break [selection:<bitArray>] [node:<node>] [toAverage:<boolean>]
selection default value: undefined
node default value: undefined
toAverage default value: false
現在の選択を無効にします。成功時に true
を返します。
同じモディファイヤが複数のノードに適用されている場合、オプションの node:
パラメータを指定して、この単一のノードだけにメソッドを限定します。
node
:
<boolean>Unify [selection:<bitArray>] [node:<node>] [toAverage:<boolean>]
selection default value: undefined
node default value: undefined
toAverage default value: false
現在の選択を統合します。成功時に true
を返します。
node
:
<boolean>Average [useThresh:<boolean>] [threshold:<float>] [selection:<bitArray>] [node:<node>]
useThresh default value: false
threshold default value: 0.0
selection default value: undefined
node default value: undefined
<boolean>AverageGlobal [useThresh:<boolean>] [threshold:<float>]
useThresh default value: false
threshold default value: 0.0
オプションでしきい値を指定できる平均法線。
<boolean>AverageTwo <node>node1 <index>normalID1 <node>node2 <index>normalID2
2 つの異なるノードからの 2 つの法線の平均。
<boolean>Reset [selection:<bitArray>] [node:<node>]
selection default value: undefined
node default value: undefined
現在の選択をリセットします。成功時に true
を返します。
node
:
<boolean>Specify [selection:<bitArray>] [node:<node>]
selection default value: undefined
node default value: undefined
現在の選択の法線を Specified にします。成功時に true
を返します。
node
:
<boolean>MakeExplicit [selection:<bitArray>] [node:<node>]
selection default value: undefined
node default value: undefined
現在の選択の法線を[明示]にします。成功時に true
を返します。
同じモディファイヤが複数のノードに適用されている場合、オプションの node:
パラメータを指定して、この単一のノードだけにメソッドを限定します。
<boolean>Copy <index>normalID [node:<node>]
node default value: undefined
インデックスで指定された法線をクリップボードにコピーします。成功時に true
を返します。
node
:
<boolean>Pasteselection:<bitArray> [node:<node>]
selection default value: undefined
node default value: undefined
現在のF選択箇所に法線をコピーします。成功時に true
を返します。
node
:
Copy
は 1 つの法線に対してのみ行われますが、Paste
はコピーした単一の値を、任意の数の選択した法線に適用できます。<bitArray>GetSelection [node:<node>]
node default value: undefined
現在選択されている法線を bitArray として返します。
node
:
<boolean>SetSelection <&bitArray>newSelection node:<node>
newSelection is In and Out parameter
node default value: undefined
与えられた bitArray を使用して、現在選択されている法線を返します。
<boolean>Select <&bitArray>newSelection [invert:<boolean>] [select:<boolean>] [node:<node>]
newSelection is In and Out parameter
invert default value: false
select default value: true
node default value: undefined
bitArray で指定された法線を選択します。このメソッドでは既存の選択は 1 つも削除されません。
オプションの invert:
パラメータが true
に設定されている場合、指定の法線の選択状態が反転します。
オプションの select
パラメータが false
に設定されている場合、指定の法線が選択解除されます。true
に設定されている場合、または省略されている場合は、法線が選択されます。
node
:
<void>ConvertVertexSelection <&bitArray>vertexSelection <&bitArray>normalSelection [node:<node>]
vertexSelection is In and Out parameter
normalSelection is In and Out parameter
node default value: undefined
2 つの bitArrays が参照により入出力パラメータとして渡されます。最初の bitArray は変換元の頂点を定義します。このメソッドを呼び出した後、2 番目の bitArray に、指定した頂点が共有する法線が組み込まれます。
node
:
例
--create a Box, convert to EPoly, add Edit_Normals modifier b=box() convertToMesh b addModifier b (Edit_Normals()) my_verts = #{1} --define a bitArray specifying vertex 1 my_normals = #{} --define an empty bitArray to store the result --call the method with the two bitArrays passed by-reference: b.Edit_Normals.ConvertVertexSelection &my_verts &my_normals my_normals--now take a look at the bitArray #{1, 9, 22}--it will contain the normal indices used by vertex 1
<void>ConvertEdgeSelection <&bitArray>edgeSelection <&bitArray>normalSelection [node:<node>]
edgeSelection is In and Out parameter
normalSelection is In and Out parameter
node default value: undefined
2 つの bitArrays が参照により入出力パラメータとして渡されます。最初の bitArray は変換元のエッジを定義します。このメソッドを呼び出した後、2 番目の bitArray に、指定したエッジが共有する法線が組み込まれます。
同じモディファイヤが複数のノードに適用されている場合、オプションの node:
パラメータを指定して、この単一のノードだけにメソッドを限定します。
<void>ConvertFaceSelection <&bitArray>faceSelection <&bitArray>normalSelection [node:<node>]
faceSelection is In and Out parameter
normalSelection is In and Out parameter
node default value: undefined
2 つの bitArrays が参照により入出力パラメータとして渡されます。最初の bitArray は変換元の面を定義します。このメソッドを呼び出した後、2 番目の bitArray に、指定した面が共有する法線が組み込まれます。
node
:
<integer>GetNumNormals [node:<node>]
node default value: undefined
法線の数を返します。
node
:
<point3>GetNormal <index>normalIndex [node:<node>]
node default value: undefined
インデックスで指定された法線を返します。
node
:
<void>SetNormal <index>normalIndex <&point3>normalValue [node:<node>]
normalValue is In and Out parameter
node default value: undefined
インデックスで指定された法線の値を設定します。
node
:
<boolean>GetNormalExplicit <index>normalIndex [node:<node>]
node default value: undefined
インデックスで指定された法線が Explict の場合に true を、それ以外の場合に false を返します。
node
:
<void>SetNormalExplicit <index>normalIndex [explicit:<boolean>] [node:<node>]
explicit default value: true
node default value: undefined
インデックスで指定された法線の Explict 状態を設定します。オプションの explicit:
パラメータが false
に設定されている場合、Explicit 状態を削除し、法線を Specified にします。true
に設定されている場合、または省略されている場合、法線は Explicit になります。
node
:
<integer>GetNumFaces [node:<node>]
node default value: undefined
面の数を返します。
node
:
<integer>GetFaceDegree <index>face [node:<node>]
node default value: undefined
インデックスで指定された面のコーナー数を返します。
node
:
<index>GetNormalID <index>face <index>corner [node:<node>]
node default value: undefined
インデックスで指定された面の指定のコーナーの法線 ID を返します。
node
:
<void>SetNormalID <index>face <index>corner <index>normalID [node:<node>]
node default value: undefined
インデックスで指定された面の指定のコーナーの法線 ID を設定します。
node
:
<boolean>GetFaceNormalSpecified <index>face <index>corner [node:<node>]
node default value: undefined
インデックスで指定された面の、インデックスで指定されたコーナーの法線が Specified の場合は true
を、それ以外の場合は false
を返します。
node
:
<void>SetFaceNormalSpecified <index>face <index>corner [specified:<boolean>] [node:<node>]
specified default value: true
node default value: undefined
インデックスの付いた面の指定のコーナーの法線を、Specified に設定します。オプションの specified:
パラメータが true
の場合、または省略されている場合は、法線の Specified 状態を設定します。オプションの specified:
パラメータが false に設定されている場合は、Specified 状態をリセットします。
node
:
<integer>GetNumVertices [node:<node>]
node default value: undefined
頂点の数を返します。
node
:
<index>GetVertexID <index>face <index>corner [node:<node>]
node default value: undefined
インデックスの付いた面の指定のコーナーの頂点インデックスを返します。
node
:
<point3 by value>GetVertex <index>vertexID [node:<node>]
node default value: undefined
指定された頂点の位置を返します。
node
:
<integer>GetNumEdges [node:<node>]
node default value: undefined
エッジの数を返します。
node
:
<index>GetEdgeID <index>face <index>side [node:<node>]
node default value: undefined
インデックスで指定された面の、指定の側面のエッジのインデックスを返します。
node
:
<index>GetFaceEdgeSide <index>face <index>edge [node:<node>]
node default value: undefined
指定のエッジと面の側面のインデックスを返します。したがって、側面のインデックスを取得するために、エッジは面ごとに使用する必要があります。
node
:
<index>GetEdgeVertex <index>edge <index>end [:<node>]node
node default value: undefined
インデックスで指定されたエッジの指定の端にある頂点のインデックスを返します。
node
:
<index>GetEdgeFace <index>edge <index>side [node:<node>]
node default value: undefined
指定のエッジおよび指定の側面を使用した面のインデックスを返します。
node
:
<index>GetEdgeNormal <index>edge <index>end <index>side [node:<node>]
node default value: undefined
インデックスの付いたエッジの指定の端にある法線を返します。
node
:
<void>RebuildNormals [node:<node>]
node default value: undefined
法線を再構築します。
node
:
<void>RecomputeNormals [node:<node>]
node default value: undefined
法線を再計算します。
node
: