# Buttplug連携

## Buttplugとは？

Buttplugは大人の玩具を制御するためのオープンソースプロジェクトです。様々な玩具が対応しています。対応機器の一覧はhttps://iostindex.com/を参照願います。他に特別な理由が無い限り、このButtplug連携を使う事を推奨致します。

## 2つの接続方式

Buttplugを使うには主に2種類の方法があります。使っているライブラリの関係で、FaPlayerCS_FanはWebSocket連携のみサポートしています。

1. WebSocket連携
2. 内蔵(Embedded)連携(※現在使用不可)

2025年02月03日時点では、WebSocket連携が推奨されています。また、Buttplugの最新版のライブラリではWebSocket連携のみサポートされています
Intifaceは、そのWebSocket連携でButtplugを動かすために必要なサーバとして広く使われているものです。

## 連携手順 Type1 - Intiface連携(推奨)

前提として、まずIntifaceをインストールして起動しておく必要があります。Intifaceのインストール方法、起動方法についてはリンク先のサイトを参照願います。上記はIntiface起動状態の例です。ここではデフォルト設定としているため、ポート番号は12345です。

### 手順

1. Buttplug連携(推奨)をクリックする
2. 上図のフォームが表示されるので、ポート番号が正しいのを確認し、スキャン開始をクリックする
   - デフォルト設定はポート12345です。何らかの事情でポート番号を変更している場合は、変更後のポート番号をご指定願います。
3. しばらく待つと対応デバイスが列挙されるので、使いたいデバイスを選択して[Buttplug xにアサイン]のボタンを押下

## 連携手順 Type2 - 単独連携(現在使用不可)

現在使用不可のため、こちらの手順は省略します

## その他解説

### 「見つかった製品」の表示の見方

見つかった製品は「[buttplug上のデバイス名](Raw Message Allowed)#[サポートしている動作タイプ]#[Intiface Central上の管理番号(0始まり)]」のフォーマットで表示されます。上記の場合は以下を示します。

- Adult Festa Rocketが見つかった
  - これは一般にはRocket +1Dという商品名で知られています。
- Adult Festa RocketはVibratable(振動可能)である
  - ローターや亀頭マッサージャなどが振動可能な機器です。振動することによって刺激を与えます。また、いくつかの電動オナホールはこれに該当します
- Adult Festa RocketはIntiface Central上では最初の(Index0の)機器である(※管理番号ですが、複数同じ製品を接続した場合はそれぞれ異なる管理番号が振られるようになっています)
- Vorze A10 Cyclone SAが見つかった
  - これは一般にはA10サイクロンSAという商品名で知られています。中が回転するタイプの電動オナホールです
- Vorze A10 Cyclone SAはRotatable(回転可能)である
  - 回転することによって刺激を与えるタイプの大人の玩具で、このタイプの代表的な製品としてはA10サイクロンSAやUFO TWなどが存在します
- Vorze Pistonが見つかった
  - これはA10ピストンSAという商品名で知られています。中が前後に動くタイプの電動オナホールです。
- Vorze PistonはLinearble(線形移動可能)である
  - 上下(Vorze Pistonの場合は「前後」と表現する方が適切ですが)に移動することによって刺激を与えるタイプの大人の玩具です。人間の動きに一番近く、動画の製作者側にとっては連動させるのに一番楽な玩具です
- いずれも機器の名称の後ろに「(Raw Message Allowed)」が表示されていないので、以下機能が実行できない

- アプリ終了時に玩具の電源を切る(Lovenseのみ有効)
- 空気圧調整機能(LovenseMax2のみ)

Intiface連携の場合、かつては「Settings」⇒「Advanced/Experimental Settings」より「Allow Raw Messages」をオンにすると、(Raw Messages Allowed)となるようになっていました(※途中のバージョンから廃止されています)。

ごく少数の機器は複数タイプの移動をサポートしておりますが、FaPlayerCS_Fanを含むほとんどのプレーヤーでは1つの動きしかサポートしておりません(将来的には改善予定)。

### [補足]アサイン後のアイテムの見方(LovenseMax2の場合)

機器はアサインすると下図のように表示されます。この場合、以下のことを示しています。

- [PWOFF]と先頭に表示されているため、アプリを落とした時にLovenseMax2の電源を同時に落とすことが可能である。但し、青く囲っている「アプリ終了時電源オフ(Lovenseのみ)」のチェックボックスにチェックが入っていないため、電源オフには出来ない
  - 電源オフにしたい場合は、チェックボックスにチェックを入れて下さい(先述の「(Raw Messages Allowed)」が付いていない場合、電源オフに出来ないためこのチェックボックス自体の操作が出来ません)
- 機器はLovense Maxである(製品名としてはLovense Max2なのですが、Buttplug上はこのように表示されます)
- バッテリー残量は88%である(Buttplugでバッテリー残量が取得可能なもののみ表示)

### テストとは？

動かしたいデバイスの左隣の「テスト」ボタンを押すと、デバイスがランダムに動きます。動きの変更周期はテストサイクルで変更できます。LovenseMax2の場合、空気圧もランダムで動くか確認してください(ランダムで動いていれば、LovenseMax2用のタイムシートが動作可能)

### 機能無効化とは？

デバイスの中には複数の動作方式に対応しているものがありますが、時には一部機能を使いたくない時があります。そのような時にこのボタンを使って下さい。特定の動作形式をON/OFF出来ます。(上級者向けの機能となります。本来その機器に無い機能もONにすることが可能ですが、ほぼ確実にアプリが不具合を起こして強制終了します。既存の動き(主に吸引など)を無効化するための機能として考えて下さい)

### サイクルとは？

サイクルはランダムに動かす周期の長さです。指定はミリ秒単位なので、例えば500と指定すると500ミリ秒(0.5秒)に1回ランダムで動きます。

### 最奥位置とは？

Linearbleに分類される玩具の一番奥の位置です。0か一番下で、100が一番上です。ペニスの大きさによっては100の位置だとホールが届かないことがあります。必要に応じて適宜修正して下さい。この最奥位置は全Linearble玩具に適用されます。

特定の玩具の最奥位置のみ変更したい場合は、ここではなく「設定」⇒「玩具動作設定」から変更して下さい。

### 上下逆さに動かす(Linearのみ)とは？

こちらにチェックが入っていると、機器が上下逆さに動きます。例えば、funscriptで「80」が指定されている場面では「100-80(つまり、20)」の位置に機器が動くようになります。「100」の場合は「100-100(つまり、0)」です。The Handyなどの機器を上下逆さに固定する際にチェックを入れて下さい。正しく設定出来ているかは「腰を下ろしてもらう」ボタンで確認可能です。下に機器が下がってくれれば正しく設定されています。