イベントリスニングは、主に次の2つの用途に使用されます。
いずれかのイベントリスニングツールを使用している場合、次の2つの基本的な質問に答える必要があります。
つまり、イベントリスニングアクティビティを設定するには、オブジェクトとイベントの両方が必要になります。これら2つの要件は通常、イベントリスニングツールのプロパティと相関します。
リンク先のオブジェクトを決定する際、いくつかの選択肢があります。
一般に、2つの異なるタイプのイベントがあります。
選択したアクティビティがシミュレーションモデルで発生するたびに、イベントリスニングアクティビティは、トークンを作成、リリースします。
標準のオブジェクトベースのイベントには、特定のパラメータが関連付けられています。これらのパラメータには、イベントをトリガーしたフローアイテムやトークンなど、イベントに関する基本情報が含まれています。通常、この情報の一部を保持するには、他の処理フローアクティビティから参照できるラベルに入れたり、統計コレクターのデータテーブルに値を入れたりします。
この情報を保持する最善の方法は、イベントリスニングツールで使用できる[ラベルの割り当て]または[ラベルマッチング]テーブルを使用することです。このテーブルについては、「ラベルマッチング」のトピックで詳しく説明します。
イベントリスニングの処理フローアクティビティには、サブフローで使用される際に、リッスンするイベントの戻り値をオーバーライドできる機能があることに注意してください。たとえば、「処理フローチュートリアル3 - サブフロー」に示すように、プロセッサの処理時間を定義するために、処理フローツールを使用して何らかの複雑なロジックを実行してもいいかもしれません。
イベントリスニングの設定に使用する方法は、1)使用しているツールと、2)リッスン対象のオブジェクトのタイプによって異なります。
処理フローツールでイベントをリッスンするには、イベントリスニングアクティビティを使用する必要があります。イベントをリッスンできる処理フローアクティビティは次の2つです。
これら2つのアクティビティには、リッスンするオブジェクトとイベントを指定できるプロパティがあります。
統計コレクターツールでイベントリスニングを設定する方法の詳細については、「統計コレクターを使用する - イベントを追加する」を参照してください。
静的オブジェクトのイベントリスニングを設定する前に、リッスンするオブジェクトが3Dモデルまたは処理フローに追加されていることを確認してください。
静的オブジェクトのイベントリスニングを設定するには:
オブジェクトを状況依存型、つまり、特定の条件に基づいて変化するように設定できます。これを行う1つの方法として、一般的な処理フローを除くどのタイプの処理フローにも「現在
」のキーワードを使用することがあります。イベントリスニングアクティビティは、その処理フローの各インスタンスに関連付けられているオブジェクトをリッスンします(詳細については、「処理フローインスタンス」を参照してください)。
一般的な処理フローでは動的オブジェクトをリッスンできないことに注意してください。ただし、それ以外の3つの処理フローのタイプでは可能です。
動的オブジェクトのイベントリスニングを設定する前に、3Dモデルまたは処理フローをリッスンするオブジェクトのタイプを少なくとも1つ追加できます。このオブジェクトに直接リンクさせない場合でも、このオブジェクトはそのイベントをサンプリングする際に必要になります。
動的オブジェクトのイベントリスニングを設定するには:
現在
」が[オブジェクト]ボックスに表示されていることを確認します。違うものが表示されている場合、[オブジェクト]ボックスの隣にある矢印をクリックして、メニューを開きます。メニューから[現在の(インスタンスオブジェクト)]を選択します。グループのイベントリスニングを設定する前に、まずグループを作成する必要があります。グループに少なくとも1つのメンバーが与えられていることを確認します。このオブジェクトに直接リンクさせない場合でも、このオブジェクトはそのイベントをサンプリングする際に必要になります。
グループのイベントリスニングを設定するには:
フローアイテムやトークンをリッスンするには、イベントリスナーで動的参照を作成する必要があります。フローアイテムのイベントリスニングを設定する前に、3Dモデルにソースを追加する必要があります。トークンのイベントリスニングを設定する前に、リスニング対象のアクティビティが処理フローに追加されていることを確認する必要があります。
フローアイテムには次のイベントがあります。
イベント | 説明 |
---|---|
入るとき | フローアイテムが固定リソースに入るとき、またはタスク実行者オブジェクトによってロードされるときに起動。 |
出るとき | フローアイテムが固定リソースから出るとき、またはタスク実行者オブジェクトによってアンロードされるときに起動。 |
トークンには次のイベントがあります。
イベント | 説明 |
---|---|
入るとき | トークンがアクティビティに入るときに起動。 |
出るとき | トークンがアクティビティから出るときに起動。 |
手動リリース時 | releasetoken()コマンドを使用してトークンがアクティビティから手動でリリースされるときに起動。 |
アセット割り当て時 | トークンが共有アセットを割り当てるときに起動。これには、リソースを取得する、リストにプッシュされてゾーンに入る、リストからプルされたときにバックオーダーを作成するなどが相当します。 |
アセット割り当て解除時 | トークンが共有アセットの割り当てを解除するときに起動。これには、リソースをリリースする、リストからプルされてゾーンを出る、バックオーダーを完了するなどが相当します。 |
ラベル値変更時 | ラベル値が変更されるときに起動。これは、ラベルが追跡変数として格納されている場合にのみ使用できます。 |
フローアイテムやトークンのイベントリスニングを設定するには:
サンプラーを使用し、ツールボックス内のオブジェクトにカーソルを合わせて目的のイベントを選択できます。あるいは、プロパティウィンドウでピックリストにカーソルを合わせて、これらのイベントの1つを選択できます。
3Dオブジェクトまたは処理フローアクティビティで統計イベントをリッスンできます。この処理は、リッスンするオブジェクトをサンプリングする際にメニューから統計イベントを選択する点を除けば、静的イベントの設定と同じです。
次の表は、最も一般的な統計イベントの例です。
イベント | 説明 |
---|---|
コンテンツ変更時 | 固定リソース内のフローアイテムの数が変化するとき、またはアクティビティまたはゾーン内のトークンの数が変化するときに起動。 |
入出力変更時 | フローアイテムが固定リソースに出入りするとき、またはトークンがアクティビティに出入りするときに起動。 |
滞在時間変更時 | フローアイテムが固定リソースを出るとき、またはトークンがアクティビティを出るときに起動。このイベントは、アイテムやトークンがアクティビティに留まっていた期間に関するさまざまな統計情報を追跡します。 |
状態変化時 | オブジェクトの状態がアイドルから処理中などに変化するときに起動。 |
リソース利用可能時 | タスク実行者がタスクまたはタスクシーケンスを完了したときに起動。 |
これらのイベントの1つに対してイベントリスニングを設定した後、次の表に示すように、イベントをトリガーする統計条件をさらに指定できます。
変更ルール | 説明 |
---|---|
変更 | 値が変化するとイベントを起動。 |
増加 | 値が増加するとイベントを起動。 |
減少 | 値が減少するとイベントを起動。 |
値に到達 | ユーザーが定義した特定の値に値が変わると、イベントを起動。 |
値ちょうどまで増加 | ユーザーが定義した特定の値まで値が増加すると、イベントを起動。 |
値ちょうどまで減少 | ユーザーが定義した特定の値まで値が減少すると、イベントを起動。 |
値以上に増加 | ユーザーが定義した特定の値より小さい状態からユーザー定義値と同じか大きくなるまで値が変化すると、イベントを起動。 |
値以下に減少 | ユーザーが定義した特定の値より大きい状態からユーザー定義値と同じか小さくなるまで値が変化すると、イベントを起動。 |
初回の増加 | 値が減少から増加に変わるとイベントを起動。 |
初回の減少 | 値が増加から減少に変わるとイベントを起動。 |
更新 | 値が変化したかどうかに関係なく、値が設定されるとイベントを起動。このイベントは、統計コレクターでのみ使用できます。 |
さらに考慮すべき事項: