public void DisplayTso() { if (fDisplayed) { return; } fDisplayed = true; // ヘビーセーブとして読み込んでみる. pngstream = new PNGHSAVStream(); savedata.Seek(0, SeekOrigin.Begin); pngstream.LoadPNGFile(savedata); // ヘビーセーブか? if (pngstream.count > 0) { // ヘビーセーブデータをロードする. foreach (PNGTsoData tso in pngstream.get) { tsoDataList.Add(tso); } } else { // tsoロード情報があるならこの時点で組み立てる. if (loadtsoinfo.Count != 0) { assembleTsoData(); } } TDCGExplorer.TDCGExplorer.SetToolTips(TextResource.RenderingNow); try { // TSOビューワをリセットする TDCGExplorer.TDCGExplorer.MainFormWindow.makeTSOViwer(); TDCGExplorer.TDCGExplorer.MainFormWindow.clearTSOViewer(); TDCG.Viewer viewer = TDCGExplorer.TDCGExplorer.MainFormWindow.Viewer; bool firstTmoSet = true; foreach (PNGTsoData tso in tsoDataList) { using (MemoryStream stream = new MemoryStream(tso.tsodata)) { viewer.LoadTSOFile(stream); TDCGExplorer.TDCGExplorer.MainFormWindow.doInitialTmoLoad(); if (firstTmoSet) { // スライダーパラメータを設定する. TDCG.Figure figure = viewer.FigureList[0]; figure.slide_matrices.BustRatio = savefile.GetSlider(0); figure.slide_matrices.TallRatio = savefile.GetSlider(1); figure.slide_matrices.ArmRatio = savefile.GetSlider(2); figure.slide_matrices.LegRatio = savefile.GetSlider(3); figure.slide_matrices.WaistRatio = savefile.GetSlider(4); figure.slide_matrices.EyeRatio = savefile.GetSlider(5); figure.UpdateBoneMatrices(true); firstTmoSet = false; } viewer.FrameMove(); viewer.Render(); TDCGExplorer.TDCGExplorer.IncBusy(); Application.DoEvents(); TDCGExplorer.TDCGExplorer.DecBusy(); } } } catch (Exception) { } TDCGExplorer.TDCGExplorer.SetToolTips(TextResource.RenderingComplete); }