public void LoadTMOFile(string source_file) { if (File.Exists(source_file)) { try { tmo.Load(source_file); UpdateTMO(); } catch (Exception ex) { Console.WriteLine("Error: " + ex); } } }
public List <TSOFigure> LoadPNGFile(string source_file) { List <TSOFigure> fig_list = new List <TSOFigure>(); if (File.Exists(source_file)) { try { PNGFile png = new PNGFile(); TSOFigure fig = null; TMOFile tmo = null; png.Hsav += delegate(string type) { fig = new TSOFigure(); fig_list.Add(fig); }; png.Lgta += delegate(Stream dest, int extract_length) { fig = new TSOFigure(); fig_list.Add(fig); }; png.Ftmo += delegate(Stream dest, int extract_length) { tmo = new TMOFile(); tmo.Load(dest); fig.Tmo = tmo; }; png.Figu += delegate(Stream dest, int extract_length) { }; png.Ftso += delegate(Stream dest, int extract_length, byte[] opt1) { TSOFile tso = new TSOFile(); tso.Load(dest); fig.TSOList.Add(tso); }; png.Load(source_file); } catch (Exception ex) { Console.WriteLine("Error: " + ex); } } return(fig_list); }
public static int UpdateTmo(string source_file) { string dest_file = source_file + ".tmp"; TMOFile tmo = new TMOFile(); try { tmo.Load(source_file); } catch (Exception ex) { Console.WriteLine(ex.Message); return(-1); } if (tmo.nodes[0].ShortName != "W_Hips") { Console.WriteLine("Passed: root node is not W_Hips"); return(1); } Dictionary <string, TMONode> nodes = new Dictionary <string, TMONode>(); foreach (TMONode node in tmo.nodes) { try { nodes.Add(node.ShortName, node); } catch (ArgumentException) { Console.WriteLine("node {0} already exists.", node.ShortName); } } try { TMONode node; node = nodes["W_Hips"]; node.Scale1(0.93F, 0.75F, 0.85F); node = nodes["W_LeftUpLeg"]; node.Scale1(0.78F, 0.66F, 0.78F); node.Move(-0.100F, 0.000F, 0.000F); node = nodes["W_LeftUpLegRoll"]; node.Scale1(0.85F, 0.68F, 0.86F); node = nodes["W_LeftLeg"]; node.Scale1(0.81F, 0.63F, 0.71F); node = nodes["W_LeftLegRoll"]; node.Scale1(0.83F, 0.84F, 0.81F); node = nodes["W_LeftFoot"]; node.Scale1(0.91F, 0.81F, 0.71F); node = nodes["W_LeftToeBase"]; node.Scale1(0.80F, 0.80F, 0.80F); node = nodes["W_RightUpLeg"]; node.Scale1(0.78F, 0.66F, 0.78F); node.Move(0.100F, 0.000F, 0.000F); node = nodes["W_RightUpLegRoll"]; node.Scale1(0.85F, 0.68F, 0.86F); node = nodes["W_RightLeg"]; node.Scale1(0.81F, 0.63F, 0.71F); node = nodes["W_RightLegRoll"]; node.Scale1(0.83F, 0.84F, 0.81F); node = nodes["W_RightFoot"]; node.Scale1(0.91F, 0.81F, 0.71F); node = nodes["W_RightToeBase"]; node.Scale1(0.80F, 0.80F, 0.80F); node = nodes["W_Spine_Dummy"]; node.Scale1(0.95F, 0.70F, 0.90F); node = nodes["W_Spine1"]; node.Scale1(0.95F, 0.70F, 1.00F); node.Move(0.000F, -0.090F, 0.000F); node = nodes["W_Spine2"]; node.Scale1(0.95F, 0.60F, 1.00F); node.Move(0.000F, -0.100F, 0.000F); node = nodes["W_Spine3"]; node.Scale1(0.90F, 1.00F, 0.95F); node.Move(0.000F, -0.065F, 0.000F); node = nodes["W_RightShoulder_Dummy"]; node.Scale1(0.73F, 0.96F, 0.84F); node = nodes["W_RightShoulder"]; node.Scale1(1.00F, 0.75F, 1.00F); node = nodes["W_RightArm_Dummy"]; node.Scale1(0.71F, 1.00F, 1.00F); node = nodes["W_RightArm"]; node.Scale1(0.76F, 1.00F, 1.00F); node = nodes["W_RightArmRoll"]; node.Scale1(0.76F, 1.00F, 1.00F); node = nodes["W_RightForeArm"]; node.Scale1(0.70F, 0.90F, 0.90F); node = nodes["W_RightForeArmRoll"]; node.Scale1(0.72F, 1.00F, 1.00F); node = nodes["W_RightHand"]; node.Scale1(0.70F, 0.87F, 0.87F); node = nodes["W_RightHandPinky1"]; node.Scale1(0.70F, 1.00F, 1.00F); node = nodes["W_RightHandPinky2"]; node.Scale1(0.70F, 1.00F, 1.00F); node = nodes["W_RightHandPinky3"]; node.Scale1(0.70F, 1.00F, 1.00F); node = nodes["W_RightHandPinky4"]; node.Scale1(0.70F, 1.00F, 1.00F); node = nodes["W_RightHandRing1"]; node.Scale1(0.70F, 1.00F, 1.00F); node = nodes["W_RightHandRing2"]; node.Scale1(0.70F, 1.00F, 1.00F); node = nodes["W_RightHandRing3"]; node.Scale1(0.70F, 1.00F, 1.00F); node = nodes["W_RightHandRing4"]; node.Scale1(0.70F, 1.00F, 1.00F); node = nodes["W_RightHandMiddle1"]; node.Scale1(0.70F, 1.00F, 1.00F); node = nodes["W_RightHandMiddle2"]; node.Scale1(0.70F, 1.00F, 1.00F); node = nodes["W_RightHandMiddle3"]; node.Scale1(0.70F, 1.00F, 1.00F); node = nodes["W_RightHandMiddle4"]; node.Scale1(0.70F, 1.00F, 1.00F); node = nodes["W_RightHandIndex1"]; node.Scale1(0.70F, 1.00F, 1.00F); node = nodes["W_RightHandIndex2"]; node.Scale1(0.70F, 1.00F, 1.00F); node = nodes["W_RightHandIndex3"]; node.Scale1(0.70F, 1.00F, 1.00F); node = nodes["W_RightHandIndex4"]; node.Scale1(0.70F, 1.00F, 1.00F); node = nodes["W_RightHandThumb1"]; node.Scale1(0.70F, 1.00F, 1.00F); node = nodes["W_RightHandThumb2"]; node.Scale1(0.70F, 1.00F, 1.00F); node = nodes["W_RightHandThumb3"]; node.Scale1(0.70F, 1.00F, 1.00F); node = nodes["W_RightHandThumb4"]; node.Scale1(0.70F, 1.00F, 1.00F); node = nodes["W_LeftShoulder_Dummy"]; node.Scale1(0.73F, 0.96F, 0.84F); node = nodes["W_LeftShoulder"]; node.Scale1(1.00F, 0.75F, 1.00F); node = nodes["W_LeftArm_Dummy"]; node.Scale1(0.71F, 1.00F, 1.00F); node = nodes["W_LeftArm"]; node.Scale1(0.76F, 1.00F, 1.00F); node = nodes["W_LeftArmRoll"]; node.Scale1(0.76F, 1.00F, 1.00F); node = nodes["W_LeftForeArm"]; node.Scale1(0.70F, 0.90F, 0.90F); node = nodes["W_LeftForeArmRoll"]; node.Scale1(0.72F, 1.00F, 1.00F); node = nodes["W_LeftHand"]; node.Scale1(0.70F, 0.87F, 0.87F); node = nodes["W_LeftHandPinky1"]; node.Scale1(0.70F, 1.00F, 1.00F); node = nodes["W_LeftHandPinky2"]; node.Scale1(0.70F, 1.00F, 1.00F); node = nodes["W_LeftHandPinky3"]; node.Scale1(0.70F, 1.00F, 1.00F); node = nodes["W_LeftHandPinky4"]; node.Scale1(0.70F, 1.00F, 1.00F); node = nodes["W_LeftHandRing1"]; node.Scale1(0.70F, 1.00F, 1.00F); node = nodes["W_LeftHandRing2"]; node.Scale1(0.70F, 1.00F, 1.00F); node = nodes["W_LeftHandRing3"]; node.Scale1(0.70F, 1.00F, 1.00F); node = nodes["W_LeftHandRing4"]; node.Scale1(0.70F, 1.00F, 1.00F); node = nodes["W_LeftHandMiddle1"]; node.Scale1(0.70F, 1.00F, 1.00F); node = nodes["W_LeftHandMiddle2"]; node.Scale1(0.70F, 1.00F, 1.00F); node = nodes["W_LeftHandMiddle3"]; node.Scale1(0.70F, 1.00F, 1.00F); node = nodes["W_LeftHandMiddle4"]; node.Scale1(0.70F, 1.00F, 1.00F); node = nodes["W_LeftHandIndex1"]; node.Scale1(0.70F, 1.00F, 1.00F); node = nodes["W_LeftHandIndex2"]; node.Scale1(0.70F, 1.00F, 1.00F); node = nodes["W_LeftHandIndex3"]; node.Scale1(0.70F, 1.00F, 1.00F); node = nodes["W_LeftHandIndex4"]; node.Scale1(0.70F, 1.00F, 1.00F); node = nodes["W_LeftHandThumb1"]; node.Scale1(0.70F, 1.00F, 1.00F); node = nodes["W_LeftHandThumb2"]; node.Scale1(0.70F, 1.00F, 1.00F); node = nodes["W_LeftHandThumb3"]; node.Scale1(0.70F, 1.00F, 1.00F); node = nodes["W_LeftHandThumb4"]; node.Scale1(0.70F, 1.00F, 1.00F); node = nodes["W_Neck"]; node.Scale1(1.00F, 0.72F, 1.00F); node = nodes["face_oya"]; node.Scale1(1.00F, 0.94F, 1.00F); node = nodes["sitakuti_oya"]; node.Scale1(1.00F, 0.94F, 1.00F); node = nodes["Ha_Down"]; node.Scale1(1.00F, 0.94F, 1.00F); node = nodes["sitakuti_l_1"]; node.Scale1(1.00F, 0.94F, 1.00F); node = nodes["sitakuti_r_1"]; node.Scale1(1.00F, 0.94F, 1.00F); node = nodes["sita_01"]; node.Scale1(1.00F, 0.94F, 1.00F); node = nodes["sita_02"]; node.Scale1(1.00F, 0.94F, 1.00F); node = nodes["sita_03"]; node.Scale1(1.00F, 0.94F, 1.00F); node = nodes["kutiyoko_r"]; node.Scale1(1.00F, 0.94F, 1.00F); node = nodes["kutiyoko_l"]; node.Scale1(1.00F, 0.94F, 1.00F); node = nodes["uekuti_oya"]; node.Scale1(1.00F, 0.94F, 1.00F); node = nodes["Ha_UP"]; node.Scale1(1.00F, 0.94F, 1.00F); node = nodes["uekuti_l_1"]; node.Scale1(1.00F, 0.94F, 1.00F); node = nodes["uekuti_r_1"]; node.Scale1(1.00F, 0.94F, 1.00F); node = nodes["Kami_Oya"]; node.Scale1(1.00F, 0.94F, 1.00F); node = nodes["kami_Front_Mid1_L"]; node.Scale1(1.00F, 0.94F, 1.00F); node = nodes["kami_Front_Mid2_L"]; node.Scale1(1.00F, 0.94F, 1.00F); node = nodes["kami_Front_Mid3_L"]; node.Scale1(1.00F, 0.94F, 1.00F); node = nodes["kami_Front_Mid1_R"]; node.Scale1(1.00F, 0.94F, 1.00F); node = nodes["kami_Front_Mid2_R"]; node.Scale1(1.00F, 0.94F, 1.00F); node = nodes["kami_Front_Mid3_R"]; node.Scale1(1.00F, 0.94F, 1.00F); node = nodes["Chichi_Right1"]; node.Scale1(0.90F, 1.00F, 0.91F); node = nodes["Chichi_Left1"]; node.Scale1(0.90F, 1.00F, 0.91F); } catch (KeyNotFoundException) { Console.WriteLine("node not found."); } tmo.Save(dest_file); System.IO.File.Delete(source_file); System.IO.File.Move(dest_file, source_file); Console.WriteLine("Pedoed: " + source_file); return(0); }
public static int UpdateTmo(string source_file) { string dest_file = source_file + ".tmp"; TMOFile tmo = new TMOFile(); try { tmo.Load(source_file); } catch (Exception ex) { Console.WriteLine(ex.Message); return(-1); } if (tmo.nodes[0].ShortName != "W_Hips") { Console.WriteLine("Passed: root node is not W_Hips"); return(1); } Dictionary <string, TMONode> nodes = new Dictionary <string, TMONode>(); foreach (TMONode node in tmo.nodes) { try { nodes.Add(node.ShortName, node); } catch (ArgumentException) { Console.WriteLine("node {0} already exists.", node.ShortName); } } try { TMONode node; node = nodes["Chichi_Right1"]; node.RotateY(DegreeToRadian(-5)); node.RotateX(DegreeToRadian(5)); node = nodes["Chichi_Left1"]; node.RotateY(DegreeToRadian(10)); node.RotateX(DegreeToRadian(10)); node = nodes["Chichi_Right2"]; node.Scale(1.8F, 1.8F, 2.2F); node = nodes["Chichi_Left2"]; node.Scale(1.8F, 1.8F, 2.2F); node = nodes["W_Spine_Dummy"]; node.Scale1(1.1F, 1.0F, 1.1F); node = nodes["W_Spine1"]; node.Scale1(1.2F, 1.0F, 1.2F); node = nodes["W_Spine2"]; node.Scale1(1.3F, 1.0F, 1.3F); node = nodes["W_Spine3"]; node.Scale1(1.1F, 1.0F, 1.1F); } catch (KeyNotFoundException) { Console.WriteLine("node not found."); } tmo.Save(dest_file); System.IO.File.Delete(source_file); System.IO.File.Move(dest_file, source_file); Console.WriteLine("Boined: " + source_file); return(0); }