VRChatでのボイチェン環境 [Morph VOX Jr + VST]

いい加減まとめようと思っていたので...自分の環境です。

ちなみに、ちょっと前にKinect環境を書きましたがすぐにやめてしまって現在はVIVE+トラッカー環境です。ダンスとVR睡眠がしたかった。

*本記事はVSTを利用する環境を構築するためのものであり、ボイトレとかの解説ではありません*
*雑な備忘録です。何の責任も負いません*

なんの記事

MorphVOXの無料版(Jr)とVSTプラグインを使用して、VRChatでボイチェン環境を構築します。
VIVE標準のマイクだとちょっとアレだったのでマイクを別途購入しています。

つかうソフト・VSTプラグイン

・Morph VOX jr (Free Voice Changer Software - MorphVOX Junior)
・VoiceMeeterBanana (VB-Audio VoiceMeeter Banana)
・Cantabile Lite (Free VST Host - Cantabile Lite - Cantabile - Software for Performing Musicians) x86版をDL
・VBCable (VB-Audio Virtual Apps)
VSTプラグイン
・Reafir
・Reaxcomp
※上記二つはReaPlugsに同封(REAPER | ReaPlugs) x86版をDL
・SPITFISH (digitalfishphones.com - audio freeware plugins by Sascha Eversmeier) ページ下部のthe fish fillets PC (Win) version 1.1から
・SanfordReverb (Leslie Sanford - VST Plugins)

VST is 何

音源に様々な効果を付与するもので、VSTHostと呼ばれるカテゴリのソフトウェアにプラグインとして導入すると利用可能になります。
今回はCantabile LiteをVSTHostとして使用し、ノイズ除去(Reafir)・音量調整(Reaxcomp)・歯擦音軽減(SPITFISH)・残響(SanfordReverb)のプラグインを乗せます。

全体の構成

f:id:Mijinko:20190215123822p:plain
マイクから入力した音声をBanana経由でCantabileに渡し、音声処理をかけてBananaに戻します。
そこからVBCableでMorph(ボイチェン)に渡して変換、出力をVRChatとプレイバックのためにBanana経由でスピーカー(VIVEのイヤホン)へ流します。
これで自分の声を確認しながら喋ることができます(おすすめしますが、慣れないうちは脳が混乱して喋りづらい)。

IN1とかIN5とかあるのはBananaとCantabileで使用するポートのようなもので、これらのソフトウェア間ならポート番号を合わせることで別途ケーブルいらずで受け渡しができます。
A1,A2はBanana内のみで利用できるポートです。HardwareINPUTからHardwareOUTに渡すことができます。
Morphはオーディオドライバが同封されていて、インストールすると自動的にScreaming Bee Audioが追加されます。
これを既定のデバイスにしておくとVRChat側がマイク入力として受け取ってくれます。
今現在はわかりませんが、デバイス名に日本語が入っているとダメっぽいのでサウンドの録音タブから"VC"とか適当にリネームしておきます。
f:id:Mijinko:20190215125548p:plain

Bananaの設定

各ソフトウェアのインストール後、それぞれ設定します。
f:id:Mijinko:20190215124828p:plain
まず右上のHardwareOUTにA1[スピーカー(VB-Audio Virtual Cable)], A2[スピーカー(HTC VIVE)] を選択。
次にHardwareINPUT1にマイクを選択し、HardwareINPUT2にMorphの出力(Screaming Bee Audio)を選択。INPUT2のA2をクリックしてスピーカーに渡しておきます。
真ん中あたりのVoiceMeeter AUXからはVBCableに渡すためA1をクリック。

f:id:Mijinko:20190215130625p:plain
右上のMenuからSystem Settings / Options...から上記設定画面を開く。
設定画面下部のPATCH INSERTにあるin5 Leftとin5 Rightをクリックしポートを繋ぐ。そのまま×を押して設定画面を閉じてOKです。

Cantabile Liteの設定

