[インタフェース](Interfaces) > [コア インタフェース](Core Interfaces) > [ポップ](pop) |
pop Core インタフェースは、Populate システムの設定とシミュレーションに関連するプロパティとメソッドを公開します。
Populate システムは、歩行者(シーンに入ったり、フローに沿って歩いたり、シーンから出たりするキャラクタ)と歩行しない人(立ったまま、または座ったままのキャラクタ)を区別します。
歩行しない人以外の歩行者は、再利用(異なる時間に異なる場所で「スポーン」)することができます。歩行者のキャラクタの各アニメーションは、ポータルに入る時間からポータルから出る時間まで、「スポーン」と呼ばれます。
スポーン実装は、3ds Max 2015 で変更されました。3ds Max 2014 では、すべての歩行者はアニメーション全体に存在し、アニメートされていました。複数のスポーンがある場合がありますが、スポーン間の時間はないため、いくつかのフレームで消してモーション ブラーを容易にしていました。すべての歩行者はシーン内に常に存在していて、アニメーション全体では同じの数の歩行者が存在していました。
3ds Max 2015 では、フローの密度をアニメートして、ポータルを開いたり閉じたりすることができるため、シーン内の歩行者の数を、アニメーション全体で大幅に変更することができます。シミュレーションでは、すべてのポータルに対してゼロ密度で、シーン内に歩行者のいない状態で起動してから密度が増加してシーンに多くのキャラクタを追加します。その後、フローを離れるときに他の場所でスポーンできないように減少します。
選択した歩行者で実行できる 5 つの操作(再生成、外観をスワップ、解像度を切り替え、削除、およびベイク処理)があります。複数のスポーンを使用して歩行者に実行すると、これらの操作のいくつかは、現在のスポーンにのみ影響します。1 つは現在のフレームでアクティブになっていて、他は選択した歩行者のすべてのスポーンに影響を与えます。操作方法に関する決定は、予測したユーザのニーズ、経験、および技術的な理由に基づいたものです。次の表で、各操作方法を示します。
操作 | 効果 |
---|---|
再生成 | 現在のスポーンにのみ影響 |
外観をスワップ | すべてのスポーンに影響 |
解像度を切り替え | すべてのスポーンに影響 |
削除 | 現在のスポーンにのみ影響 |
ベイク処理 | すべてのスポーンに影響 |
現在のスポーンにのみ影響を与える操作を公開するスクリプト メソッドは、影響を受けるスポーンを指定するために引数として <time> を利用します。
pop.DisplayType : enum : Read|Write DisplayType enums: {#StickFigure|#CrowdCustom|#CrowdSkin}
キャラクタの[表示タイプ](Display Type)を取得/設定します。
pop.TurnOpt : enum : Read|Write TurnOpt enums: {#hybrid|#maxspeed|#maxdistribution|#mindistance|#none}
pop.NumFrames : integer : Read|Write
pop.RealWorldScale : float : Read|Write
現在のシステム単位設定に対して相対的なワールド スケールを取得/設定します。
pop.SeatFemalePct : float : Read|Write
pop.SeatMaxTalkDist : float : Read|Write
pop.SeatMaxTalkAngle : float : Read|Write
<integer>pop.NumStandingIdlers()
シミュレーション内の立位の(着座していない)アイドル状態のキャラクタの数を返します。
<integer>pop.NumSeatedIdlers()
シミュレーション内の着座しているアイドル状態のキャラクタの数を返します。
<integer>pop.NumPedestrians()
シミュレーション内の歩行者(アイドル状態ではない)キャラクタの数を返します。
<node>pop.GetStandingIdler <integer>index
インデックスで指定された、立位のアイドル状態のキャラクタのノードを返します。
<node>pop.GetSeatedIdler <integer>index
インデックスで指定された、着座しているアイドル状態のキャラクタのノードを返します。
<node>pop.GetPedestrian <integer>index
インデックスで指定された、歩行者キャラクタのノードを返します。
<bool>pop.AddIdleArea <node>IdleArea
指定された IdleAreaObj object をフロー シミュレーションに追加します。
<bool>pop.AddFlow <node>Flow
指定された Flow オブジェクトをフロー シミュレーションに追加します。
<bool>pop.AddSeat <node>Seat
指定された Seat オブジェクトをフロー シミュレーションに追加します。
<void>pop.Simulate()
UI の [Populate](Populate) > [シミュレーション](Simulation)パネルの[シミュレート](Simulate)アイコンを押すことに相当します。
<void>pop.ResimulateSelected()
<void>pop.RegenerateSelected <time>time
UI の [Populate] > [シミュレーション](Simulation)パネルの[選択を再生成](Regenerate Selected)アイコンを押すことに相当します。
既存のメソッドに再生成する時間を指定する引数が追加されました。
<void>pop.DisplayEnv <boolean>show
引数が True の場合、Environment オブジェクト(Flows、IdleAreas)が表示されます。
引数が False である場合、環境オブジェクトは非表示になります。
UI の [Populate](Populate) > [表示](Display)パネルの[環境を表示](Show Environment)切り替えアイコンを押すことに相当します。
<void>pop.DisplayPeople <boolean>show
引数が False の場合、キャラクタ オブジェクトは非表示になります。
UI の [Populate](Populate) > [表示](Display)パネルの[人を表示](Show People)切り替えアイコンを押すことに相当します。
<void>pop.DisplayMarks <boolean>show
<void>pop.SetSelectedSeatsGender()
pop.SeatFemalePct のシート性別比率の値に従って選択されたシートの性別を設定します。
<void>pop.ShowAppearanceUI()
[群集スタイルのカスタマイズ](Crowd Styles Customization)ダイアログ ボックスが開きます。
<void>pop.SwapSelPeopleAppearance()
<void>pop.DeletePeople()
UI の [Populate](Populate) > [表示](Display)パネルの[人を削除](人を削除)アイコンのクリックに相当します。
<void>pop.DeleteSelPeople <time>time
指定された時間のシミュレーションから選択されたキャラクタを削除します。
現在のスポーンにのみ影響します。スポーンの詳細については、このページの冒頭を参照してください。
<bool>pop.SwitchSelPeopleResolution()
テクスチャ スキンがアクティブな場合、選択されたキャラクタのメッシュおよびテクスチャの詳細を切り替えます。
<void>pop.SwitchSelPeoplePos <time>time
現在のスポーンにのみ影響します。スポーンの詳細については、このページの冒頭を参照してください。
<void>pop.BakeSelPeople()
選択されたキャラクタを 3ds Max のスキンとボーンにベイク処理します。
アニメーションを編集することができ、任意のモディファイヤをメッシュに適用することができます。また、キャラクタは、ベイク処理後、FBX に書き出すこともできます。
<void>pop.SaveTextureMaps <boolean>save
例: |
theFlow = Flow() --Create a Flow object --> $Flow:Flow001 @ [0.000000,0.000000,0.000000] theFlow.AddPoint [0,0,0] --Add some points --> true theFlow.AddPoint [1000,0,0] --> true theFlow.AddPoint [15000,500,0] --> true theFlow.AddPoint [1000,1000,0] --> true pop.AddFlow theFlow --Add the Flow to the Populate system --> true pop.Simulate() --Perform the simulation --> OK pop.DisplayEnv false --Hide the Flow environment, leaving only the people --> OK pop.DisplayType = #StickFigure --Switch the character display to stick figures --> #StickFigure |