PainterInterface : ReferenceTarget

ペインタ インタフェースは、メッシュ上にペイントするためのツールを提供するための、3ds Max 5 で導入された汎用 API です。この API の関数とプロパティにアクセスするときは、PainterInterface と呼ばれるインタフェースを使用します。

Painter インタフェースによるカスタム ペイント ツールの定義

   

PainterInterface インタフェース

Interface: thePainterInterface 

   

プロパティ:

thePainterInterface.updateOnMouseUp : boolean : Read|Write   

[ペインタ オプション](Painter Options)ダイアログ ボックスの[マウス リリース時に更新](Update on mouse up)チェックボックスの状態を取得/設定します。true に設定すると、ペインタはマウス ボタンが離れているときにだけストロークを更新します。

   

thePainterInterface.treeDepth : integer : Read|Write|Validated by Range: 2 to 10 

ヒット テストに使用するクアッド ツリーの深度を取得/設定します。値が大きくなるほど操作は速くなりますが、メモリの消費量は増え、ツリーの構築により多くの時間がかかります。

   

thePainterInterface.minStr : float : Read|Write|Validated by Range: 0.0 to 1e+006 

thePainterInterface.maxStr : float : Read|Write|Validated by Range: 0.0 to 1e+006 

最小強度と最大強度の値を取得/設定します。使用できる圧力デバイスがない場合は、最大強度だけが使用されます。

   

thePainterInterface.dragStrLimitMin  : float : Read|Write

thePainterInterface.dragStrLimitMax : float : Read|Write 

この 2 つの値は、[Alt]キーと[Shift]キーを押しながらドラッグし、ビューポートで値を相互作用的に調整するときに、強度範囲を制限します。

   

thePainterInterface.minSize : float : Read|Write|Validated by Range: 0.0 to 1e+006 

thePainterInterface.maxSize : float : Read|Write|Validated by Range: 0.0 to 1e+006 

ブラシの最小および最大サイズの値を取得/設定します。使用できる圧力デバイスがない場合は、最大サイズだけが使用されます。

   

thePainterInterface.additiveMode : boolean : Read|Write 

[加算](Additive)チェックボックスの状態を取得/設定します。true に設定すると、ペイント値は既存の値を上書きせずに既存の値に加算されます。

   

thePainterInterface.drawRing : boolean : Read|Write 

ブラシ リングの表示を取得/設定します。

   

thePainterInterface.drawNormal : boolean : Read|Write 

ブラシの法線ベクトルの表示を取得/設定します。

   

thePainterInterface.drawTrace : boolean : Read|Write 

ブラシのトレース ラインの表示を取得/設定します。

   

thePainterInterface.normalScale : float : Read|Write 

法線スケールの値を取得/設定します。

   

thePainterInterface.marker : float : Read|Write 

マーカー値を取得/設定します。

   

thePainterInterface.markerEnable : boolean : Read|Write 

マーカーを有効/無効にします。

   

thePainterInterface.pressureEnable : boolean : Read|Write 

圧力タブレットを使用するための圧力感度を有効/無効にします。

   

thePainterInterface.pressureAffects : integer : Read|Write|Validated by Range: 1 to 4 

[圧力効果](Pressure Affects)オプションを取得/設定します。

1 - なし

2 - 強度

3 - サイズ

4 - サイズと強度

   

thePainterInterface.predefinedStrEnable : boolean : Read|Write 

定義済みの強度圧力を有効/無効にします。 true に設定すると、タブレットの圧力または最大強度の値ではなく、ストローク内のグラフの位置に基づいて強度を決定します。グラフを設定するときは、オプションのダイアログ ボックスの「定義済みの圧力」プロパティを使用します。オプションのダイアログ ボックスは、 thePainterInterface.paintOptions() によって使用できます。

   

thePainterInterface.predefinedSizeEnable : boolean : Read|Write 

定義済みのサイズ圧力を有効/無効にします。true に設定すると、タブレットの圧力または最大サイズの値ではなく、ストローク内のグラフの位置に基づいて強度を決定します。グラフを設定するときは、オプションのダイアログ ボックスの「定義済みの圧力」プロパティを使用します。オプションのダイアログ ボックスは、 thePainterInterface.paintOptions() によって使用できます。

   

thePainterInterface.mirrorEnable : boolean : Read|Write 

[ミラー](Mirror)オプションを有効/無効にします。

   

thePainterInterface.mirrorAxis : integer : Read|Write|Validated by Range: 1 to 3 

ミラー軸を取得/設定します。

1 - X

2 - Y

3 - Z

   

thePainterInterface.mirrorOffset : float : Read|Write|Validated by Range: -1e+006 to 1e+006 

ミラーのオフセット値を取得/設定します。

   

thePainterInterface.mirrorGizmoSize : float : Read|Write|Validated by Range: 0.0 to 1e+006 

ミラー ギズモのサイズを取得/設定します。

   

thePainterInterface.pointGatherEnable : boolean : Read|Write 

ポイント収集モードを有効/無効にします。

   

