Пример #1
0
        private void Open_File_B_Click(object sender, System.Windows.RoutedEventArgs e)
        {
            if (IsClosing)
            {
                return;
            }
            OpenFileDialog ofd = new OpenFileDialog()
            {
                Title       = "サウンドファイルを選択してください。",
                Filter      = "サウンドファイル(*.bnk;*.pck)|*.bnk;*.pck",
                Multiselect = false
            };

            if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                try
                {
                    string Ex = Path.GetExtension(ofd.FileName);
                    Sound_List.Items.Clear();
                    Change_List.Items.Clear();
                    Change_Sound_Full_Name.Clear();
                    if (Wwise_Bnk != null)
                    {
                        Wwise_Bnk.Bank_Clear();
                    }
                    if (Wwise_Pck != null)
                    {
                        Wwise_Pck.Pck_Clear();
                    }
                    if (Ex == ".bnk")
                    {
                        Wwise_Bnk = new Wwise_File_Extract_V2(ofd.FileName);
                        foreach (string Name_ID in Wwise_Bnk.Wwise_Get_Names())
                        {
                            Sound_List.Items.Add((Sound_List.Items.Count + 1) + ":" + Name_ID);
                        }
                        IsPCKFile = false;
                    }
                    else if (Ex == ".pck")
                    {
                        Wwise_Pck = new Wwise_File_Extract_V1(ofd.FileName);
                        foreach (string Name_ID in Wwise_Pck.Wwise_Get_Banks_ID())
                        {
                            Sound_List.Items.Add((Sound_List.Items.Count + 1) + ":" + Name_ID);
                        }
                        IsPCKFile = true;
                    }
                }
                catch (Exception e1)
                {
                    Sub_Code.Error_Log_Write(e1.Message);
                    Message_Feed_Out("エラー:ファイルを読み取れませんでした。");
                }
            }
        }
Пример #2
0
        private void Content_Load_B_Click(object sender, RoutedEventArgs e)
        {
            if (IsClosing)
            {
                return;
            }
            OpenFileDialog ofd = new OpenFileDialog()
            {
                Title  = ".wbeファイルを選択してください。",
                Filter = ".wbeファイル(*.wbe)|*.wbe"
            };

            if (ofd.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    StreamReader str       = Sub_Code.File_Decrypt_To_Stream(ofd.FileName, "Bank_Editor_Change_Sound_Save");
                    string       Open_File = str.ReadLine();
                    if (Path.GetExtension(Open_File) == ".bnk")
                    {
                        Sound_List.Items.Clear();
                        Wwise_Bnk = new Wwise_File_Extract_V2(Open_File);
                        foreach (string Name_ID in Wwise_Bnk.Wwise_Get_Names())
                        {
                            Sound_List.Items.Add((Sound_List.Items.Count + 1) + ":" + Name_ID);
                        }
                        IsPCKFile = false;
                    }
                    else if (Path.GetExtension(Open_File) == ".pck")
                    {
                        Sound_List.Items.Clear();
                        Wwise_Pck = new Wwise_File_Extract_V1(Open_File);
                        foreach (string Name_ID in Wwise_Pck.Wwise_Get_Banks_ID())
                        {
                            Sound_List.Items.Add((Sound_List.Items.Count + 1) + ":" + Name_ID);
                        }
                        IsPCKFile = true;
                    }
                    else
                    {
                        throw new Exception("ファイル形式が違います。対応しているファイル形式は.bnk、または.pckのみです。");
                    }
                    Change_List.Items.Clear();
                    Change_Sound_Full_Name.Clear();
                    string line;
                    while ((line = str.ReadLine()) != null)
                    {
                        int    Index     = int.Parse(line.Substring(0, line.IndexOf(':')));
                        string File_Name = line.Substring(line.IndexOf(':') + 1);
                        Change_List.Items.Add(Sound_List.Items[Index]);
                        Change_Sound_Full_Name.Add(File_Name);
                    }
                    str.Close();
                }
                catch (Exception e1)
                {
                    Sub_Code.Error_Log_Write(e1.Message);
                    Message_Feed_Out("正常に読み込めませんでした。");
                }
            }
        }
