壊れたIndexコンを外部電源で復活させる
VRChatに来て6年.大事な大事なIndexコンが壊れてしまった.
最初に購入したのは約4年前.
去年に左手が故障しギリギリ初期不良で交換してもらったが,ついに右手も逝ってしまった.
流石に今回は交換・修理だめだったので自分で何とかした.
この記事は自己責任による修理の備忘録であり,
結果や記事内容について保証するものではありません
TL;DR
- IndexコンのUSBコネクタが壊れて充電できなくなったので,外部電源に接続して使えるようにした
- 外部電源として試したのは安定化電源,単4ニッケル水素電池,単4乾電池,3.7V Li-Po
- 起動時には電源の能力?により起動成功ガチャが入る
- 試した中では 安定化電源 = 3.7V Li-Po > 単4ニッケル水素電池 > 単4乾電池
- 3.7V Li-Poを外付けしまあまあ実用に耐える修理ができた
- 純正は3.8V Li-Poなので合わせたものを用意すれば問題ないのかもしれない
故障個所
症状は
- 充電ケーブルを挿しても充電LEDが付かない
- PCにUSB経由で繋いでも認識されない
- 電源ボタンを押すとコントローラーは起動する(LED点灯)ものの,すぐにバッテリー切れの赤LEDになり電源が切れる
- Type-Cコネクタを覗いてみると幾つかの端子ピンが破壊されている
以上より,本体機能に問題はないがUSBコネクタが損傷し充電・通信が出来ない状態になったみたい.
長年の抜き差しによる消耗かな.そういえばマグネット式のTypeCケーブルを薦められた気がする.後の祭りだ.
さほど致命的な原因でも無さそうなため,どうせ保証も切れているし修理をしてみる.
準備
構想としてはこう.

Indexコントローラーは内蔵バッテリーをUSBコネクタ経由で充電する.
今回その経路が使えないので,内蔵バッテリーを取り外し外部電源を繋ぐ,もしくは別の経路で内蔵バッテリーを充電するようバイパスさせればコントローラーの充電は可能になるという目論見.
依然としてUSB通信部分は死んだままだが,たまにファームウェアアップデートに使用していた程度なので致命的ではない...と思う.
とにかく使えないよりはマシ.
手持ちの部品を漁ると3.7V Li-Poとその充電回路が幾つか余っていた.3.8V Li-Poの充電回路は無かったため,内蔵バッテリーを別経路で充電するのではなく3.7V Li-Poを外付けして運用することにした.
電圧差はわずかだが充放電限界値が異なるため混合してしまうと爆発する危険性が高まる.
ベストはType-Cコネクタを交換する事だけどType-Cはピン数の多い表面実装な上に,ネットを見ているとIndexコンのハンドガード部は接着剤が多用されておりリスクが高いのか殆ど分解した例が見当たらないので素直に安全策をとろう.
もし修理不可能なくらい壊してしまったら割高になるがAliExとかeBayで売ってはいるのでそこらへんで買うつもりでいた.
必要なのは
- T9, T5ドライバ:T5の方は深いところにネジがあるので細くて25~30mm程度のリーチが必要になる
- スクレーパーなど:こじ開けるために使う.硬くて薄ければOK
- ピンセット
- 熱収縮チューブ:絶縁できればなんでも
- お好きな外部電源:余っていたLi-Poバッテリーを使った
- お好きな2Pコネクタ:PHサイズを使った
- 2Pの線材
- 外部電源を収納するケース:適当なタカチケース
修理
分解
Indexコンのバッテリー交換はある程度メジャーらしく,この動画を参考にした.
お腹を開いてバッテリーを取り出し,3本の線を切断するとこまでは同じ.
中に入っているのは3.8Vの1100mAh Li-Poバッテリー.
切断後,サーミスタ用の白線は適当に絶縁し,一旦安定化電源に繋いでテストする.
起動した.
が,たまに電源ON後に青LED->一瞬赤LED点灯->電源OFFというバッテリー不足の挙動をする.
そしてそれ以降,一旦電源をつなぎ直す等のリセットを行わない限り電源ボタンが反応しなくなる.
これの原因は不明だが,青LED時には殆ど消費されない電流が赤LED/緑LED時に0.1A程度に増加する.この際に電源側供給が追いつけない・線材の抵抗が高い等の場合バッテリー不足とみなされ電源OFFになっている可能性がある.
何度か繰り返すと青LED->赤LED点滅->緑LED(通常起動)になり使用できるようになる.その後は電源ボタンによってコントローラーをOFFにしても,問題なく起動できるようになった.(電源をつなぎ直すとまた起動ガチャが始まる)
以上より,外部電源はスイッチまたは脱着可能なコネクタによる回路の繋ぎ直しができると嬉しそう.
電源の選定
起動ガチャがあることがわかったので,複数の電源を試してみる.
ネットで漁った結果,5Vを直接入力しても壊れないらしい.実際充電池4本で5.2V程度も試したが壊れることはなかった.
しかし起動時のBeep音が妙に甲高かったりいつもより熱を持っていたりしたので負担が大きいのは確か.常用はしない方が良いかもしれないし,壊れても何ら責任は負えない.
・安定化電源
でかくてあんしん.
ただ私が持っているやつが安物だからか,たまに起動失敗する.
・3.7V Li-Po
純正バッテリは3.8Vだが,手持ちに3.7Vしかなかった.
容量は2000mAh.純正の約2倍.
ポータブルな電源の中では一番安定しており,大体2,3回のリセットで起動する.
充電は以前SlimeVRトラッカーを作った際に自作した充電回路を使用し,毎回コネクタを繋ぎ直している.
充電回路には充放電機能が備わっているが,それらを経由すると起動に失敗しまくるので直結が一番良い結果になった.
注意点として,Indexコン内蔵の充電回路から充電されてしまった場合,電圧の違いから定格の充電電圧を超えてしまい大変危険.
例えUSBコネクタが壊れているとしても,絶対に3.7V Li-Poを繋いだ状態でIndexコンに充電ケーブルを挿してはいけない.
テープか何かでUSBコネクタをふさいでしまうと安心.
放電下限については,こわいのでテストはしていないが内蔵回路が3.8V Li-Poを想定しているため放電下限値は3.7V Li-Poのそれよりも高いはず...という憶測で運用している.
・ニッケル水素充電池x4
Li-Poより危険性が少ないこと,ストックしておけば充電が切れた際にすぐ交換できること等で出来ればこれを使いたかった.
単4x4電池ボックスを使い,電圧は5.2~4.8Vあたり.

