一般的なノードのプロパティ

このトピックで説明されるプロパティは、すべてのノード サブクラスで操作できます。

特に記さない限り、これらのプロパティはアニメートできません。

オブジェクト情報のプロパティ

<node>.name String default: varies     

シーン オブジェクトの名前を取得または設定します。

<node>.baseObject  A subclass of Node  default: varies   

シーン ノード内の基本オブジェクトにアクセスします。これは、スタック上で処理されるときにノード タイプを変更するモディファイヤを持つノードに関連します。たとえば、押し出しモディファイヤの行からシェイプとして開始し、スタックの最上部、いわゆるワールド状態で編集可能メッシュになります。 baseObject プロパティは、モディファイヤ スタック内の基本オブジェクトにアクセスできます。シーン ノード オブジェクト上の classOf() 関数はワールド状態オブジェクト(スタックの最上部)のクラスを返すため、baseObject プロパティを使って、ノードの作成に使われたオリジナル オブジェクトのクラスを決定することができます。

<node>.baseObjectbaseObject は、3ds Max 5.1 以降書き込み可能になっています。

    s=sphere()
    b=box()
    s.baseobject = b.baseobject
<node>.material Material default: undefined

オブジェクトのマテリアルを取得または設定します。

<node>.parent Node default: undefined

オブジェクトの親を取得/設定します。オブジェクトがトップレベルのオブジェクトである場合に親プロパティにアクセスすると、undefined を返します。

    foo_mom = $foo.parent
    $foo.parent = $baz

このプロパティを設定すると、<node> を元の親から分離し、指定したノードの子として割り当てることができます。

次のように、親のプロパティに undefined を代入することによってオブジェクトを分離し、それをトップレベルのオブジェクトにすることができます。

    $foo.parent = undefined
<node>.children NodeChildrenArray default: undefined

これにより、特殊な配列サブクラス NodeChildrenArray が生成されます。「NodeChildrenArray 値」を参照してください。NodeChildrenArray は、通常の MAXScript 配列のインデックス指定でアクセスでき、for ループ内や collection-mapped 関数を使って処理できます。

    c = $foo.children[i]
    move $foo.children [10,10,10]
    for c in $baz.children do print c

子の数は count プロパティによって取得できます。

    num_children = $foo.children.count

NodeChildrenArray にインデックスを指定して子を直接設定することはできませんが、append() 関数を使って新しい子を追加したり deleteItem() 関数を使用して子を削除できます。

    $foo.children[$foo.children.count+1]=$baz-- does not work
    append $foo.children $baz-- works
    deleteItem $foo.children $baz-- removes $baz as child

子のインデックスの順序は、3ds Max 階層表示における順序に一致し、その順序は子が親に追加されたときの順序です。

<node>.mesh TriMesh

編集可能メッシュ オブジェクトであるシーン ノードやベース オブジェクト、または編集可能メッシュ オブジェクトに変換可能なシーン ノードやベース オブジェクトでは、このプロパティにより、TriMesh が生成されます。この TriMesh には、モディファイヤが適用されてからスペース ワープが適用される前のソース オブジェクトのメッシュのコピーが含まれます。このプロパティは、シーン ノードまたはベース オブジェクトが編集可能メッシュ オブジェクトでない限り、読み込み専用です。その場合、ベース オブジェクトは指定した TriMesh に置換されます。TriMesh および編集可能メッシュの詳細は、「Editable_Mesh: GeometryClass および TriMesh:値」を参照してください。

<node>.boundingBox

3ds Max 2022 の新機能: 読み込み専用。ノードのバウンディング ボックスを表す Box3 値を返します。

レイヤ関連のプロパティ

<node>.displayByLayer Boolean default: true

true の場合、オブジェクトの可視性はレイヤによってコントロールされます。

<node>.motionByLayer Boolean default: true

true の場合、モーション ブラーはレイヤによってコントロールされます。

<node>.renderByLayer Boolean default: true

true の場合、レンダリングはレイヤによってコントロールされます。

<node>.colorByLayer Boolean default: true

true の場合、オブジェクトはレイヤのカラーを使用します。false の場合、オブジェクトのカラーが代わりに使用されます。

<node>.globalIlluminationByLayer Boolean default: true

true の場合、アドバンスト ライティングを含めるかどうかは、レイヤによってコントロールされます。

Target/LookAt に関連するプロパティ

<node>.isTarget Boolean default: false

ノードが他のオブジェクトの LookAt コントローラのターゲットである場合は true、その他の場合は false を返します。オブジェクトがライトまたはカメラの LookAt コントローラの自動的に作成されたターゲット オブジェクトであり、このプロパティを false に設定した場合、ライトまたはターゲットを削除することなく、ターゲット オブジェクトを削除できます。

<node>.lookAt Node default: undefined

