public void Export(World world) { var config = Plugin.Instance.Config; string exportPath = config.ExportDirPath + "\\" + world.ExportFileName + ".pmx"; File.Delete(exportPath); using (var stream = new FileStream(exportPath, FileMode.Create, FileAccess.Write)) { var exporter = new PmxExporter(stream); var data = new PmxModelData(); GetData(data); data.Header.ModelName = config.ModelName; data.Header.Description += config.ModelDescription; exporter.Export(data); Console.WriteLine("出力完了 : " + world.ExportFileName); Console.WriteLine("頂点数 : " + String.Format("{0:#,0}", data.VertexArray.Length)); Console.WriteLine("面数 : " + String.Format("{0:#,0}", data.VertexIndices.Length / 3)); Console.WriteLine("材質数 : " + String.Format("{0:#,0}", data.MaterialArray.Length)); Console.WriteLine("ボーン数 : " + String.Format("{0:#,0}", data.BoneArray.Length)); Console.WriteLine("モーフ数 : " + String.Format("{0:#,0}", data.MorphArray.Length)); } }
private void ExportModel(object sender, ModelExportEventArgs args) { try { SaveUserPreferences(); var maid = GameMain.Instance.CharacterMgr.GetMaid(0); var materialState = maid.PrepareMaterialsForExport(); try { var meshes = FindObjectsOfType <SkinnedMeshRenderer>() .Where(smr => smr.name != "obj1") .Distinct() .ToList(); IExporter exporter; switch (args.Format) { case ModelFormat.Pmx: exporter = new PmxExporter(); break; case ModelFormat.Obj: exporter = new ObjExporter(); break; default: throw new Exception($"Unknown model format: {args.Format}"); } exporter.ExportFolder = args.Folder; exporter.ExportName = args.Name; exporter.SavePostion = args.SavePosition; exporter.SaveTexture = args.SaveTexture; exporter.Export(meshes); } finally { maid.RestoreMaterialsAfterExport(materialState); } } catch (Exception error) { Debug.LogError($"Error exporting {args.Format}: {error.Message}\n\nStack trace:\n{error.StackTrace}"); } }
public void Export() { string exportPath = World.PmxExportPath; File.Delete(exportPath); using (var stream = new FileStream(exportPath, FileMode.Create, FileAccess.Write)) { var exporter = new PmxExporter(stream); var data = new PmxModelData(); GetData(data); exporter.Export(data); Console.WriteLine("出力完了 : " + World.ExportFileName); Console.WriteLine("頂点数 : " + String.Format("{0:#,0}", data.VertexArray.Length)); Console.WriteLine("面数 : " + String.Format("{0:#,0}", data.VertexIndices.Length / 3)); Console.WriteLine("材質数 : " + String.Format("{0:#,0}", data.MaterialArray.Length)); Console.WriteLine("テクスチャ数 : " + String.Format("{0:#,0}", data.TextureFiles.Length)); Console.WriteLine("ボーン数 : " + String.Format("{0:#,0}", data.BoneArray.Length)); Console.WriteLine("モーフ数 : " + String.Format("{0:#,0}", data.MorphArray.Length)); } }