代理オブジェクト:ヘルパー

Delegate - superclass: helper; super-superclass:node - 36:0 - classID: #(1086356394, 610041830) 

> MAXWrapper > ノード > ヘルパー > 代理オブジェクト

 

   

Character Studio - クイック ナビゲーション

代理オブジェクトヘルパー オブジェクトは、群集アニメーションで使用される特殊ピラミッド オブジェクトです。特に指定しない限り、ピラミッドのポイントは前方向を示します。

群集オブジェクトは 1 つまたは複数のデレゲートをコントロールします。デレゲートのモーションは、Biped や他のオブジェクトに付与できます。

コンストラクタ

Delegate ... CrowdDelegate ... 

プロパティ

<Delegate>.width Float Default: 0.0 -- world units 

代理オブジェクトオブジェクトの幅。

   

<Delegate>.depth Float Default: 0.0 -- world units 

代理オブジェクトオブジェクトの奥行き。

   

<Delegate>.height Float Default: 0.0 -- world units 

代理オブジェクトオブジェクトの高さ。

   

<Delegate>.velocityColor Color Default: (color 0 0 0) 

showVelocity が true の場合、シミュレーション解決時に指定されたカラーを使ってデレゲートの中心にベクトルを描画します。ベクトルの長さは、デレゲートの相対速度を示します。

   

<Delegate>.active Boolean Default: True 

代理オブジェクトオブジェクトは、群集オブジェクトによってコントロールされます。

   

<Delegate>.showForces Boolean Default: True 

適用可能な任意の動作によりデレゲートに適用される力は、ベクトルとして描画されます。ベクトルの長さが力の程度を示します。たとえば、デレゲートがスペース ワープ動作およびさまよい動作の影響を受ける場合、ベクトル(既定のカラーを使用)はそれぞれ黄色および青緑になります。これらのベクトルは、群集シミュレーションの解決時にのみ表示されます。

   

<Delegate>.showVelocity Boolean Default: False 

[速度カラー](Velocity Color) (上を参照)を使って、ベクトルを描画します。ベクトルの長さはデレゲートの相対速度を示します。このベクトルは、群集シミュレーションの解決時にのみ表示されます。

   

<Delegate>.showCogStates Boolean Default: True 

解決時に、テキスト ラベルがデレゲートの横に表示されます。テキスト ラベルには、現在の動作を指示する認識コントローラの状態またはトランジションの名前が表示されます。

   

<Delegate>.xyConstrain Boolean Default: True 

デレゲートは、シミュレーションの間ずっと初期の高さ(ワールド XY 軸上の位置)のままになります。オフの場合、シミュレーションの間(オブジェクトに異なる高さでシークする場合など)にデレゲートの高さが変化します。

   

<Delegate>.useHierBbox Boolean Default: True 

   

Alias Use_Hierarchy_in_Bounding_Box_Computation

true の場合、回避動作は、デレゲートおよびその子すべてのバウンディング ボックスを使用して、動作を実行します。

このバウンディング ボックスは、群集オブジェクトにより計算され、衝突ディテクタにより使用されます。他の動作からアクセスすることもできます。

   

<Delegate>.averageSpeed Float Default: 5.0 -- animatable; world units 

デレゲートのベースライン速度を、秒あたりの 3ds Max 単位(または現行の単位タイプ)で指定します。これは、リンクされた Biped の組み込み速度や動作の偏差設定など、様々な係数を使ってシミュレート時に変更可能です。

   

<Delegate>.maxAccel Float Default: 0.1 -- animatable; world units 

平均スピードに乗算して、最大加速を決定します。

   

<Delegate>.turnDecel Float Default: 0.3 -- animatable; Alias: Turn_Deceleration_Weight 

デレゲートの回転時に、速度をどの程度低下させるかを指定します。この設定値が大きくなると、回転角度に達したときにデレゲートの速度が低下する度合いも大きくなります。値 0 を指定すると、速度は低下しません。値 1 を指定するとデレゲートが停止します。

値 d はアルゴリズムにより計算されます。この値は、デレゲートの回転角度が 0 からユーザの指定した回転角度地点まで変化するにつれ、0 から(1 - 減速の重み)まで直線的に増加します。次に、デレゲートの速度に d 値が乗算されます。このパラメータに合わせて、可能な限り速度低下が行われます。たとえば、デレゲートが回転角度地点以上回転すると、速度パラメータは 1 - 減速の重みが乗算された値になります。代理オブジェクトが回転しない場合には、そのスピードは減速の重みの影響を受けません。代理オブジェクトが指定された[回転角度](Turn Angle)の半分で回転する場合(d = 減速の重み/2)、そのスピードには(1 - 減速の重み/2)を掛けます。

