見出し画像

vvvv gamma入門 - 5

Forward

DataType Patch最後の1つはForwardです。入門レベルでは不要な知識かと思いましたが1つだけ紹介しないのも少し気持ち悪いので簡単に説明してみます。

Forwardについてはドキュメントに詳しく書かれていますが、実際にやってみないと便利さが良くわからないかと思います。

実際にForwardを使ってみるために、外部のライブラリを使用します。
今回はQRコードやバーコードなどを作成できるZXingという便利なライブラリを使ってみます。

ちょうど良くSkia用のパッケージがあります。

vvvvではパッケージマネージャとしてNuGetsが使えます。ドキュメントはこちらです。

以下のメニューからCommandlineを選択してコンソールを表示します。

コンソールを起動

コンソールに以下のコマンドを実行するとパッケージがインストールされます。

nuget install ZXing.Net.Bindings.SkiaSharp

パッチに依存するライブラリを設定するには、左上のパッチ名をクリックして、Dependencies > .NET Nugetsから必要なライブラリを選択します。
ここではZXing.NetとZXing.Net.Bindings.SkiaSharpを選択します。(ずーーっつ下の方にあります。)

参照するライブラリを選択

ライブラリ参照についてのドキュメントはこちら。

ここまで設定すると、Node BrowserでZXing系のノードが選べる様になります。
外部ライブラリは緑色で表示される様です。

ZXing系のノードが表示される

参照したライブラリ内で使用できるものが全て表示されるのでそれはもう大量のノードが表示されます。

ZXingに含まれる大量のノード

パッチの実装要件には不必要なものが大量にある状態です。今回はQRコードを表示したいだけなのでそれに必要無いノードがNode Browserに大量に表示されるのは邪魔です。

また、自分がライブラリの開発者でC#などで作成したライブラリをvvvv用にラップして公開する場合を考えてみます。
C#などで実装したライブラリの中には、vvvvのノードとして使用するわけではない(させたくない)クラスや関数などが含まれることになるかと思います。
それらのクラスや関数などがNode Browserに全部表示されてしまえば、そのライブラリを使用する開発者にとってはとても使いにくいものになってしまうでしょう。

ここでForwardの登場です。Forwardを使用すると、vvvv上でノードとして公開したいものだけ指定することができます。これがForwardを利用する最大の理由です。

実際にやってみたいと思います。

まず、Definitions Patchを開きます。Definitions Patchは以前の記事でも少し書きましたが、パッチ内で使用するClassやOperation等の定義を配置するものです。Definitions Patchは左上のパッチ名をクリックしてDefinitionsを選択するか、Alt+Shift+Aを押します。

Definitions Patchを開く

Node Browserで検索するときに見つけやすいように、これから公開する外部ライブラリのノードを所属させるカテゴリを作成します。ここではZXingという名前にしました。

カテゴリを作成する

カテゴリについてはこちらのドキュメントに詳細があります。自作ノードを整理するために便利なテクニックです。

作成したカテゴリをマウスの中ボタンクリックして中に入ります。
ここにForwardを作成していきます。

Forwardを作成するにはまずSolution Explorerを開きます。左上の■アイコン > Windows > Solution ExplorerかCtrl+Jを押します。

Solution Explorerを開く

ウィンドウ上部のセレクトで.NET Dependenciesを選択すると、パッチで参照されているライブラリが表示されます。先ほどZXing系のライブラリを設定したのでそれらが表示されています。

.NET Dependencies

QRコードを表示させるために使用する物は次の2つだけです。

  • zxing.dll >ZXing.QArCode > QRCodeWriter

  • ZXing.SkiaSharp.dll>ZXing.SkiaSharp.Rendering>SKBitmapRenderer

QRCodeWriter
SKBitmapRenderer

これらをドラッグ&ドロップでDefinition Patchの中に置くとForwardが作成されます。

Forward

これでForwardの作成は完了です。Forwardの中に入ると色々細かい設定項目もありますが、今回はこのままでOKです。詳しくはドキュメントを参照してください。

QRコードを表示
ではQRコードを表示するノードを組んでいきます。左上のパッチ名>Aplicationを選択するかAlt+AでApplication Patchに戻ります。

Application Patchに戻る

Node Browserを表示するとまだ緑色のZXing系のノードが表示されています。折角Forwardで必要なノードだけ表示するようにしたのでこれらは表示させたくありません。外部ライブラリのノードを非表示にするには左下の2番目の〇をOffにします。

外部ライブラリのノードを非表示にする

この状態でZXingを検索するとまず先ほど作成したZXingというカテゴリが表示されます。

ZXingカテゴリ

この中にForwardで設定したノードだけが表示されています。

Forwardしたノード

これらのノードを使用してQRコードを表示するパッチは以下の様になります。

QRコードを表示するパッチ

今回はレンダリングエンジンとしてSkiaを使用しました。Skiaは2D用のレンダリングエンジンで今回の様な用途に向いています。

以上がForwardの説明になります。
ではまた次回!

もしこの記事があなたのお役に立てたなら幸いです。 よろしければサポートをお願いします。今後の制作資金にさせていただきます!