tencent cloud

フィードバック

最終更新日:2023-02-27 14:27:24

    機能説明

    カメラのopenGLテクスチャを入力すると、体の3Dデータがリアルタイムで出力されます。これらの3Dデータを利用して、Unityに渡してモデルを動かすといった、さらに進んだ開発を行うことができます。

    Android統合ガイド

    初めにTencent Effect SDKへの統合をする必要があります。具体的な内容は、Tencent Effectの独立した統合をご参照ください。

    インターフェースの呼び出し

    1. 機能スイッチをオンにします(XmagicApi.java)。
    public void setFeatureEnableDisable(String featureName, boolean enable);
    featureNameにXmagicConstant.FeatureName.BODY_3D_POINTを入力します。
    2. データコールバックの設定(XmagicApi.java)。
    void setYTDataListener(XmagicApi.XmagicYTDataListener ytDataListener)
    
    public interface XmagicYTDataListener {
    void onYTDataUpdate(String data)
    }
    onYTDataUpdateはJSON構造のstringデータを返します。例:
    「face_info」は、顔に関するデータです。体の3Dデータとは関係ありませんので、無視することができます。
    「body_3d_info」の各フィールドの説明については、下記のとおりです

    体の特徴点位置および特徴点位置データの説明

    標準SMPL特徴点位置の定義
    
    標準SMPLX手の骨格の特徴点位置の定義
    
    
    SDKが出力するJSONデータの例は、次のとおりです。
    
    body_3d_infoの各フィールドの説明については、下記のとおりです。
    imageWidth、imageHeight:SDKの画像の幅と高さを入力します
    items:配列。現時点では1つの要素のみです
    index:位置の保持。現時点では無視することができます
    pose:
    (1) [0,2]位置。人の位置はカメラ中心で、人の骨格の3D位置はxyzです
    (2)[3,12]位置。人のタイプは10float数です。標準SMPLの10パッケージの異なるmeshをベースとした、人のタイプに対する総合的な評価を得ることができます
    (3)[13]位置。Focal_lengthで、固定値は5000です
    (4)[14,29]位置。OpenGL投影マトリックス、focal_lengthに基づいて取得する3D空間で、物体の投影マトリックスをレンダリングします。4X4の投影マトリックスのアルゴリズム内部における計算方法は、次のとおりです。
    matrix={
    2 * focal_length / img_wid, 0, 0, 0,
    0, 2 * focal_length / img_hei, 0,0,
    0,0, (zf + zn) / (zn - zf), -1,
    0, 0, (2.0f * zf * zn) / (zn - zf), 0};
    }
    (5)[30,33]位置。接地データ、足が地面についているかどうか、左かかと、左つま先、右かかと、右つま先
    position_x,position_y,position_z:
    (1)[0,23]位置。人の2D特徴点位置です。上記の図1をご参照ください。2Dの点のposition_zはすべて0です
    (2)[24,47]位置。人の3D特徴点位置です。上記の図1をご参照ください
    rotation
    (1)[0,23]位置。人の骨格の回転は4元数であり、各4元数の属性の順序はwxyzです
    (2)[25,54]位置、手の骨格の回転は4元数です。左手が15で、右手も15で、各4元数の属性の順序はwxyzです

    骨格の異なる命名方法および対応関係

    番号
    Bone Names
    Bone Names 2
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    "pelvis",
    "left_hip",
    "right_hip",
    "spine1",
    "left_knee",
    "right_knee",
    "spine2",
    "left_ankle",
    "right_ankle",
    "spine3",
    "left_foot",
    "right_foot",
    "neck",
    "left_collar",
    "right_collar",
    "head",
    "left_shoulder",
    "right_shoulder",
    "left_elbow",
    "right_elbow",
    "left_wrist",
    "right_wrist",
    "left_hand"
    "right_hand"
    "Hips"
    "LeftUpLeg"
    "RightUpLeg"
    "Spine"
    "LeftLeg"
    "RightLeg"
    "Spine1"
    "LeftFoot"
    "RightFoot"
    "Spine2"
    ""
    ""
    "Neck"
    "LeftShoulder"
    "RightShoulder"
    "Head"
    "LeftArm"
    "RightArm"
    "LeftForeArm"
    "RightForeArm"
    "LeftHand"
    "RightHand"
    ""
    ""
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    "left_index1"
    "left_index2"
    "left_index3"
    "left_middle1"
    "left_middle2"
    "left_middle3"
    "left_pinky1"
    "left_pinky2"
    "left_pinky3"
    "left_ring1"
    "left_ring2"
    "left_ring3"
    "left_thumb1"
    "left_thumb2"
    "left_thumb3
    IndexFinger1_L
    IndexFinger2_L
    IndexFinger3_L
    MiddleFinger1_L
    MiddleFinger2_L
    MiddleFinger3_L
    PinkyFinger1_L
    PinkyFinger2_L
    PinkyFinger3_L
    RingFinger1_L
    RingFinger2_L
    RingFinger3_L
    ThumbFinger1_L
    ThumbFinger2_L
    ThumbFinger3_L
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    "right_index1"
    "right_index2"
    "right_index3"
    "right_middle1"
    "right_middle2"
    "right_middle3"
    "right_pinky1"
    "right_pinky2"
    "right_pinky3"
    "right_ring1"
    "right_ring2"
    "right_ring3"
    "right_thumb1"
    "right_thumb2"
    "right_thumb3"
    IndexFinger1_R
    IndexFinger2_R
    IndexFinger3_R
    MiddleFinger1_R
    MiddleFinger2_R
    MiddleFinger3_R
    PinkyFinger1_R
    PinkyFinger2_R
    PinkyFinger3_R
    RingFinger1_R
    RingFinger2_R
    RingFinger3_R
    ThumbFinger1_R
    ThumbFinger2_R
    ThumbFinger3_R
    
    お問い合わせ

    カスタマーサービスをご提供できるため、ぜひお気軽にお問い合わせくださいませ。

    テクニカルサポート

    さらにサポートが必要な場合は、サポートチケットを送信して弊社サポートチームにお問い合わせください。24時間365日のサポートをご提供します。

    電話サポート(24 時間365日対応)