public void Read(AssetReader reader)
 {
     AvatarSkeleton.Read(reader);
     AvatarSkeletonPose.Read(reader);
     if (HasDefaultPose(reader.Version))
     {
         DefaultPose.Read(reader);
         SkeletonNameIDArray = reader.ReadUInt32Array();
     }
     Human.Read(reader);
     HumanSkeletonIndexArray = reader.ReadInt32Array();
     if (HasHumanSkeletonReverseIndexArray(reader.Version))
     {
         HumanSkeletonReverseIndexArray = reader.ReadInt32Array();
     }
     else
     {
         HumanSkeletonReverseIndexArray = new int[AvatarSkeleton.Instance.Node.Length];
         for (int i = 0; i < AvatarSkeleton.Instance.Node.Length; i++)
         {
             HumanSkeletonReverseIndexArray[i] = HumanSkeletonIndexArray.IndexOf(i);
         }
     }
     RootMotionBoneIndex = reader.ReadInt32();
     RootMotionBoneX.Read(reader);
     if (HasRootMotionSkeleton(reader.Version))
     {
         RootMotionSkeleton.Read(reader);
         RootMotionSkeletonPose.Read(reader);
         RootMotionSkeletonIndexArray = reader.ReadInt32Array();
     }
 }
 public void Read(AssetReader reader)
 {
     AvatarSkeleton.Read(reader);
     AvatarSkeletonPose.Read(reader);
     if (IsReadDefaultPose(reader.Version))
     {
         DefaultPose.Read(reader);
         m_skeletonNameIDArray = reader.ReadUInt32Array();
     }
     Human.Read(reader);
     m_humanSkeletonIndexArray = reader.ReadInt32Array();
     if (IsReadHumanSkeletonReverseIndexArray(reader.Version))
     {
         m_humanSkeletonReverseIndexArray = reader.ReadInt32Array();
     }
     else
     {
         m_humanSkeletonReverseIndexArray = new int[AvatarSkeleton.Instance.Node.Count];
         for (int i = 0; i < AvatarSkeleton.Instance.Node.Count; i++)
         {
             m_humanSkeletonReverseIndexArray[i] = m_humanSkeletonIndexArray.IndexOf(i);
         }
     }
     RootMotionBoneIndex = reader.ReadInt32();
     RootMotionBoneX.Read(reader);
     if (IsReadRootMotionSkeleton(reader.Version))
     {
         RootMotionSkeleton.Read(reader);
         RootMotionSkeletonPose.Read(reader);
         m_rootMotionSkeletonIndexArray = reader.ReadInt32Array();
     }
 }
    // Use this for initialization
    void Start()
    {
        if (avatarSkeleton == null)
        {
            //            avatarSkeleton = GameObject.FindObjectOfType<AvatarSkeleton>();
            avatarSkeleton = gameObject.GetComponent <AvatarSkeleton>();
            if (avatarSkeleton == null)
            {
                print("TrackAvatar: No avatar Skeleton component.  Attempting to add.");
                avatarSkeleton = gameObject.AddComponent <AvatarSkeleton>() as AvatarSkeleton;
            }
            if (avatarSkeleton == null)
            {
                print("TrackAvatar: No avatar Skeleton");
                //                return new EnableString("Invalid tracking data. No avatar Skeleton");
            }
        }
        if (animatorComponent == null)
        {
            animatorComponent = gameObject.GetComponent <Animator>();
        }

        moving  = false;
        initted = true;
    }
Exemple #4
0
 public void Read(EndianStream stream)
 {
     AvatarSkeleton.Read(stream);
     AvatarSkeletonPose.Read(stream);
     DefaultPose.Read(stream);
     m_skeletonNameIDArray = stream.ReadUInt32Array();
     Human.Read(stream);
     m_humanSkeletonIndexArray        = stream.ReadInt32Array();
     m_humanSkeletonReverseIndexArray = stream.ReadInt32Array();
     RootMotionBoneIndex = stream.ReadInt32();
     RootMotionBoneX.Read(stream);
     RootMotionSkeleton.Read(stream);
     RootMotionSkeletonPose.Read(stream);
     m_rootMotionSkeletonIndexArray = stream.ReadInt32Array();
 }
    private void Awake()
    {
        // _vrik = GetComponentInChildren<VRIK>(true);
        _avatarSkeleton             = GetComponent <AvatarSkeleton>();
        _controller.TriggerClicked += OnTriggetClickedHandler;

        _initHeadRot      = _headTrans.rotation;
        _initLeftHandRot  = _leftHandTrans.rotation;
        _initRightHandRot = _rightHandTrans.rotation;

        if (_useFootIK)
        {
            _initLeftFootRot  = _leftFootTrans.rotation;
            _initRightFootRot = _rightFootTrasn.rotation;
        }
    }
Exemple #6
0
        public YAMLNode ExportYAML(IAssetsExporter exporter)
        {
#warning TODO: values acording to read version (current 2017.3.0f3)
            YAMLMappingNode node = new YAMLMappingNode();
            node.AddSerializedVersion(GetSerializedVersion(exporter.Version));
            node.Add("m_AvatarSkeleton", AvatarSkeleton.ExportYAML(exporter));
            node.Add("m_AvatarSkeletonPose", AvatarSkeletonPose.ExportYAML(exporter));
            node.Add("m_DefaultPose", DefaultPose.ExportYAML(exporter));
            node.Add("m_SkeletonNameIDArray", IsReadDefaultPose(exporter.Version) ? SkeletonNameIDArray.ExportYAML(true) : YAMLSequenceNode.Empty);
            node.Add("m_Human", Human.ExportYAML(exporter));
            node.Add("m_HumanSkeletonIndexArray", HumanSkeletonIndexArray.ExportYAML(true));
            node.Add("m_HumanSkeletonReverseIndexArray", IsReadHumanSkeletonReverseIndexArray(exporter.Version) ? HumanSkeletonReverseIndexArray.ExportYAML(true) : YAMLSequenceNode.Empty);
            node.Add("m_RootMotionBoneIndex", RootMotionBoneIndex);
            node.Add("m_RootMotionBoneX", RootMotionBoneX.ExportYAML(exporter));
            node.Add("m_RootMotionSkeleton", RootMotionSkeleton.ExportYAML(exporter));
            node.Add("m_RootMotionSkeletonPose", RootMotionSkeletonPose.ExportYAML(exporter));
            node.Add("m_RootMotionSkeletonIndexArray", IsReadRootMotionSkeleton(exporter.Version) ? RootMotionSkeletonIndexArray.ExportYAML(true) : YAMLSequenceNode.Empty);
            return(node);
        }
        public YAMLNode ExportYAML(IExportContainer container)
        {
#warning TODO: values acording to read version (current 2017.3.0f3)
            YAMLMappingNode node = new YAMLMappingNode();
            node.AddSerializedVersion(GetSerializedVersion(container.Version));
            node.Add("m_AvatarSkeleton", AvatarSkeleton.ExportYAML(container));
            node.Add("m_AvatarSkeletonPose", AvatarSkeletonPose.ExportYAML(container));
            node.Add("m_DefaultPose", GetDefaultPose(container.Version).ExportYAML(container));
            node.Add("m_SkeletonNameIDArray", GetSkeletonNameIDArray(container.Version).ExportYAML(true));
            node.Add("m_Human", Human.ExportYAML(container));
            node.Add("m_HumanSkeletonIndexArray", HumanSkeletonIndexArray.ExportYAML(true));
            node.Add("m_HumanSkeletonReverseIndexArray", GetHumanSkeletonReverseIndexArray(container.Version).ExportYAML(true));
            node.Add("m_RootMotionBoneIndex", RootMotionBoneIndex);
            node.Add("m_RootMotionBoneX", RootMotionBoneX.ExportYAML(container));
            node.Add("m_RootMotionSkeleton", RootMotionSkeleton.ExportYAML(container));
            node.Add("m_RootMotionSkeletonPose", RootMotionSkeletonPose.ExportYAML(container));
            node.Add("m_RootMotionSkeletonIndexArray", GetRootMotionSkeletonIndexArray(container.Version).ExportYAML(true));
            return(node);
        }
        public YAMLNode ExportYAML(IExportContainer container)
        {
            YAMLMappingNode node = new YAMLMappingNode();

            node.AddSerializedVersion(ToSerializedVersion(container.ExportVersion));
            node.Add(AvatarSkeletonName, AvatarSkeleton.ExportYAML(container));
            node.Add(AvatarSkeletonPoseName, AvatarSkeletonPose.ExportYAML(container));
            node.Add(DefaultPoseName, GetDefaultPose(container.Version).ExportYAML(container));
            node.Add(SkeletonNameIDArrayName, GetSkeletonNameIDArray(container.Version).ExportYAML(true));
            node.Add(HumanName, Human.ExportYAML(container));
            node.Add(HumanSkeletonIndexArrayName, HumanSkeletonIndexArray.ExportYAML(true));
            node.Add(HumanSkeletonReverseIndexArrayName, HumanSkeletonReverseIndexArray.ExportYAML(true));
            node.Add(RootMotionBoneIndexName, RootMotionBoneIndex);
            node.Add(RootMotionBoneXName, RootMotionBoneX.ExportYAML(container));
            node.Add(RootMotionSkeletonName, RootMotionSkeleton.ExportYAML(container));
            node.Add(RootMotionSkeletonPoseName, RootMotionSkeletonPose.ExportYAML(container));
            node.Add(RootMotionSkeletonIndexArrayName, GetRootMotionSkeletonIndexArray(container.Version).ExportYAML(true));
            return(node);
        }
