Создать ARFaceGeometry из словаря BlendShape - PullRequest
0 голосов
/ 12 июня 2018

Я пытаюсь создать сетку ARKit на основе созданного мной словаря blendShape (в сценарии Unity).По сути, я хочу получить сетку и изменить одно значение в словаре и создать геометрию обратно, используя этот новый словарь.

Я нашел метод init в документации ARFaceGeometry, но я не делаюпонять, как именно это назвать.

С помощью примеров отслеживания лиц в блоге Unity я придумал код, который выглядит следующим образом:

using UnityEngine;
using System.Collections;
using UnityEngine.XR.iOS;
using System.Collections.Generic;

public class RetrieveBlendShapesARKit : MonoBehaviour
{
    private UnityARSessionNativeInterface m_session;
    Dictionary<string, float> currentBlendShapes;

    // Use this for initialization
    void Start()
    {
        currentBlendShapes["eyeBlink_L"] = 1.0f;

        Debug.Log("---------------Get ARKit Mesh Start-------------------");
        m_session = UnityARSessionNativeInterface.GetARSessionNativeInterface();
        ARKitFaceTrackingConfiguration config = new ARKitFaceTrackingConfiguration();
        config.alignment = UnityARAlignment.UnityARAlignmentGravity;
        config.enableLightEstimation = true;

        if (config.IsSupported)
        {
            m_session.RunWithConfig(config);
            UnityARSessionNativeInterface.ARFaceAnchorAddedEvent += FaceAdded;
            UnityARSessionNativeInterface.ARFaceAnchorUpdatedEvent += FaceUpdated;
        }
    }

    void FaceAdded(ARFaceAnchor anchorData)
    {
        anchorData.faceGeometry.init(currentBlendShapes);
    }

    void FaceUpdated(ARFaceAnchor anchorData)
    {
        anchorData.blendShapes = currentBlendShapes;
    }


    // Update is called once per frame
    void Update()
    {

    }
}

Iполучаю сообщение об ошибке ARFaceGeometry does not contain a definition of init, и я также получаю сообщение об ошибке, что я не могу назначить blendShapes, поскольку он доступен только для чтения (я просто думал о попытке прямого назначения, которое не сработало).

Буду признателен за любую помощь виспользуя этот метод init или любой другой способ создания сетки ARKit на iPhone с помощью пользовательского словаря blendShape через Unity.

Спасибо!

...