thePainterInterface.buildNormals : boolean : Read|Write 

法線の構築を有効/無効にします。

   

thePainterInterface.offMeshHitType : integer : Read|Write 

メッシュの外側をペイントする場合またはメッシュを使用しないでペイントする場合のヒット タイプを定義します。

0 - 最後のヒット ポイントまたは法線に基づいて平面を作成します。このタイプを使用するときは、ペイントするためのメッシュが必要です。

1 - 画面内への Z 深度。ペイント可能なビュー内に平面の X 単位が作成されます。この場合、メッシュは必要ありません。

2 - 現在のビューに位置合わせされたワールド空間内のポイント上に平面を作成します。この場合、メッシュは必要ありません。

   

thePainterInterface.offMeshHitZDepth : float : Read|Write 

.offMeshHitType 1 を使用する Z 深度を定義します。(前記を参照)

   

thePainterInterface.offMeshHitPos : point3 : Read|Write 

.offMeshHitType 2 を使用するワールド位置を定義します。(前記を参照)

メソッド:

   

<void>thePainterInterface.initializeNodes <integer>flags <node array>nodeList 

ペイント用のノードを初期化します。NodeList は、ペイントするノードの配列です。Flags は現在は使用されていませんが、代わりに 0 を使用できます。

   

<integer>thePainterInterface.numberNodes() 

登録済みのノードの数を返します。

   

<node>thePainterInterface.getNode <integer>index 

インデックスで指定されたノードを返します。

   

<void>thePainterInterface.updateMeshes <boolean>updatePointGather 

メッシュを更新します。

updatePointGather 引数が true の場合は、ポイント収集リストも更新されます。

   

<void>thePainterInterface.startPaintSession() 

ペイント セッションを開始します。

   

<void>thePainterInterface.endPaintSession() 

ペイント セッションを終了します。

   

<void>thePainterInterface.paintOptions() 

[ペイント オプション](Paint Options)ダイアログ ボックスを開きます。

   

<void>thePainterInterface.macroCallback <string>macroName <string>category 

ペイントをコントロールするマクロ コールバック スクリプトの登録に使われます。

macroName は macroScript ソースへのパスであり、category は macroScript のカテゴリです。

   

<boolean>thePainterInterface.inPaintMode() 

ペイント モードのときは true 、ペイントがアクティブでない場合は false を返します。

   

<boolean>thePainterInterface.getIsHit <integer>tabIndex 

インデックスで指定されたポイントがヒットしたとき、 true を返します。

   

thePainterInterface.getHitPointData <void> <&point3>localHit <&point3>localNormal <&point3>worldHit <&point3>worldNormal <&float>radius <&float>str <integer>tabIndex  

すべてのパラメータは In および Out パラメータです。

このメソッドによって、次のストロークのヒット ポイント データを取得できます。

localHit : ヒットしたノードのローカル スペース内のヒット位置

localNormal : ヒットしたノードのローカル スペース内の、ヒットした面の法線

worldHit : ワールド空間のヒット ポイント

worldNormal : ヒット面のワールド空間の法線

radius : ヒット時のブラシの半径

str : ヒット時のブラシの強度

tabIndex : 取得するヒット ポイントのインデックス。この値が 0 の場合は、最後のヒット ポイントが返されます。

   

<void>thePainterInterface.getHitFaceData <&point3>bary <&integer>faceIndex <node>node <integer>tabIndex 

bary is In and Out parameter 
faceIndex is In and Out parameter 

この関数によって、ストロークのヒット面のデータを取得できます。これは、スタックの最上位に存在する面データです。

bary : ヒットした面の重心座標

faceIndex : ヒットした面のインデックス

node : ヒットしたノード

tabIndex : これは、取得するヒット ポイントのインデックスです。この値が 0 の場合、最後のヒット ポイントが返されます。

   

<void>thePainterInterface.getHitPressureData  <&boolean>shift <&boolean>ctrl <&boolean>alt <&float>pressure <integer>tabIndex

shift is In and Out parameter 
ctrl is In and Out parameter 
alt is In and Out parameter 
pressure is In and Out parameter 

これは、ストローク ポイントのキーの状態と圧力の状態を返します。

shift : [Shift]キーの状態

ctrl : [Ctrl]キーの状態

alt : [Alt]キーの状態

pressure : 圧力感知タブレットからの圧力

tabIndex : 取得するヒット ポイントのインデックスこの値が 0 の場合は、最後のヒット ポイントが返されます。

   

<void>thePainterInterface.getMirrorHitPointData <&point3>localMirrorHit <&point3>localMirrorNormal <&point3>worldMirrorHit <&point3>worldMirrorNormal <integer>tabIndex

localMirrorHit is In and Out parameter 
localMirrorNormal is In and Out parameter 
worldMirrorHit is In and Out parameter 
worldMirrorNormal is In and Out parameter 

このメソッドによって、次のストロークのミラー ヒット ポイント データを取得できます。

localMirrorHit : ヒットしたノードのローカル スペース内のヒット位置