<node> を参照しているノードを取得したり、ノードが <node> を参照するように設定します。これは、<node>.target プロパティの逆です。<node> が何らかのオブジェクトの LookAt コントローラのターゲットでない場合は、undefined が返されます。 <node> が複数のオブジェクトのターゲットである場合は、いずれかのオブジェクトが 1 つだけ返されます。このプロパティを使って <node> を他のオブジェクトのターゲットとして設定すると、そのオブジェクトに対して LookAt コントローラが自動的に割り当てられます。

<node>.target Node default: undefined

<node> の LookAt コントローラのターゲット ノードを取得または設定します。ターゲットがない場合やノードに LookAt コントローラがない場合は undefined が返されます。このプロパティを使用してオブジェクトを <node> のターゲットとして設定した場合は、LookAt コントローラが自動的に <node> に割り当てられます。ノードを target プロパティに割り当てる場合には注意が必要です。ターゲット オブジェクトを指定すると、ターゲット オブジェクトと、ターゲットの元になる最後のオブジェクトが共に 3ds Max に格納されます。そのターゲット オブジェクトを削除すると、参照元のオブジェクトも削除されます。****ターゲット オブジェクトが targetobject クラスのオブジェクトの場合、参照元のオブジェクトを削除すると、ほかのオブジェクトがターゲット オブジェクトを参照している場合でも、そのターゲット オブジェクトは削除されます。

<node>.targetDistance Float default: undefined

ノードからターゲットまでの距離を取得/設定します。<node> にターゲットがない場合は、undefined を返します。このプロパティを設定すると、ターゲットはオブジェクトとターゲットを通るベクトル上の指定した距離に移動します。

    $spot01.targetDistance
    $cam2.targetDistance = 100

インタラクティブ - 非表示/フリーズのプロパティ

<node>.isHidden Boolean default: false

ビューポートでノードが非表示に設定されているかどうかを取得/設定します。このプロパティが false の場合でもノードが非表示になる場合があります。ノードがフリーズとしてフラグ設定され、[表示] (Display)パネルの[非表示] (Hide)ロールアウトで「フリーズ オブジェクトを非表示」がオンになっている場合は、このプロパティの値にかかわらずノードは非表示になります。

ビューポート内でノードが非表示になるのは次の場合です。

1. ノードの非表示フラグがオンになっている。

2. ノードのレイヤ非表示フラグがオンになっている。

3. [カテゴリによる非表示](Hide By Category)を使用してノードのカテゴリが非表示になっている。

4. ノードがフリーズされており、[ロックされたオブジェクトをオフ](Hide Frozen Objects)が有効になっている。

ノードの isHidden プロパティは、条件 1 と 2 の組み合わせを反映します。条件 1 または 2 のどちらかが true の場合、プロパティは true を返します。プロパティを true に設定すると、ノードの非表示フラグが設定されます。プロパティを false に設定すると、ノードの非表示フラグとノードのレイヤの非表示フラグの両方がクリアされます。

条件 2 は、ノードのレイヤを取得し、theNode.INodeLayerProperties.layer.isHidden を使用してレイヤの isHidden プロパティをチェックすることで処理できます。

条件 3 の処理については、3ds Max 6 で追加された「hideByCategory 構文」を参照してください。

条件 4 は、theNode.isFrozen を使用してノードのロック状態を取得し、maxOps.hideFrozenObjects プロパティをチェックすることで処理できます。

<node>.isNodeHidden Boolean default: false

ノードの isNodeHidden プロパティは、前に示した条件 1 のみを反映します。このプロパティは、ノードの非表示フラグが設定されている場合は true を返し、設定されていない場合は false を返します。このプロパティによって設定されるのは、ノードの非表示フラグのみです。

<node>.isHiddenInVpt Boolean default: false

これは、上記の 4 つの条件のうちいずれかが true (何らかの理由でビューポート内のノードが非表示になっている)であれば true を返す読み込み専用のプロパティです。

<node>.isFrozen Boolean default: false

ビューポートでノードがフリーズされているかどうかを取得/設定します。

ビューポートでノードがフリーズされるのは次の場合です。

1. ノードのフリーズ フラグがオンになっている。

2. ノードのレイヤ フリーズ フラグがオンになっている。

ノードの isFrozen プロパティは、条件 1 と 2 の組み合わせを反映します。条件 1 または 2 のどちらかが true の場合、プロパティは true を返します。プロパティを true に設定すると、ノードのフリーズ フラグが設定されます。プロパティを false に設定すると、ノードのフリーズ フラグとノードのレイヤのフリーズ フラグの両方がクリアされます。

条件 2 は、ノードのレイヤを取得し、theNode.INodeLayerProperties.layer.isFrozen を使用してレイヤの isFrozen プロパティをチェックすることで処理できます。