Exemple #9
0
        public YAMLNode ExportYAML()
        {
            YAMLMappingNode node = new YAMLMappingNode();

            node.AddSerializedVersion(SerializedVersion);
            node.Add("m_AvatarSkeleton", AvatarSkeleton.ExportYAML());
            node.Add("m_AvatarSkeletonPose", AvatarSkeletonPose.ExportYAML());
            node.Add("m_DefaultPose", DefaultPose.ExportYAML());
            node.Add("m_SkeletonNameIDArray", SkeletonNameIDArray.ExportYAML(true));
            node.Add("m_Human", Human.ExportYAML());
            node.Add("m_HumanSkeletonIndexArray", HumanSkeletonIndexArray.ExportYAML(true));
            node.Add("m_HumanSkeletonReverseIndexArray", HumanSkeletonReverseIndexArray.ExportYAML(true));
#warning other values crash Unity. Why?
            node.Add("m_RootMotionBoneIndex", -1 /*RootMotionBoneIndex*/);
            node.Add("m_RootMotionBoneX", RootMotionBoneX.ExportYAML());
            node.Add("m_RootMotionSkeleton", RootMotionSkeleton.ExportYAML());
            node.Add("m_RootMotionSkeletonPose", RootMotionSkeletonPose.ExportYAML());
            node.Add("m_RootMotionSkeletonIndexArray", RootMotionSkeletonIndexArray.ExportYAML(true));
            return(node);
        }
    //OLD STUFF
    //    Transform m_Target;
    //    public Transform target { get { return m_Target; } set { m_Target = value;  } }
    //   int m_SyncLevel = 0;
    //    private GameObject bodyPrefab;
    //    private AvatarController avatarController;
    //    The body root node
    //    protected Transform bodyRoot;

    public static void GetAvatarSkeleton(GameObject mygameObject, ref AvatarSkeleton avatarSkeleton)
    {
        if (avatarSkeleton == null)
        {
            //            avatarSkeleton = GameObject.FindObjectOfType<AvatarSkeleton>();
            avatarSkeleton = mygameObject.GetComponent <AvatarSkeleton>();
            if (avatarSkeleton == null)
            {
                print("AvatarSkeleton: No avatar Skeleton component.  Attempting to add.");
                avatarSkeleton = mygameObject.AddComponent <AvatarSkeleton>() as AvatarSkeleton;
            }
            if (avatarSkeleton == null)
            {
                print("TrackAvatar: No avatar Skeleton could be added");
            }
            else
            {
                print("TrackAvatar: Skeleton found.");
            }
        }
    }
    // Use this for initialization
    void Awake()
    {
        /* switch (PlayerPrefs.GetString("TrackAvatar"))
         * {
         *  case "onTick":
         *      Tracker.Instance.AddTickModule(new TrackerModule("Avatar Skeleton", skeletonData));
         *      break;
         *  case "onEvent":
         *      TrackModuleOnEvent(new TrackerModule("Avatar Skeleton", skeletonData));
         *      break;
         *  default:
         *      TrackModuleOnEvent(new TrackerModule("Avatar Skeleton", skeletonData));
         *      break;
         * }*/
        if (avatarSkeleton == null)
        {
            //            avatarSkeleton = GameObject.FindObjectOfType<AvatarSkeleton>();
            avatarSkeleton = gameObject.GetComponent <AvatarSkeleton>();

            if (avatarSkeleton == null)
            {
                print("TrackAvatar: No avatar Skeleton component.  Attempting to add.");
                avatarSkeleton = gameObject.AddComponent <AvatarSkeleton>() as AvatarSkeleton;
            }
            if (avatarSkeleton == null)
            {
                print("TrackAvatar: No avatar Skeleton");
                //                return new EnableString("Invalid tracking data. No avatar Skeleton");
            }
            else
            {
                print("TrackAvatar: Skeleton found.");
            }
            //          bodyPrefab = avatarSkeleton.gameObject;
        }
        //      int playerIndex = avatarSkeleton.playerIndex;
        Tracker.Instance.AddTickModule(new TrackerModule("Avatar Skeleton", skeletonData));
    }