充電直後は良いものの,すぐ途中でバッテリー不足の挙動が発生しそれ以降起動に失敗する.
Li-Poの性能に勝てない.
・単4乾電池x3
できればいいな枠.
意外と健闘したものの,ニッケル水素充電池と同じく長時間使用には耐えられない.
以上より,3.7V Li-Poを利用する.
接続
さて,分解時に引っ張り出した電源線とバッテリーを繋ぐためこんなのを作る.

基板上についていた3ピンコネクタと2ピンのPHコネクタを接続した.
電源の極性に十分注意する.赤が+で,黒がー.

ケーブルを出すための穴を加工する.内側にセンサー部や部品が被っていないか十分に注意して,デザインナイフで加工した.

ケーブルを通し,分解した通りに組み立てて完成.
動作確認
バッテリーをケーブルの先に接続し,SteamVRを起動して確認する.
1回のリセット(繋ぎ直し)で起動に成功した.
VRChatでしばらく遊んでも問題なさそう.容量も約2倍になったからか,未改造の左手より電池の持ちがいい.
最後に,バッテリーを外傷から守るためケースに入れて固定する.
お馴染み適当な大きさのタカチケースを用意し,クッション付き両面テープでケース内に固定した.
穴あけ加工をしてコネクタを引き出し,ケースをIndexコンのUSBコネクタ部分に貼り付けてタイロックでうまいこと締めれば完成.
運用上の注意は,振り回してバッテリーケースをぶつけないこと.VR睡眠時はコントローラーの電源を切っておくこと(問題ないとは思うが放電下限のテストをしていないため).充電時はちゃんと3.7V Li-Poに使用可能な充電回路を用いること.あたりかな.
指が再び動くようになったよ.たのしいVRChatライフを! またね!