<node>.isNodeFrozen Boolean default: false

このプロパティは上記の条件 1 のみを反映しています。このプロパティは、ノードのフリーズ フラグが設定されている場合は true を返し、設定されていない場合は false を返します。このプロパティによって設定されるのは、ノードのフリーズ フラグのみです。

表示関連のプロパティ

<node>.isSelected Boolean default: false

ノードの選択状態を取得/設定します。

<node>.xray Boolean default: false

シェーディング ビューポート内で、ノードが[シースルー](See Through)モードで表示されるかどうかを取得/設定します。

<node>.boxMode Boolean default: false

ビューポートの box mode にノードが表示されるかどうかを取得/設定します。

<node>.allEdges Boolean default: false

ビューポート内にノードのすべてのエッジが表示されるかどうかを取得または設定します。

<node>.vertexTicks Boolean default: false

ノードのすべての頂点をビューポート内でティックとして表示するかどうかを取得または設定します。

<node>.backFaceCull Boolean default: false

ビューポート内でノードの背面が非表示かどうかを取得または設定します。

<node>.showTrajectory Boolean default: false

ビューポートにノードの軌道を表示するかどうかを取得または設定します。

<node>.ignoreExtents Boolean default: false

全範囲ズームを実行するときに、ノードの範囲を無視するかどうかを取得/設定します。

node>.showFrozenInGray Booleandefault:true

ノートがフリーズした時にグレー表示されるかどうかを取得/設定します。

<node>.wireColor Color default: random color

ノードのワイヤフレームのカラーを取得または設定します。

<node>.showLinks Boolean default: false

ノードから子への階層リンクをワイヤフレームで表示するかどうかを取得/設定します。

<node>.showLinksOnly Boolean default: false

ノードの階層リンクをワイヤフレームだけで表示するかどうかを取得/設定します。このプロパティを true に設定すると、showLinks も true に設定されます。

<node>.showVertexColors Boolean default: false

シェーディング ビューポートで、ノードに割り当てた頂点のカラーを表示するかどうかを取得/設定します。

INode インタフェースによって公開されます。

<node>.vertexColorType Name

