Pivot Painter Tool 2.0 MAXScript のリファレンス

Pivot Painter 2 の機能についての適切なリファレンスと説明

このページでは、Pivot Painter 2 3DS Max スクリプトの様々なプロパティを取り上げます。このツールは、モデルの回転軸と回転の情報をテクスチャ内に格納して複雑なアニメーションを作成します。MAXScript を使って UE4 内のマテリアルですべてを操作するアニメーションの複雑な階層を作成することができます。

PivotPainter2.png

Prep Tools

PrepTools.png

プロパティ

説明

Detach Selected Model's Elements

オブジェクトのすべてのエレメントの親子付けを解除し、個々のオブジェクトにします。

Preserve Custom Normals (Slow)

存在するモデル エレメントの数だけモデルを複製し、各コピーからひとつのエレメント以外のすべてを削除します。これはメッシュのカスタム法線を保つためです。

この方法は、親子付けを解除するエレメントの数次第では、非常に時間がかかるおそれがあります。存在するエレメントの数だけモデルが複製されるからです。絶対に必要な場合に限り、この機能を使用することをお勧めします。

Detach Elements Based on Penetration (貫通に応じて要素をデタッチする)

Pick Selected Obj

Modifier を適用せずに編集可能なポリゴン オブジェクトを選びます。[selection object] オプションと [model to process] オプションの両方に対して同じオブジェクトを選ばないようにしてください (注意:穴があるメッシュは選択できません)

Pick Model to Proc

Modifier を適用せずに編集可能なポリゴン オブジェクトを選びます。[selection object] オプションと [model to process] オプションの両方に対して同じオブジェクトを選ばないようにしてください (注意:穴があるメッシュは選択できません)

Detach Model Elements That Touch

選択オブジェクトのジオメトリに接触するか貫通するエレメントがあれば別個のオブジェクトに分けます。(注意:このツールは選択オブジェクトに穴があると適切に機能しません)。

Generate New Pivot Points (新しいピボット ポイントを生成する)

Pick Your Model Selection Set

このドロップダウンを使ってモデルの選択セットを選択します。

プロパティ

説明

Update

3DS Max から最新の選択セットを得るにはこれを押します。

Manage

選択セットを管理するにはこれを押します。

Pick Leaf Pivot Obj

スプラインのノットか、編集可能なポリゴン オブジェクトの頂点にに基づき回転軸を構築するかどうかを選びます。これで、 [Pick Spline] または [Pick Mesh] のボタン選択が有効になります。

プロパティ

説明

Pick Spline

このボタンを使ってシーン ビューポートからスプラインを選びます。このスクリプトでは、各モデルとスプラインの各ノットとの間で最も近い頂点ペアを見つけます。次に、オブジェクトの回転軸をその頂点の位置まで動かし、モデルに合わせて軸を向けます。x 軸は必要な頂点からモデル中央に向けてポイントします。z 軸は表面の法線に沿ってポイントします。頂点カウントの上昇に伴い処理時間は長くなります。(警告:H list ホットキーは使用しないでください。オブジェクトはビューポートから選ばなければなりません。) (ヒント: 草の場合、草から十分下の場所に配置した単一または 2 つのノットを持つスプラインを使用して計算速度を速めます)。

Pick Mesh

このボタンを使ってシーンのビューポートからメッシュを選びます。モデルの回転軸とモデルの頂点との間で最も近い対応する頂点を見つけます。次に、葉の軸をポリゴンの方向と頂点の位置に向けます。注意:H list ホットキーは使用しないでください。オブジェクトはビューポートから選ばなければなりません。) (ヒント: 草の場合、草から十分下の場所に配置した単一または 2 つのノットを持つスプラインを使用して計算速度を速めます)。

Num of Face Norms to Avg Near Pivot

回転軸の近くで平均化する面の法線の数を指定する値を入力します。影響を及ぼす法線の数を制御することができます。または、[Average All] チェックボックスを有効にして、回転軸の近くにある利用可能なすべての面の法線を含めるようにします。

Create New Pivots

選択セットにあるすべての編集可能なポリゴン オブジェクトに対して新規回転軸を生成します。回転軸は選択したスプラインのノットに最も近いモデルの頂点、または選択した編集可能なポリゴン オブジェクトの頂点になります。回転軸の x 軸はメッシュの平均化した中央の方向を向きます。メッシュのバウンドも再作成されて、新しい回転軸に位置合わせされます。

Recreate Bounding Boxes (バウンディング ボックスの再作成)