Пример #3
0
 //音声ファイルの言語を変更
 //例:/Data/WwiseSound/ja/voiceover_crew.bnk -> /Data/WwiseSound/en/voiceover_crew.bnk
 //bnk内のIDが異なるためそのままコピーすることはできません。
 public static void Voice_Change_Language(string From_BNK_File, string To_BNK_File, string Set_Language)
 {
     if (!File.Exists(Voice_Set.Special_Path + "/Wwise/SoundbanksInfo.json") || !File.Exists(From_BNK_File))
     {
         return;
     }
     try
     {
         Wwise_Class.Wwise_File_Extract_V2 Wwise_Bnk = new Wwise_Class.Wwise_File_Extract_V2(From_BNK_File);
         if (Directory.Exists(Voice_Set.Special_Path + "/Voice_Temp"))
         {
             Directory.Delete(Voice_Set.Special_Path + "/Voice_Temp", true);
         }
         Wwise_Bnk.Wwise_Extract_To_WEM_Directory(Voice_Set.Special_Path + "/Voice_Temp", 1);
         string Get_Language_ID = Wwise_Bnk.Wwise_Get_Name(0);
         Wwise_Bnk.Bank_Clear();
         StreamReader str              = new StreamReader(Voice_Set.Special_Path + "/Wwise/SoundbanksInfo.json");
         string       Read_Line        = "";
         int          Number           = 0;
         string       Get_Language_Now = "";
         while ((Read_Line = str.ReadLine()) != null)
         {
             if (Read_Line == "        \"Id\": \"" + Get_Language_ID + "\"")
             {
                 Get_Language_Now = File.ReadLines(Voice_Set.Special_Path + "/Wwise/SoundbanksInfo.json").Skip(Number + 1).First().Replace("        \"Language\": \"", "").Replace("\"", "");
             }
             Number++;
         }
         str.Close();
         if (Get_Language_Now != "")
         {
             List <string> Replace_Name_Voice = Get_Voices_ID(Get_Language_Now);
             foreach (string Replace_Name_Now in Replace_Name_Voice)
             {
                 string Name_Only = Replace_Name_Now.Substring(0, Replace_Name_Now.IndexOf(':'));
                 string ID_Only   = Replace_Name_Now.Substring(Replace_Name_Now.IndexOf(':') + 1);
                 File_Move(Voice_Set.Special_Path + "/Voice_Temp/" + ID_Only + ".wem", Voice_Set.Special_Path + "/Voice_Temp/" + Name_Only.Replace(".wav", ".wem"), true);
             }
             List <string> Get_Set_Language_ID = Get_Voices_ID(Set_Language);
             Wwise_Class.Wwise_File_Extract_V2 Wwise_Bnk_02 = new Wwise_Class.Wwise_File_Extract_V2(Voice_Set.Special_Path + "/Voice_Temp/voiceover_crew.bnk");
             List <string> New_ID = Wwise_Bnk_02.Wwise_Get_Names();
             for (int Number_01 = 0; Number_01 < New_ID.Count; Number_01++)
             {
                 foreach (string ID in Get_Set_Language_ID)
                 {
                     string Name_Only = ID.Substring(0, ID.IndexOf(':')).Replace(".wav", ".wem");
                     string ID_Only   = ID.Substring(ID.IndexOf(':') + 1);
                     if (ID_Only == New_ID[Number_01])
                     {
                         Wwise_Bnk_02.Bank_Edit_Sound(Number_01, Voice_Set.Special_Path + "/Voice_Temp/" + Name_Only, false);
                     }
                 }
             }
             Wwise_Bnk_02.Bank_Save(To_BNK_File);
             Wwise_Bnk_02.Bank_Clear();
         }
         else
         {
             Error_Log_Write("指定された.bnkファイルは音声ファイルでない可能性があります。");
         }
     }
     catch (Exception e)
     {
         Error_Log_Write(e.Message);
     }
 }