Exemple #12
0
 public void Read(AssetStream stream)
 {
     AvatarSkeleton.Read(stream);
     AvatarSkeletonPose.Read(stream);
     if (IsReadDefaultPose(stream.Version))
     {
         DefaultPose.Read(stream);
         m_skeletonNameIDArray = stream.ReadUInt32Array();
     }
     Human.Read(stream);
     m_humanSkeletonIndexArray = stream.ReadInt32Array();
     if (IsReadHumanSkeletonReverseIndexArray(stream.Version))
     {
         m_humanSkeletonReverseIndexArray = stream.ReadInt32Array();
     }
     RootMotionBoneIndex = stream.ReadInt32();
     RootMotionBoneX.Read(stream);
     if (IsReadRootMotionSkeleton(stream.Version))
     {
         RootMotionSkeleton.Read(stream);
         RootMotionSkeletonPose.Read(stream);
         m_rootMotionSkeletonIndexArray = stream.ReadInt32Array();
     }
 }
Exemple #13
0
 public void Read(AssetReader reader)
 {
     AvatarSkeleton.Read(reader);
     AvatarSkeletonPose.Read(reader);
     if (IsReadDefaultPose(reader.Version))
     {
         DefaultPose.Read(reader);
         m_skeletonNameIDArray = reader.ReadUInt32Array();
     }
     Human.Read(reader);
     m_humanSkeletonIndexArray = reader.ReadInt32Array();
     if (IsReadHumanSkeletonReverseIndexArray(reader.Version))
     {
         m_humanSkeletonReverseIndexArray = reader.ReadInt32Array();
     }
     RootMotionBoneIndex = reader.ReadInt32();
     RootMotionBoneX.Read(reader);
     if (IsReadRootMotionSkeleton(reader.Version))
     {
         RootMotionSkeleton.Read(reader);
         RootMotionSkeletonPose.Read(reader);
         m_rootMotionSkeletonIndexArray = reader.ReadInt32Array();
     }
 }
    // Use this for initialization
    void Start()
    {
        //        jointDOF = new Vector3[] {        };
        jointNames = new string[] {
            "Neck_Flexion",
            "Neck_LateralFlexion",
            "L_Shoulder_Flexion",
            "L_Shoulder_Abduction",
            "L_Shoulder_HorizontalAbduction",
            "L_Elbow_Flexion",
            "R_Shoulder_Flexion",
            "R_Shoulder_Abduction",
            "R_Shoulder_HorizontalAbduction",
            "R_Elbow_Flexion",
            "L_Hip_Flexion",
            "L_Hip_Abduction",
            "L_Hip_Rotation",
            "R_Hip_Flexion",
            "R_Hip_Abduction",
            "R_Hip_Rotation",
            "R_Knee_Flexion",
            "L_Knee_Flexion",
            "Spine_Flexion",
            "Spine_LateralFlexion",
            "Spine_Rotation"
        };
        int numJoints;

        numJoints   = jointNames.Length;
        jointAng    = new float[numJoints];
        jointAngMin = new float[numJoints];
        jointAngMax = new float[numJoints];

        bodyDict = new Dictionary <string, int>();
        int ii = 0;

        //bodyDict maps jointDOFNames to index of JointAng
        foreach (string t in jointNames)
        {
            //print("bodyDict add:" + jointNames[ii]);
            bodyDict.Add(jointNames[ii], ii);
            ii++;
        }
        AvatarSkeleton.GetAvatarSkeleton(gameObject, ref avatarSkeleton);

        if (animatorComponent == null)
        {
            animatorComponent = gameObject.GetComponent <Animator>();
        }

        numJoints = avatarSkeleton.boneIndexCount();
        // print("nJ=" + numJoints);
        localAngles = new Vector3[numJoints];

        //        jointNames = new string[numJoints];
        boneNames  = new string[numJoints];
        bonePos    = new Vector3[numJoints];
        bonePosMin = new Vector3[numJoints];
        bonePosMax = new Vector3[numJoints];


        for (int i = 0; i < numJoints; i++)
        {
            int    boneIndex = i;
            string jointName = avatarSkeleton.boneIndex2Name(boneIndex);
            //print(" joint mecanim name=" + jointName);
            boneNames[i] = jointName;
        }


        resetMinMax  = true;
        updateMinMax = true;        //false;
        Update();
        moving  = false;
        initted = true;
    }
Exemple #15
0
 public void Initialize()
 {
     avatar = SK.AddStepper <AvatarSkeleton>();
 }