public async void Window_Show_V3(string BNK_Name, List <List <string> > Lists)
 {
     Opacity    = 0;
     Visibility = Visibility.Visible;
     Language_Left_B.Visibility      = Visibility.Hidden;
     Language_Right_B.Visibility     = Visibility.Hidden;
     Android_T.Visibility            = Visibility.Hidden;
     Volume_Set_C.Visibility         = Visibility.Hidden;
     Volume_Set_T.Visibility         = Visibility.Hidden;
     DVPL_C.Visibility               = Visibility.Hidden;
     DVPL_T.Visibility               = Visibility.Hidden;
     Exit_B.Visibility               = Visibility.Hidden;
     Default_Voice_Mode_C.Visibility = Visibility.Hidden;
     Default_Voice_Mode_T.Visibility = Visibility.Hidden;
     Save_B.Content = "保存";
     Configs_Load();
     SE_Dir         = Voice_Set.Special_Path + "/SE";
     Project_T.Text = "プロジェクト名:" + BNK_Name;
     for (int Number = 0; Number <= Lists.Count - 1; Number++)
     {
         string Name      = Voice_Set.Get_Voice_Type_Japanese_Name_V2(Number);
         int    Number_01 = Lists[Number].Count;
         Voice_Type.Add(Name);
         Voice_Type_Number.Add(Number_01);
         Voice_Lists.Items.Add(Name + ":" + Number_01 + "個");
     }
     while (Opacity < 1 && !IsClosing)
     {
         Opacity += Sub_Code.Window_Feed_Time;
         await Task.Delay(1000 / 60);
     }
 }
 public void Window_Show()
 {
     try
     {
         XDocument xml2  = XDocument.Load(Voice_Set.FTPClient.GetFileRead("/WoTB_Voice_Mod/" + Voice_Set.SRTTbacon_Server_Name + "/Server_Config.dat"));
         XElement  item2 = xml2.Element("Server_Create_Config");
         if (bool.Parse(item2.Element("IsEnablePassword").Value))
         {
             Set_Password_C.IsChecked = true;
             Set_Password_T.Text      = item2.Element("Password").Value;
         }
         R_18_C.IsChecked   = bool.Parse(item2.Element("IsEnableR18").Value);
         Explanation_T.Text = item2.Element("Explanation").Value;
     }
     catch
     {
         System.Windows.MessageBox.Show("プロジェクトデータが破損しています。管理者(SRTTbacon#2395)へご連絡ください。");
     }
     Project_Name_T.Text = Voice_Set.SRTTbacon_Server_Name;
     Message_T.Text      = "";
     Window_Feed_In();
     string[] Voice_Files = Directory.GetFiles(Special_Path + "/Server/" + Voice_Set.SRTTbacon_Server_Name + "/Voices", "*", SearchOption.TopDirectoryOnly);
     foreach (string File in Voice_Files)
     {
         string Name_Only = Path.GetFileName(File);
         if (!Voice_Set.Voice_Name_Hide(Name_Only))
         {
             Voice_List.Items.Add(Name_Only);
         }
     }
 }