Process Selected Objects

サブオブジェクトの操作によってモデルが変化するにつれて、バウンディング ボックスがモデルのエレメントに合わせて拡張しますが、モデルの回転軸に対して再び位置合わせはしません。これは、モデルの基底ベクターに対して位置合わせしてオブジェクトのバウンディング ボックスを再作成します。頂点アルファ ペイント ツールと共に、この軸ツールをうまく利用するには、プロセシング セクションでバウンディング ボックスを正確に構築しなければなりません。

プロパティ

説明

Update

3DS Max から最新の選択セットを得るにはこれを押します。

Manage

選択セットを管理するにはこれを押します。

プロパティ

説明

Pick Spline

このボタンを使ってシーン ビューポートからスプラインを選びます。このスクリプトでは、各モデルとスプラインの各ノットとの間で最も近い頂点ペアを見つけます。次に、オブジェクトの回転軸をその頂点の位置まで動かし、モデルに合わせて軸を向けます。x 軸は必要な頂点からモデル中央に向けてポイントします。z 軸は表面の法線に沿ってポイントします。頂点カウントの上昇に伴い処理時間は長くなります。(警告:H list ホットキーは使用しないでください。オブジェクトはビューポートから選ばなければなりません。) (ヒント: 草の場合、草から十分下の場所に配置した単一または 2 つのノットを持つスプラインを使用して計算速度を速めます)。

Pick Mesh

このボタンを使ってシーンのビューポートからメッシュを選びます。モデルの回転軸とモデルの頂点との間で最も近い対応する頂点を見つけます。次に、葉の軸をポリゴンの方向と頂点の位置に向けます。注意:H list ホットキーは使用しないでください。オブジェクトはビューポートから選ばなければなりません。) (ヒント: 草の場合、草から十分下の場所に配置した単一または 2 つのノットを持つスプラインを使用して計算速度を速めます)。

レンダー オプション

RenderOptions.png

プロパティ

説明

Process The Selected Object Hierarchy

メッシュを選択し、ペイントを押します。このスクリプトは選択したメッシュに共有の階層を介して接続されている、すべての編集可能なポリゴン メッシュを見つけます (3DS Max Link ツールを使うとオブジェクトを別のオブジェクトに接続することができます)。メッシュを見つけると、スクリプトは選んだ UV チャンネルを変更し、生成されるテクスチャのベースになるようにします。デフォルトのテクスチャには、画像の RGB チャンネルにある回転軸情報やアルファのインデックスなどのモデル情報が入っています。このインデックスを使って現在のメッシュの親メッシュを見つけることができます。これは、UE4 で単純な Pivot Painter 2.0 のマテリアル関数で作られています。

UVs

Texture Coordinate Location

[Paint (ペイント)]

Custom Textures (テクスチャをカスタムする)

Texture 1 RGB

選択

Do not render

Texture 1 が書き込まれないようにします。

Pivot Position (16-bit)

HDR 回転軸の位置情報をテクスチャの RGB チャンネルに書き込みます。この情報は、シェーダー内で参照された場合に ms_PivotPainter2_DecodePosition 関数を使ってデコードする必要があります。

Origin Position (16-bit)

HDR オブジェクトのバウンドの中央ポイントの情報をテクスチャの RGB チャンネルに書き込みます。この情報は、シェーダー内で参照される場合に ms_PivotPainter2 関数を使ってデコードする必要があります。

Origin Extents (16-bit)

モデルの原点から各基底ベクターでモデルの最大長を 3 つの float として格納します。ローカル値を直接参照することができますが、シェーダー内で参照される場合、ms_PP2_DecodeOriginExtent を使用します。

X Vector (8-bit)

モデルの X-軸の基底ベクターを格納します。マテリアルで参照される場合、ms_PivotPainter2_DecodeAxisVector でデコードする必要があります。

Y Vector (8-bit)

モデルの Y 軸の基底ベクターを格納します。マテリアルで参照される場合、ms_PivotPainter2_DecodeAxisVector でデコードする必要があります。

Z Vector (8-bit)

モデルの Z 軸の基底ベクターを格納します。マテリアルで参照される場合、ms_PivotPainter2_DecodeAxisVector でデコードする必要があります。

Texture 1 Alpha

Selection (選択)

利用可能な 16-Bit 選択オプション

Parent Index (Int as float)

