Mais conteúdo relacionado
Semelhante a VRChatとシリアル通信、現実と仮想を結ぶ ~UdonとPythonによる仮想COMポートのつくり方~ (20)
Mais de Hirokazu Onomichi (10)
VRChatとシリアル通信、現実と仮想を結ぶ ~UdonとPythonによる仮想COMポートのつくり方~
- 13. 外部からWorldへのデータ入力 - MIDI
VRChatに送れるMIDIのイベント
NoteON – 鍵盤を押すイベント(チャンネル、強さ、音程)
NoteOFF – 鍵盤を離すイベント(チャンネル、強さ、音程)
Control Change -音量や音の性質などに関する制御
本来は、キーを押す・離すなので、交互に送るものだけれど・・・
キニシナイ!漢は黙って、ひたすら ノォォォオトッ!オンッッ!!
- 16. MIDI (Note On) を使ってデータを送る…
チャンネル
1-16(4bit)
ノートナンバー(音の高さ)
0-127 (7bit)
ベロシティ (音の強さ)
0-127 (7bit)
MIDIのデータ (Note On)
20bit
8bitのデータ
もったいないケド、
20bitの一部を8bitのデータとして使う
- 20. VRChatのログに情報を書き出す
“Hello World”を出力するには…
16進数に変換 1byte = 8 bit : 0-255 => 00-FF で表現可能
48 65 6c 6c 6f 20 57 6f 72 6c 64 0d 0a
前後に区切り文字をつけて、 Debug.Log関数で出力!
OUTPUT_DATA[48656C6C6F20576F726C640D0A]
アスキーだけじゃなく、バイナリも転送可能 (0x00-0xFF なんでも送れる)
H e l l o (スペース) W o r l d (復帰) (改行)
48 65 6c 6c 6f 20 57 6f 72 6c 64 0d 0a
- 23. Udon Serial - Arduinoライクな関数実装
Arduino のSerial準拠
Serial_write(byte send_data) – 1byte送信
Serial_print(string send_data) – 文字列送信
Serial_println(string send_data) – 文字列送信(改行付き)
bool Serial_available() – 受信バッファの確認
byte Serial_read() – 1byteデータ受信
byte Serial_peek() – 1byteデータ受信
void Serial_flush() – 受信バッファクリア
- 24. Udon Serial - Arduinoライクな関数実装
受信データをそのままループバックするUdonのサンプルコード