# 設定

設定から、アプリの様々な設定を変更することが出来ます

## 設定⇒設定フォームを開く

設定フォームは基本設定の変更が可能です。変更後は「保存して閉じる」をクリックして下さい(誤って変更してしまって保存したくない場合は「キャンセル」をクリックして下さい)。

動画再生時に便利フォームを表示する(倍速再生、譜面表示etc)
  動画再生時に「便利フォーム」を表示させるか否かを選べます。便利フォームでは動画の再生速度を変えたり、タイムシートを表示させたりすることが出来ます
譜面表示機能を使う
  上記便利フォームの表示時に譜面表示をするか否かを選べます。表示させると若干CPUの負荷が上昇します
リングカーソルを動かす(要CPUパワー)
  チェックを入れると、便利フォーム左のペニスの位置に線形(Linearble)玩具の現在位置を大まかに示すリングカーソルが表示されます。LovenseCalorプリミティブ連携の場合のみ、あなたのペニスの現在の位置が表示されます
譜面表示形式
  譜面の表示形式を選択できます。赤丸…常に赤い丸で表示、詳細表示…線形(Linearble)玩具の場合、移動速度が表示されるようになります(Vorzeプリミティブ連携、FleshlightLaunchプリミティブ連携専用)。回転系の場合、回転方向が表示されます
譜面表示位置
  譜面の表示位置を選択できます。常に中央…常に中央に譜面が表示されます。ホールの位置を再現…回転系・振動系の場合は強さを、線形の場合はホールの推定移動位置を表示します
ピストンSAの強さ(プリミティブ連携時のみ有効)
  VorzeピストンSAの最大移動速度を30にするか、制限しない(他の玩具と同様100にする)かを選べます。プリミティブ連携の場合のみ有効です(Buttplug連携の場合は、Buttplugの実装に任せる形を取る)
同じ強さでの連続振動時の扱い
  振動系玩具で同じ強さが連続で来た場合の動作を設定できます。調整なし…調整しません。タイムシートの通りに動きます。一瞬動きを止める…一瞬だけ動きを止めます。強さを少し変える…強さをほんの少し(+1～9)だけ変更します。これら変更処理は読み込み後にメモリ上で行われ、便利フォーム上には変更後の値が表示されます。後述の反応閾値の対象ともなるため、反応閾値を設定している場合は、タイムシートを読み込むたびに動く箇所と動かない箇所が変化する可能性があります。
デバッグログを出力する
  デバッグログを出力します。デバッグログの出力形式は今後のリリースで変わる可能性があります
連動玩具動作統計を出力する
  連動玩具の動作統計を出力します。出力形式は今後のリリースで変わる可能性があります

## 設定⇒ショートカットキー設定

様々な機能にショートカットキーを設定可能です。ショートカットキーの重複のチェックは行っていません。設定したいショートカットのボタンをクリックし、画面の指示に従ってボタンを押して下さい。Shift・Alt・Ctrlキーとの組み合わせも使えます。

## 各種ショートカットの機能説明

腰下ろし
  線形(Linearble)玩具の位置を0に下げます。動画が停止している時のみ有効です。鑑賞中にペニスがすっぽ抜けた際に使って下さい
Finish.lst読み込み
  finish.lstを読み込みます。発射したくなったら呼びましょう
Max Up/Down
  最大強度(Linear系の場合、最奥の位置)の値を上下させられます。こんな時に使いましょう
  - 〇動きが激し過ぎてカウントダウン前に発射してしまいそう
  - ペニスの位置が低い
Min Up/Down
  最小強度(Linear系の場合、最下の位置)の値を上下させられます。こんな時に使いましょう
  - 玩具の関係上、最小の値の信号だとまともに玩具が動かないので退屈である
  - もう出したい
リピート再生始点/終点セット
  リピート再生の始点をセットします。始点が既にセットされている場合は、終点をセットします。終点のセットと同時にリピートの始点まで動画と連動が巻き戻ります
リピート解除
  リピート再生を解除します

## 設定⇒玩具動作設定

玩具の動作位置・速度の設定変更が可能です。ここでの設定は玩具全部に適用されます。一部玩具のみ変えたい場合は、後述の「個別設定フォームを開く」をクリックして下さい。

Linear系デバイス
  The Handy、A10ピストンなどの上下に動くデバイスの動作範囲の下限(Min)と上限(Max)を設定します。似たような動きをするデバイスですが、Lovense SolaceなどのOscillate系デバイスはこちらではありません
Rotate系デバイス
  A10サイクロン、ISynchro(シンクロ)などの回転するデバイスの動作速度の最遅(Min)と最速(Max)を設定します。Minを0より高い値にした場合でも、タイムシートで0と指定されているものについては例外的に0として扱われます(そうしないと機器の動きが止まらないため)