Pivot Painter 2 を使うと、アンリアル エンジンのマテリアル システム内の複雑な階層を再作成することができます。これは、テクスチャ内で反復的にポイントをサンプリングし、このプロセス中に収集した情報を使って階層を再構築して行います。[Parent Index] オプションでは、ピクセルを読み出し、親オブジェクトの回転軸情報が同じテクスチャ内のどこにあるかを正確に示します。このデータを直接参照することは高度であるとみなされます。ほとんどの場合、デフォルトのテクスチャ設定を使ってモデルを処理してから、それを PivotPainter2FoliageShader 関数で使用します。この関数は、4 レベルまでの深さの階層を再作成し、フォリッジのアニメート中に必要となるアニメーションの制御機能を多数提供します。独自に複雑なネットワークを作成する場合、このチャンネルのデータは整数であり、float 形式にデコードしてから、ms_PivotPainter2_UnpackIntegerAsFloat によって参照されることに注意してください。次にこの情報を ms_PivotPainter2_ReturnParentTextureInfo で使ってオブジェクトの親オブジェクトの UV 位置を戻します。Is Child? (以下の注意事項のセクション参照) 出力ピンは、ピクセルが他のピクセルを親としてポイントしているか、または自己をポイントしているかを示す (ルート オブジェクトであることを意味します) 黒または白の値を戻します。詳しい情報は、 PivotPainter2FoliageShader 関数を試してみてください。

Texture 1 と Texture 2 のレンダー オプションは同じです。16-bit RGB オプションを選ぶと、16-bit Alpha オプションが表示されて、8-bit Alpha オプションが非表示になります。逆に 8-bit RGB オプションを選ぶと、8-bit Alpha オプションが表示されて 16-bit オプションが非表示になります。

Number of Steps From Root

追加のデコード ステップなしにこの float 値を参照することができます。現在のオブジェクトがルートからどれくらいのステップ数であるかを表します。

Random 0-1 Value Per Element

アイテム毎にランダムに生成された 0-1 の数字を格納し、マテリアル関数のデコードを追加で使用せずに参照することができます。

Bounding Box Diameter

処理されているオブジェクトのローカル空間の直径を float 値として格納します。ObjectScale マテリアル関数の出力によって、その出力を乗算処理することでワールド空間のスケールに変換することができます。

Selection Order (Int as float)

このオプションが選択された場合、3DS Max 内に整数として格納されているオブジェクトが選択される順序です。この情報を参照する場合は、ms_PivotPainter_UnpackIntegerAsFloatPivotPainter2

Normalized 0-1 Hierarchy Position

選択すると 3DS MAXScript は選択したオブジェクトの階層の深度の合計を見つけてから、その階層内でのオブジェクトの深度を見つけて、深度の合計で除算することでオブジェクトの現在の深度をノーマライズします。この情報は 0-1 float 値として格納され、デコードは不要です。

Object X Width

ローカルの X ベクターに沿って 3DS Max で処理されているオブジェクトの合計の長さに等しい float 値を戻します。

Object Y Depth

ローカルの Y ベクターに沿って 3DS Max で処理されているオブジェクトの合計の長さに等しい float 値を戻します。

Object Z Height

ローカルの Z ベクターに沿って 3DS Max で処理されているオブジェクトの合計の長さに等しい float 値を戻します。

利用可能な 8-Bit 選択オプション

Normalized 0-1 Hierarchy Position

選択すると 3DS MAXScript は選択したオブジェクトの階層の深度の合計を見つけてから、その階層内でのオブジェクトの深度を見つけて、深度の合計で除算することでオブジェクトの現在の深度をノーマライズします。この情報は 0-1 float 値として格納され、デコードは不要です。

Random 0-1 Value Per Element

アイテム毎にランダムに生成された 0-1 の数字を格納し、マテリアル関数のデコードを追加で使用せずに参照することができます。

X Extent Divided by 2048 - 2048 Max

ローカルの X ベクターに沿って 3DS Max で処理されているオブジェクトの合計の長さに等しい8-bit の float 値を戻します。こうした値は ms_PivotPainter2_Decode8BitAlphaAxisExtent を使用して値をデコードします。

この形式は、 8-2048 の間の値で 8 ずつ増やして値を表現します。

Y Extent Divided by 2048 - 2048 Max

ローカルの Y ベクターに沿って 3DS Max で処理されているオブジェクトの合計の長さに等しい 8-bit の float 値を戻します。こうした値は ms_PivotPainter2_Decode8BitAlphaAxisExtent を使用して値をデコードします。

