先日UPしたLoopBe1の投稿はMotionBuilderとTouchDesignerをMIDIで連携する必要があって、仮想MIDIケーブルを調べていたのですが、TouchDesignerとMotionbuilderでMIDI接続を行う際に幾つか留意する点があります。以下はシンプルなシングルチャンネルをTouchDesignerからMotionbuilderへMIDIで送る例になります。
MIDI Out CHOPでチャンネルを出力する場合、MIDIの命名規則に従う必要があります。例えば、チャンネル14のコントローラー(ボリューム)7のチャンネルデータといったMIDIのお決まり事でチャンネル名を設定すると、ch14c7というチャンネル名になります。
Math CHOPで予めレンジを0~1に設定しておきます。MIDIでは0~127までのレンジに対応していますが、Motionbuilder側でレンジを変更できるので、0~1にしておくのが分かりやすいと思います。
MIDI Out CHOPのパラメータはデフォルトで。ControlタブのNormalizeは0to1に設定しておきます。元々0~1のデータであっても、noneにするとデータがなぜかおかしくなってしまします。現状はこれがバグなのかどうか不明なので、おきまりごととして、0to1にしておくようにしますw
メニューバーからDialogs>MIDI Device Mapperを開いて、Create New Mappingで新しいマッピングを作成します。Out DeviceはインストールしたLoop Be MIDIを指定します。IDはMIDI Out CHOPで設定した番号と同じ番号を設定ます。きちんと設定されると、MIDI Consoleの欄にoutputのメッセージが連続表示されます。
MotionbuilderのAsset BrowserからMIDIデバイスをシーンへ追加します。 ナビゲーターからMIDIデバイスのプロパティを開いて、ADDでグループを追加、Node欄の ADDでノードを追加します。(名前は適当に) Channel欄、Event欄、Ctr/Note欄にTouchDesignerで設定したチャンネル名を設定します。 例えば、ch14c7というチャンネルを設定した場合、 Channel : 14 Event : CTRL Ctr/Note : 7 という形で設定します。 IN:パラメータでインストールしたLoop Be MIDIを指定します。 ここまで設定が完了して、Onlineをクリックして緑になればTouchDesignerとMotionbuilderが 接続したことになります。
接続状態はMonitorタブのMIDI Input Eventsで確認することが出来ます。
注意:TouchDesigner、MotionBuilder共にウィンドウが表示状態でないと、MIDIのストリーミングが止まってしまう現象を確認しました。MotionbuilderはメニューバーよりWindows>Profiling Centerを選択、Always reflesh viewerをチェックしておく必要あり。