最終更新: kenken2020 2024年01月03日(水) 19:34:43履歴
目次
アバターに「VRIKCalibrationBasic」を取り付ける?
VRM(VRoid)モデルを使う
UniVRM v0.99.0 Unity-2019.4 の最終版です。
→VRMモデルならデフォルトでも良い感じVRIKが動く
ニア→0.13ぐらい?
名前空間
必要なGameObject一覧
コンポーネント
uOscServer
課題
DLL化テスト
Tilt Shift
Tilt Shiftを使うとカメラの描画画面の中心に垂直方向と放射状に焦点を合わせ周りをぼかす事が出来ます。
Unity SteamVR トラッカー 取得
SteamVR Plugin トラッカー
Unity VR アクションマニフェスト
SteamVR Unity Plugin
STEAMVR 再起動 エラー
Tilt Shiftを使うとカメラの描画画面の中心に垂直方向と放射状に焦点を合わせ周りをぼかす事が出来ます。
Unity SteamVR トラッカー 取得
SteamVR Plugin トラッカー
Unity VR アクションマニフェスト
SteamVR Unity Plugin
STEAMVR 再起動 エラー
HCtrl→ Init()→本来ここで「HStateCtrl」が作られるはずが作られていない
フックの箇所の問題?
HSceneProc
HFlag→VRHFlag
HSceneProc→VRHScene?
VRの場合:HFlagから「VRHScene」を取得しする
「VRHScene」の違い?
「AibuAuto()」「ForcePlayAibu(HCtrl.PlayState state, HActionBase proc)」を一時的に削除
KKS_HCtrl_VR→KK_HStrl.Hctrl→guiがヌル
HSceneProc
HFlag→VRHFlag
HSceneProc→VRHScene?
VRの場合:HFlagから「VRHScene」を取得しする
「VRHScene」の違い?
public static HSceneProc hsceneProc { get; private set; }↓
public static VRHScene hsceneProc { get; private set; }
HCtrl.hsceneProc = UnityEngine.Object.FindObjectOfType<HSceneProc>();↓
HCtrl.hsceneProc = UnityEngine.Object.FindObjectOfType<VRHScene>();
「AibuAuto()」「ForcePlayAibu(HCtrl.PlayState state, HActionBase proc)」を一時的に削除
KKS_HCtrl_VR→KK_HStrl.Hctrl→guiがヌル
- GUIMgrがヌル?
参考:Vive Stereo Rendering Toolkitを使って(Steam)VRで鏡を実装【Unity】【Steam】【VR】【アセット】:https://kan-kikuchi.hatenablog.com/entry/Vive_Ster...
スタジオのミラーアイテムをVRフリーHの空間にドロップ出来ないか?
Barque Mirror Table
スタジオのミラーアイテムをVRフリーHの空間にドロップ出来ないか?
Barque Mirror Table
Ctrl+P→リセット
SubCameraToggleKey=Ctrl+P
SubCameraAddKey=Ctrl + A
SubCameraTargetLook=P
SubCameraResetKey=Ctrl + Shift + P
TrackHeadPosToggleKey=ALT+P
TargetCharaSwitchKey=Ctrl + S
SubCameraDepth=0
ForcePanelMode=0
OnVRmodGUI=0
SubCameraTargetNames=p_cf_head_bone
SubCameraCopyEffects=
SubCameraFOV=40
SubCameraDistance=0.6
SubCameraPosSide=-0.3
SubCameraPosUp=0.2
LookAtHeadPosUp=0.1
TrackHeadPos=0
PanelDistance=1
PanelAspectRatio=0.6
PanelSize=1
PanelShader=
PanelShaderPalameter=
SubWindowRect=Rect(0, 0, 0.3, 0.35)
DepthOnlyKey=Ctrl+D
CullingMask = -1";
SubCameraToggleKey=Ctrl+P
SubCameraAddKey=Ctrl + A
SubCameraTargetLook=P
SubCameraResetKey=Ctrl + Shift + P
TrackHeadPosToggleKey=ALT+P
TargetCharaSwitchKey=Ctrl + S
SubCameraDepth=0
ForcePanelMode=0
OnVRmodGUI=0
SubCameraTargetNames=p_cf_head_bone
SubCameraCopyEffects=
SubCameraFOV=40
SubCameraDistance=0.6
SubCameraPosSide=-0.3
SubCameraPosUp=0.2
LookAtHeadPosUp=0.1
TrackHeadPos=0
PanelDistance=1
PanelAspectRatio=0.6
PanelSize=1
PanelShader=
PanelShaderPalameter=
SubWindowRect=Rect(0, 0, 0.3, 0.35)
DepthOnlyKey=Ctrl+D
CullingMask = -1";
- 参考になりそうなUnityアセット
- SteamVR Plugin:https://assetstore.unity.com/packages/tools/integr...
- VRTK - Virtual Reality Toolkit - [ VR Toolkit ] :https://assetstore.unity.com/packages/tools/integr...
- The Lab Renderer:https://assetstore.unity.com/packages/tools/the-la...
- 更新が止まっているので修正が必要
- ネームスペースをVR→XRにする?
- UnityのVRテンプレート(Ver2020.3.19f1)
- カメラリグにコントローラーがくっついている?
参考:Windows版のビルド、および実行手順
参考:理想のメイド。にVR化MODを導入してVRでプレイ!
参考:VR を Unity ゲームにハッキングする
GitHub:https://github.com/Eusth/VRGIN.Template/
内容:Unity5.X系(2016〜2017年頃)でビルドされたゲームをムリヤリVR化する
導入:zip「VRGIN.Template」をVR化する対象のexeがあるフォルダに展開する
操作方法:キーボード「Ctrl+C」を2回押すことでVRコントローラーモードに切り替わる
まず「IVRManagerContext」を継承したマイクラスを作る?
参考:理想のメイド。にVR化MODを導入してVRでプレイ!
参考:VR を Unity ゲームにハッキングする
GitHub:https://github.com/Eusth/VRGIN.Template/
内容:Unity5.X系(2016〜2017年頃)でビルドされたゲームをムリヤリVR化する
導入:zip「VRGIN.Template」をVR化する対象のexeがあるフォルダに展開する
- VR化するexeファイルをIPA.exeへドロップする
- 新しく出来たショートカットの起動オプションに「--vr」を追加する
操作方法:キーボード「Ctrl+C」を2回押すことでVRコントローラーモードに切り替わる
まず「IVRManagerContext」を継承したマイクラスを作る?
- 次にVR設定に関するXMLを読み込んでいる
[VRTK解説まとめ] Examplesまとめ(VRTK公式によるサンプル集)[Unity][VRTK3.0][Vive]:http://negi-lab.blog.jp/archives/vrtk_examples.htm...
VRTK解説まとめ:http://negi-lab.blog.jp/tag/VRTK%E8%A7%A3%E8%AA%AC...
↓やりたいこと
VRIK(FinalIK)をunityちゃんに設定する手法(Oculus) VR(Oculus)でキャラクタに憑依して操るアプリの作り方
→次の記事がシンプルにテストできる:Unity+Vive+MMD+VRIKで、キズナアイちゃんになりきりVR:https://qiita.com/halne369/items/daadf0e00330a1019...
VRTK解説まとめ:http://negi-lab.blog.jp/tag/VRTK%E8%A7%A3%E8%AA%AC...
↓やりたいこと
VRIK(FinalIK)をunityちゃんに設定する手法(Oculus) VR(Oculus)でキャラクタに憑依して操るアプリの作り方
→次の記事がシンプルにテストできる:Unity+Vive+MMD+VRIKで、キズナアイちゃんになりきりVR:https://qiita.com/halne369/items/daadf0e00330a1019...
環境サンプルが少ないのでv3.0.1にダウングレードする?
→エラー対策:保護されたメンバーにアクセスできませんUnityEngine.Texture.Texture()」:https://github.com/ExtendRealityLtd/VRTK/issues/17...
VRTKのセットアップ→[VRTK] VRTK 3.2.1 のセットアップ方法 [Vive]:http://negi-lab.blog.jp/VRTK_3_2_1_Setup
VRTK3.XはSteamVR プラグインV2には対応していない!
解決策:CS0246 SteamVR_PlayArea could not be found:https://github.com/ExtendRealityLtd/VRTK/issues/19...:
→VRTK で動作する古いバージョンの SteamVR プラグインをダウンロードする
最初にデフォルトのカメラを削除
ポインターが表示されない
- HTC Vive
- Unity 2019.4.9f1→
Unity 2017.4.2f2に変更 - SteamVR plugin for Unity v1.2.3
- VRTK v3.3.3→VRTK 3.2.1
→エラー対策:保護されたメンバーにアクセスできませんUnityEngine.Texture.Texture()」:https://github.com/ExtendRealityLtd/VRTK/issues/17...
renderer.material.SetTexture("_MainTex", new Texture2D(0,0));
- Final IK
- UnityChan_1_2_1
VRTKのセットアップ→[VRTK] VRTK 3.2.1 のセットアップ方法 [Vive]:http://negi-lab.blog.jp/VRTK_3_2_1_Setup
VRTK3.XはSteamVR プラグインV2には対応していない!
解決策:CS0246 SteamVR_PlayArea could not be found:https://github.com/ExtendRealityLtd/VRTK/issues/19...:
→VRTK で動作する古いバージョンの SteamVR プラグインをダウンロードする
最初にデフォルトのカメラを削除
ポインターが表示されない
- VRTK_Pointer
- VRTK_StraightPointerRenderer
- VRTK_ControllerEvents
- VRIKのアバター制御
アバターに「VRIKCalibrationBasic」を取り付ける?
VRM(VRoid)モデルを使う
UniVRM v0.99.0 Unity-2019.4 の最終版です。
→VRMモデルならデフォルトでも良い感じVRIKが動く
ニア→0.13ぐらい?
参考:VRMをランタイムで読み込んでVRIKをアタッチさせる:https://www.noshimemo.com/entry/2018/08/03/181149
参考:OSCを使ったデバイス間連携:https://note.com/toyoshimorioka/n/n9cd34e07f960
- OSCとはローカルのソケット通信でよく使われるプロトコルである
- ソケット通信は、インターネットを経由しない環境下での通信をさす
- OSCはUDP通信(パケットが届いたかどうかの確認はしない)のみで利用される
- OSCを行う場合、送り先のIPアドレスとポート番号を指定する必要がある
- localhost(自分のIPアドレスに通信するとき、「127.0.0.1」
参考:ZIG SIM × Processing|スマホをゲームコントローラにしよう!:https://zenn.dev/zawaworks/articles/2101be9cd7ba30
Androidの無料のOSC送信アプリ:OSC Controller
Androidの無料のOSC送信アプリ:OSC Controller
GitHub:VMCProtocolMonitor:https://github.com/gpsnmeajp/VMCProtocolMonitor
設定
設定
- VMCProtocolMonitor.exeを起動すると待受状態になります。
- setting.jsonにて、待受ポートを設定します。
- ListModeをtrueにするとListモードになります。ブラウザ(既定で http://127.0.0.1:8888/ )に一覧で表示します。
- ListModeをfalseにするとStreamモードです。コンソールに受信したそのまま表示します。(この場合HTTPサーバーは起動しません)
参考:Unity + OSC:https://www.ei.tohoku.ac.jp/xkozima/lab/uniTutoria...
GitHub:UnityOSC v1.2.:https://github.com/jorgegarcia/UnityOSC
OSCHandler.cs
- 通信データは,アドレスパターン(たとえば /kozPhone/uniVRtutorial2/message)とそれに続く引数の列(たとえば 320 150 "Game Over")からなる
- 引数としては,整数(int32)・実数(float)・文字列などが使える
- 「サーバ」と「クライアント」
- データを受信するUnity が「サーバ」となり,センサなどデータを送信するのが「クライアント」となる
GitHub:UnityOSC v1.2.:https://github.com/jorgegarcia/UnityOSC
- 現在、更新が行われていない(Unity Ver2020.3LTSで動作確認 2021.3LTSでは動かず)
- GitHubからダウンロードした圧縮ファイルの中から src フォルダを取り出し、Unity プロジェクトの Assets フォルダに入れる
OSCHandler.cs
public void Init() { CreateServer("uniVRtutorial2", 8001); }
参考:OSCって何?UnityビジュアルスクリプティングでOSC通信してみよう!
GitHub:OscJack:https://github.com/keijiro/OscJack
- Unity ビジュアルスクリプディング(VS)を使っている(旧Bolt)
- プロジェクト設定で一度初期化する必要がある?
GitHub:OscJack:https://github.com/keijiro/OscJack
参考:VMC Protocol プロトコル仕様概要:https://protocol.vmc.info/specification.html
Marionette - モーションを受信し、描画などを行います。(必須)
最終的に画面や映像・通信に成果を出すための存在です。
(例: EVMC4U, VMC4UE, その他モーション受信対応アプリケーション)
Performer - 主にモーションを処理し、全身ボーン情報(IK)と補助情報をMarionetteに送信します。(必須)
(例: バーチャルモーションキャプチャー, Waidayo, VSeeFace, MocapForAll, TDPTなど)
Assistant - 主にモーションの処理はせず、補助的な情報をPerformerに送信します。(オプション)
補助情報のみを送信する担当です。(一部ボーン、トラッカー姿勢、表情など)
(例: face2vmcモードのWaidayo, Sknuckle, Simple Motion Tracker, Uni-studioなど)
注意: Assistant(39540)→Marionette(39539) の直結は、大抵望み通りの結果を得られません。(送信される情報が不足していることが多いです)
必ずAssistant(39540)→(39540)Performer(39539)→Marionette(39539)と経由してください。
- OSCでは受信側がサーバー、送信側がクライアントと呼ぶが、VMC Protocolでは以下の用に定義している
Marionette - モーションを受信し、描画などを行います。(必須)
最終的に画面や映像・通信に成果を出すための存在です。
(例: EVMC4U, VMC4UE, その他モーション受信対応アプリケーション)
Performer - 主にモーションを処理し、全身ボーン情報(IK)と補助情報をMarionetteに送信します。(必須)
(例: バーチャルモーションキャプチャー, Waidayo, VSeeFace, MocapForAll, TDPTなど)
Assistant - 主にモーションの処理はせず、補助的な情報をPerformerに送信します。(オプション)
補助情報のみを送信する担当です。(一部ボーン、トラッカー姿勢、表情など)
(例: face2vmcモードのWaidayo, Sknuckle, Simple Motion Tracker, Uni-studioなど)
注意: Assistant(39540)→Marionette(39539) の直結は、大抵望み通りの結果を得られません。(送信される情報が不足していることが多いです)
必ずAssistant(39540)→(39540)Performer(39539)→Marionette(39539)と経由してください。
- スクリプトで以下の処理を行う
- 必要なGameObjectを作成する
- 作成GameObjectに対応するコンポーネントをアタッチする
- GameObjectの親子関係を設定する
- 上記のスクリプトと、GameObjectに取り付けたコンポーネント(スクリプト)をDLL化する
名前空間
using EVMC4U;
必要なGameObject一覧
- ExternalReceiver(OSCの総合管理?)
- CameraReceiver (VMC側のカメラ関係?)
- CommunicationValidator(構文エラーチェック関係?)
- DeviceReceiver(VRデバイス関連?)
- DirectionalLightReceiver(VMC側のライト設定?)
- InputReceiver(VMC側の入力関連?)
- WaistTracker(腰トラ用)
コンポーネント
uOscServer
- ExternalReceiver
- using uOSC;
- WaistTracker
課題
- ハードコーディングした箇所の修正
- uOscServer→port番号
- DeviceAttacher→ public string DeviceSerial = "human://WAIST";
- 要らない機能の削除
- DLL時の簡略化の為に、VRM機能の削除
public class DeviceAttacher: MonoBehaviour { public DeviceReceiver deviceReceiver; public string DeviceSerial = "human://WAIST"; void Start() { GameObject hoge = GameObject.Find("DeviceReceiver"); deviceReceiver = hoge.GetComponent<DeviceReceiver>(); }
DLL化テスト
- DLL作成時は「.NET3.5フレームワーク」を使う?
- 5.6.2f1のUnityEngine.DLLを使う?
- OnSceceLoadedでスクリプトを使うシーンを指定する必要がある
- バニラでテストする
using UnityEngine; using BepInEx; using UnityEngine.SceneManagement; namespace DLL_test_01 { [BepInPlugin("org.bepinex.plugins.HOGE001", "HOGE001", "0.0.1")] public class Class1 : BaseUnityPlugin { void Start() { SceneManager.sceneLoaded += OnSceceLoaded; } void OnSceceLoaded(Scene scene, LoadSceneMode mode) { GameObject Dlight = GameObject.Find("Directional Light"); Light CharaLight = Dlight.GetComponent<Light>(); CharaLight.color = Color.blue; Debug.Log("TEST_DLL!"); GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube); cube.transform.position = new Vector3(2, 0, 0); } } }
using UnityEngine; using HarmonyLib; using uOSC; namespace OSC_Send { [HarmonyPatch(typeof(HSceneProc))] [HarmonyPatch("MapSameObjectDisable")] // static class Patch_HScene_MapSameObjectDisable { // 元のMapSameObjectDisableが呼ばれる前に呼ばれるメソッド、戻り値がtrueだと元のメソッドが呼ばれ、falseだと呼ばれない static bool Prefix(HSceneProc __instance) { GameObject OSC_SEND = new GameObject(); OSC_SEND.name = "OSC_SEND"; OSC_SEND.AddComponent<uOscClient>(); return true; } } [HarmonyPatch(typeof(HSceneProc))] [HarmonyPatch("Update")] static class OSC_Send_Update { static void Prefix(HSceneProc __instance) { GameObject hoge01; uOscClient osc_s_01; hoge01 = GameObject.Find("OSC_SEND"); osc_s_01 = hoge01.GetComponent<uOscClient>(); osc_s_01.Send("/uOSC/sample", "hoge", 123.456f, 1); } } }
参考:ViveTracker3つ追加で全身トラッキング:https://hinzka.hatenablog.com/entry/2017/05/08/013...
参考:Unity+Steam VR開発メモ(HTC Vive、Valve Index対応):https://framesynthesis.jp/tech/unity/htcvive/
構成
ルームスケールと着席モードの切り替え
参考:Unity+Steam VR開発メモ(HTC Vive、Valve Index対応):https://framesynthesis.jp/tech/unity/htcvive/
構成
- SteamVR Plugin
- Final IK
- Vive Stereo Rendering Toolkit
ルームスケールと着席モードの切り替え
- デフォルトではルームスケールになっていて、変更するには Project ウィンドウで SteamVR_Resources/Resources/SteamVR_Settings を選択して、Tracking Space Origin を変更
- ルームスケールのモードでは、ルームセットアップで設定したプレイエリアの中央の地面に、[CameraRig] を配置する
- 着席モードでは、VR空間のプレイヤーの頭の位置に、[CameraRig] を配置する
- 新規プロジェクトを「3D」テンプレート(レガシーレンダーパイプライン)で作成する事
- 既存のプロジェクト・シーンを SteamVR 対応にするには、Main Camera を削除または無効化して、Project ビューの SteamVR/Prefabs/[CameraRig] プレハブをシーンの床の中央となる位置に配置する
- Unity でシーンを再生する際には Game ビューの「Maximize on Play」をオンにするとフレームレートが向上する場合がある
- Unityに自作トラッカーを認識させるのはかなり難しい?
- SteamVR pluginは古い情報しか出てこない、今はメジャーでないのか?(2017〜2018年頃の情報が多い)
- teamVR PluginはV1とV2では設定の仕方が結構違う
- Virtual Motion Tracker(VMT)を使う?
- EVMC4U - EasyVirtualMotionCaptureForUnity を使う?
- SteamVR Input Live Viewの使い方
- VRデバイスの設定は「SteamVR_Behaviour_Pose」だと思うが…
- 「Stem VR_Tracked Object」コンポーネントをアタッチすると何故か分からないが反応数する(しかしベースステーションも動いてしまう)
位置合わせをするには、ヘッドセットをかぶってコントローラーのメニューボタンでダッシュボードを表示し、で右下の「Reset Standing Position」をポイントしてトリガーを引きます。
また、InputTracking.Recenter メソッドでもリセットできますので、これをキーやボタン等で実行できるようにしておくと便利です。サンプルスクリプトです。
また、InputTracking.Recenter メソッドでもリセットできますので、これをキーやボタン等で実行できるようにしておくと便利です。サンプルスクリプトです。
using UnityEngine; using UnityEngine.XR; public class Recenterer : MonoBehaviour { void Update() { // Rキーで位置トラッキングをリセットする(Stationaryでしか動作しない) if (Input.GetKeyDown(KeyCode.R)) { InputTracking.Recenter(); } } }
OSCとは、電子楽器(特にシンセサイザー)やコンピュータなどの機器において音楽演奏データをネットワーク経由でリアルタイムに共有するための通信プロトコルである。
OSCの使用例
OSCプロトコル
参考:SteamVRへの連携:https://akiya-research-institute.github.io/MocapFo...
参考:VMTとARCoreでAndroidスマホをトラッカーにした話:https://nanasai.hatenablog.jp/entry/2020/07/12/224...
GitHub:uOSC:https://github.com/hecomi/uOSC
OSCの使用例
OSCプロトコル
方向 | ポート番号 |
App → Driver | 39570 |
Manager → Driver | 39570 |
Manager ← Driver | 39571 |
注意: 39571が使用されているとManagerは動作しません
参考:SteamVRへの連携:https://akiya-research-institute.github.io/MocapFo...
参考:VMTとARCoreでAndroidスマホをトラッカーにした話:https://nanasai.hatenablog.jp/entry/2020/07/12/224...
GitHub:uOSC:https://github.com/hecomi/uOSC
- VMT+uOSCで自作トラッカーでUnityと相互通信が出来る
参考:EVMC4UでUnityとバーチャルモーションキャプチャーをつなぐ方法:https://styly.cc/ja/tips/evmc4u_rapturn_virtualmot...
参考:【VRChat】VMC&EVMC4Uを使ってモーションエモートを作ってみた!!:https://keiki002.com/vr/vmc-emote/
入手先
最新版(GitHub) https://github.com/gpsnmeajp/EasyVirtualMotionCapt...
安定版(booth) https://booth.pm/ja/items/1801535
PIXIV FANBOX:https://akira.fanbox.cc/
「EVMC4U」の出来る事
・SteamVRとのやり取り
・ボタン入力
・MIDI入力
・VRMの諸々の処理
・トラッカーの扱いや補正
・10点トラッキングを含めた処理
・カメラ移動
・ボーンのあれこれ
導入
参考:【VRChat】VMC&EVMC4Uを使ってモーションエモートを作ってみた!!:https://keiki002.com/vr/vmc-emote/
- Viveトラッカーは定期的に位置・回転を送信してきますが、それをそのままアバターに当てはめてしまうとトラッキングのロストやブレが出たときにアバターにノイズのような動きが現れてしまう
- 体型やトラッカーの補正もしてくれる
- バーチャルモーションキャプチャーのトラッキングデータはOSCで送信することができ、それをUnityで受け取ることが出来る
- トラッキングデータを受信するツール「EVMC4U」
- VRM形式の3Dモデルを使った方が簡単?
- VMCで動かすVRMモデルと、Unityで動かすモデルはボーン情報が同じである必要がある
- Unity用のボーン構造なら大体いけるのではないか?
- OSCの送信機能は有料のみ(2022/12現在)
入手先
最新版(GitHub) https://github.com/gpsnmeajp/EasyVirtualMotionCapt...
安定版(booth) https://booth.pm/ja/items/1801535
PIXIV FANBOX:https://akira.fanbox.cc/
- Ver0.51
「EVMC4U」の出来る事
・SteamVRとのやり取り
・ボタン入力
・MIDI入力
・VRMの諸々の処理
・トラッカーの扱いや補正
・10点トラッキングを含めた処理
・カメラ移動
・ボーンのあれこれ
導入
- GitHubから「ExternalReceiverPack」をダウンロードし、Unityへインストールする
- VRMインポーターも一緒に入っている?
GitHub:uOSC:https://github.com/hecomi/uOSC
VMC→uOSCをDLL化したやつ→受信テキストを解析→位置と回転データをオブジェクトの反映させる?
参考:Marionette(モーション受信側アプリケーション)受信仕様:https://protocol.vmc.info/marionette-spec
VMCProtocolMonitor:https://github.com/gpsnmeajp/VMCProtocolMonitor
VMCProtocolの受信内容を表示するソフトウェア。 ごく単純に受信内容をコンソールに流すモードと、VMCProtocolに基づいてブラウザに一覧表示するモードがあります。
VMC→uOSCをDLL化したやつ→受信テキストを解析→位置と回転データをオブジェクトの反映させる?
- EVMC4UをDLL化する?VRMモデルは透明モデルを使う?
参考:Marionette(モーション受信側アプリケーション)受信仕様:https://protocol.vmc.info/marionette-spec
VMCProtocolMonitor:https://github.com/gpsnmeajp/VMCProtocolMonitor
VMCProtocolの受信内容を表示するソフトウェア。 ごく単純に受信内容をコンソールに流すモードと、VMCProtocolに基づいてブラウザに一覧表示するモードがあります。
参考;大人のおもちゃの制御を標準化するためのオープンソースプロジェクト「Buttplug」:https://gigazine.net/news/20200507-buttplug/
公式:https://buttplug.io/
サポートしているグッズ一覧(海外製):https://iostindex.com/?filter0Availability=Availab...
デスクトップGUI版:Intiface Central:https://intiface.com/central/
→GitHub:https://github.com/intiface/intiface-central
Android版:Intiface Central:https://play.google.com/store/apps/details?id=com....
バットプラグ プロジェクトのリスト(GitHub):https://github.com/buttplugio/awesome-buttplug
公式:https://buttplug.io/
サポートしているグッズ一覧(海外製):https://iostindex.com/?filter0Availability=Availab...
デスクトップGUI版:Intiface Central:https://intiface.com/central/
→GitHub:https://github.com/intiface/intiface-central
Android版:Intiface Central:https://play.google.com/store/apps/details?id=com....
バットプラグ プロジェクトのリスト(GitHub):https://github.com/buttplugio/awesome-buttplug
BepInEx LoveMachine:GitHub:https://github.com/Sauceke/LoveMachine
→マニュアル:https://github.com/Sauceke/LoveMachine/blob/mastur...
→マニュアル:https://github.com/Sauceke/LoveMachine/blob/mastur...
Buttplug と Intiface に関するよくある質問:DIY ハードウェア:https://how.do.i.get.buttplug.in/buttplug/diy-hard...
バットプラグ・ユニティ(GitHub):https://github.com/buttplugio/buttplug-unity
バットプラグ OSC(GitHub):https://github.com/AlexanderPavlenko/buttplug-osc
バットプラグ開発ガイド:https://stpihkal.docs.buttplug.io/
バットプラグ API(GitHub):https://github.com/buttplugio/buttplug
→TCode(Toy Control Protocol)
バットプラグ・ユニティ(GitHub):https://github.com/buttplugio/buttplug-unity
バットプラグ OSC(GitHub):https://github.com/AlexanderPavlenko/buttplug-osc
バットプラグ開発ガイド:https://stpihkal.docs.buttplug.io/
バットプラグ API(GitHub):https://github.com/buttplugio/buttplug
→TCode(Toy Control Protocol)
コメントをかく