## SlimeVR Server設定 此篇文章為[自製 SlimeVR Tracker](https://hackmd.io/@bluenk/HJYUijwan)的接續文章。 :::info :information_source: **在開始前請先將 Tracker 打開** 由於 IMU 會受溫度影響,如果沒有做溫度校正,請在開始做以下步驟前請先打開 Tracker 至少15分鐘,確保溫度上升到一個穩定點。 ::: 稍早在測時零件時你應該就已經有安裝 SlimeVR Server 了,如果還沒有的話請到 [SlimeVR/SlimeVR-Server](https://github.com/SlimeVR/SlimeVR-Server) 下載。 打開程式後首先會看到這個歡迎畫面,沒看到這個畫面請按側邊欄的`快速設定` ![圖片](https://hackmd.io/_uploads/BJvRTSWDp.png) 按下開始設定後會要求你輸入Wifi資訊,由於我們在刷韌體時就已經將Wifi設定好了所以請按跳過`Wifi設定` ![圖片](https://hackmd.io/_uploads/Byou0BZwp.png) 之後會寫一些給官方 Tracker 使用者的準備事項,對我們 DIY 的沒有意義所以大概看看就好。 ### 分配追蹤器 ![圖片](https://hackmd.io/_uploads/SkvtW6yua.png) 這邊左右可能會有點混亂,圖中所說的左邊就是你的左邊,把圖中的人(?)當作鏡子中的自己 5+3 Set的建議配戴位置為: * 胸部 (前/後) * 臀部* (前/後) * 左、右大腿 (前/左右側, 靠近膝蓋) * 左、右腳踝 (前/左右側, 靠近腳踝) * 左、右腳* *為外接Tracker 其他配置的佩帶位置請參考[官方Docs](https://docs.slimevr.dev/server/putting-on-trackers.html#recommended-tracker-placement) ### 配戴校正 配置完後按下準備好了會詢問你要怎麼配戴校正,請選`手動配戴校正` ![圖片](https://hackmd.io/_uploads/rJMXB8bvT.png) 分別將每個Tracker設定好後按下`下一步` ### 重置教學 請不要跳過這個教學,因為你**百分之百會用到**! ![圖片](https://hackmd.io/_uploads/HkLcBIZvT.png) ### 軀幹比例校正 接這是**最重要**的步驟 這會需要用到你的 HMD,在開始前請先準備好並開啟 SteamVR 並==確定地板高度是正確==的。 > Quest 設定中可以校正地板高度: 設定 > 實體遊戲區 > 邊界 > 設定地板高度 接著站到你的遊戲區域中央,重置中心點。 :::warning :warning: **SteamVR 啟動時多了一個黑視窗 ?** 啟動時會自動打開一個終端機 (SlimeVR-Feeder-App) 視窗,那是 SlimeVR 與 SteamVR 連結的程式,用於傳送按鍵綁定指令給 server。 若沒有要使用按鍵綁定,可以在 SteamVR 附加元件設定中關閉。 ::: 首先要你填入真實身高,這邊選自動判定。如果判定的結果跟你實際身高差很多代表地板高度有問題。 > `v0.13.x` 後不再設定身高而是使用 HMD 高度,測量結果會比實際身高低10公分左右。 接著會請你錄製一連串的動作,過程中請不要移動腳部,SlimeVR 會運用這些資料來判斷你的軀幹比例與長度 雙腳與地面垂直,腳尖向正前方指不要內外八,蹲下時膝蓋也是一樣向正前方指 ![腳部重點](https://hackmd.io/_uploads/S1pmShGv6.jpg =24%x)![AutoBone_Visual_Reference](https://hackmd.io/_uploads/ry1im2MPa.png =76%x) <iframe width="100%" height="400" src="https://www.youtube.com/embed/SYqfQdVseF4?si=w-cA9n5MgZp6MBOR&amp;start=279" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe> 錄製完成後會計算你的骨架比例,確認數值沒問題就完成設定了! --- ### 介面說明 ![SlimeVR介面](https://hackmd.io/_uploads/H1--4TJOp.png) *設定內開啟開發者模式能夠看到更多資料(旋轉、溫度等)* 1. **左右偏擺重置** (快速重置/Yaw重置): 將所有 Tracker 的 Yaw 軸重置成與 HMD 面對一樣的方向,準確度比完整重置差,使用時將身體部位面向正前方。 > 使用時機: > - 不方便站立時 > - 不要求準確度時可快速重置 2. **完整重置**: 將所有 Tracker 的 Yaw/Pitch/Roll 歸零,使用時須站直身體。 > 使用時機: > - 使用配戴重置前 > - 要求準確度時 > - 小幅度調整 Tracker 配戴位置後 3. **配戴重置**: 複寫 Tracker 的配戴位置,使用前請先做一次完整重置,使用時做出滑雪姿勢。 > 使用時機: > - 大幅調整 Tracker 配戴位置後 > - 完整重置後蹲下、坐下姿勢看起來不對 4. **清除配戴重置**: 清除配戴重置的複寫,使用 Tracker 設定的配戴位置。 5. **暫停追蹤**: 固定當前姿勢 > 使用時機: AFK、V睡 6. **清除偏移補償數據**: 需開啟偏移補償,清除偏移補償。 ### 日常使用步驟 ```flow st=>start: 開始 e=>end: 結束 isTCAL=>condition: 有做溫度校正? preHeat=>operation: 預熱Tracker fullReset=>operation: 完整重置 mountReset=>operation: 配戴重置 enterCaliFBT=>operation: 按下 Calibrate FBT comCaliFBT=>operation: 確認 Calibrate FBT testTracking=>condition: 測試追蹤 fixFloor=>operation: 校正地面高度 st->isTCAL preHeat->fixFloor->enterCaliFBT->fullReset->comCaliFBT->mountReset->e isTCAL(yes@有)->fixFloor isTCAL(no@沒有)->preHeat testTracking(yes@沒問題)->e testTracking(no@怪怪的)->fullReset ``` 1. 等待每個Tracker預熱,依設定內的配戴位置戴上 2. **VRChat 校正FBT**: 面向前站直身體,雙腳與地面垂直腳尖指向正前方,打開 VRChat 快速選單按下 `Calibrate FBT`。 從這個步驟開始不要移動雙腳,後面的步驟會用到。 3. **完整重置** ( 敲左大腿Tracker 3下 or 按下綁定的按鍵 ): 完整重置後你會看到遊戲中的Tracker排列變的非常整齊,這時候對準 Avatar 雙手按下板機。 這步驟基本上就是把 SlimeVR 的 IK 跟 VRChat 的 IK 綁在一起,所以基本上只需要做這一次。 這些虛擬 Tracker 的位置是綁在骨骼上的,所以正常的話你會看到小白點(Tracker)埋在身體裡 *注: 建議把 VRChat 的 Tracker model 改成 `axis`,有偏移才看的出來* 4. **配戴重置** ( 敲右大腿Tracker 3下 or 按下綁定的按鍵 ): 做出滑雪姿勢(半蹲膝蓋向正前方指,手肘朝後微曲前臂向前)後敲右大腿Tracker,保持姿勢直到重置音效結束。 ![滑雪姿勢](https://hackmd.io/_uploads/ryOQlW3E1l.png) ### 額外設定 #### SlimeVR Server * **一般設定>SteamVR>SteamVR追蹤器** 依配置而有所不同,5+3請開胸、腰、膝蓋與腳部,其他請參考[Docs](https://docs.slimevr.dev/server/configuring-trackers.html#steamvr-trackers-to-enable-depending-on-your-set) ![圖片](https://hackmd.io/_uploads/HkUGZvbDa.png) * **一般設定>追蹤機制>濾波** 預測型預設的 20% 還是會有一點延遲感,可以調高一點,不需要太擔心抖動問題,反正會被 VRChat 的 IK 同步平滑掉,從別人的視角是看不出來的。 > 建議設定: `預測型`,強度約 `70%` ![image](https://hackmd.io/_uploads/BJiaMQsbyx.png) * **一般設定>追蹤機制>偏移補償** 由於 IMU 的特性,Yaw 偏移是一定會有的。這時候我們就能用偏移補償來大幅減少需要重置的次數,偏移補償會利用重置時收集到的偏移數據做反向旋轉,因此需要重置數次後才會開始發揮效果。 僅適合用於低階 IMU(MPU6050、joycon...),對高階 IMU 通常只會造成反效果。 > 建議設定(有磁力計): `關閉` ![圖片](https://hackmd.io/_uploads/S17vxD-wa.png) #### VRChat * **主選單 > 設定 > Tracking and IK > User Real Height** 打開下方的 `Metric Units Adjustment` 切換為公制單位,並填入你的真實身高。 * **快速選單 > 設定 > Tracking and IK > Lock Types** 選擇要將 IK 固定在哪個部位。 * `Lock Hip` 臀部追蹤不準確時,坐下/彎腰視點會偏移。 * `Lock Head` 臀部位置移動會比較明顯,但頭部上下看時角色身體會跟著移動。 * `Lock Both` 沒有上面兩個選項的缺點,但有些角色會變駝背,跳躍時上半身會像果凍一樣上下抖動。 > 建議設定: `Lock Hip`/`Lock Head` 都行,不要 `Lock Both` 就好。 * **主選單 > 設定 > Tracking and IK > Avatar Measurement** > 建議設定: > * 一般大小的 Avatar: `Height` > * chibi Avatar ( mamefriends...等 ): `Arm span` + 調整 `arm ratio` (調到T-Pose時手臂能伸直) #### SteamVR 控制器綁定 再也不用彎下腰敲 Tracker! * **SteamVR 介面 > 設定 > 控制器 > 開啟綁定介面 > 選擇 SlimeVR Feeder App** * `request_calibration` 為完整重置 * `fast_calibration` 為快速重置