コード例 #1
0
        //-----------------------------------------------------------------------------------
        private void SampleAnimationDataSimulating(double eventTime, CRAnimationData animData)
        {
            float startTime = animData.timeStart_;
            float length    = animData.timeLenght_;
            float endTime   = startTime + length;


            if (eventTime >= startTime &&
                (length == float.MaxValue || (eventTime <= endTime)))
            {
                animData.UpdateSimulating(animationBakingMesh_, (float)eventTime, (float)frameTime_);
            }
        }
コード例 #2
0
            public void UpdateSimulating(CRAnimationData animData, UnityEngine.Mesh animBakingMesh, float eventTime, float deltaTime)
            {
                animator_.Update(deltaTime);

                double targetTime = eventTime + deltaTime;

                for (int i = 0; i < arrSkinnedMeshRenderer_.Length; ++i)
                {
                    uint idBody = arrIdBodySkinnedGameObjects_[i];
                    SkinnedMeshRenderer smRenderer = arrSkinnedMeshRenderer_[i];

                    GameObject gameObject = smRenderer.gameObject;

                    smRenderer.BakeMesh(animBakingMesh);

                    if (idBody != uint.MaxValue)
                    {
                        Matrix4x4 m_MODEL_TO_WORLD = gameObject.transform.localToWorldMatrix;

                        RigidbodyManager.Rg_addEventTargetArrPos_WORLD((double)eventTime, targetTime, idBody, ref m_MODEL_TO_WORLD, animBakingMesh.vertices);
                    }
                }

                for (int i = 0; i < arrNormalMeshRenderer_.Length; ++i)
                {
                    uint         idBody     = arrIdBodyNormalGameObjects_[i];
                    MeshRenderer renderer   = arrNormalMeshRenderer_[i];
                    GameObject   gameObject = renderer.gameObject;

                    if (idBody != uint.MaxValue)
                    {
                        Matrix4x4 m_MODEL_TO_WORLD = gameObject.transform.localToWorldMatrix;

                        RigidbodyManager.Rg_addEventTargetPos_WORLD((double)eventTime, targetTime, idBody, ref m_MODEL_TO_WORLD, 0.01);
                    }
                }
                animData.timeAnimated_ += deltaTime;
            }
コード例 #3
0
        //----------------------------------------------------------------------------------
        public void AddAnimation(CNAnimatedbodyEditor animNodeEditor)
        {
            CRAnimationData animData = new CRAnimationData(animNodeEditor);

            listAnimationData_.Add(animData);
        }