« 1つのXPresso内の実行順は? | トップページ | C4D標準パーティクルの番号を指定して位置を取得するXPresso »

C.O.F.F.E.E.ノードの出力端子から出力するタイミングは?

本当は、XPressoのC.O.F.F.E.E.ノードを使って、for()ループ内のデータを出力端子から出したいのだが…

繰り返しノードは、XPresso1回の実行で出力端子からの出力が繰り返えされます。

Orderxpressoprocessing_13 Orderxpressoprocessing_14

「入力をコンソールに表示」はC.O.F.F.E.E.ノードです。
見せる程のコードではないのですが…

/*
入力された値をコンソールに表示
2009.3.9
*/

main
()
{
  println(iv);
}

このXPressoは1回の実行で6回繰り返されました。

単純に考えると、

/*
「繰り返し」ノードをC.O.F.F.E.E.では、こんな感じだろうか?
2009.3.9
*/


main()
{
  var i;
  for(i = Input1 ; i <= Input2 ; i++)Output1 = i;
}

これで良さそうな気がしますが…

ではC.O.F.F.E.E.ノードを追加して、上のコードを入力してみよう。

Orderxpressoprocessing_15

Orderxpressoprocessing_16

表示されたのは、最後の「5」のみ…
C.O.F.F.E.E.ノード終了時に出力端子から出力されるのだろう…
これじゃC.O.F.F.E.E.ノードで繰り返して、データを繰り出すことは出来ないという事だ…
でも本当に繰り返してるのか?このC.O.F.F.E.E.ノードは…

繰り返してるからこそ「5」が出力されたわけで…

最後に悪あがきで…
ループ内でイベントを発生させたら出力されないだろうか?

次のように変更。
イベントとコンソールに表示を追加しました。

/*
「繰り返し」ノードをC.O.F.F.E.E.では、こんな感じだろうか?
イベントを発生させてみたら
2009.3.9
*/


main()
{
  var i;
  for(i = Input1 ; i <= Input2 ; i++){
    Output1 = i;

    EventAdd();
    println("--" , i , "--");
  }
}

結果は…

Orderxpressoprocessing_17

イベントが常に発生している状態になりコンソールに表示が続きます。
C.O.F.F.E.E.ノード内でループはされているものの、やはり出力は最後の1回のみ。

こうなると、ループ部分をC.O.F.F.E.E.ノードを利用して、他のノードと連携は無理ですね。
C.O.F.F.E.E.ノードで完結させるなら問題ないのですが…

|

« 1つのXPresso内の実行順は? | トップページ | C4D標準パーティクルの番号を指定して位置を取得するXPresso »