SimpleFOC用の基板ができ(てい)た
こんにちは.
秋から冬にかけての時期です.
前に言うてたSimpleFOC用ドライバ基板は6月くらいに出来ていて,テストも終わっていました.
今更新しているのは単純に別のことしてたからです.
基本的に前回貼っていたPowerDriverをパク参考にして,ドライブ用のMOSFETを取り換えやすいように国内で入手可能なTO-220パッケージのTK100E08N1にした.
NchパワーMOSFET 80V100A TK100E08N1: 半導体(モジュール) 秋月電子通商-電子部品・ネット通販
基板はJLCPCBで頼んだのでそこのパーツ実装サービスで在庫のあるものに変えたりしつつ,回路図はこんな感じに.


基板はこんな感じになった.
結局,シールド形式にすると若干取り回しが悪くなったのと別のマイコンを使う案が出ているので独立基板に.

で,届いて回しているとこ.
まわる〜 pic.twitter.com/niK1FmjJ7F
— shinoha (@shinoha_yuzu) 2023年6月24日
単純にPWMを流し込んでいるだけですが元気よく回っているのでよしとします.
中華STM32F103C8でSimpleFOCをつかう
TL;DR
ブラシレスモータをロボットに使いたい.SimpleFOCというオープンハード/ライブラリが良さそう.
中華系STM32F103C8ボードにSimpleFOCのサンプルを書き込んだ.
ArduinoIDE1.8.5とSTM32duinoを使用.
PinStatus関係のエラーはsrc/communications/StepDirListener.hに以下を追記して解決.
#if defined(__STM32F1__)
#define PinStatus ExtIntTriggerMode
#endif
こんにちは
春ですね.
最近ブラシレスの機運が高まっているので,何もわかってないけど5010 360kVをひとつ買ってみました.
制御とかモジュール化がうまくいったらデカめのロボット(某OpenDynamicsとか)に使いたいなぁという気持ちだったので,電流が多く流せて高トルクで安いのを探していたらAmazonにあった怪しげなやつ.

ラボの予算でもいいよと言われていたけど,流石にちゃんと届かなかったら怖いので...
どうやら40Aまでイケるらしいが本当か怪しい.
ちゃんと届いたので回るものなのかテストしたいけど,ブラシレスモータは三相電流と複雑な制御が必要になる.
メインボードと通信できるいい感じのドライバがないだろうかと探していたら,SimpleFOCなるものが.
トルク重視のFOC(フィールド指向制御)をしてくれる.簡単に言えば固定子とロータの磁界を直行させ,高い効率で最大トルクを発生させようというもの,らしい.
Arduinoシールド形式で,1シールド1モータを制御できる.
"真の"FOC制御らしくかなり使い勝手が良さそうなものの,公式ボードでは最大電流が5A,モータ内部抵抗が10Ω以上じゃないと電流制限が必要になるなど小さめのBLDC向けだった.
某Solo12のマイクロドライバは15A(ピーク20A)なので同じように使うには出力が足りない上に,内部抵抗も270mΩとある.