Beispiel #3
0
        //Voice_Create.xaml.csから引用
        async Task BNK_Create_V2(string Voice_Dir, string Save_Dir)
        {
            if (!Directory.Exists(Voice_Dir))
            {
                return;
            }
            Message_T.Text = "プロジェクトファイルを作成しています...";
            await Task.Delay(50);

            FileInfo fi = new FileInfo(Voice_Set.Special_Path + "/Wwise/WoTB_Sound_Mod/Actor-Mixer Hierarchy/Default Work Unit.wwu");

            if (File.Exists(Voice_Set.Special_Path + "/Wwise/WoTB_Sound_Mod/Actor-Mixer Hierarchy/Backup.tmp") && fi.Length >= 900000)
            {
                File.Copy(Voice_Set.Special_Path + "/Wwise/WoTB_Sound_Mod/Actor-Mixer Hierarchy/Backup.tmp", Voice_Set.Special_Path + "/Wwise/WoTB_Sound_Mod/Actor-Mixer Hierarchy/Default Work Unit.wwu", true);
            }
            if (!File.Exists(Voice_Set.Special_Path + "/Wwise/WoTB_Sound_Mod/Actor-Mixer Hierarchy/Backup.tmp"))
            {
                File.Copy(Voice_Set.Special_Path + "/Wwise/WoTB_Sound_Mod/Actor-Mixer Hierarchy/Default Work Unit.wwu", Voice_Set.Special_Path + "/Wwise/WoTB_Sound_Mod/Actor-Mixer Hierarchy/Backup.tmp", true);
            }
            Wwise_Class.Wwise_Project_Create Wwise = new Wwise_Class.Wwise_Project_Create(Voice_Set.Special_Path + "/Wwise/WoTB_Sound_Mod");
            Voice_Set.Set_SE_Change_Name(Wwise.Project_Dir + "\\Originals\\Voices\\ja");
            Wwise.Sound_Add_Wwise(Voice_Dir);
            Wwise.Save();
            if (File.Exists(Voice_Dir + "/battle_bgm_01.wav"))
            {
                Message_T.Text = ".bnkファイルを作成しています...\nBGMファイルが含まれているため時間がかかります。";
            }
            else
            {
                Message_T.Text = ".bnkファイルを作成しています...";
            }
            await Task.Delay(50);

            Wwise.Project_Build("voiceover_crew", Save_Dir + "/voiceover_crew.bnk");
            await Task.Delay(500);

            Wwise.Project_Build("ui_battle", Save_Dir + "/ui_battle.bnk");
            await Task.Delay(500);

            Wwise.Project_Build("ui_battle_basic", Save_Dir + "/ui_battle_basic.bnk");
            await Task.Delay(500);

            Wwise.Project_Build("ui_chat_quick_commands", Save_Dir + "/ui_chat_quick_commands.bnk");
            await Task.Delay(500);

            Wwise.Project_Build("reload", Save_Dir + "/reload.bnk");
            Wwise.Clear();
            if (File.Exists(Voice_Set.Special_Path + "/Wwise/WoTB_Sound_Mod/Actor-Mixer Hierarchy/Backup.tmp"))
            {
                File.Copy(Voice_Set.Special_Path + "/Wwise/WoTB_Sound_Mod/Actor-Mixer Hierarchy/Backup.tmp", Voice_Set.Special_Path + "/Wwise/WoTB_Sound_Mod/Actor-Mixer Hierarchy/Default Work Unit.wwu", true);
            }
        }
 public void Window_Show_V2(string Project_Name, List <List <string> > Lists)
 {
     //画面を表示(オフラインモードで行った場合)
     Volume_Set_C.Visibility         = Visibility.Visible;
     Volume_Set_T.Visibility         = Visibility.Visible;
     Default_Voice_Mode_C.Visibility = Visibility.Visible;
     Default_Voice_Mode_T.Visibility = Visibility.Visible;
     Exit_B.Visibility           = Visibility.Visible;
     Save_B.Content              = "作成";
     Language_Left_B.Visibility  = Visibility.Visible;
     Language_Right_B.Visibility = Visibility.Visible;
     Android_T.Text              = "言語:" + Languages[Select_Language];
     Configs_Load();
     SE_Dir         = Voice_Set.Special_Path + "/SE";
     Project_T.Text = "プロジェクト名:" + Project_Name;
     for (int Number = 0; Number < Lists.Count; Number++)
     {
         string Name      = Voice_Set.Get_Voice_Type_Japanese_Name_V2(Number);
         int    Number_01 = Lists[Number].Count;
         Voice_Type.Add(Name);
         Voice_Type_Number.Add(Number_01);
         Voice_Lists.Items.Add(Name + ":" + Number_01 + "個");
     }
 }
 private void Enemy_Ricochet_Damage_B_Click(object sender, System.Windows.RoutedEventArgs e)
 {
     Voice_Set.Voice_Set_Name("tyoudan");
 }
 private void Own_Fire_Stop_B_Click(object sender, System.Windows.RoutedEventArgs e)
 {
     Voice_Set.Voice_Set_Name("syouka");
 }
 private void Gun_Damage_B_Click(object sender, System.Windows.RoutedEventArgs e)
 {
     Voice_Set.Voice_Set_Name("housinhason");
 }
 private void Enemy_Fire_B_Click(object sender, System.Windows.RoutedEventArgs e)
 {
     Voice_Set.Voice_Set_Name("tekikasai");
 }
 private void Engine_Functional_B_Click(object sender, System.Windows.RoutedEventArgs e)
 {
     Voice_Set.Voice_Set_Name("enjinhukkyuu");
 }
 private void Surveying_Destroy_B_Click(object sender, System.Windows.RoutedEventArgs e)
 {
     Voice_Set.Voice_Set_Name("kansokutaiha");
 }
 private void Surveying_Functional_B_Click(object sender, System.Windows.RoutedEventArgs e)
 {
     Voice_Set.Voice_Set_Name("kansokuhukkyuu");
 }
 private void Battle_B_Click(object sender, System.Windows.RoutedEventArgs e)
 {
     Voice_Set.Voice_Set_Name("battle");
 }
 private void Surveying_Damage_B_Click(object sender, System.Windows.RoutedEventArgs e)
 {
     Voice_Set.Voice_Set_Name("kansokuhason");
 }
 private void Radioman_Kill_B_Click(object sender, System.Windows.RoutedEventArgs e)
 {
     Voice_Set.Voice_Set_Name("musensyu");
 }
 private void Radio_Damage_B_Click(object sender, System.Windows.RoutedEventArgs e)
 {
     Voice_Set.Voice_Set_Name("musen");
 }
 private void Ally_Damage_B_Click(object sender, System.Windows.RoutedEventArgs e)
 {
     Voice_Set.Voice_Set_Name("mikata");
 }
 private void Commander_Kill_B_Click(object sender, System.Windows.RoutedEventArgs e)
 {
     Voice_Set.Voice_Set_Name("syatyou");
 }
 private void Track_Destroy_B_Click(object sender, System.Windows.RoutedEventArgs e)
 {
     Voice_Set.Voice_Set_Name("ritaitaiha");
 }
 private void Driver_Kill_B_Click(object sender, System.Windows.RoutedEventArgs e)
 {
     Voice_Set.Voice_Set_Name("souzyuusyu");
 }
 private void Track_Functional_B_Click(object sender, System.Windows.RoutedEventArgs e)
 {
     Voice_Set.Voice_Set_Name("ritaihukkyuu");
 }
 private void Enemy_Kill_B_Click(object sender, System.Windows.RoutedEventArgs e)
 {
     Voice_Set.Voice_Set_Name("gekiha");
 }
 private void Ammo_Damage_B_Click(object sender, System.Windows.RoutedEventArgs e)
 {
     Voice_Set.Voice_Set_Name("danyaku");
 }
 private void Own_Fire_Start_B_Click(object sender, System.Windows.RoutedEventArgs e)
 {
     Voice_Set.Voice_Set_Name("kasai");
 }
 private void Turret_Functional_B_Click(object sender, System.Windows.RoutedEventArgs e)
 {
     Voice_Set.Voice_Set_Name("houtouhukkyuu");
 }
 private void Fuel_Tank_Damage_B_Click(object sender, System.Windows.RoutedEventArgs e)
 {
     Voice_Set.Voice_Set_Name("nenryou");
 }
