Delegate - superclass: helper; super-superclass:node - 36:0 - classID: #(1086356394, 610041830)
値 > MAXWrapper > ノード > ヘルパー > 代理オブジェクト
代理オブジェクトヘルパー オブジェクトは、群集アニメーションで使用される特殊ピラミッド オブジェクトです。特に指定しない限り、ピラミッドのポイントは前方向を示します。
群集オブジェクトは 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 の計算を実行しないでください。
群集シミュレーションの計算時、関数 lineDisplay、sphereDisplay、bboxDisplay、textDisplay はすべて、特定のデレゲートのグラフィックス プリミティブ描画に使用できます。 すべてのポジショナル値は、ワールド空間内に存在します。通常、これらの関数は、動作を視覚的に表示するためにスクリプト化された動作内部で使用されます。たとえば、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 プロパティを介してアクセスできます。
デレゲートはレンダリングできません。このため、代理オブジェクトオブジェクトは、主にシーンの設定およびバウンディング ボックスの範囲設定で使用されます。