24Vで動かすとすれば,単純に最高電流はI_max = 24V / 0.27Ω = 88A
ンマ高い.
15~20Aでドライブするとして,SimpleFOCのシールドの最大電流値を上げなければならない.
と,コミュニティを漁っていると出てきたPower増強版.
すばらしい.
ピーク30Aまでドライブ可能,コストも安いんだって.
完全に回路図もガーバーデータもオープンなのでこれを参考にしてドライブ基板を試してみようかなと思っている.
本題.
使用するマイコンについて.
ArduinoUnoシールドの形状をしているのでUnoを使えば早いのだが,如何せん数が必要になる(3Dofの足を何本か付けたい).
SimpleFOCシールドは積み上げることで複数制御可能だが,15Aでドライブすることを考えると発熱の関係であまり積み上げたりしたくない.
そうなると,なるべくコストは抑えてかつ小型に押し込みたい.その上でシールド形式という使い勝手の良さは残したい.
というわけで机に転がっていた中華STM32F103C8マイコンボードを一旦使ってみることにした.
みんな大好きMapleやBlackPillの系列である.
しかしF103C8なので,フラッシュメモリが64kbしかない.(中華系のC8は大抵128kbだったりするという話も聞いたことがある)
FOCに加えてSPIか何かでマスターボードとも通信して欲しい,結構ギチギチではないだろうか.
ひとまずサンプルコードだけでも書き込んで空き具合を見ることにした.
ArduinoIDEは諸事情あって1.8.5
STM32F103を使う設定をして,SimpleFOCをライブラリマネージャからインストール.
サンプルの中からmotion_control -> torque_control -> encoder -> current_control
電流FOCのエンコーダ用サンプルを読み込んで,ピンの名称をA0, A2からPA0, PA2に変更する.ボードによってGPIOの予約語が違うので注意.
コンパイルするも通らない.
error: 'PinStatus' does not name a type
コミュニティにSAMD21マイコンを使った際に同じようになったと報告があった(十数日前,タイムリー)
このトピックでは以下の記述をsrc/communications/StepDirListener.hに追加して回避している.
#define PinStatus int
で,これについてちょっと調べると.
どうやらHIGH/LOW割り込みについての話らしい,型はenum.
Arduinoで使うGPIO状態割り込みのPinStatusがSAMD21ではそもそも定義されていないので見つからなくてエラーになる.
ので,defineでPinStatusをintに読み替えちゃってくださいということらしい.
STM32F103の場合はどうかというと,どうやら定義されているものの名称が異なる.
素直に上記コードを追記すると,
error: invalid conversion from 'int' to 'ExtIntTriggerMode'
STM32duino内ではExtintTriggerModeが使われるそうな.
見に行くと,確かにenum型でRISING,FALLING,CHANGEがある.
多分これかなぁと思いつつ,
#if defined(__STM32F1__)
#define PinStatus ExtIntTriggerMode
#endif
をStepDirListener.hの冒頭に追記.
__STM32F1__でF103を指定している.
で,コンパイルが通った.
書き込んでみるとフラッシュメモリ64kbのうち,68%ほどを使用している模様.
FOCするサンプルだけで70%近いので結構ギリギリかもしれない..
ひとまず,SimpleFOCを中華STM32F103C8ボードに書き込めた.
つぎはFOCを勉強しながら大電流ドライバをつくる.
VRChatでのボイチェン環境 [Morph VOX Jr + VST]
いい加減まとめようと思っていたので...自分の環境です。
ちなみに、ちょっと前にKinect環境を書きましたがすぐにやめてしまって現在はVIVE+トラッカー環境です。ダンスとVR睡眠がしたかった。
*本記事はVSTを利用する環境を構築するためのものであり、ボイトレとかの解説ではありません*
*雑な備忘録です。何の責任も負いません*
つかうソフト・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)のプラグインを乗せます。
全体の構成

マイクから入力した音声をBanana経由でCantabileに渡し、音声処理をかけてBananaに戻します。
そこからVBCableでMorph(ボイチェン)に渡して変換、出力をVRChatとプレイバックのためにBanana経由でスピーカー(VIVEのイヤホン)へ流します。
これで自分の声を確認しながら喋ることができます(おすすめしますが、慣れないうちは脳が混乱して喋りづらい)。
IN1とかIN5とかあるのはBananaとCantabileで使用するポートのようなもので、これらのソフトウェア間ならポート番号を合わせることで別途ケーブルいらずで受け渡しができます。
A1,A2はBanana内のみで利用できるポートです。HardwareINPUTからHardwareOUTに渡すことができます。
Morphはオーディオドライバが同封されていて、インストールすると自動的にScreaming Bee Audioが追加されます。
これを既定のデバイスにしておくとVRChat側がマイク入力として受け取ってくれます。
今現在はわかりませんが、デバイス名に日本語が入っているとダメっぽいのでサウンドの録音タブから"VC"とか適当にリネームしておきます。

Bananaの設定
各ソフトウェアのインストール後、それぞれ設定します。

まず右上のHardwareOUTにA1[スピーカー(VB-Audio Virtual Cable)], A2[スピーカー(HTC VIVE)] を選択。
次にHardwareINPUT1にマイクを選択し、HardwareINPUT2にMorphの出力(Screaming Bee Audio)を選択。INPUT2のA2をクリックしてスピーカーに渡しておきます。
真ん中あたりのVoiceMeeter AUXからはVBCableに渡すためA1をクリック。

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

Audio Engineタブ->Audio Driverを"ASIO - Voicemeeter Insert Virtual ASIO"に設定。

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プラグインを繋ぐ。

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
間違ってたらごめん

それらを追加後、赤枠で囲った箇所をクリックして繋いでいく。
繋ぐ順番は好みとかたぶん色々あるので、私の例だけ
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なんとか)をクリックすると、入力波形に沿って赤色のフィルタを生成してくれます。チェックが入っている間の入力を見るため、ノイズが消えたらチェックを外して完了です。

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

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