まずToolsからOptionを開く。
f:id:Mijinko:20190215131235p:plain
Audio Engineタブ->Audio Driverを"ASIO - Voicemeeter Insert Virtual ASIO"に設定。
f:id:Mijinko:20190215131420p:plain
Audio Portsタブからinとoutを設定する。
下部のAddからStereo Input Port..をクリックして名前を適当に入れてOK。inが追加される。
LeftとRightの(unassigned)を右クリックで"IN#1 Left","IN#1 Right"をそれぞれ選択。
同様にAddからStereo Output Port..でoutを追加し、"IN#5 Left", "IN#5 Right"をそれぞれ選択。
上記画像のようになればOK(metronomeは無視で構わない)。

これでBananaとの受け渡しができるようになったはずなので、VSTプラグインを繋ぐ。
f:id:Mijinko:20190215132056p:plain
Input Portsの下にあるAdd Routeをクリック、先ほど設定したinを選択。
Add ObjectからPlugin..を選択し、下部のMoreからbrowse for Plugin...をクリックしダウンロードしてきたVSTプラグインのDLLファイルを開く。
RealPlugsはインストールしたフォルダにDLL群がある。

それぞれのファイル名は
Reafir:reafir_standalone.dll
Reaxcomp:reaxcomp_standalone.dll
SPITFISH:SPITFISH.dll
SanfordReverb:SanfordReverb32.dll
間違ってたらごめん

f:id:Mijinko:20190215133506p:plain
それらを追加後、赤枠で囲った箇所をクリックして繋いでいく。
繋ぐ順番は好みとかたぶん色々あるので、私の例だけ
in -> reafir -> SPITFISH -> SanfordReverb -> reaxcomp -> out

繋ぎ終わったら、テストのためBananaのAUXをA2にも渡します。
画面右上の電源ボタンを押してマイクに喋ってみて通じてるかテストします。上手くいってたら残響かかりまくりの自分の声が聞こえます。
何回かON/OFFすると繋がったりするので、左端のin,outの音量インジケーターが動かないときはポチポチしてみてください。なんか出力がガタガタするときも同様。

無事通じたら各VSTの設定です。
ReafirとReaxcomp以外は個人差や好みが大きい部分なので、参考程度です。
いらないプラグインがある場合は外しましょう。

Reafirの設定

ノイズ除去です。マイクの特性や個体差なんかでホワイトノイズが乗ってたりするのでそれらを除きます。
Cantabileの電源をONにしたまま、reafirをダブルクリックして設定画面を出します。
デフォルトでModeがEQになっているのでSubtractに変えます。すると黄色の波形で現在の入力が表示されますが、何も喋ってない時の持続的な波形がノイズです。
Modeの横のチェックボックス(Automaticallyなんとか)をクリックすると、入力波形に沿って赤色のフィルタを生成してくれます。チェックが入っている間の入力を見るため、ノイズが消えたらチェックを外して完了です。
f:id:Mijinko:20190215134531p:plain

SPITFISHの設定

よくわからない...(本音)
ここら辺は個人差が出てくるので詳細な設定は検索してください()
私は周波数8k[Hz]あたりにかけています。
f:id:Mijinko:20190215140528p:plain

SanfordReverb

声をちょっと柔らかくする程度にかけてます。
デフォルトでは残響しゅごいので設定値を小さく。
f:id:Mijinko:20190215140941p:plain

Reaxcomp

コンプレッサーです。
Morphでは、入力の音量が一定以上ないとうまく変換してくれません。
なので語尾や小さく漏れた声などはそこだけ変換がかからず男性っぽいになることがたまにあります(あった)。
対策として、コンプレッサーで入力音声を底上げして変換後の音量をその分調整しています。

設定画面を開くとバンド(数字の描いてある赤いバー)が5つくらいあるので、それぞれ右クリックしてDelete Bandを押し1つにまとめます。
小声で喋りながらバーの位置を下げ、緑色の入力に合わせれば多分OKです。
f:id:Mijinko:20190215141905p:plain
入力そもそもが小さい場合はBananaのマイク音量を上げましょう。

Morphの設定