現実的な例として、デレゲートの速度が 10 単位/秒、減速の重みが 0.4、回転角度地点が 30 の場合を考えましょう。デレゲートが 15 度(回転角度地点の半分)回転すると、有効な減速荷重は 0.2 になります。1 からこの値を減算すると 0.8 が得られます。デレゲートのスピードにこの値を乗算すると、8 単位/秒になります。つまり、回転角度地点の半分だけ回転すると、速度は 8 単位/秒になります。完全に回転(30 度)すると、デレゲートの速度は 6 単位/秒になります。

   

<Delegate>.turnDecelAngle Float Default: 10.0 -- animatable; Alias: Turn_Deceleration_Angle 

減速の重みの減速効果が完全に適用される回転角度を指定します。現在の回転角度が回転角度地点よりも小さい場合、アルゴリズムにより、後者が前者で除算され、減速の重み設定がその結果で除算され、有効な原則荷重が導き出されます。

   

<Delegate>.inclineDecel Float Default: 0.1 -- animatable; Alias: Incline_Deceleration_Weight 

上向きの傾斜を移動する際、デレゲートがどの程度減速するかを指定します。

   

<Delegate>.inclineDecelAngle Float Default: 90.0 -- animatable; Alias: Incline_Deceleration_Angle 

減速の重みの減速効果が完全に適用される上向きの傾斜角度を指定します。

   

<Delegate>.declineAccel Float Default: 0.1 -- animatable; Alias: Decline_Acceleration_Weight 

下向きの傾斜を移動する際、デレゲートがどの程度加速するかを指定します。

加速の重みが減速ではなく加速効果を生み出すことを考慮に入れて、減速の重みの説明を確認してください。有効な加速荷重は、1 からの減算ではなく、1 への加算によって得られます。

   

<Delegate>.declineAccelAngle Float Default: 90.0 -- animatable; Alias: Decline_Acceleration_Angle 

加速の重みの加速効果が完全に適用される下向きの傾斜角度を指定します。

   

<Delegate>.maxTurnVel Float Default: 30.0 -- animatable; Alias: Max_Turn_Velocity 

デレゲートの回転可能な最大角度を指定します。

   

<Delegate>.maxTurnAccel Float Default: 3.0 -- animatable; Alias: Max_Turn_Acceleration 

デレゲートの回転角度が、フレームごとにどれほど変化するかを指定します。この値が小さくない場合、デレゲートの方向がふらつく可能性があります。その場合、回転はスムーズにではなく、突然に行われます。

   

<Delegate>.maxIncline Float Default: 90.0 -- animatable; Alias: Max_Incline_Velocity 

デレゲートの、フレームあたりの上方への最大回転角度を指定します。

   

<Delegate>.maxDecline Float Default: 90.0 -- animatable; Alias: Max_Decline_Velocity 

デレゲートの、フレームあたりの下方への最大回転角度を指定します。

   

<Delegate>.maxBank Float Default: 30.0 -- animatable 

デレゲートの、バンク可能な最大角度を指定します。

   

<Delegate>.maxBankVel Float Default: 3.0 -- animatable; Alias: Max_Bank_Velocity 

デレゲートの、フレームあたりの最大バンク角度を指定します。

   

<Delegate>.bankPerTurn Float Default: 1.0 -- animatable 

現在のフレームにおける回転角度の関数として代理オブジェクトがバンクする度数。たとえば、Bank per Turn が 1 の場合、代理オブジェクトは指定されたフレームで 1 度回転するごとに 1 度バンクします。

   

<Delegate>.useBiped Boolean Default: False 

true の場合、デレゲートは Biped と関連付けられます。

   

<Delegate>.biped Node Default: Undefined 

デレゲートが関連付けられる Biped。

   

<Delegate>.startFrame Integer Default: 0 

関連付けられた Biped の最初のクリップの再生開始フレーム。

   

<Delegate>.priority Integer Default: 0 

デレゲートの優先順位を設定します。この優先順位により、Biped/デレゲートのシミュレーション解決順序が決定されます。

   

<Delegate>.startClip Integer Default: 0 

0 - 現在のスクリプトの最初のクリップ

1 - ランダムにクリップを開始

   

<Delegate>.duration Integer Default: 0 

現在の状態でのデレゲートのフレーム数。

   

<Delegate>.behaviors ArrayParameter Default: #() 

behaviors プロパティには、計算時に有効な値だけが含まれます。計算時に使用される動作が含まれます。

   

<Delegate>.weights ArrayParameter Default: #() 

weights プロパティには、計算時に有効な値だけが含まれます。各要素には、behaviors プロパティ値内の対応する動作の重みが含まれます。

   

<Delegate>.simpos Point3 Default: [0,0,0] 

simpos プロパティには、計算時に有効な値だけが含まれます。シミュレーション時のデレゲートの現在位置が含まれます。

   

<Delegate>.randID Integer Default: 0 