Vibrate系デバイス(Oscillate、Scalar-Rotate系も含む)
  Rocket +1D、Lovense社各種デバイスなどの振動するデバイスの動作速度の最遅(Min)と最速(Max)を設定します。Minを0より高い値にした場合でも、タイムシートで0と指定されているものについては例外的に0として扱われます(そうしないと機器の動きが止まらないため)
  また、Lovense Solaceのような細かい位置を指定できない上下に動くデバイス(Oscillate)やJoyHub Marinerのように片側の回転しか制御出来ないデバイス(Scalar-Rotate)などもこちらに該当します。

### 設定⇒玩具動作設定⇒個別設定フォーム

玩具の個別設定が可能です。設定変更したい機器を選択し、値を変更して下さい。その機器に対応している設定のみ変更可能です(画面の例の場合、LovenseDiamoは振動のみ対応しているため、Vibrateのみ調整可能となっている。(画面を開く前に変更したい玩具を接続して下さい)。

また、吸引(Constrict)の強さについては変更不可となっております。

ここではショートカットキーの設定も可能です。こんな時に使うと便利です。

- 胸と股間にそれぞれ機器を取り付けている。胸の機器は常時タイムシートの通りに動かして問題無いが、すぐにイッてしまうので股間は「その時」が来るまで抑えめにしたい(玩具の動きを完全に抑えたい場合、「Stop/Start」が便利です。ボタンを押すと玩具の動きが止まり、再び押すと連動を再開できます
- 機器の動きにクセがあり、低過ぎる値だと全く動かないし高過ぎる値だと動きが激し過ぎる

現在接続していない機器の設定変更は行えませんが、「初期設定にする(全部の玩具)」ボタンを押すと現在繋いでいない機器含め全部の機器の個別設定をデフォルト値に戻すことが可能です。ショートカットキーもクリアされるので注意して下さい。

## Min/Maxと速度計算について

※例えば、Min50 Max80に設定すると…
CSV上の速度が「1」 --- 50+((80-50)*0.01)=実速度 50(小数点以下切り捨て)
同「50」 --- 50+((80-50)*0.50) = 実速度 65
同「100」 --- 50+((80-50)*1.00) = 実速度 80
となります。(Linearの場合、実速度ではなく、実高度)
※但しCSV上の速度が0の場合は特別扱いで実強度が0になります(Linearの場合は特別扱い無し)。

## 各種機能説明(個別のみに存在するもの)

[ショートカットキー] Stop/Start
  玩具の動きを一時的に完全停止・再開する時に使うショートカットキーを設定します。特定の機器をフィニッシュの時にだけ使いたいなどといった時に活用すると良いでしょう。
最小間隔
  FaPlayerCS_Fanでは、タイムシートの命令の間隔があまりにも詰まっている際に玩具の動作が不自然になるのを避けるため、許容される動作の最小間隔を設定しています。初期設定は100msec(100ミリ秒です)。これより狭い間隔で命令が飛んできた際は、玩具の誤動作を避けるために命令をドロップします。
  ※一部の玩具は100msec以下の間隔でも動くため、世に出回っているタイムシートの中には非常に短い値に設定しているものがある
  (逆に、100msecだとあまりにも早過ぎて機器に誤動作が生じる場合は、これよりも大きな値を設定すると良い。例えばFleshlight Launchは250msecくらいの間隔でないと機器が反応しない)
Offset(msec)
  これが0以外の値だと、タイムシートと実際に動くタイミングとの間にズレが生じます。正の値だと機器がタイムシートより遅れて動き、負の値だと機器がタイムシートより早めに動きます
反応閾値
  これよりも低い値の変化は無視されます。高く設定するとこれよりも低い値は無視されます。吸引系の機器を使っている時以外は基本的に初期値(0=無効)のまま変更する必要はありません。

## 反応閾値について

### 例

反応閾値:20
タイムシートの直前の値:50 の場合
タイムシートの次の値が65→15しか変化していないので無視される
タイムシートの次の値が40→10しか変化していないので無視される
タイムシートの次の値が70→20変化しているので無視されずにコマンドが実行される。また、直前の値が50から70に変更されるので、次は50以下か90以上のみ反応するようになる。

ただし、設定値にかかわらずタイムシート上で「0」となっている箇所は重要な停止信号なので必ず実行(=停止)されます。そのため、停止を多用している箇所では想定通りに動かない可能性があります。

### 反応閾値が存在する理由

反応閾値は吸引可能な機器向けに作られています。機器の中には回転や振動を行っている間は吸引の動きが完全に止まってしまうものがあります。一方、大抵のタイムシートは「丁寧に作られている」ので非常に短い間隔で小さく値に変化を付けて刺激を行っています。そのため、往々にしてこうしたタイムシートを読み込んだ際には回転だけ・振動だけが実行されてしまい、吸引がおろそかになってしまうことがあります。そうした事態を避けるためにひとまず導入したのがこの機能となります。