先ほどテストのために設定したBananaのAUXからA2を外しておきます。
まずMorphを起動すると初期設定が出てきますが、これは後から設定可能なのでとりあえずcancelを押します。
メニューバーのMorphVOX -> PreferencesからDevice Settingsに入ります。
f:id:Mijinko:20190215143553p:plain
MicrophoneにVBCableを選択し、Echoなんとかのチェックボックスがついていたら外します。
Sound SettingsからSoundThresholdを最低にし、OK。Cantabileで音声処理をした後の声が入力されます。


メニューバーのTools -> Voice Learning -> Run Voice Doctor..でVoiceDoctorを起動します。
f:id:Mijinko:20190215143950p:plain
Recordを押して「あーーーー」と緑色になるまで喋ります。
この時、地声より少し喉を締めてほんの少し高めの声で喋るといいかもしれません。
緑色になったら、Stopを押してからNextを押します。すると自動的になんやかんやしてくれて設定が完了します。
f:id:Mijinko:20190215144823p:plain
Listenをオフにして、Womanをクリックするとボイチェンがかかります。
納得できる声が出なかった場合、再度VoiceDoctorを起動して声の高さを変えて設定してみてください。ここは試行錯誤です。

自己流声の出し方メモ

あくまで自分用のメモです。
きちんとした発声法に関しては、メラニー法などの女声の出し方を調べてください。
体感的には、
地声---×---------〇----裏声
VoiceDorctorには×程度の高さで設定し、〇らへんの高さで喉仏を震わせないように喋るとそれっぽい声になります。喉の筋肉を鍛えていけ。
あくまでボイチェンはピッチ補助的な役割と捉えて、フォルマントのボイトレをがんばりましょう。フォルマントさえ女性的に近づけば、ピッチは低くても綺麗に変換されます。
口角を上げて、アヒル口のようにして喋ると猫撫で声がでたりでなかったりします。
喋り方・イントネーションに関してはゲームやメディアなどで女性キャラクターのセリフ真似をしていると掴めるかもしれません。アバターになりきって感情込めてあげましょう。
だからみんなロシアンワールドいこう。いこうね。

おわり

最初のころは喉が疲れまくってましたが、最近はいつでもある程度は出せるようになりました。
別のボイチェンソフトでも環境構築はだいたいこれでいけますが、プラグインや設定、声の出し方は人それぞれです。
Morphが合わない場合は恋声やバ美声を試してみましょう。その場合はケーブルを増やす必要があったりします(VBCableは$5~くらいの寄付で増やせる)。NETDUETインストールしても1本ついてくるとか。
良きボイチェンライフを....

VRChatでのボイチェン環境 [Morph VOX Jr + VST]

いい加減まとめようと思っていたので...自分の環境です。

ちなみに、ちょっと前にKinect環境を書きましたがすぐにやめてしまって現在はVIVE+トラッカー環境です。ダンスとVR睡眠がしたかった。

*本記事はVSTを利用する環境を構築するためのものであり、ボイトレとかの解説ではありません*
*雑な備忘録です。何の責任も負いません*

なんの記事

MorphVOXの無料版(Jr)とVSTプラグインを使用して、VRChatでボイチェン環境を構築します。
VIVE標準のマイクだとちょっとアレだったのでマイクを別途購入しています。

つかうソフト・VSTプラグイン

・Morph VOX jr (Free Voice Changer Software - MorphVOX Junior)
・VoiceMeeterBanana (VB-Audio VoiceMeeter Banana)
・Cantabile Lite (Free VST Host - Cantabile Lite - Cantabile - Software for Performing Musicians) x86版をDL
・VBCable (VB-Audio Virtual Apps)
VSTプラグイン
・Reafir
・Reaxcomp
※上記二つはReaPlugsに同封(REAPER | ReaPlugs) x86版をDL
・SPITFISH (digitalfishphones.com - audio freeware plugins by Sascha Eversmeier) ページ下部のthe fish fillets PC (Win) version 1.1から
・SanfordReverb (Leslie Sanford - VST Plugins)

VST is 何

音源に様々な効果を付与するもので、VSTHostと呼ばれるカテゴリのソフトウェアにプラグインとして導入すると利用可能になります。
今回はCantabile LiteをVSTHostとして使用し、ノイズ除去(Reafir)・音量調整(Reaxcomp)・歯擦音軽減(SPITFISH)・残響(SanfordReverb)のプラグインを乗せます。