この形式は、 8-2048 の間の値で 8 ずつ増やして値を表現します。

Z Extent Divided by 2048 - 2048 Max

ローカルの Z ベクターに沿って 3DS Max で処理されているオブジェクトの合計の長さに等しい値の8-bit の float 値を戻します。こうした値は ms_PivotPainter2_Decode8BitAlphaAxisExtent を使用して値をデコードします。

この形式は、 8-2048 の間の値で 8 ずつ増やして値を表現します。

Texture 2 RGB

Selection (選択)

Do not render

Texture 1 が書き込まれないようにします。

Pivot Position (16-bit)

HDR 回転軸の位置情報をテクスチャの RGB チャンネルに書き込みます。この情報は、シェーダー内で参照された場合に ms_PivotPainter2_DecodePosition 関数を使ってデコードする必要があります。

Origin Position (16-bit)

HDR オブジェクトのバウンドの中央ポイントの情報をテクスチャの RGB チャンネルに書き込みます。この情報は、シェーダー内で参照される場合に ms_PivotPainter2 関数を使ってデコードする必要があります。

Origin Extents (16-bit)

モデルの原点から各基底ベクターでモデルの最大長を 3 つの float として格納します。ローカル値を直接参照することができますが、シェーダー内で参照される場合、ms_PP2_DecodeOriginExtent を使用します。

X Vector (8-bit)

モデルの X-軸の基底ベクターを格納します。マテリアルで参照される場合、ms_PivotPainter2_DecodeAxisVector でデコードする必要があります。

Y Vector (8-bit)

モデルの Y 軸の基底ベクターを格納します。マテリアルで参照される場合、ms_PivotPainter2_DecodeAxisVector でデコードする必要があります。

Z Vector (8-bit)

モデルの Z 軸の基底ベクターを格納します。マテリアルで参照される場合、ms_PivotPainter2_DecodeAxisVector でデコードする必要があります。

Texture 2 Alpha

Selection (選択)

利用可能な 16-Bit 選択オプション

Parent Index (Int as float)

Pivot Painter 2 を使うと、アンリアル エンジンのマテリアル システム内の複雑な階層を再作成することができます。これは、テクスチャ内で反復的にポイントをサンプリングし、このプロセス中に収集した情報を使って階層を再構築して行います。[Parent Index] オプションでは、ピクセルを読み出し、親オブジェクトの回転軸情報が同じテクスチャ内のどこにあるかを正確に示します。このデータを直接参照することは高度であるとみなされます。ほとんどの場合、デフォルトのテクスチャ設定を使ってモデルを処理してから、それを PivotPainter2FoliageShader 関数で使用します。この関数は、4 レベルまでの深さの階層を再作成し、フォリッジのアニメート中に必要となるアニメーションの制御機能を多数提供します。独自に複雑なネットワークを作成する場合、このチャンネルのデータは整数であり、float 形式にデコードしてから、ms_PivotPainter2_UnpackIntegerAsFloat によって参照されることに注意してください。次にこの情報を ms_PivotPainter2_ReturnParentTextureInfo で使ってオブジェクトの親オブジェクトの UV 位置を戻します。Is Child? (以下の注意事項のセクション参照) 出力ピンは、ピクセルが他のピクセルを親としてポイントしているか、または自己をポイントしているかを示す (ルート オブジェクトであることを意味します) 黒または白の値を戻します。詳しい情報は、 PivotPainter2FoliageShader 関数を試してみてください。

Texture 1 と Texture 2 のレンダー オプションは同じです。16-bit RGB オプションを選ぶと、16-bit Alpha オプションが表示されて、8-bit Alpha オプションが非表示になります。逆に 8-bit RGB オプションを選ぶと、8-bit Alpha オプションが表示されて 16-bit オプションが非表示になります。

Number of Steps From Root

追加のデコード ステップなしにこの float 値を参照することができます。現在のオブジェクトがルートからどれくらいのステップ数であるかを表します。

Random 0-1 Value Per Element

アイテム毎にランダムに生成された 0-1 の数字を格納し、マテリアル関数のデコードを追加で使用せずに参照することができます。

Bounding Box Diameter

処理されているオブジェクトのローカル空間の直径を float 値として格納します。ObjectScale マテリアル関数の出力によって、その出力を乗算処理することでワールド空間のスケールに変換することができます。

Selection Order (Int as float)

このオプションが選択された場合、3DS Max 内に整数として格納されているオブジェクトが選択される順序です。この情報を参照する場合は、ms_PivotPainter_UnpackIntegerAsFloatPivotPainter2