localMirrorNormal : ヒットしたノードのローカル スペース内の、ヒットした面の法線

worldMirrorHit : ワールド空間のヒット ポイント

worldMirrorNormal : ヒット面のワールド空間の法線

tabIndex : 取得するミラー ヒット ポイントのインデックス。この値が 0 の場合は、最後のヒット ポイントが返されます。

   

<point2>thePainterInterface.getHitMousePos <integer>tabIndex 

ストローク内の、インデックスで指定されたヒット ポイントのマウス位置を返します。

   

<integer>thePainterInterface.getHitTime <integer>tabIndex 

ストローク内の、インデックスで指定されたヒット ポイントの時間を返します。

   

<float>thePainterInterface.getHitDist <integer>tabIndex 

ストローク内の、インデックスで指定されたヒット ポイントの距離を返します。

   

<point3>thePainterInterface.getHitVec <integer>tabIndex 

ストローク内の、インデックスで指定されたヒット ポイントのベクトルを返します。

   

<integer>thePainterInterface.getHitCount() 

ストローク内のヒットの数を返します。

   

<node>thePainterInterface.getHitNode <index>sampleIndex 

指定されたサンプル インデックスのヒット ノードを返します。

   

<void>thePainterInterface.loadCustomPointGather <node>node <point3 array>pointList 

指定したノードのカスタム ポイント リストをロードします。

   

<bitArray>thePainterInterface.getPointGatherHits <node>node 

ヒット リストを bitArray として返します。

   

<point3>thePainterInterface.getPointGatherPoint <node>node <integer>index 

指定したノードの、インデックスで指定されたポイントの位置を返します。

   

<float>thePainterInterface.getPointGatherStr <node>node <integer>index 

指定したノードの、インデックスで指定されたポイントの強度を返します。

   

<float>thePainterInterface.getPointGatherWeight <node>node <integer>index 

指定したノードの、インデックスで指定されたポイントの重みを返します。

   

<point3>thePainterInterface.getPointGatherNormal <node>node <integer>index 

指定したノードの、インデックスで指定されたポイントの法線ベクトルを返します。

   

<void>thePainterInterface.clearStroke() 

ストロークをクリアします。

   

<void>thePainterInterface.addToStroke <point2>pos <boolean>updatePointGather <boolean>updateViewPort 

ストロークにポイントを追加します。 updatePointGather true の場合、ポイントはリストに追加されます。 updateViewPort true の場合、ポイントはビューポートに表示されます。

   

<boolean>thePainterInterface.getRandomHitOnPoint <integer>index 

指定したポイント上のランダム ヒットを返します。

   

<boolean>thePainterInterface.getRandomHitAlongStroke <integer>index 

指定したストロークに沿ったランダム ヒットを返します。

   

<boolean>thePainterInterface.getTestHit <point2>Point 

指定したポイントでヒットがある場合は true 、それ以外の場合は false を返します。

   

<void>thePainterInterface.getCustomHitPointData <&point3>localHit <&point3>localNormal <&point3>worldHit <&point3>worldNormal <&float>str 

localHit is In and Out parameter 
localNormal is In and Out parameter 
worldHit is In and Out parameter 
worldNormal is In and Out parameter 
str is In and Out parameter 

このメソッドによって、次のカスタム ヒット ポイント データを取得できます。

localHit : ローカル スペース内のヒット位置

localNormal : ローカル スペース内でヒットした面の法線

worldHit : ワールド空間のヒット ポイント

worldNormal : ヒット面のワールド空間の法線

str : ヒット時のブラシの強度

   

<void>thePainterInterface.getCustomHitFaceData <&point3>bary <&integer>faceIndex <node>node 

bary is In and Out parameter 
faceIndex is In and Out parameter 

この関数によって、カスタム ヒット面のデータを取得できます。

bary : ヒットした面の重心座標

faceIndex : ヒットした面のインデックス

node : ヒットしたノード

   

<boolean>thePainterInterface.isPointInside <point2>testPoint <point2 array>pointList 

指定された testPoint pointList 座標に定義されているポリゴンの内部にある場合は、 true を返します。

   

<point3>thePainterInterface.getMirrorCenter() 

ミラー ギズモの中心を取得します。

   

<void>thePainterInterface.ScriptFunctions <value>startStroke <value>paintStroke <value>endStroke <value>cancelStroke <value>systemEnd 

指定されたイベントでペインタのコールバック システムによって呼び出される MAXScript 関数を登録します。詳細は、「Painter インタフェースによるカスタム ペイント ツールの定義」を参照してください。

   

<void>thePainterInterface.undoStart() 

システムを元に戻す機能の記録を開始します。 undoAccept または undoCancel と組み合わせて使用する必要があります。通常は、ストローク機能が開始したときに呼び出されます。

   

<void>thePainterInterface.undoAccept() 

元に戻す機能の現在の記録を確定し、やり直しスタックに格納します。通常は、ストローク機能が終了したときに呼び出されます。

   

<void>thePainterInterface.undoCancel() 

関連事項