全体の構成

f:id:Mijinko:20190215123822p:plain
マイクから入力した音声をBanana経由でCantabileに渡し、音声処理をかけてBananaに戻します。
そこからVBCableでMorph(ボイチェン)に渡して変換、出力をVRChatとプレイバックのためにBanana経由でスピーカー(VIVEのイヤホン)へ流します。
これで自分の声を確認しながら喋ることができます(おすすめしますが、慣れないうちは脳が混乱して喋りづらい)。

IN1とかIN5とかあるのはBananaとCantabileで使用するポートのようなもので、これらのソフトウェア間ならポート番号を合わせることで別途ケーブルいらずで受け渡しができます。
A1,A2はBanana内のみで利用できるポートです。HardwareINPUTからHardwareOUTに渡すことができます。
Morphはオーディオドライバが同封されていて、インストールすると自動的にScreaming Bee Audioが追加されます。
これを既定のデバイスにしておくとVRChat側がマイク入力として受け取ってくれます。
今現在はわかりませんが、デバイス名に日本語が入っているとダメっぽいのでサウンドの録音タブから"VC"とか適当にリネームしておきます。
f:id:Mijinko:20190215125548p:plain

Bananaの設定

各ソフトウェアのインストール後、それぞれ設定します。
f:id:Mijinko:20190215124828p:plain
まず右上のHardwareOUTにA1[スピーカー(VB-Audio Virtual Cable)], A2[スピーカー(HTC VIVE)] を選択。
次にHardwareINPUT1にマイクを選択し、HardwareINPUT2にMorphの出力(Screaming Bee Audio)を選択。INPUT2のA2をクリックしてスピーカーに渡しておきます。
真ん中あたりのVoiceMeeter AUXからはVBCableに渡すためA1をクリック。

f:id:Mijinko:20190215130625p:plain
右上のMenuからSystem Settings / Options...から上記設定画面を開く。
設定画面下部のPATCH INSERTにあるin5 Leftとin5 Rightをクリックしポートを繋ぐ。そのまま×を押して設定画面を閉じてOKです。

Cantabile Liteの設定

まずToolsからOptionを開く。
f:id:Mijinko:20190215131235p:plain
Audio Engineタブ->Audio Driverを"ASIO - Voicemeeter Insert Virtual ASIO"に設定。
f:id:Mijinko:20190215131420p:plain
Audio Portsタブからinとoutを設定する。
下部のAddからStereo Input Port..をクリックして名前を適当に入れてOK。inが追加される。
LeftとRightの(unassigned)を右クリックで"IN#1 Left","IN#1 Right"をそれぞれ選択。
同様にAddからStereo Output Port..でoutを追加し、"IN#5 Left", "IN#5 Right"をそれぞれ選択。
上記画像のようになればOK(metronomeは無視で構わない)。

これでBananaとの受け渡しができるようになったはずなので、VSTプラグインを繋ぐ。
f:id:Mijinko:20190215132056p:plain
Input Portsの下にあるAdd Routeをクリック、先ほど設定したinを選択。
Add ObjectからPlugin..を選択し、下部のMoreからbrowse for Plugin...をクリックしダウンロードしてきたVSTプラグインのDLLファイルを開く。
RealPlugsはインストールしたフォルダにDLL群がある。

それぞれのファイル名は
Reafir:reafir_standalone.dll
Reaxcomp:reaxcomp_standalone.dll
SPITFISH:SPITFISH.dll
SanfordReverb:SanfordReverb32.dll
間違ってたらごめん

f:id:Mijinko:20190215133506p:plain
それらを追加後、赤枠で囲った箇所をクリックして繋いでいく。
繋ぐ順番は好みとかたぶん色々あるので、私の例だけ
in -> reafir -> SPITFISH -> SanfordReverb -> reaxcomp -> out

