void Add_CAkCommon(BNK_Relation Temp_Relation, int From_Line, int To_Line) { More_Class.List_Add(Actor_Mixer_Hierarchy_Project, "<PropertyList>"); int Add_Property_Mode = 0; for (int Number = From_Line; Number <= To_Line; Number++) { if (Read_All[Number].Contains("<object name=\"AkPropBundle<AkPropValue,unsigned char>\">")) { Add_Property_Mode = 1; } else if (Read_All[Number].Contains("<object name=\"AkPropBundle<RANGED_MODIFIERS<AkPropValue>>\">")) { Add_Property_Mode = 2; } if (Read_All[Number].Contains("valuefmt=\"0x06[MakeUpGain]\"")) { string strValue = Read_All[Number].Remove(0, Read_All[Number].IndexOf("value=\"") + 7); strValue = strValue.Remove(strValue.LastIndexOf("\"")); More_Class.List_Add(Actor_Mixer_Hierarchy_Project, "<Property Name=\"MakeUpGain\" Type=\"Real64\">"); More_Class.List_Add(Actor_Mixer_Hierarchy_Project, "<ValueList>"); More_Class.List_Add(Actor_Mixer_Hierarchy_Project, "<Value>" + strValue + "</Value>"); More_Class.List_Add(Actor_Mixer_Hierarchy_Project, "</ValueList>"); More_Class.List_Add(Actor_Mixer_Hierarchy_Project, "</Property>"); continue; } if (Read_All[Number].Contains("<object name=\"PositioningParams\">")) { break; } } }
void Add_CAkLayerCntr(BNK_Relation Temp_Relation, int From_Line, int To_Line) { string Temp_GUID = Guid.NewGuid().ToString().ToUpper(); More_Class.List_Add(Actor_Mixer_Hierarchy_Project, "<ActorMixer Name=\"" + Temp_Relation.My + "\" ID=\"{" + Temp_GUID + "}\" ShortID=\"" + Temp_Relation.My + "\">"); // Add_CAkCommon(Temp_Relation, From_Line, To_Line); }
//以下の文字を指定した行に追加 //GUIDやSourceIDはどんな数でも問題ないっぽいのでランダムに作成させる bool List_Add_File(int Line_Number, string FileName, string Language) { try { FileName = FileName.Replace(".wav", ""); string Sound_GUID = Guid.NewGuid().ToString().ToUpper(); string AudioFileSource_GUID = Guid.NewGuid().ToString().ToUpper(); string Replace_Name = FileName.Replace(".", "_"); uint Sound_ID = WwiseHash.HashGUID(Sound_GUID); uint AudioFileSource_ID = WwiseHash.HashGUID(AudioFileSource_GUID); //BGMはあとから変更できるように500000000から始まるように設定 if (FileName.Contains("battle_bgm_")) { AudioFileSource_ID = (uint)(500000000 + Battle_Number); Battle_Number++; } More_Class.List_Init(Line_Number); More_Class.List_Add(Actor_Mixer_Hierarchy, "<Sound Name=\"" + Replace_Name + "\" ID=\"{" + Sound_GUID + "}\" ShortID=\"" + Sound_ID + "\">"); if (Language != "SFX") { More_Class.List_Add(Actor_Mixer_Hierarchy, "<PropertyList>"); More_Class.List_Add(Actor_Mixer_Hierarchy, "<Property Name=\"IsVoice\" Type=\"bool\" Value=\"True\"/>"); More_Class.List_Add(Actor_Mixer_Hierarchy, "</PropertyList>"); } More_Class.List_Add(Actor_Mixer_Hierarchy, "<ReferenceList>"); More_Class.List_Add(Actor_Mixer_Hierarchy, "<Reference Name=\"Conversion\">"); More_Class.List_Add(Actor_Mixer_Hierarchy, "<ObjectRef Name=\"Vorbis Quality High\" ID=\"{" + Vorbis_Quality_High_ID + "}\" WorkUnitID=\"{" + Vorbis_Quality_High_WorkID + "}\"/>"); More_Class.List_Add(Actor_Mixer_Hierarchy, "</Reference>"); More_Class.List_Add(Actor_Mixer_Hierarchy, "<Reference Name=\"OutputBus\">"); More_Class.List_Add(Actor_Mixer_Hierarchy, "<ObjectRef Name=\"Master Audio Bus\" ID=\"{" + Master_Audio_Bus_ID + "}\" WorkUnitID=\"{" + Master_Audio_Bus_WorkID + "}\"/>"); More_Class.List_Add(Actor_Mixer_Hierarchy, "</Reference>"); More_Class.List_Add(Actor_Mixer_Hierarchy, "</ReferenceList>"); More_Class.List_Add(Actor_Mixer_Hierarchy, "<ChildrenList>"); More_Class.List_Add(Actor_Mixer_Hierarchy, "<AudioFileSource Name=\"" + Replace_Name + "\" ID=\"{" + AudioFileSource_GUID + "}\">"); More_Class.List_Add(Actor_Mixer_Hierarchy, "<Language>" + Language + "</Language>"); More_Class.List_Add(Actor_Mixer_Hierarchy, "<AudioFile>" + FileName + ".wav</AudioFile>"); More_Class.List_Add(Actor_Mixer_Hierarchy, "<MediaIDList>"); More_Class.List_Add(Actor_Mixer_Hierarchy, "<MediaID ID=\"" + AudioFileSource_ID + "\"/>"); More_Class.List_Add(Actor_Mixer_Hierarchy, "</MediaIDList>"); More_Class.List_Add(Actor_Mixer_Hierarchy, "</AudioFileSource>"); More_Class.List_Add(Actor_Mixer_Hierarchy, "</ChildrenList>"); More_Class.List_Add(Actor_Mixer_Hierarchy, "<ActiveSourceList>"); More_Class.List_Add(Actor_Mixer_Hierarchy, "<ActiveSource Name=\"" + Replace_Name + "\" ID=\"{" + AudioFileSource_GUID + "}\" Platform=\"Linked\"/>"); More_Class.List_Add(Actor_Mixer_Hierarchy, "</ActiveSourceList>"); More_Class.List_Add(Actor_Mixer_Hierarchy, "</Sound>"); return(true); } catch (Exception e) { Sub_Code.Error_Log_Write(e.Message); return(false); } }
//取得したデータから指定したイベントにサウンドを追加(Save()が呼ばれるまで保存しない) public bool Add_Sound(string Container_ShortID, string Audio_File, string Language) { if (!File.Exists(Audio_File) || Path.GetExtension(Audio_File) != ".wav" || Project_Dir == "") { return(false); } try { if (Language == "SFX") { File.Copy(Audio_File, Project_Dir + "/Originals/SFX/" + Path.GetFileName(Audio_File), true); Add_Wav_Files.Add(Project_Dir + "/Originals/SFX/" + Path.GetFileName(Audio_File)); } else { File.Copy(Audio_File, Project_Dir + "/Originals/Voices/" + Language + "/" + Path.GetFileName(Audio_File), true); Add_Wav_Files.Add(Project_Dir + "/Originals/Voices/" + Language + "/" + Path.GetFileName(Audio_File)); } int ShortID_Line = 0; for (int Number = 0; Number < Actor_Mixer_Hierarchy.Count; Number++) { if (Actor_Mixer_Hierarchy[Number].Contains("ShortID=\"" + Container_ShortID + "\"")) { ShortID_Line = Number; break; } } if (ShortID_Line == 0) { return(false); } int ChildrenList_Line = 0; int ReferenceListEnd_Line = 0; for (int Number = ShortID_Line; Number < Actor_Mixer_Hierarchy.Count; Number++) { if (Actor_Mixer_Hierarchy[Number].Contains("<ChildrenList>")) { ChildrenList_Line = Number; break; } if (Actor_Mixer_Hierarchy[Number].Contains("</ReferenceList>")) { ReferenceListEnd_Line = Number; } if (Actor_Mixer_Hierarchy[Number].Contains("</RandomSequenceContainer>")) { break; } } if (ChildrenList_Line == 0 && ReferenceListEnd_Line == 0) { return(false); } else if (ChildrenList_Line == 0) { More_Class.List_Init(ReferenceListEnd_Line + 1); More_Class.List_Add(Actor_Mixer_Hierarchy, "<ChildrenList>"); More_Class.List_Add(Actor_Mixer_Hierarchy, "</ChildrenList>"); return(List_Add_File(ReferenceListEnd_Line + 2, Path.GetFileName(Audio_File), Language)); } else { return(List_Add_File(ChildrenList_Line + 1, Path.GetFileName(Audio_File), Language)); } } catch { return(false); } }