示例#1
0
        static void LR2ModelExport(System.IO.StreamWriter log)
        {
            Context.Current = new Context(Context.NextGenGame.LegoRacers2, Context.GamePlatform.PC, "");

            System.Windows.Forms.OpenFileDialog odialog = new System.Windows.Forms.OpenFileDialog();
            odialog.Filter = "MD2 Model (*.MD2)|*.MD2";
            if (odialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                using (System.IO.FileStream fs = new System.IO.FileStream(odialog.FileName, System.IO.FileMode.Open))
                    using (System.IO.BinaryReader reader = new System.IO.BinaryReader(fs))
                    {
                        MD2File model = new MD2File(reader);

                        foreach (Block b in model.Blocks.Values)
                        {
                            Debug.WriteLine(b.Header.Signature + ": " + b.Header.Length.ToString("X8") + " bytes");
                        }

                        //System.Console.ReadLine();

                        System.Windows.Forms.SaveFileDialog sdialog = new System.Windows.Forms.SaveFileDialog();
                        sdialog.Filter = "Wavefront OBJ (*.obj)|*.obj";
                        if (sdialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                        {
                            model.ExportOBJ(sdialog.FileName);
                        }
                    }
            }
        }
示例#2
0
    //---------------------------------------------------------------------------------------------------------

    private void Start()
    {
        MD2File md2File = new MD2File(MD2File.bytes);

        MD2Frame[] frames = md2File.GetAllFrames();


        Mesh[] meshes = new Mesh[frames.Length];

        for (int i = 0; i < meshes.Length; i++)
        {
            meshes[i] = ConvertFrameToMesh(frames[i]);
        }



        Dictionary <string, MinMaxFrame> animations = GetAnimationDescriptions(frames);
        Mesh baseMesh = meshes[0];

        foreach (var group in animations)
        {
            AddBlendShapesToMesh(baseMesh, meshes, group.Value.Min, group.Value.Max, group.Key);

            string      key         = group.Key;
            MinMaxFrame minMaxFrame = group.Value;
            Debug.Log(key + " " + minMaxFrame.Min + " " + minMaxFrame.Max);
        }


        #if UNITY_EDITOR
        AssetDatabase.CreateAsset(baseMesh, "Assets/baseMesh.asset");
        AssetDatabase.Refresh();
        #endif

        GetComponent <MeshFilter>().mesh = baseMesh;
    }