Exemple #1
0
            public override void Capture()
            {
                if (m_target == null)
                {
                    m_mbuf.visibility = false;
                }
                else
                {
                    m_mbuf.visibility = m_target.gameObject.activeSelf;
                    if (m_cloth != null)
                    {
                        m_cbuf.Capture(m_meshSrc, m_cloth, m_mbuf, recorder.m_settings);
                    }
                    else
                    {
                        if (m_meshBake == null)
                        {
                            m_meshBake = new Mesh {
                                name = m_target.name
                            };
                        }

                        m_meshBake.Clear();
                        m_target.BakeMesh(m_meshBake);
                        m_mbuf.Capture(m_meshBake, recorder.m_settings);
                    }
                }
                m_mbuf.WriteSample(abcObject);
            }
            public override void Capture()
            {
                if (m_target == null)
                {
                    return;
                }

                if (m_cloth != null)
                {
                    m_cbuf.Capture(m_meshSrc, m_cloth, m_mbuf, m_exporter);
                    m_mbuf.WriteSample(m_abc);
                }
                else
                {
                    if (m_meshBake == null)
                    {
                        m_meshBake = new Mesh();
                    }
                    m_meshBake.Clear();
                    m_target.BakeMesh(m_meshBake);

                    m_mbuf.Capture(m_meshBake, m_exporter);
                    m_mbuf.WriteSample(m_abc);
                }
            }
            public override void Capture()
            {
                if (m_stopped)
                {
                    return;
                }

                if (m_target == null)
                {
                    m_stopped         = true;
                    m_mbuf.visibility = false;
                }
                else
                {
                    m_mbuf.visibility = m_target.gameObject.activeSelf;
                    if (m_cloth != null)
                    {
                        m_cbuf.Capture(m_meshSrc, m_cloth, m_mbuf, m_recorder.m_settings);
                    }
                    else
                    {
                        if (m_meshBake == null)
                        {
                            m_meshBake = new Mesh();
                        }

                        m_meshBake.Clear();
                        m_target.BakeMesh(m_meshBake);
                        m_mbuf.Capture(m_meshBake, m_recorder.m_settings);
                    }
                }
                m_mbuf.WriteSample(m_abc);
            }
            void GenerateRemapIndices(Mesh mesh, MeshBuffer mbuf)
            {
                mbuf.Capture(mesh, Matrix4x4.identity, false, false, false, false);
                var weights4 = new PinnedList <BoneWeight>();

                weights4.LockList(l => { mesh.GetBoneWeights(l); });

                remap.Resize(mbuf.points.Count);
                numRemappedVertices = NativeMethods.aeGenerateRemapIndices(remap, mbuf.points, weights4, mbuf.points.Count);
            }
            public override void Capture()
            {
                if (m_target == null)
                {
                    m_mbuf.visibility = false;
                }
                else
                {
                    m_mbuf.visibility = m_target.gameObject.activeSelf;
                    if (m_cloth != null)
                    {
                        m_cbuf.Capture(m_meshSrc, m_cloth, m_mbuf, recorder.m_settings);
                    }
                    else
                    {
                        if (m_meshBake == null)
                        {
                            m_meshBake = new Mesh {
                                name = m_target.name
                            };
                        }

                        m_meshBake.Clear();
#if UNITY_2020_2_OR_NEWER
                        m_target.BakeMesh(m_meshBake, true);
                        m_mbuf.Capture(m_meshBake, Matrix4x4.identity, recorder.m_settings);
#else
                        m_target.BakeMesh(m_meshBake);

                        var withScale = m_target.transform.worldToLocalMatrix;
                        var noScale   = m_target.transform.WorldNoScale();
                        // The Skinned mesh baker disregards the world scale.
                        // This matrix transform inverts the wrong Unity transforms are reapplies the full world scale.
                        m_mbuf.Capture(m_meshBake, withScale * noScale.inverse, recorder.m_settings);
#endif
                    }
                }
                m_mbuf.WriteSample(abcObject);
            }
 public override void Capture()
 {
     if (m_target == null)
     {
         m_mbuf.visibility = false;
     }
     else
     {
         m_mbuf.visibility = m_target.gameObject.activeSelf;
         var mesh = m_target.GetComponent <MeshFilter>().sharedMesh;
         if (!recorder.m_settings.AssumeNonSkinnedMeshesAreConstant || m_mbuf.points.Capacity == 0)
         {
             m_mbuf.Capture(mesh, recorder.m_settings);
         }
     }
     m_mbuf.WriteSample(abcObject);
 }
            public override void Capture()
            {
                if (m_target == null)
                {
                    return;
                }

                var mesh = m_target.GetComponent <MeshFilter>().sharedMesh;

                if (mesh == null || (m_exporter.m_assumeNonSkinnedMeshesAreConstant && m_mbuf.points.Capacity != 0))
                {
                    return;
                }

                m_mbuf.Capture(mesh, m_exporter);
                m_mbuf.WriteSample(abc);
            }