Reaxcomp
コンプレッサーです。
Morphでは、入力の音量が一定以上ないとうまく変換してくれません。
なので語尾や小さく漏れた声などはそこだけ変換がかからず男性っぽいになることがたまにあります(あった)。
対策として、コンプレッサーで入力音声を底上げして変換後の音量をその分調整しています。
設定画面を開くとバンド(数字の描いてある赤いバー)が5つくらいあるので、それぞれ右クリックしてDelete Bandを押し1つにまとめます。
小声で喋りながらバーの位置を下げ、緑色の入力に合わせれば多分OKです。

入力そもそもが小さい場合はBananaのマイク音量を上げましょう。
Morphの設定
先ほどテストのために設定したBananaのAUXからA2を外しておきます。
まずMorphを起動すると初期設定が出てきますが、これは後から設定可能なのでとりあえずcancelを押します。
メニューバーのMorphVOX -> PreferencesからDevice Settingsに入ります。

MicrophoneにVBCableを選択し、Echoなんとかのチェックボックスがついていたら外します。
Sound SettingsからSoundThresholdを最低にし、OK。Cantabileで音声処理をした後の声が入力されます。
メニューバーのTools -> Voice Learning -> Run Voice Doctor..でVoiceDoctorを起動します。

Recordを押して「あーーーー」と緑色になるまで喋ります。
この時、地声より少し喉を締めてほんの少し高めの声で喋るといいかもしれません。
緑色になったら、Stopを押してからNextを押します。すると自動的になんやかんやしてくれて設定が完了します。

Listenをオフにして、Womanをクリックするとボイチェンがかかります。
納得できる声が出なかった場合、再度VoiceDoctorを起動して声の高さを変えて設定してみてください。ここは試行錯誤です。
自己流声の出し方メモ
あくまで自分用のメモです。
きちんとした発声法に関しては、メラニー法などの女声の出し方を調べてください。
体感的には、
地声---×---------〇----裏声
VoiceDorctorには×程度の高さで設定し、〇らへんの高さで喉仏を震わせないように喋るとそれっぽい声になります。喉の筋肉を鍛えていけ。
あくまでボイチェンはピッチ補助的な役割と捉えて、フォルマントのボイトレをがんばりましょう。フォルマントさえ女性的に近づけば、ピッチは低くても綺麗に変換されます。
口角を上げて、アヒル口のようにして喋ると猫撫で声がでたりでなかったりします。
喋り方・イントネーションに関してはゲームやメディアなどで女性キャラクターのセリフ真似をしていると掴めるかもしれません。アバターになりきって感情込めてあげましょう。
だからみんなロシアンワールドいこう。いこうね。
VRChatにOculusDK2+JoyCon+Kinectで潜り込む
自分用備忘録。
いいよね、VR. 私もしたい
でもOculusRiftもVIVEもちょっとお高い。
WindowsMRは比較的安めだけど手のトラッキング範囲が限られている。
サークル室に転がっていたOculusDK2
これにswitchのJoyConを買ってきてなんちゃってVRする。
! Windows10でないと、JoyConが認識されず動きません !
準備したもの
・OculusDK2
・Kinect for Windows
・KinectSDK1.8 - Kinect使うためのSDK。MSから無料で持ってこれる
・JoyCon - 7000円くらい
・JoyCon充電器 - 1500円くらい
・BlueToothアダプタ - 必要であれば
・Driver4VR - 2500円くらい 試用版ありのソフトウェア
・いい感じのマイク
・USB/オーディオ延長ケーブル
手順
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という表記とコントローラーらしきマークが緑になるはず。これでエミュレート完了。
キーバインド
これがマジでわかんない。自動割り当てのようだけど使いづらいことこの上なし。
物を選択(パネルとかスイッチとか) : トリガー
物をつかむ : ↓ 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番ピン。

こっちはこれでおわりです。
・Processing側
ライブラリをインポートして、処理はこっちで全部書きました。
***の箇所はご自分のものに。
ツイート内容に時刻が入っているのは、APIによる同一内容連投はどうやら403で弾かれるようなので。
"Status is a duplicate"とか言われます。
ArduinoをPCと接続したまま実行し、ボタンを押すとお寿司がツイートされます。
🍣 at36:40
— 🌱ぱせりんこ🌱 2018年4月16日
(36:40になってるのは分:秒にしてたため)
・おわり
私は数回で飽きた。