Normalized 0-1 Hierarchy Position

選択すると 3DS MAXScript は選択したオブジェクトの階層の深度の合計を見つけてから、その階層内でのオブジェクトの深度を見つけて、深度の合計で除算することでオブジェクトの現在の深度をノーマライズします。この情報は 0-1 float 値として格納され、デコードは不要です。

Object X Width

ローカルの X ベクターに沿って 3DS Max で処理されているオブジェクトの合計の長さに等しい float 値を戻します。

Object Y Depth

ローカルの Y ベクターに沿って 3DS Max で処理されているオブジェクトの合計の長さに等しい float 値を戻します。

Object Z Height

ローカルの Z ベクターに沿って 3DS Max で処理されているオブジェクトの合計の長さに等しい float 値を戻します。

利用可能な 8-Bit 選択オプション

Normalized 0-1 Hierarchy Position

選択すると 3DS MAXScript は選択したオブジェクトの階層の深度の合計を見つけてから、その階層内でのオブジェクトの深度を見つけて、深度の合計で除算することでオブジェクトの現在の深度をノーマライズします。この情報は 0-1 float 値として格納され、デコードは不要です。

Random 0-1 Value Per Element

アイテム毎にランダムに生成された 0-1 の数字を格納し、マテリアル関数のデコードを追加で使用せずに参照することができます。

X Extent Divided by 2048 - 2048 Max

ローカルの X ベクターに沿って 3DS Max で処理されているオブジェクトの合計の長さに等しい8-bit の float 値を戻します。こうした値は ms_PivotPainter2_Decode8BitAlphaAxisExtent を使用して値をデコードします。

この形式は、 8-2048 の間の値で 8 ずつ増やして値を表現します。

Y Extent Divided by 2048 - 2048 Max

ローカルの Y ベクターに沿って 3DS Max で処理されているオブジェクトの合計の長さに等しい 8-bit の float 値を戻します。こうした値は ms_PivotPainter2_Decode8BitAlphaAxisExtent を使用して値をデコードします。

この形式は、 8-2048 の間の値で 8 ずつ増やして値を表現します。

Z Extent Divided by 2048 - 2048 Max

ローカルの Z ベクターに沿って 3DS Max で処理されているオブジェクトの合計の長さに等しい値の8-bit の float 値を戻します。こうした値は ms_PivotPainter2_Decode8BitAlphaAxisExtent を使用して値をデコードします。

この形式は、 8-2048 の間の値で 8 ずつ増やして値を表現します。

頂点アルファ ペインタ

VertexAlphaPainter.png

プロパティ

説明

アルファ チャンネルのフォールオフの制御

3D dist to piv multiplier

回転軸から現在の頂点へ距離の計算を乗算処理します。

3D dist to piv contrast

オブジェクトの回転軸と現在の頂点位置との間の勾配に基づき距離に適用する指数関数の指数としてコントラストのオプションを使います。

XYZ Multiplier

X, Y, Z のローカル空間での勾配の影響を選択的に増やしたり減らしたりします。勾配は、オブジェクトの回転軸と軸の方向に沿って定義される頂点とオブジェクトの中央線との間の距離を見つけて求められます。

XYZ Contrast

XYZ 勾配の結果に適用される指数関数に適用される指数

Paint Current Selection

上記のパラメータを使って選択セットで編集可能なポリゴン オブジェクトをペイントします。編集可能なポリゴン オブジェクトを折りたたまないオブジェクトは無視されます。

ソリッド値のペイント

Value

選択したメッシュにソリッド カラーをペイントするために 0 から 1 の間の値を使用します。値 0 は黒で、1 は真っ白になります。

Paint Selected Meshes a Solid Value

値ゼロで頂点アルファを塗りつぶします。この値はアンリアルのシェーダーで特定エレメントからアニメーションを隔離したり、取り除くために参照することができます。

選択したオブジェクトでプレビュー

Diffuse

この新しいチャンネルを見るにはアクティブなビューポートをクリックします。

Alpha

この新しいチャンネルを見るにはアクティブなビューポートをクリックします。

Color

この新しいチャンネルを見るにはアクティブなビューポートをクリックします。

モデルのパッケージ

PackageModel.png

プロパティ

説明

Merge Selected Model's Normals

接触するオープン エッジを含むいくつかのモデルを選択します。この機能は、連続した面を作るように法線を平均化します。

Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
キャンセル