public static void Initialize() { CriAtomConfig atomConfig = new CriAtomConfig(); CriAtomPlugin.SetConfigParameters( Math.Max(atomConfig.maxVirtualVoices, CriAtomPlugin.GetRequiredMaxVirtualVoices(atomConfig)), atomConfig.maxVoiceLimitGroups, atomConfig.maxCategories, atomConfig.standardVoicePoolConfig.memoryVoices, atomConfig.standardVoicePoolConfig.streamingVoices, atomConfig.hcaMxVoicePoolConfig.memoryVoices, atomConfig.hcaMxVoicePoolConfig.streamingVoices, atomConfig.outputSamplingRate, atomConfig.asrOutputChannels, atomConfig.usesInGamePreview, atomConfig.serverFrequency, atomConfig.maxParameterBlocks, atomConfig.categoriesPerPlayback, atomConfig.maxBuses, false); CriAtomPlugin.SetConfigAdditionalParameters_PC( atomConfig.pcBufferingTime ); CriAtomPlugin.InitializeLibrary(); }
public static void InitializePluginForEditor() { if (CriAtomPlugin.IsLibraryInitialized()) { return; } var criInitCom = FindObjectOfType <CriWareInitializer>(); if (criInitCom != null) { if (criInitCom.initializesFileSystem) { CriFsConfig config = criInitCom.fileSystemConfig; CriFsPlugin.SetConfigParameters( config.numberOfLoaders, config.numberOfBinders, config.numberOfInstallers, (config.installBufferSize * 1024), config.maxPath, config.minimizeFileDescriptorUsage, config.enableCrcCheck ); } if (criInitCom.initializesAtom) { CriAtomConfig config = criInitCom.atomConfig; CriAtomPlugin.SetConfigParameters( Mathf.Max(config.maxVirtualVoices, CriAtomPlugin.GetRequiredMaxVirtualVoices(config)), config.maxVoiceLimitGroups, config.maxCategories, config.maxSequenceEventsPerFrame, config.maxBeatSyncCallbacksPerFrame, config.standardVoicePoolConfig.memoryVoices, config.standardVoicePoolConfig.streamingVoices, config.hcaMxVoicePoolConfig.memoryVoices, config.hcaMxVoicePoolConfig.streamingVoices, config.outputSamplingRate, config.asrOutputChannels, config.usesInGamePreview, config.serverFrequency, config.maxParameterBlocks, config.categoriesPerPlayback, config.maxBuses, config.vrMode); CriAtomPlugin.SetConfigAdditionalParameters_PC( config.pcBufferingTime ); } } CriAtomPlugin.InitializeLibrary(); }
public static int GetRequiredMaxVirtualVoices(CriAtomConfig atomConfig) { /* バーチャルボイスは、全ボイスプールのボイスの合計値よりも多くなくてはならない */ int requiredVirtualVoices = 0; requiredVirtualVoices += atomConfig.standardVoicePoolConfig.memoryVoices; requiredVirtualVoices += atomConfig.standardVoicePoolConfig.streamingVoices; requiredVirtualVoices += atomConfig.hcaMxVoicePoolConfig.memoryVoices; requiredVirtualVoices += atomConfig.hcaMxVoicePoolConfig.streamingVoices; #if UNITY_ANDROID requiredVirtualVoices += atomConfig.androidLowLatencyStandardVoicePoolConfig.memoryVoices; requiredVirtualVoices += atomConfig.androidLowLatencyStandardVoicePoolConfig.streamingVoices; #endif return(requiredVirtualVoices); }
public static bool InitializeAtom(CriAtomConfig config) { /* CRI Atomライブラリの初期化 */ if (CriAtomPlugin.IsLibraryInitialized() == false) { /* 初期化処理の実行 */ CriAtomPlugin.SetConfigParameters( (int)Math.Max(config.maxVirtualVoices, CriAtomPlugin.GetRequiredMaxVirtualVoices(config)), config.maxVoiceLimitGroups, config.maxCategories, config.maxSequenceEventsPerFrame, config.maxBeatSyncCallbacksPerFrame, config.standardVoicePoolConfig.memoryVoices, config.standardVoicePoolConfig.streamingVoices, config.hcaMxVoicePoolConfig.memoryVoices, config.hcaMxVoicePoolConfig.streamingVoices, config.outputSamplingRate, config.asrOutputChannels, config.usesInGamePreview, config.serverFrequency, config.maxParameterBlocks, config.categoriesPerPlayback, config.maxBuses, config.vrMode); CriAtomPlugin.SetConfigAdditionalParameters_PC( config.pcBufferingTime ); CriAtomPlugin.SetConfigAdditionalParameters_IOS( (uint)Math.Max(config.iosBufferingTime, 16), config.iosOverrideIPodMusic ); /* Android 固有の初期化パラメータを登録 */ { /* Ver.2.03.03 以前は 0 がデフォルト値だったことの互換性維持のための処理 */ if (config.androidBufferingTime == 0) { config.androidBufferingTime = (int)(4 * 1000.0 / config.serverFrequency); } if (config.androidStartBufferingTime == 0) { config.androidStartBufferingTime = (int)(3 * 1000.0 / config.serverFrequency); } #if !UNITY_EDITOR && UNITY_ANDROID CriAtomEx.androidDefaultSoundRendererType = config.androidForceToUseAsrForDefaultPlayback ? CriAtomEx.SoundRendererType.Asr : CriAtomEx.SoundRendererType.Default; #endif CriAtomPlugin.SetConfigAdditionalParameters_ANDROID( config.androidLowLatencyStandardVoicePoolConfig.memoryVoices, config.androidLowLatencyStandardVoicePoolConfig.streamingVoices, config.androidBufferingTime, config.androidStartBufferingTime, config.androidUsesAndroidFastMixer, config.androidUsesAAudio); } CriAtomPlugin.InitializeLibrary(); if (config.useRandomSeedWithTime == true) { /* 時刻を乱数種に設定 */ CriAtomEx.SetRandomSeed((uint)System.DateTime.Now.Ticks); } /* ACFファイル指定時は登録 */ if (config.acfFileName.Length != 0) { #if UNITY_WEBGL Debug.LogError("In WebGL, ACF File path should be set to CriAtom Component."); #else string acfPath = config.acfFileName; if (CriWare.Common.IsStreamingAssetsPath(acfPath)) { acfPath = Path.Combine(CriWare.Common.streamingAssetsPath, acfPath); } CriAtomEx.RegisterAcf(null, acfPath); #endif } CriAtomServer.KeepPlayingSoundOnPause = config.keepPlayingSoundOnPause; return(true); } else { return(false); } }
public static bool InitializeAtom(CriAtomConfig config) { /* CRI Atomライブラリの初期化 */ if (CriAtomPlugin.IsLibraryInitialized() == false) { /* 初期化処理の実行 */ CriAtomPlugin.SetConfigParameters( (int)Math.Max(config.maxVirtualVoices, CriAtomPlugin.GetRequiredMaxVirtualVoices(config)), config.maxVoiceLimitGroups, config.maxCategories, config.maxSequenceEventsPerFrame, config.maxBeatSyncCallbacksPerFrame, config.standardVoicePoolConfig.memoryVoices, config.standardVoicePoolConfig.streamingVoices, config.hcaMxVoicePoolConfig.memoryVoices, config.hcaMxVoicePoolConfig.streamingVoices, config.outputSamplingRate, config.asrOutputChannels, config.usesInGamePreview, config.serverFrequency, config.maxParameterBlocks, config.categoriesPerPlayback, config.maxBuses, config.vrMode); CriAtomPlugin.SetConfigAdditionalParameters_PC( config.pcBufferingTime ); CriAtomPlugin.SetConfigAdditionalParameters_IOS( (uint)Math.Max(config.iosBufferingTime, 16), config.iosOverrideIPodMusic ); /* Android 固有の初期化パラメータを登録 */ { /* Ver.2.03.03 以前は 0 がデフォルト値だったことの互換性維持のための処理 */ if (config.androidBufferingTime == 0) { config.androidBufferingTime = (int)(4 * 1000.0 / config.serverFrequency); } if (config.androidStartBufferingTime == 0) { config.androidStartBufferingTime = (int)(3 * 1000.0 / config.serverFrequency); } IntPtr android_context = IntPtr.Zero; #if !UNITY_EDITOR && UNITY_ANDROID if (config.androidUsesAndroidFastMixer) { AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject activity = jc.GetStatic <AndroidJavaObject>("currentActivity"); android_context = activity.GetRawObject(); } CriAtomEx.androidDefaultSoundRendererType = config.androidForceToUseAsrForDefaultPlayback ? CriAtomEx.SoundRendererType.Asr : CriAtomEx.SoundRendererType.Default; #endif CriAtomPlugin.SetConfigAdditionalParameters_ANDROID( config.androidLowLatencyStandardVoicePoolConfig.memoryVoices, config.androidLowLatencyStandardVoicePoolConfig.streamingVoices, config.androidBufferingTime, config.androidStartBufferingTime, android_context); } CriAtomPlugin.InitializeLibrary(); if (config.useRandomSeedWithTime == true) { /* 時刻を乱数種に設定 */ CriAtomEx.SetRandomSeed((uint)System.DateTime.Now.Ticks); } /* ACFファイル指定時は登録 */ if (config.acfFileName.Length != 0) { string acfPath = config.acfFileName; if (CriWare.IsStreamingAssetsPath(acfPath)) { acfPath = Path.Combine(CriWare.streamingAssetsPath, acfPath); } CriAtomEx.RegisterAcf(null, acfPath); } return(true); } else { return(false); } }
public static int GetRequiredMaxVirtualVoices(CriAtomConfig atomConfig) { /* バーチャルボイスは、全ボイスプールのボイスの合計値よりも多くなくてはならない */ int requiredVirtualVoices = 0; requiredVirtualVoices += atomConfig.standardVoicePoolConfig.memoryVoices; requiredVirtualVoices += atomConfig.standardVoicePoolConfig.streamingVoices; requiredVirtualVoices += atomConfig.hcaMxVoicePoolConfig.memoryVoices; requiredVirtualVoices += atomConfig.hcaMxVoicePoolConfig.streamingVoices; #if UNITY_ANDROID requiredVirtualVoices += atomConfig.androidLowLatencyStandardVoicePoolConfig.memoryVoices; requiredVirtualVoices += atomConfig.androidLowLatencyStandardVoicePoolConfig.streamingVoices; #elif UNITY_PSP2 requiredVirtualVoices += atomConfig.vitaAtrac9VoicePoolConfig.memoryVoices; requiredVirtualVoices += atomConfig.vitaAtrac9VoicePoolConfig.streamingVoices; #endif return requiredVirtualVoices; }