ノードボーンのプロパティとメソッドのアクセス

シーン ノード上の一部のプロパティおよびメソッドは、[ノード プロパティ](Node Properties)ダイアログ ボックス内のボーン パラメータと関数に対応しており、アクセスが可能です。

これらのプロパティとメソッドは、INode ノード インタフェースで表示されます。インタフェース:INode

プロパティ:

<node>.boneEnable : Boolean, read-only    

設定メソッドについては、<node>.setBoneEnable を参照してください。

<node>.boneAutoAlign  : Boolean

オフの場合、ボーンの基点は子オブジェクトに位置合わせされません。

子ボーンを変換しても、親の回転に変換されません。

代わりに、親の X 軸から子を離すことができます。

注: このチェック ボックスの状態を変更しても、スケルトンの視覚効果はすぐに現れません。その後ボーンを移動するときに、初めて影響が現れます。このオプションは、[ボーン] (Bone)がオフの場合にのみ使用できます。
<node>.boneFreezeLength : Boolean

オンの場合、ボーンの長さが保持されます。

オフの場合、ボーンの長さは子ボーンの変換に基づいて決定されます。

このオプションは、[自動位置合わせ] (Auto-Align)がオンの場合にのみ使用できます。

<node>.boneScaleType

#scale、#squash、#none のいずれかです。

#None - ストレッチは実行されません。

#Scale - ボーンのスケールを実行します。 ストレッチは、1 つの軸に沿って発生します。

#Squash - ボーンの押し潰しを実行します。 ボーンは短くなるほど太くなり、長くなるほど細くなります。

<node>.stretchTM : matrix3, read-only

通常、行列の結合は次のように実行されます。

objectTM = objectOffsetTM * stretchTM * nodeTM

objectTM を使用するコードは、stretchTM の効果を透過的に継承します。

ただし、オブジェクト オフセットではなく stretchTM を含めたい場合は、このプロパティは stretchTM のみを返します。

ノードがボーンではないか、またはストレッチがない場合は、このプロパティは単位行列を返します。

メソッド

<node>.setBoneEnable <onOff_boolean> <initial-time_time>

ボーンのオンとオフを切り替えます。

<onOff boolean>

オンに設定すると、ボーンまたはオブジェクトはボーンとして動作します。このオプションをオフに設定すると、ノードがボーンとして動作しなくなります。自動位置合わせまたは自動ストレッチは行われません。このオプションをオンに設定すると、オブジェクトの位置合わせまたはストレッチがすぐに行われます。ただし、この後で子を変換すると、回転およびストレッチが実行される場合があります。既定値は、ボーン オブジェクトの場合はオン、他のオブジェクトの場合はオフです。

<initial-time time>

子の初期位置を計算および保存する時刻を指定します。

これは通常、現在のタイム スライダ位置で使用されます。

タイム スライダに関連付けられている時間は、sliderTime グローバル変数を介して問い合わせたり設定することができます。時間コントロール

.setBoneEnable を使用したマクロスクリプトの例については、\ui\macroscripts\Macro_Bones.mcr の 3ds Max ディレクトリを参照してください。

<node>.realignBoneToChild()

ノードを回転して、ボーン プロパティがオンになっているすべての子の平均位置にノードの X 軸を一致させます。

<node>.resetBoneStretch()

ストレッチ係数の計算に使用される子の初期位置は、子の現在位置に再設定します。

ストレッチ係数が 1 になります。

ストレッチ係数が 1 でない場合は、オブジェクトは元のストレッチされていない状態にスナップします。