繋ぎ終わったら、テストのためBananaのAUXをA2にも渡します。
画面右上の電源ボタンを押してマイクに喋ってみて通じてるかテストします。上手くいってたら残響かかりまくりの自分の声が聞こえます。
何回かON/OFFすると繋がったりするので、左端のin,outの音量インジケーターが動かないときはポチポチしてみてください。なんか出力がガタガタするときも同様。

無事通じたら各VSTの設定です。
ReafirとReaxcomp以外は個人差や好みが大きい部分なので、参考程度です。
いらないプラグインがある場合は外しましょう。

Reafirの設定

ノイズ除去です。マイクの特性や個体差なんかでホワイトノイズが乗ってたりするのでそれらを除きます。
Cantabileの電源をONにしたまま、reafirをダブルクリックして設定画面を出します。
デフォルトでModeがEQになっているのでSubtractに変えます。すると黄色の波形で現在の入力が表示されますが、何も喋ってない時の持続的な波形がノイズです。
Modeの横のチェックボックス(Automaticallyなんとか)をクリックすると、入力波形に沿って赤色のフィルタを生成してくれます。チェックが入っている間の入力を見るため、ノイズが消えたらチェックを外して完了です。
f:id:Mijinko:20190215134531p:plain

SPITFISHの設定

よくわからない...(本音)
ここら辺は個人差が出てくるので詳細な設定は検索してください()
私は周波数8k[Hz]あたりにかけています。
f:id:Mijinko:20190215140528p:plain

SanfordReverb

声をちょっと柔らかくする程度にかけてます。
デフォルトでは残響しゅごいので設定値を小さく。
f:id:Mijinko:20190215140941p:plain

Reaxcomp

コンプレッサーです。
Morphでは、入力の音量が一定以上ないとうまく変換してくれません。
なので語尾や小さく漏れた声などはそこだけ変換がかからず男性っぽいになることがたまにあります(あった)。
対策として、コンプレッサーで入力音声を底上げして変換後の音量をその分調整しています。

設定画面を開くとバンド(数字の描いてある赤いバー)が5つくらいあるので、それぞれ右クリックしてDelete Bandを押し1つにまとめます。
小声で喋りながらバーの位置を下げ、緑色の入力に合わせれば多分OKです。
f:id:Mijinko:20190215141905p:plain
入力そもそもが小さい場合はBananaのマイク音量を上げましょう。

Morphの設定

先ほどテストのために設定したBananaのAUXからA2を外しておきます。
まずMorphを起動すると初期設定が出てきますが、これは後から設定可能なのでとりあえずcancelを押します。
メニューバーのMorphVOX -> PreferencesからDevice Settingsに入ります。
f:id:Mijinko:20190215143553p:plain
MicrophoneにVBCableを選択し、Echoなんとかのチェックボックスがついていたら外します。
Sound SettingsからSoundThresholdを最低にし、OK。Cantabileで音声処理をした後の声が入力されます。


メニューバーのTools -> Voice Learning -> Run Voice Doctor..でVoiceDoctorを起動します。
f:id:Mijinko:20190215143950p:plain
Recordを押して「あーーーー」と緑色になるまで喋ります。
この時、地声より少し喉を締めてほんの少し高めの声で喋るといいかもしれません。
緑色になったら、Stopを押してからNextを押します。すると自動的になんやかんやしてくれて設定が完了します。
f:id:Mijinko:20190215144823p:plain
Listenをオフにして、Womanをクリックするとボイチェンがかかります。
納得できる声が出なかった場合、再度VoiceDoctorを起動して声の高さを変えて設定してみてください。ここは試行錯誤です。

自己流声の出し方メモ

あくまで自分用のメモです。
きちんとした発声法に関しては、メラニー法などの女声の出し方を調べてください。
体感的には、
地声---×---------〇----裏声
VoiceDorctorには×程度の高さで設定し、〇らへんの高さで喉仏を震わせないように喋るとそれっぽい声になります。喉の筋肉を鍛えていけ。
あくまでボイチェンはピッチ補助的な役割と捉えて、フォルマントのボイトレをがんばりましょう。フォルマントさえ女性的に近づけば、ピッチは低くても綺麗に変換されます。
口角を上げて、アヒル口のようにして喋ると猫撫で声がでたりでなかったりします。
喋り方・イントネーションに関してはゲームやメディアなどで女性キャラクターのセリフ真似をしていると掴めるかもしれません。アバターになりきって感情込めてあげましょう。
だからみんなロシアンワールドいこう。いこうね。