vertexColorType enums: {#color|#illum|#alpha|#color_plus_illum}

頂点カラーの表示タイプを取得/設定します。

INode インタフェースによって公開されます。

    $Sphere01.vertexColorType = #illum
<node>.vertexColorsShaded Boolean default: false

ビューポートで、ノードの頂点の色をシェーディングするかどうかを取得/設定します。true の場合、カラーはシェーディングされず、純粋な RGB 値で表示されます。false の場合、カラーはビューポートに割り当てられた他のカラーと同じように表示されます。

<node>.isDependent Boolean default: false

従属するフラグ セットがノードにある場合は true、ない場合は false を返します。ノードは、3ds Max の[表示] (Views)/[従属を表示](Show Dependencies)モードのシーン内で従属しています。[修正] (Modify)パネルが開いている場合、[従属を表示](Show Dependencies)に表示される現在のモディファイヤに従属しているすべてのノード、または編集中のオブジェクトは緑でハイライトされ、ノードの従属フラグが設定されます。[修正] (Modify)パネルが閉じている場合、または[表示] (Views)/[従属を表示](Show Dependencies)がオフの場合、このプロパティは常に false を返します。このプロパティは、読み込み専用です。

レンダリングに関連するプロパティ

<node>.visibility Boolean default: true -- animatable

これは、ブール値のプロパティです(ただし、3ds Max トラック ビューにおける値は符号付き浮動小数点)。true または on は表示を意味し、false または off は非表示を意味します。レンダリング時のノードの可視性をコントロールするには、このプロパティをアニメートします。

    my_node=box()
    animate on
    (
    at time 0 my_node.visibility =on
    at time 35 my_node.visibility =off
    at time 57 my_node.visibility =on
    )

既定値では、可視トラックに割り当てられたコントローラはありません。可視トラックの .controller プロパティにアクセスすると、エラーが発生します。キーを追加してそれらを操作できるようにするには、コントローラを割り当てる必要があります。上に示されたようにプロパティをアニメートすると、コントローラを自動的に割り当てるように 3ds Max に強制することになります。コントローラを手動で .visibility プロパティに割り当てることもできます。

    --assigns a controller:
    my_node.visibility = bezier_float()
    --set the current value to semi-visible:
    my_node.visibility.controller.value = 0.5
    --animate the value to 0 on frame 100
    animate on at time 100 my_node.visibility.controller.value = 0.0

このプロパティのコントローラは、ノードの 1 番目の subAnim に保存されます。このコントローラ(存在する場合)には、次のようにアクセスします。

    <node>[1].controller -- the visibility controller

また、ノードの可視性コントローラを取得するには、getVisController() を使用します。

<node>.renderable Boolean default: true

ノードがレンダリング可能かどうかを取得/設定します。

<node>.inheritVisibility Boolean default: true

ノードに親がある場合、親の可視性を継承するかどうかを取得/設定します。このプロパティは、オブジェクトを右クリックして表示される[オブジェクト プロパティ](Object Properties)ダイアログ ボックスの[可視性を継承](Inherit Visibility)プロパティに対応します。

<node>.primaryVisibility: boolean : Read|Write

ノードの[カメラに対して可視](Visible to Camera)オプションを取得/設定します。

INode インタフェースによって公開されます。

<node>.secondaryVisibility: boolean : Read|Write

ノードの[反射/屈折に対して可視](Visible to Reflection/Refraction)オプションを取得/設定します。

INode インタフェースによって公開されます。

<node>.receiveShadows Boolean default: true

レンダリングのとき、ノードが影を受けるかどうかを取得/設定します。このプロパティは、オブジェクトを右クリックして表示される[オブジェクト プロパティ](Object Properties)ダイアログ ボックスの[シャドウを他から受ける](Receive Shadows)プロパティに対応します。

<node>.castShadows Boolean default: true

レンダリングのとき、ノードが影を付けるかどうかを取得/設定します。このプロパティは、オブジェクトを右クリックして表示される[オブジェクト プロパティ](Object Properties)ダイアログ ボックスの[影付け](Cast Shadow)プロパティに対応します。

<node>.applyAtmospherics: boolean : Read|Write

ノードが環境効果による影響を受けるかどうかを取得/設定します。

INode インタフェースによって公開されます。

<node>.renderOccluded Boolean default: false

ノードの背後にある隠れたオブジェクトをレンダリングするかどうかを取得/設定します。このプロパティは、オブジェクトを右クリックして表示される[オブジェクト プロパティ](Object Properties)ダイアログ ボックスの[隠れたオブジェクトをレンダリング](Render Occluded Objects)プロパティに対応します。

<node>.gbufferChannel Integer default: 0

ノードの G バッファ オブジェクト ID チャネル値を取得または設定します。3ds Max での有効なオブジェクト ID 値の範囲は、0 から 65535 です。このプロパティは、オブジェクトを右クリックして表示される[オブジェクト プロパティ](Object Properties)ダイアログ ボックスの[G-バッファ オブジェクト チャネル](G-Buffer Object Channel)プロパティに対応します。

モーション ブラー

<node>.imageMotionBlurMultiplier Float default: 1.0 -- animatable

ノードの画像モーション ブラーのマルチプライヤ値を取得または設定します。このプロパティのコントローラは、ノードの 6 番目の subAnim に保存されます。このコントローラには、次のようにアクセスします。

    <node>[6].controller-- the imageMotionBlurMultiplier controller

また、getImageBlurMultController() および setImageBlurMultController() メソッドを使用して、ノードの imageMotionBlurMultiplier コントローラを取得および設定することもできます。

<node>.motionBlurOn Boolean default: true

モーション ブラーがオブジェクトに対して使用可能になっているかどうかを取得/設定します。このプロパティは、オブジェクトを右クリックして表示される[オブジェクト プロパティ](Object Properties)ダイアログ ボックスの[モーション ブラー有効](Motion Blur Enabled)プロパティに対応します。

<node>.motionBlurOnController Controller default: undefined

ノードに対して使用するモーション ブラーのオン/オフ コントローラを取得/設定します。

<node>.motionBlur Name default: #none

ノードに対して使用するモーション ブラーのタイプを取得/設定します。有効なパラメータ値は、#none#object、および #image です。以前のバージョンとの互換性を維持するため、このプロパティは false (なし)または true (オブジェクト モーション ブラー)に設定することも可能です。このプロパティは、オブジェクトを右クリックして表示される[オブジェクト プロパティ](Object Properties)ダイアログ ボックスのモーション ブラーのタイプに対応します。

mental ray の[間接光](Indirect Illumination)プロパティ

<node>.generatecaustics Boolean default: false

ノードがコースティックスを生成するかどうかを取得/設定します。コースティックスは、3ds Max スキャンライン レンダリングではサポートされていません。

<node>.rcvcaustics Boolean default: true

ノードがコースティックスを受けるかどうかを取得/設定します。コースティックスは、3ds Max スキャンライン レンダリングではサポートされていません。

<node>.generateGlobalIllum Boolean default: false

ノードがグローバル発光を生成するかどうかを取得/設定します。グローバル発光は、3ds Max スキャンライン レンダリングではサポートされていません。

<node>.rcvGlobalIllum Boolean default: true

ノードがグローバル発光を受けるかどうかを取得/設定します。グローバル発光は、3ds Max スキャンライン レンダリングではサポートされていません。