public void ReplaceAnimation(object sender, EventArgs args) { using (OpenFileDialog of = new OpenFileDialog()) { of.ShowDialog(); foreach (string filename in of.FileNames) { if (filename.EndsWith(".omo")) { Animation a = OMOOld.read(new FileData(filename)); a.Text = filename; ReplaceMe(a); } if (filename.EndsWith(".smd")) { Animation a = new Animation(filename.Replace(".smd", "")); Smd.Read(filename, a, Runtime.TargetVbn); ReplaceMe(a); } if (filename.EndsWith(".chr0")) { Animation a = (CHR0.read(new FileData(filename), Runtime.TargetVbn)); ReplaceMe(a); } if (filename.EndsWith(".anim")) { Animation a = (ANIM.read(filename, Runtime.TargetVbn)); ReplaceMe(a); } } } }
private void exportAllAsSMDToolStripMenuItem_Click(object sender, EventArgs e) { using (var ofd = new FolderSelectDialog()) { ofd.Title = "Character Folder"; if (ofd.ShowDialog() == DialogResult.OK) { string path = ofd.SelectedPath; foreach (TreeNode b in treeView1.Nodes) { foreach (TreeNode v in b.Nodes) { foreach (TreeNode f in v.Nodes) { foreach (TreeNode a in f.Nodes) { if (a is Animation) { Smd.Save(((Animation)a), Runtime.TargetVbn, path + "\\" + a.Text + ".smd"); } } } } } } } }
public void Import(object sender, EventArgs args) { using (OpenFileDialog fd = new OpenFileDialog()) { fd.Filter = "Supported Formats|*.omo;*.anim;*.chr0;*.smd;*.mta;|" + "Object Motion|*.omo|" + "Maya Animation|*.anim|" + "NW4R Animation|*.chr0|" + "Source Animation (SMD)|*.smd|" + "Smash 4 Material Animation (MTA)|*.mta|" + "All files(*.*)|*.*"; if (fd.ShowDialog() == DialogResult.OK) { foreach (string filename in fd.FileNames) { if (filename.EndsWith(".mta")) { MTA mta = new MTA(); try { mta.Read(filename); Runtime.MaterialAnimations.Add(filename, mta); Nodes.Add(filename); } catch (Exception) { mta = null; } } else if (filename.EndsWith(".smd")) { var anim = new Animation(filename); if (Runtime.TargetVbn == null) { Runtime.TargetVbn = new VBN(); } Smd.Read(filename, anim, Runtime.TargetVbn); Nodes.Add(anim); } if (filename.EndsWith(".omo")) { Animation a = OMOOld.read(new FileData(filename)); a.Text = filename; Nodes.Add(a); } if (filename.EndsWith(".chr0")) { Nodes.Add(CHR0.read(new FileData(filename), Runtime.TargetVbn)); } if (filename.EndsWith(".anim")) { Nodes.Add(ANIM.read(filename, Runtime.TargetVbn)); } } } } }
public void SaveAs(object sender, EventArgs args) { if (Runtime.TargetVbn == null) { MessageBox.Show("You must have a bone-set (VBN) selected to save animations."); return; } using (var sfd = new SaveFileDialog()) { sfd.Filter = "Supported Files (.omo, .anim, .smd)|*.omo;*.anim;*.smd|" + "Maya Anim (.anim)|*.anim|" + "Object Motion (.omo)|*.omo|" + "Source Animation (.smd)|*.smd|" + "All Files (*.*)|*.*"; sfd.DefaultExt = "smd"; //Set a default extension to prevent crashing if not specified by user if (sfd.ShowDialog() == DialogResult.OK) { sfd.FileName = sfd.FileName; if (sfd.FileName.EndsWith(".anim")) { if (Tag is AnimTrack) { ((AnimTrack)Tag).CreateAnim(sfd.FileName, Runtime.TargetVbn); } else { ANIM.CreateANIM(sfd.FileName, this, Runtime.TargetVbn); } } if (sfd.FileName.EndsWith(".omo")) { if (Tag is FileData) { FileOutput o = new FileOutput(); o.WriteBytes(((FileData)Tag).GetSection(0, ((FileData)Tag).Size())); o.Save(sfd.FileName); } else { File.WriteAllBytes(sfd.FileName, OMOOld.CreateOMOFromAnimation(this, Runtime.TargetVbn)); } } if (sfd.FileName.EndsWith(".smd")) { Smd.Save(this, Runtime.TargetVbn, sfd.FileName); } } } }