おわり

最初のころは喉が疲れまくってましたが、最近はいつでもある程度は出せるようになりました。
別のボイチェンソフトでも環境構築はだいたいこれでいけますが、プラグインや設定、声の出し方は人それぞれです。
Morphが合わない場合は恋声やバ美声を試してみましょう。その場合はケーブルを増やす必要があったりします(VBCableは$5~くらいの寄付で増やせる)。NETDUETインストールしても1本ついてくるとか。
良きボイチェンライフを....

VRChatにOculusDK2+JoyCon+Kinectで潜り込む

自分用備忘録。

いいよね、VR. 私もしたい

でもOculusRiftもVIVEもちょっとお高い。
WindowsMRは比較的安めだけど手のトラッキング範囲が限られている。

サークル室に転がっていたOculusDK2

Kinect for Windows

これにswitchのJoyConを買ってきてなんちゃってVRする。

! Windows10でないと、JoyConが認識されず動きません !

なにをしたの

OculusDK2とKinect、JoyConでVRした。
一般的なVR機器には遠く及びませんが、身振り手振りで話すくらいには使える。
お金あるならVIVEのほうが...いいかな!

準備したもの

・OculusDK2
Kinect for Windows
・KinectSDK1.8 - Kinect使うためのSDK。MSから無料で持ってこれる
・JoyCon - 7000円くらい
・JoyCon充電器 - 1500円くらい
BlueToothアダプタ - 必要であれば
・Driver4VR - 2500円くらい 試用版ありのソフトウェア
・いい感じのマイク
・USB/オーディオ延長ケーブル

手順

OculusDK2を使えるようにする

まずはOculusソフトウェアをインストール。デバイスの設定はスキップを押す。
DeviceタブにてHMDとセンサーがconnectになってればOK.

SteamVRを導入

DK2をつないでSteamを起動すれば勝手にダイアログが出て入れてくれる。
SteamVRを起動して、HMDとセンサーが緑色になっていることを確認。

Driver4VRを導入

試用版は15分程度? でソフトの再起動が必要になる。テストして納得したら買おうね。アカウントは作っておこう。
SteamVRを認識してドライバまでインストールするので、SteamVRインストールした後に入れましょう。

Kinectを接続

インストールするだけ。今回のようにv1とかfor Windowsの場合は1.8を入れる。
KinectをPCに接続して、デバイスマネージャからきちんと認識されていることを確認する。

JoyConを接続

BlueToothで接続。JoyConの側面にある黒い小さな丸ボタンを長押しでペアリング。
接続済みと出たらOK.

VRChatを導入

おもむろにインストール。

SteamVRを起動

一緒にDriver4VRが起動するので、アカウントにログイン。
頭の動きはDK2で取得できるのでHeadTrackingはオフ。
HandTrackingをONにして、BodyTrackingはお好みで。BodyをONにした場合はキャリブレーションが必要です。
恐らくD4VRを再起動しろと言われるので、D4VRとSteamVRも再起動。
D4VRのDeviceManagerからJoyConのタブへ行き、ONにした後Updateを押すと接続したJoyConがリストに表示される。
それぞれをleftとrightにAssignして割り当てる。
Startを押すと、SteamVRにてD4という表記とコントローラーらしきマークが緑になるはず。これでエミュレート完了。

VRChatを起動

遊ぼうね。
JoyConは回転とボタンを割り当てているだけなので、Kinectとのズレで手首が頻繁に折れます。なので+,-ボタンを押して戻してやる必要があります(かなり高頻度)。
Bodyもトラッキングしている場合は最初に四肢を合わせてキャリブレーションしますが、この時のボタンはトリガーではなく↓+Bです。

キーバインド

