18日目に投稿させていただいた記事です■はじめにHoudiniには外部デバイスからインタラクティブにデータを入力する機能があります。今回は、その機能を利用して外部に接続した各種フィジカルデバイスの操作から、Houdiniへデータを入力する方法を色々と書いてみたいと思います。手頃に試せそうな例として、ここでは以下のデバイスからの入力を試してみます。CHOP・CHOPデータの在り処についてCHOPのデータは、「CHOPチャンネル」が持っています。CHOPチャンネルのデータへアクセスする際は、CHOPノードだけではなく、CHOPノード内にあるCHOPチャンネル名まで指定する必要があります。・CHOPデータの詳細確認CHOPノードを中ボタンでクリックするとCHOP内のチャンネル数や、開始/終了フレーム、サンプルレートなどの詳細情報が表示されます。赤く囲んだ部分には、このCHOPに含まれるチャンネル名と値が表示されています。この例の場合、ステレオのオーディオファイルを読み込んでいるので、このCHOPには左右2チャンネルの波形データが含まれていることがわかります。割り当てられています。チャンネルへのフルパスは以下のようになります/obj/driver_chopnet/WAV_FILE/chan0・CHOPチャンネルへのアクセスCHOPチャンネルの各情報は、chop系エクスプレッション関数を使って取得します。これらの詳細はマニュアルを参照してください。先の例で登場したCHOPチャンネルが持つ現在時間のデータが欲しい場合は、データを呼び込むパラメータボックス内で以下のエクスプレッションを使用します。Viewに表示されます。View・CHOPデータのサンプルレートCHOPでは様々な波形データを扱うことができます。波形データは自由に再生時のサンプルレート(一秒あたりのデータ数)を指定できるようになっています。サンプルレートの高いオーディオデータを30fps設定のシーンでアニメーションカーブとして使う場合、サンプルレートを30にリサンプルしてから使用するのが負荷軽減につながって良いのではないかと思います。Rateパラメータで指定します。・上で読み込んだWAVデータの波形を30fps化したところ・外部から入力されたデータのレコーディング外部から入力されたデータを記録しておき、再生することができます。CHOPを下流に接続してそちらで記録するほうがデータの取り回しの面で良いと思います。パラメータをオンにした状態で行います。CHOPの簡単なチュートリアルで作業の流れを掴んでみます。CHOPのRecordパラメータをOnにし、シーンを再生しますこの時、シーンのリアルタイム再生モードをオンにしておくと実際のフレームレートでレコーディングできます。Onceにしておくことでリピート再生をオフにし、うっかり開始フレーム付近を書き換えてしまうのを防げます。6・マウスカーソルを自由に動かし、グラフが描かれていくのを確認します各カーブの上には、対応するカラーでチャンネル名が表示されています。CHOPのRecordをOffにします8・/obj/に新たにBoxオブジェクトを作ります9・boxオブジェクトのTranslateX/Yにエクスプレッションを設定します・TranslateXchop(“../../ch/ch1/record1/geo1:tx”)・TranslateYchop(“../../ch/ch1/record1/geo1:ty”)10・シーンを再生して結果を確認しますboxオブジェクトが、マウスが動いたとおりに移動するのが確認できます。Tabletをオンにして、同様の操作をすることで、筆圧やペンの傾きなどを検知し、記録できる事がわかると思います。Scaleパラメータにアサインすると楽しいかもしれません。■データ入力手順のまとめこれが外部入力系のCHOPを使うワークフローの基本的な手順です。手順をまとめると以下のようになります。1・外部入力を受け付けるCHOPを作成2・CHOPにデータの窓口となるCHOPチャンネルを作成3・任意のパラメータからchop関連のエクスプレッション関数でCHOPチャンネルのデータを参照するこれはその他のデータ入力CHOPを使った場合も同様です。これだけ理解できれば、あとは応用して色々できるはず。