Fluo Coreチュートリアル1

このチュートリアルでは、Fluoで簡単なグラフを作る方法について学びます。
Fluoは、ノードをアークで結んでグラフを作ることで、データを処理するプログラムを作成できるビジュアルプログラミング環境です。このチュートリアルでは、Fluoの基本的な考え方について簡単な例を通じて学びます。

目次

  1. グラフを作る
  2. エラーを発生させる
  3. MonitorBehaviorを追加する
  4. クリックカウンタを完成させる
  5. グラフを登録する
  6. まとめ

グラフを作る

最初のグラフ
最初のグラフ

以下の手順で図のようなグラフを作成します。

  1. 「新しいビヘイビア」をドラッグしたら適当な場所でドロップし、メニューのdebugからButtonBehaviorを選びます。
  2. 同様に「新しいビヘイビア」をドラッグしたら適当な場所でドロップし、メニューのmeasureからCounterBehaviorを選びます。
  3. ButtonBehaviorの外縁部をドラッグして、CounterBehaviorの上でドロップし、アークを作成します。

エラーを発生させる

ButtonBehaviorのプロパティにClickというボタンがあるので1回押します。すると、エラーダイアログが表示され、CounterBehaviorの周囲が赤くなります。

エラー
エラー

Fluoのグラフを作っていると、よくエラーが発生します。適切に対処できるようにしましょう。
ダイアログには「MessageNotUnderstood: CounterBehavior>>on」とあり、ButtonBehaviorの発したメッセージが、CounterBehaviorに理解できなかったことにより発生したエラーであることが書かれています。

Fluoでは、ノードから別のノードにメッセージを送ることで、さまざまな処理を行います。
メッセージはアークの向きに従って流れ、ノードの性質により送られたメッセージが処理されます。

ButtonBehaviorは、Clickと書かれたボタンを押すことでメッセージを発信するビヘイビアノードです。CounterBehaviorは、受け取ったメッセージをカウント(集計)するビヘイビアです。Fluoでは単純な機能を持った様々なノードを組み合わせて複雑な処理を組み立てていきます。このようなプログラミングの方法を「Flow-based Programming」と呼びます。

なぜこの例はうまく動かないのでしょうか?
それを理解するために、グラフに新たなノードとアークを追加します。

MonitorBehaviorを追加する

MonitorBehaviorの追加
MonitorBehaviorの追加

「新しいビヘイビア」をドラッグしてメニューのdebugからMonitorBehaviorを選びます。ButtonBehaviorからCounterBehaviorに伸びているアークをクリックして、アークハンドルを出し、アークをCounterBehaviorからMonitorBehaviorに付け替えます。(新しいアークを作らないのは、再びエラーを発生させないためです)

この状態でButtonBehaviorのClickボタンを押すと、MonitorBehaviorのプロパティに「control=off」が現れます。これは、ButtonBehaviorから受け取ったメッセージが「off」であったことを表しています。
先ほどのエラーは「on」というメッセージが送られてきたことに原因がありました。そこで、Clickボタンを押しっぱなしにしましょう。MonitorBehaviorには「control=on」が現れ、ボタンを離すと「control=off」が現れるはずです。
つまり、Clickボタンを押した際にButtonBehaviorが発したonメッセージがCounterBehaviorでエラーを引き起こしたのです。

CounterBehaviorは、tickというメッセージに反応するようになっており、tickメッセージを受け取るたびにカウンタの値を1ずつ増やします。
このチュートリアルを完成させるには、メッセージをonからtickに変換するビヘイビアが必要です。

クリックカウンタを完成させる

ClickCounter
ClickCounter

「新しいビヘイビア」をドラッグしてメニューのcontrol convertからControlToControlを選びます。ControlToControlのプロパティには「on->tick」と書かれており、onからtickへの変換が行われることが書かれています。ちなみに、ControlToControlはon以外の全てのメッセージを無視します。

ButtonBehaviorのClickボタンを押すたびにCounterBehaviorのプロパティの値が1ずつ増えることに気がつきましたか?。値が更新されてから画面に表示されるまでに若干の遅れがあるものの、素早くボタンを押しても押した回数だけカウンタの値が増えることに注意してください。

グラフを登録する

グラフが動作することを確認できたら、このグラフを登録して別の機会に使えるようにしましょう。
サイドメニューの「save/グラフの登録」を選び、ダイアログボックスに「ClickCounter」と入力してOKボタンを押してください。
なお、登録する際の名前は必ずアルファベット大文字で始まるようにしてください。間に空白文字を含めることもできません。
登録したグラフは「load/グラフを開く」でいつでも呼び出すことができます。

まとめ

このチュートリアルでは、Fluoでの簡単なグラフの作り方について学び、ボタンを押した回数を数えるグラフを作りました。

  • ButtonBehavior, CounterBehaviorの動作について学びました。
  • ビヘイビアからどんなメッセージが送られたかを確認できるMonitorBehaviorと、メッセージの変換を行うControlToControlを学びました。
  • 処理できないメッセージが送られた時にエラーが発生することと、その対応方法について学びました。
  • 作成したグラフを登録する方法について学びました。

チュートリアルが終わったらFluoの拡張を試して、さまざまな機器を接続してみましょう。