これがマジでわかんない。自動割り当てのようだけど使いづらいことこの上なし。
物を選択(パネルとかスイッチとか) : トリガー
物をつかむ : ↓ or B
物をつかんだ状態で使用する : 掴んでいるほうのコントローラーでトリガー
移動 : 左のジョイスティック
視点回転 : 右のジョイスティックにて左右
後ろを向く : ← , → or Y , A
メニュー : ↑ or Y 選択はトリガー

ここまではええのじゃ..でもジョイスティックに表情などのエモーションが割り当てられていて、アバターによりピースしながら走ったり舌出したりすることになる。つらい。
色んなアバターワールド周ったけど、ほとんどこれのせいで通常時でもにっこりしてたりとか移動/スティックでの視点移動をすると顔芸を始める。つらいことこの上ない。

なのでこの方法を使う人は、自作アバターを用意することをお勧めします。表情できないのつらいね。
キーコンフィグがあればいいんだけど、よくわからないです(よわい)

おわり

VRChatよりBlender使ってるほうが長い

お寿司ツイートボタン(Processing+Arduino+twitter4j)

おすしたべたいです。

 

食べたすぎておすしツイートしてしまう🍣

 

そういうわけで、お寿司の絵文字をツイートするボタンをつくりました。

(という名目でProcessing+Arduinoを試したかった)

 

・なにをしたの

Arduinoにスイッチつないで、Firmata接続したProcessing側で"スイッチが押されたらお寿司の絵文字をツイートする"という動作をさせただけ。

純正ArduinoじゃなくてJapaninoだけど許して。わりと備忘録。

 

・準備

1. ProcessingにArduinoのライブラリを入れる

2. Processingにtwitterライブラリのtwitter4jを入れる。

 -注意: 公式から落としてきたまま放り込むと認識されないので、ちゃんとわかってくれるようにフォルダ構造を作ってあげる必要があり。ググると作ってアップしてくださってる方がいるので、それをDLして最新版と.jarを入れ替えるといいかも。

3. ArduinoにはFirmataのStandardFirmataを書き込んでおく。

4. TwitterAPIを取得して、KeyとかTokenを用意しておく。

 

Arduino

スイッチをプルダウンで接続、今回は12番ピン。

f:id:Mijinko:20180417040722j:plain

こっちはこれでおわりです。

 

・Processing側

ライブラリをインポートして、処理はこっちで全部書きました。

import twitter4j.conf.*;
import twitter4j.internal.async.*;
import twitter4j.internal.org.json.*;
import twitter4j.internal.logging.*;
import twitter4j.http.*;
import twitter4j.internal.util.*;
import twitter4j.api.*;
import twitter4j.util.*;
import twitter4j.internal.http.*;
import twitter4j.*;
import processing.serial.*;
import cc.arduino.*;
Arduino arduino;
Twitter twitter;
int pin = 12;

String consumerKey = "***";
String consumerSecret = "***";
String accessToken = "***";
String accessSecret = "***";

void setup() {
size(400,200);
arduino = new Arduino(this, Arduino.list()[1], 57600);
arduino.pinMode(pin,Arduino.INPUT);
ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setOAuthConsumerKey(consumerKey);
cb.setOAuthConsumerSecret(consumerSecret);
cb.setOAuthAccessToken(accessToken);
cb.setOAuthAccessTokenSecret(accessSecret);

twitter = new TwitterFactory(cb.build()).getInstance();
}

void draw() {
background(0);
fill(255);
if(arduino.digitalRead(pin) == Arduino.HIGH) {
tweetSUSHI();
delay(100);
}
}

//ツイートする関数 void tweetSUSHI() { try{ String sushi = "🍣"; twitter.updateStatus(new StatusUpdate(sushi+" at"+hour()+":"+minute())); println("Successfully Post SUSHI"); } catch(TwitterException e){ e.printStackTrace(); } }

***の箇所はご自分のものに。

ツイート内容に時刻が入っているのは、APIによる同一内容連投はどうやら403で弾かれるようなので。

"Status is a duplicate"とか言われます。

 

ArduinoをPCと接続したまま実行し、ボタンを押すとお寿司がツイートされます。

 (36:40になってるのは分:秒にしてたため)

 

・おわり

私は数回で飽きた。