Beispiel #26
0
        //変換
        //fsbからwavファイルを抽出し、ファイル名を変更、adpcmの場合ファイルが破損しているため復元してから.bnkを作成
        private async void Chnage_To_Wwise_B_Click(object sender, RoutedEventArgs e)
        {
            if (IsClosing || Opacity < 1)
            {
                return;
            }
            if (Voice_FSB_File == "")
            {
                Message_Feed_Out("FSB file is not selected.");
                return;
            }
            try
            {
                IsClosing = true;
                BetterFolderBrowser sfd = new BetterFolderBrowser()
                {
                    Title       = "Please specify the save destination folder.",
                    RootFolder  = Sub_Code.Get_OpenDirectory_Path(),
                    Multiselect = false
                };
                if (sfd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                {
                    FModChannel.setPaused(true);
                    await Task.Delay(50);

                    Sub_Code.Set_Directory_Path(sfd.SelectedFolder);
                    FSB_Details_L.Items[2] = "Output:" + sfd.SelectedFolder.Substring(sfd.SelectedFolder.LastIndexOf("\\") + 1);
                    if (Directory.Exists(Voice_Set.Special_Path + "/Wwise/FSB_Extract_Voices_TMP"))
                    {
                        Directory.Delete(Voice_Set.Special_Path + "/Wwise/FSB_Extract_Voices_TMP", true);
                    }
                    if (Directory.Exists(Voice_Set.Special_Path + "/Wwise/FSB_Extract_Voices"))
                    {
                        Directory.Delete(Voice_Set.Special_Path + "/Wwise/FSB_Extract_Voices", true);
                    }
                    Message_T.Text = "Extracting audio from FSB file...";
                    await Task.Delay(50);

                    Fmod_File_Extract_V2.FSB_Extract_To_Directory(Voice_FSB_File, Voice_Set.Special_Path + "/Wwise/FSB_Extract_Voices_TMP");
                    Message_T.Text = "Encoding *.wav files...";
                    await Task.Delay(50);

                    await Multithread.Convert_To_Wav(Voice_Set.Special_Path + "/Wwise/FSB_Extract_Voices_TMP", Voice_Set.Special_Path + "/Wwise/FSB_Extract_Voices", true);

                    Directory.Delete(Voice_Set.Special_Path + "/Wwise/FSB_Extract_Voices_TMP", true);
                    Message_T.Text = "Renaming *.wav files...";
                    await Task.Delay(50);

                    Voice_Set.Voice_BGM_Name_Change_From_FSB(Voice_Set.Special_Path + "/Wwise/FSB_Extract_Voices");
                    string[] Reload_Files = Directory.GetFiles(Voice_Set.Special_Path + "/Wwise/FSB_Extract_Voices", "reload_*", SearchOption.TopDirectoryOnly);
                    foreach (string Reload_Now in Reload_Files)
                    {
                        FileInfo fi_reload = new FileInfo(Reload_Now);
                        if (fi_reload.Length == 290340 || fi_reload.Length == 335796 || fi_reload.Length == 336036 || fi_reload.Length == 445836 || fi_reload.Length == 497268 || fi_reload.Length == 541980)
                        {
                            fi_reload.Delete();
                        }
                    }
                    string[] Voice_Files = Directory.GetFiles(Voice_Set.Special_Path + "/Wwise/FSB_Extract_Voices", "*.wav", SearchOption.TopDirectoryOnly);
                    //音声の場合はたいていファイル名の語尾に_01や_02と書いているため、書かれていないファイルは削除する
                    foreach (string Voice_Now in Voice_Files)
                    {
                        if (!Path.GetFileNameWithoutExtension(Voice_Now).Contains("_") || !Sub_Code.IsIncludeInt_From_String(Path.GetFileNameWithoutExtension(Voice_Now), "_"))
                        {
                            File.Delete(Voice_Now);
                        }
                    }
                    if (File.Exists(Voice_Set.Special_Path + "/Wwise/FSB_Extract_Voices/lock_on.wav"))
                    {
                        File.Delete(Voice_Set.Special_Path + "/Wwise/FSB_Extract_Voices/lock_on.wav");
                    }
                    Message_T.Text = "Creating a BNK file...";
                    await Task.Delay(50);

                    FileInfo fi = new FileInfo(Voice_Set.Special_Path + "/Wwise/WoTB_Sound_Mod/Actor-Mixer Hierarchy/Default Work Unit.wwu");
                    if (File.Exists(Voice_Set.Special_Path + "/Wwise/WoTB_Sound_Mod/Actor-Mixer Hierarchy/Backup.tmp") && fi.Length >= 800000)
                    {
                        File.Copy(Voice_Set.Special_Path + "/Wwise/WoTB_Sound_Mod/Actor-Mixer Hierarchy/Backup.tmp", Voice_Set.Special_Path + "/Wwise/WoTB_Sound_Mod/Actor-Mixer Hierarchy/Default Work Unit.wwu", true);
                    }
                    if (!File.Exists(Voice_Set.Special_Path + "/Wwise/WoTB_Sound_Mod/Actor-Mixer Hierarchy/Backup.tmp"))
                    {
                        File.Copy(Voice_Set.Special_Path + "/Wwise/WoTB_Sound_Mod/Actor-Mixer Hierarchy/Default Work Unit.wwu", Voice_Set.Special_Path + "/Wwise/WoTB_Sound_Mod/Actor-Mixer Hierarchy/Backup.tmp", true);
                    }
                    WoTB_Voice_Mod_Creater.Wwise_Class.Wwise_Project_Create Wwise = new WoTB_Voice_Mod_Creater.Wwise_Class.Wwise_Project_Create(Voice_Set.Special_Path + "/Wwise/WoTB_Sound_Mod");
                    Wwise.Sound_Add_Wwise(Voice_Set.Special_Path + "/Wwise/FSB_Extract_Voices");
                    Wwise.Save();
                    Directory.Delete(Voice_Set.Special_Path + "/Wwise/FSB_Extract_Voices", true);
                    Wwise.Project_Build("voiceover_crew", sfd.SelectedFolder + "/voiceover_crew.bnk");

                    /*await Task.Delay(500);
                     * Wwise.Project_Build("ui_battle", sfd.SelectedFolder + "/ui_battle.bnk");
                     * await Task.Delay(500);
                     * Wwise.Project_Build("ui_chat_quick_commands", sfd.SelectedFolder + "/ui_chat_quick_commands.bnk");
                     * await Task.Delay(500);
                     * Wwise.Project_Build("reload", sfd.SelectedFolder + "/reload.bnk");*/
                    Wwise.Clear();
                    if (File.Exists(Voice_Set.Special_Path + "/Wwise/WoTB_Sound_Mod/Actor-Mixer Hierarchy/Backup.tmp"))
                    {
                        File.Copy(Voice_Set.Special_Path + "/Wwise/WoTB_Sound_Mod/Actor-Mixer Hierarchy/Backup.tmp", Voice_Set.Special_Path + "/Wwise/WoTB_Sound_Mod/Actor-Mixer Hierarchy/Default Work Unit.wwu", true);
                    }
                    if (DVPL_C.IsChecked.Value)
                    {
                        Message_T.Text = "Encoding to DVPL format...";
                        await Task.Delay(50);

                        DVPL.DVPL_Pack(sfd.SelectedFolder + "/voiceover_crew.bnk", sfd.SelectedFolder + "/voiceover_crew.bnk.dvpl", true);

                        /*DVPL.DVPL_Pack(sfd.SelectedFolder + "/ui_battle.bnk", sfd.SelectedFolder + "/ui_battle.bnk.dvpl", true);
                         * DVPL.DVPL_Pack(sfd.SelectedFolder + "/ui_chat_quick_commands.bnk", sfd.SelectedFolder + "/ui_chat_quick_commands.bnk.dvpl", true);
                         * DVPL.DVPL_Pack(sfd.SelectedFolder + "/reload.bnk", sfd.SelectedFolder + "/reload.bnk.dvpl", true);*/
                    }
                    Message_Feed_Out("The operation is complete. If the bnk file is extremely small in size, it may have failed.");
                }
            }
            catch (Exception e1)
            {
                Sub_Code.Error_Log_Write(e1.Message);
                Message_Feed_Out("An error has occurred. See Log.txt for details.");
            }
            IsClosing = false;
            Position_Change();
        }
 private void Gun_Destroy_B_Click(object sender, System.Windows.RoutedEventArgs e)
 {
     Voice_Set.Voice_Set_Name("housintaiha");
 }
 private void Enemy_Crit_Damage_B_Click(object sender, System.Windows.RoutedEventArgs e)
 {
     Voice_Set.Voice_Set_Name("tokusyu");
 }
 private void Enemy_Enable_Damage_B_Click(object sender, System.Windows.RoutedEventArgs e)
 {
     Voice_Set.Voice_Set_Name("kantuu");
 }
Beispiel #30
0
        //PC版WoTの音声ファイルを指定
        private async void Open_File_B_Click(object sender, RoutedEventArgs e)
        {
            if (IsClosing || IsBusy)
            {
                return;
            }
            OpenFileDialog ofd = new OpenFileDialog()
            {
                Title       = "BNKファイルを選択してください。",
                Multiselect = false,
                Filter      = "BNKファイル(*.bnk)|*.bnk"
            };

            if (ofd.ShowDialog() == DialogResult.OK)
            {
                string PCK_File_Path = Path.GetDirectoryName(ofd.FileName) + "/" + Path.GetFileNameWithoutExtension(ofd.FileName) + ".pck";
                if (PCK_Mode_C.IsChecked.Value && !File.Exists(PCK_File_Path))
                {
                    Message_Feed_Out(Path.GetFileNameWithoutExtension(ofd.FileName) + ".pckが見つかりませんでした。");
                    IsBusy = false;
                    return;
                }
                string XML_File_Path = Path.GetDirectoryName(ofd.FileName) + "/audio_mods.xml";
                if (XML_Mode_C.IsChecked.Value && !File.Exists(XML_File_Path))
                {
                    Message_Feed_Out("audio_mods.xmlが見つかりませんでした。");
                    IsBusy = false;
                    return;
                }
                Bass.BASS_ChannelStop(Stream);
                Bass.BASS_StreamFree(Stream);
                try
                {
                    if (Directory.Exists(Voice_Set.Special_Path + "/Wwise/BNK_WAV"))
                    {
                        Directory.Delete(Voice_Set.Special_Path + "/Wwise/BNK_WAV", true);
                    }
                }
                catch (Exception e1)
                {
                    Sub_Code.Error_Log_Write(e1.Message);
                }
                IsBusy = true;
                try
                {
                    Message_T.Text = ".bnkファイルを解析しています...";
                    await Task.Delay(50);

                    Wwise_Class.BNK_Parse p = new Wwise_Class.BNK_Parse(ofd.FileName);
                    Message_T.Text = "audio_mods.xmlからイベントIDを取得しています...";
                    await Task.Delay(50);

                    if (!p.IsVoiceFile())
                    {
                        Message_Feed_Out("選択されたbnkファイルは音声データではありません。");
                        IsBusy = false;
                        return;
                    }
                    Message_T.Text = "各イベント内の音声IDを取得しています...";
                    await Task.Delay(50);

                    BNK_Voices_Enable.Clear();
                    BNK_Voices = p.Get_Voices(false);
                    if (XML_Mode_C.IsChecked.Value)
                    {
                        p.Get_Event_ID_From_XML(XML_File_Path);
                        List <List <string> > Temp = p.Get_Voices(false);
                        for (int Number = 0; Number < Temp.Count; Number++)
                        {
                            if (BNK_Voices[Number].Count == 0)
                            {
                                BNK_Voices[Number] = Temp[Number];
                            }
                        }
                    }
                    List <string> Need_Files = new List <string>();
                    foreach (List <string> Types in BNK_Voices)
                    {
                        BNK_Voices_Enable.Add(new List <bool>());
                        foreach (string File_Now in Types)
                        {
                            Need_Files.Add(File_Now);
                            BNK_Voices_Enable[BNK_Voices_Enable.Count - 1].Add(true);
                        }
                    }
                    if (Need_Files.Count == 0)
                    {
                        BNK_Voices_Enable.Clear();
                        Message_T.Text = "移植できるファイルが見つからなかったため、特殊な方法で解析しています...";
                        await Task.Delay(50);

                        p.SpecialBNKFileMode = 1;
                        BNK_Voices           = p.Get_Voices(false);
                        foreach (List <string> Types in BNK_Voices)
                        {
                            BNK_Voices_Enable.Add(new List <bool>());
                            foreach (string File_Now in Types)
                            {
                                Need_Files.Add(File_Now);
                                BNK_Voices_Enable[BNK_Voices_Enable.Count - 1].Add(true);
                            }
                        }
                        if (Need_Files.Count == 0)
                        {
                            p.Clear();
                            BNK_Voices.Clear();
                            BNK_Voices_Enable.Clear();
                            Message_Feed_Out("移植できる音声が見つかりませんでした。");
                            IsBusy = false;
                            return;
                        }
                    }
                    p.Clear();
                    Get_Available_Voice_Count();
                    Voices_L.Items.Clear();
                    Voice_Type_L.Items.Clear();
                    for (int Number = 0; Number < BNK_Voices.Count; Number++)
                    {
                        Voices_L.Items.Add(Voice_Set.Get_Voice_Type_Japanese_Name_V2(Number) + " : " + BNK_Voices[Number].Count + "個");
                    }
                    BGM_Count_Change();
                    if (PCK_Mode_C.IsChecked.Value)
                    {
                        Message_T.Text = ".wemファイルに変換しています...";
                        await Task.Delay(50);

                        Wwise_PCK        = new Wwise_File_Extract_V1(PCK_File_Path);
                        Max_Stream_Count = Wwise_PCK.Wwise_Get_File_Count();
                        await Wwise_PCK.Async_Wwise_Extract_To_WEM_Directory(Voice_Set.Special_Path + "/Wwise/BNK_WAV");

                        Message_T.Text = ".wemファイルを.oggに変換しています...";
                        await Task.Delay(50);

                        await Wwise_PCK.Async_Wwise_Extract_To_OGG_Directory(Voice_Set.Special_Path + "/Wwise/BNK_WAV");
                    }
                    else
                    {
                        Message_T.Text = ".wavまたは.oggに変換しています...";
                        await Task.Delay(50);

                        Wwise_BNK        = new Wwise_File_Extract_V2(ofd.FileName);
                        Max_Stream_Count = Wwise_BNK.Wwise_Get_Numbers();
                        Wwise_BNK.Wwise_Extract_To_WEM_Directory_V2(Voice_Set.Special_Path + "/Wwise/BNK_WAV");
                    }
                    string[] Files = Directory.GetFiles(Voice_Set.Special_Path + "/Wwise/BNK_WAV", "*.wem", SearchOption.TopDirectoryOnly);
                    foreach (string File_Now in Files)
                    {
                        Sub_Code.File_Delete_V2(File_Now);
                    }
                    Message_T.Text = "不要な音声ファイルを削除しています...";
                    await Task.Delay(50);

                    string[] All_Files = Directory.GetFiles(Voice_Set.Special_Path + "/Wwise/BNK_WAV", "*", SearchOption.TopDirectoryOnly);
                    foreach (string File_Now in All_Files)
                    {
                        if (!Need_Files.Contains(Path.GetFileNameWithoutExtension(File_Now)))
                        {
                            Sub_Code.File_Delete_V2(File_Now);
                        }
                    }
                    File_Name_T.Text = Path.GetFileName(ofd.FileName);
                    Message_Feed_Out(".bnkファイルをロードしました。");
                }
                catch (Exception e1)
                {
                    Sub_Code.Error_Log_Write(e1.Message);
                    Message_Feed_Out("解析に失敗しました。Error_Log.txtを参照してください。");
                }
                IsBusy = false;
            }
        }