6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

NoodlAdvent Calendar 2019

Day 15

NoodlのComponent Inputs / Outputsについてメモ

Last updated at Posted at 2019-12-15

Noodl Advent Calendar 15日目🍜
7日目の記事ではComponentについて深掘りました。
今回は、Componentの入力と出力を担うノードである「Component Inputs」と「Component Outputs」に焦点を当てた記事になります。

入力と出力について

まずは、そもそもの入力と出力について確認してみます。
入力と出力の間には何かしらの処理があります。Noodlでは、Nodeにデータ(値)を入力すると処理が行われ、データ(結果)が出力されます。同様に、Componentも入力と出力を持つことができます。
スクリーンショット 2019-12-15 17.11.27.png
ほとんどのNodeには入力と出力があります。対して、Componentにはデータの入力と出力が必ず存在する訳ではありません。下図のような4パターンが存在します。
スクリーンショット 2019-12-15 18.03.30.png
Noodlでは、**Port(ポート)**と呼ばれる入口と出口の役割を担うものがあります。Component InputsノードもComponent OutputsノードもPortを持っています。Component InputsにとってPortはデータの入口であり、Component OutputsにとってPortはデータの出口です。

Portは、2つ、3つ、4つ...と、増やすことができます!
これが、Component Input / Output(単数形)ではなく、Component Inputs / Outputs(複数形)という名前の理由だと思います。
スクリーンショット 2019-12-15 18.50.41.png

Componet Inputs / Outputsとは

ここからは、作成したものを元にComponet Inputs / Outputsについて整理してみます。

1. 入力も出力もできないコンポーネント

下図のButtonは、入力も出力もできないコンポーネントです。ただし、他のコンポーネント(ここではMainコンポーネント)上ではVisual nodeとして機能します。
スクリーンショット 2019-12-15 18.17.45.png
Buttonノードを選択してみても、プロパティ欄には何も表示されません( = Inputが存在しないということです)
スクリーンショット 2019-12-15 18.33.59.png
Buttonノードを他のノードと繋げようとしても、SourceのButton欄には何も表示されません( = Outputが存在しないということです)
スクリーンショット 2019-12-15 19.17.37.png

2. 入力だけできるコンポーネント

下図のButtonは、入力だけできるコンポーネントです。1の状態にComponent Inputsノードを加えました。
スクリーンショット 2019-12-15 18.29.35.png
Portを1つ作り、Portの名前をtextとしました。下図のようにButtonノードを選択すると、プロパティ欄にtext入力の項目が増えていることが分かります( = Inputが存在しています)
スクリーンショット 2019-12-15 18.41.10.png

3. 出力だけできるコンポーネント

下図のButtonは、出力だけできるコンポーネントです。1の状態にComponent Outputsノードを加えました。
スクリーンショット 2019-12-15 19.07.51.png
Portを1つ作り、Portの名前をtapとしました。下図のようにButtonノードを他のノードと繋げようとすると、SourceのButton欄にtapの項目が増えていることが分かります( = Outputが存在しています)
スクリーンショット 2019-12-15 19.16.57.png

4. 入力と出力ができるコンポーネント

下図のButtonは、入力と出力ができるコンポーネントです。1の状態にComponent InputsノードとComponent Outputsノードを加えました。上記の2と3で作成したComponent Inputs(Port1つ、Port名はtext)とComponent Outputs(Port1つ、Port名はtap)を使っています。
スクリーンショット 2019-12-15 19.30.56.png

注意点

Component InputsノードとComponent Outputsノードは、作成したコンポーネント上の他のノード繋げない限り、入力も出力もできません!!!

下図のように、Buttonコンポーネント上にComponent InputsノードとComponent Outputsノードを作成しただけでは入力も出力もできません。
スクリーンショット 2019-12-15 19.53.15.png

入力と出力が機能するために必要なこと3ヶ条

・Component Inputsノード または Component Outputsノード を作成する
・Portを作成する
・Buttonコンポーネント内の他のノードと繋げる

以上の3ステップを踏めば、Buttonコンポーネントを他のノードと繋げることができ、入力と出力ができるようになります!

おわりに

当初の予定では、「Noodlと音楽API」だったのですが今回もネタ変更となりました...
音楽好きとしてはNoodlを使って何かしたい...!🍜🎵

6
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?