SDK 接口說明

目前DLL整體對外暴露8個端口,各個SDK是對DLL接口的封裝,可自行查看 cpp sdk中的 include/rebocap_ws_sdk/rebocap_ws_sdk.h 頭文件查看。

SDK 輸出的數值類型為四元數,可以支持多種坐標空間輸出【默認的 opengl右手坐標系、blender、unity、ue】,輸出的位移單位是 米。

其中python暫未接入 rebocap_ws_sdk_calculate_foot_vertex 接口

接口說明

  • rebocap_ws_sdk_new

      創建 sdk 實例,傳入參數包括
      1. 坐標系空間,具體支持空間可在各個sdk中找到,這裡不贅述。
      2. 是否使用全局坐標系,傳入0則使用局部坐標系,局部坐標系是相對於父骨骼的坐標系,所有的旋轉均是相對於 tpose 的旋轉,如對旋轉不清楚,可參考 blender、unity、以及ue的源碼,其中unity的旋轉相對更容易理解。
    
      返回值:
      返回 sdk 對象實例指針
    
  • rebocap_ws_sdk_release

    釋放 sdk 實例對象,傳輸參數為 實例指針
    
  • rebocap_ws_sdk_open
    開啟websocket client,連接到 websocket 端口,具體用法和返回值說明請查看 sdk 代碼
    
  • rebocap_ws_sdk_close
    關閉websocket client,並斷開連接,具體用法見sdk
    
  • rebocap_ws_sdk_set_pose_msg_callback
    註冊消息回調,這裡只有用戶進行動作校準以後,websocket才會有數據吐出,幀率為 60幀每秒,具體用法見 sdk 代碼
    關節順序請參考24個骨骼名稱
    
  • rebocap_ws_sdk_set_exception_close_callback
    websocket 異常關閉回調註冊,具體用法見 sdk 代碼
    
  • rebocap_ws_sdk_get_last_msg
    除了回調的形式,這裡也可以直接獲取最後一條動作消息,數據格式和回調保持一致。
    
  • rebocap_ws_sdk_calculate_foot_vertex

      這個接口主要用於註冊腳底的接觸點以及身體骨架到rebocap中
      需要傳入身體骨架數據(各個關節點的位置,具體順序和smpl順序保持一致)
      如果需要dll自動計算接觸點位置,那麼需要傳入腳底mesh,也可以自行傳入腳底接觸點位置信息(每隻腳前後3個點位,共計12個點位),那麼dll將不會自動計算而是採用傳入數值
      注意,這裡的單位是米,坐標是全局坐標,另外需要採用 opengl 坐標系,如果不是需要傳入轉換參數,具體用法請參考 unity demo 以及 ue 插件的使用
    
      這個接口相對比較複雜,請具備足夠開發能力或者能夠完全理解 unity demo中的代碼或者能夠完全理解 UE 插件代碼用戶使用,python版本不暴露這個接口,如有需要,可以自行從 cpp sdk 中或者原始 dll 中,封裝 python 接口即可。
    
      大部分用戶,開發插件可以自行上傳 vrm 模型到 rebocap 客戶端中,效果一樣。對於腳底接觸點位的理解,可以參考 blender 接入中,導出骨架的說明。
    

24個骨骼名稱

對應 mixamo 和 smpl 規範名稱如下,共計24個骨骼,參考如下,比如第0號下標骨骼即為屁股,也就是對應腰部節點。 其中,左右腳趾、左右手指對應的關節由於沒有對應跟蹤器節點,因此輸出 local 旋轉為0,如果採用 global 旋轉,那麼輸出的旋轉值和父節點保持一致。

  • mixamo對應的名稱
    joints_mixamo = [
          "mixamorig:Hips",
          "mixamorig:LeftUpLeg",
          "mixamorig:RightUpLeg",
          "mixamorig:Spine",
          "mixamorig:LeftLeg",
          "mixamorig:RightLeg",
          "mixamorig:Spine1",
          "mixamorig:LeftFoot",
          "mixamorig:RightFoot",
          "mixamorig:Spine2",
          "mixamorig:LeftToeBase",
          "mixamorig:RightToeBase",
          "mixamorig:Neck",
          "mixamorig:LeftShoulder",
          "mixamorig:RightShoulder",
          "mixamorig:Head",
          "mixamorig:LeftArm",
          "mixamorig:RightArm",
          "mixamorig:LeftForeArm",
          "mixamorig:RightForeArm",
          "mixamorig:LeftHand",
          "mixamorig:RightHand",
          "mixamorig:LeftHandIndex1",
          "mixamorig:RightHandIndex1"
    ]
    
  • smpl 規範對應的名稱為
    joints_smpl = [
      "Pelvis",
      "L_Hip",
      "R_Hip",
      "Spine1",
      "L_Knee",
      "R_Knee",
      "Spine2",
      "L_Ankle",
      "R_Ankle",
      "Spine3",
      "L_Foot",
      "R_Foot",
      "Neck",
      "L_Collar",
      "R_Collar",
      "Head",
      "L_Shoulder",
      "R_Shoulder",
      "L_Elbow",
      "R_Elbow",
      "L_Wrist",
      "R_Wrist",
      "L_Hand",
      "R_Hand"
    ]
    

SDK 下載

python SDK

適用於 python3.6~python3.12

download python sdk v2

python sdk v2 更新內容:

修復get_last_msg接口造成的死鎖問題 增加所有python版本

C# SDK

具體請查看下載文件中的 README.md

用法上,可以參考 Unity 項目

download csharp sdk v2

c# sdk v2 更新內容:

修復get_last_msg接口造成的死鎖問題

CPP SDK

具體請查看下載文件中的 README.md

用法上,可以參考 UE 項目

download cpp sdk v3

c++ sdk v3 更新內容:

修復get_last_msg接口造成的死鎖問題

Copyright © rebocap official 2024 all right reserved,powered by GitbookLast Edit Time: 2024-12-04 15:45:51

results matching ""

    No results matching ""