crowds 構造体には次のメソッドがあります。 これらのメソッドは character studio の Crowd(群集)機能に影響します。
crowds. solve <crowd_node>
crowd の[計算](Solve)ロールアウトで[計算](Solve)をクリックした場合と等価。.solve により、現行の他の crowd パラメータ設定すべてに基づき計算が開始されます。
crowds. genclones <crowd_node>
[スキャッタ](Scatter)オブジェクト アイコンをクリックすると表示される[オブジェクトをスキャッタ](Scatter Objects)ダイアログ ボックスの[クローン](Clones)タブで、[クローンを生成](Generate Clones)をクリックした場合と等価。他の現行 crowd パラメータ設定すべてに基づいて、クローンが作成されます。
crowds. genlocations <crowd_node>
[スキャッタ オブジェクト](Scatter Objects)アイコンをクリックすると表示される[オブジェクトをスキャッタ](Scatter Objects)ダイアログ ボックスの[位置](Position)タブで、[位置を生成](Generate Locations)をクリックした場合と等価。他の現行 crowd パラメータ設定すべてに基づいて、位置が作成されます。
crowds.genrotations <crowd_node>
[スキャッタ オブジェクト](Scatter Objects)アイコンをクリックすると表示される[オブジェクトをスキャッタ](Scatter Objects)ダイアログ ボックスの[回転](Rotation)タブで、[方向を生成](Generate Orientations)をクリックした場合と等価。他の現行 crowd パラメータ設定すべてに基づいて、回転が作成されます。
crowds.genscales <crowd_node>
[スキャッタ オブジェクト](Scatter Objects)アイコンをクリックすると表示される[オブジェクトをスキャッタ](Scatter Objects)ダイアログ ボックスの[スケール](Scales)タブで、[スケールを生成](Generate Scales)をクリックした場合と等価。他の現行 crowd パラメータ設定すべてに基づいて、スケールが作成されます。
crowds.scatterall <crowd_node>
[オブジェクトをスキャッタ](Scatter Objects)ダイアログ ボックスの[すべての操作](All Ops)タブで[スキャッタ](Scatter)ボタンをクリックした場合と等価。他の現行 crowd パラメータ設定すべてに基づいて、オブジェクトがスキャッタされます。
crowds.alignObjects <crowd_node>
[オブジェクトを代理オブジェクトに関係付け](Associate Objects with Delegates)アイコンをクリックすると表示される[オブジェクト/代理オブジェクトの関係付け](Object / Delegates)ダイアログ ボックスで、[オブジェクトを代理オブジェクトに位置合わせ](Align Objects with Delegates)をクリックした場合と等価。他の現行 crowd パラメータ設定すべてに基づいて、オブジェクトの位置合わせが行われます。
crowds.linkObjects<crowd_node>
[オブジェクトを代理オブジェクトに関係付け](Associate Objects with Delegates)アイコンをクリックすると表示される[オブジェクト/代理オブジェクトの関係付け](Object / Delegates)ダイアログ ボックスで、[オブジェクトを代理オブジェクトにリンク](Link Objects to Delegates)をクリックした場合と等価。他の現行 crowd パラメータ設定すべてに基づいて、オブジェクトがリンクされます。
crowds.assignControllers <crowd_node>
[オブジェクトを代理オブジェクトに関係付け](Associate Objects with Delegates)アイコンをクリックすると表示される[オブジェクト/代理オブジェクトの関係付け](Object / Delegates)ダイアログ ボックスで、[代理オブジェクトコントローラをオブジェクトに割り当て](Assign Delegate Controllers to Objects)をクリックした場合と等価。他の現行 crowd パラメータ設定すべてに基づいて、コントローラの割り当てが行われます。
crowds.smooth<crowd_node>
[スムージング](Smoothing)ロールアウトのスムージングするオブジェクトを選択ボタンをクリックすると表示される[スムージング](Smoothing)ダイアログ ボックスで、[OK]をクリックした場合と等価。他の現行 crowd パラメータ設定すべてに基づいて、オブジェクト モーションのスムージングが行われます。
crowds.assignGridProximityPriorities <crowd_node>
[優先順位](Priority)ロールアウトの[グリッドへの距離/割り当て](Proximity to a Grid/Assign)をクリックした場合と等価。<Crowd.priority>.grid に指定されたグリッドからの距離に基づき、<Crowd.priority>.delegates で指定されたデレゲートに優先順位を割り当てます。
crowds.assignObjectProximityPriorities <crowd_node>
[優先順位](Priority)ロールアウトの[オブジェクトへの距離/割り当て](Proximity to an Object/Assign)をクリックした場合と等価。<Crowd.priority>.object に指定されたオブジェクトからの距離に基づき、<Crowd.priority>.delegates で指定されたデレゲートに優先順位を割り当てます。
crowds.assignRandomPriorities <crowd_node>
[優先順位](Priority)ロールアウトの[優先順位をランダムに割り当て](Assign Random Priorities)をクリックした場合と等価。<Crowd.priority>.delegates に指定されたデレゲートにランダムな優先順位を割り当てます。
crowds.assignUniquePriorities <crowd_node>
[優先順位](Priority)ロールアウトの[優先順位を一意にする](Make Priorities Unique)をクリックした場合と等価。<Crowd.priority>.delegates に指定されたデレゲートの優先順位が一意であることを保証します。2 つのデレゲートが同じ優先順位を共有している場合、どちらかに新しい優先順位が付与されます。
crowds.incrementPriorities <crowd_node>
[優先順位](Priority)ロールアウトの[優先順位を増分](Increment Priorities)をクリックした場合と等価。<Crowd.priority>.delegates に指定されたデレゲートの優先順位を、<Crowd.priority>.increment の値だけ増加させます。
注 - MAXSCRIPT 領域: |
[計算](Solve)ロールアウトの MAXScript 領域には、MAXScript スクリプトの実行をフレームごとに制御する機能があります。 MAXScript を使用: オンの場合、解決時に、ユーザ指定のスクリプトが各フレームで実行されます。既定値はオフです。 関数名: 実行する関数の名前。この名前は、スクリプト内で指定された名前と同一である必要があります。 MAXScript を編集: このボタンをクリックすると、[MAXScript]ウィンドウが開き、スクリプトの表示および変更が可能になります。
|
crowd 関数には、2 つのパラメータを定義する必要があります。最初に渡すパラメータは現行の crowd で、2 番目に渡すパラメータは計算フレームです。
次に簡単な例を示します。 |
fn g_PerFrameFn current_crowd the_frame_time = ( if the_frame_time == 1f then (_g_mydebugwindow = newScript() format "% %\n" current_crowd the_frame_timeto:_g_mydebugwindow ) ) |
次の MAXScript 操作を実行できます。
deleteitem <array> <itemnumber><array> = #(item,item...)<array> = append <array> <item>
これらは、下記のオブジェクトの ArrayParamater を含むプロパティのすべてで実行できます。これらの操作を元に戻す、およびやり直すことも可能です。
<Crowd>.behaviors-- array of Behavior objects <Crowd>.teams-- array of CrowdTeam objects <Crowd>.assignments-- array of Assignment objects <Crowd>.cogcontrols-- array of CognotiveController objects <Crowd.scatter>.ObjectsToScatter-- node array <Crowd.objAssoc>.objects-- node array <Crowd.objAssoc>.delegates-- node array <Crowd.smooth>.objects-- node array
チームまたは認識コントローラを、MAXScriptの deleteitem $crowd01.teams[1] 1 または deleteitem $crowd01.cogcontrols[1] 1 を使用して削除する場合、ある割り当てから引き続き参照される場合があります。このことで問題が発生することはありませんが、奇妙なことなのであまり行うべきではありません。
次の MAXScript 操作は、後の Crowd の失敗の原因となります。 |
Crowd ArrayParameter 要素を undefined に設定することは、絶対にしないでください。 Crowd ArrayParameter 要素を、適切なタイプのオブジェクト以外に設定することは、絶対にしないでください。 |