通常、動作によりシード計算の一部に使用される、一意ではない識別子になります。複数のデレゲートが同じ randId を保持する場合、それらのデレゲートは同じランダム動作を保持します。特に指定しない限り、群集は一意の randId を作成します。

   

<Delegate>.index Integer Default: -1 -- Read-only 

さまざまな動作により使用されるインデックス。内部配列へのインデックスとして使用されます。計算前、群集は、計算に参加しているデレゲートに連続したインデックス セットが付与されていることを確認します。これにより、動作は、これらのインデックスを使用する配列を設定できます。

   

代理オブジェクトの関連メソッド

delegates.isComputing <delegate_node> 

群集計算シミュレーションで、デレゲートがアクティブな場合は '1' を、アクティブでない場合は '0' を返します。

   

delegates.velocity <delegate_node> 

現在のシミュレーション フレームでのデレゲートの平均化された速度を、Point3 値で返します。

   

delegates.prevVelocity <delegate_node> 

前のシミュレーション フレームでのデレゲートの平均化された速度を、Point3 値で返します。

   

delegates.startVelocity <delegate_node> <time> 

群集シミュレーション開始時のデレゲートの平均化された速度を、Point3 値で返します。このため、<time> パラメータは crowd.simStart と等価な時間値でなければなりません。

   

delegates.speed <delegate_node> 

現在のシミュレーション フレームでのデレゲートの速度を、実数で返します。

   

delegates.isAssignmentActive <delegate_node> <assignmentIndex> <time> 

指定された時間に、デレゲートが特定の群集割り当てでアクティブな場合に '1' を、そうでない場合に '0' を返します。<assignmentIndex> は、crowds.assignment 配列内の割り当てのインデックスに直接対応します。

   

delegates.computingBiped <delegate_node> 

デレゲートに関連付けられた Biped がバックトラックされている場合、'0' を返します。このメソッドはおもに内部使用されるものです。

   

delegates.reactToMe <delegate_node> 

true の場合、シミュレーションにおける現時点のデレゲートの位置や方向は正しいので、このデレゲートの位置を MAXScript の計算で使用しても問題ありません。したがって、「リアクション先」がデレゲートになります。このプロパティは、Biped または crowd のシミュレーションの優先度が高く、デレゲートの優先度が低いために、デレゲートがまだ計算されていない場合は false になります。デレゲートの位置が正しくない場合は、その位置を基にして MAXScript の計算を実行しないでください。

 crowd シミュレーションの計算時、関数 lineDisplaysphereDisplaybboxDisplaytextDisplay はすべて、特定のデレゲートのグラフィックス プリミティブ描画に使用できます。すべてのポジショナル値は、ワールド空間内に存在します。通常、これらの関数は、動作を視覚的に表示するためにスクリプト化された動作内部で使用されます。たとえば、lineDisplay を使用して線を描画することで、動作がデレゲートに及ぼす力を表現できます。

   

delegates.lineDisplay <delegate_node> <startPosition> <endPosition> <color> <vectorScale> 

この関数は、開始位置から endPosition まで、指定された色で線を描画します。

<startPosition> は point3 値です。

<endPositions> は point3 値です。

<color> はカラー値です。

<vectorScale> はブール値です。Crowd.vectorScale 値を使って線の表示をスケーリングするかどうかを指定します。

   

delegates.sphereDisplay <delegate_node> <position> <radius> <color> 

この関数は、球を、位置 <position>、半径のサイズ <radius>、カラー <color> で描画します。<position> は point3 値、radius は実数、<color> はカラー値です。

   

delegates.bboxDisplayc <delegate_node> <minPosition> <maxPosition> <color> 

この関数は、バウンディング ボックスを、2 つの極値ポイント <minPosition>、<maxPosition> および指定されたカラーで描画します。<minPosition> および <maxPosition> は point3 値、<color> はカラー値です。

   

delegates.textDisplay <delegate_node> <position> <color> <string> 

この関数は、<string> パラメータ内のテキストを、<position> で指定された位置および <color> に指定されたカラーで描画します。<position> は point3 値、<color> はカラー値、<string> は文字列値です。

   

delegates.simTransform<delegate> <time> 

指定された時間のデレゲートの変換行列を Matrix3 で返します。このメソッドは、計算時に有効な値を返します。

注:

計算時、シミュレーションは、デレゲート ノードの位置および回転キーを設定しません。設定はシミュレーションの停止後に行われます。このため、計算時にデレゲート ノードの位置および回転にアクセスすると、不正確な結果が返されます。計算中、デレゲートの位置には、.simpos プロパティを使ってアクセスできます。

デレゲートはレンダリングできません。このため、代理オブジェクトオブジェクトは、主にシーンの設定およびバウンディング ボックスの範囲設定で使用されます。

関連事項