public static bool PerformRandomization(ExportEntry export, RandomizationOption option) { if (!CanRandomize(export)) { return(false); } MERLog.Information($"{export.FileRef.FilePath}\t{export.FullPath}"); var props = export.GetProperties(); if (export.ClassName == "BioSunFlareComponent" || export.ClassName == "BioSunFlareStreakComponent") { var tint = props.GetProp <StructProperty>("FlareTint"); if (tint != null) { RStructs.RandomizeTint(tint, false); } RProperty.RandFloat(props, "Intensity", 0.0001f, 100f, false); RProperty.RandFloat(props, "BrightPercent", 0.0001f, 0.1f, false); RProperty.RandFloat(props, "Scale", 0.05f, 3f, false); } else if (export.ClassName == "BioSunActor") { var tint = props.GetProp <StructProperty>("SunTint"); if (tint != null) { RStructs.RandomizeTint(tint, false); } } export.WriteProperties(props); return(true); }
public static bool RandomizeExport(ExportEntry export, RandomizationOption option) { if (!CanRandomize(export)) { return(false); } var settings = export.GetProperty <StructProperty>("Settings"); if (settings != null) { MERLog.Information($@"Randomizing PostProcessingVolume settings {export.UIndex}"); // randomize the options RProperty.RandBool(settings.Properties, "bEnableDOF", ThreadSafeRandom.Next(3) == 0); RProperty.RandBool(settings.Properties, "bEnableFilmic", ThreadSafeRandom.Next(3) == 0); RProperty.RandBool(settings.Properties, "bEnableBloom", ThreadSafeRandom.Next(3) == 0); RProperty.RandFloat(settings.Properties, "Bloom_Scale", 0, 0.4f, ThreadSafeRandom.Next(5) == 0); RProperty.RandFloat(settings.Properties, "DOF_BlurKernelSize", 0, 20f, ThreadSafeRandom.Next(5) == 0); RProperty.RandFloat(settings.Properties, "DOF_MaxNearBlurAmount", 0, 0.2f, ThreadSafeRandom.Next(5) == 0); RProperty.RandFloat(settings.Properties, "DOF_MaxFarBlurAmount", 0.1f, 0.5f, ThreadSafeRandom.Next(5) == 0); RProperty.RandFloat(settings.Properties, "DOF_InnerFocusRadius", 0, 2000f, ThreadSafeRandom.Next(5) == 0); RProperty.RandFloat(settings.Properties, "DOF_FocusDistance", 0, 400f, ThreadSafeRandom.Next(5) == 0); RProperty.RandFloat(settings.Properties, "Scene_Desaturation", 0, 0.5f, ThreadSafeRandom.Next(5) == 0); RProperty.RandFloat(settings.Properties, "Scene_InterpolationDuration", 0, 2f, ThreadSafeRandom.Next(5) == 0); RProperty.RandVector(settings.Properties, "Scene_Highlights", 0, 2, ThreadSafeRandom.Next(8) == 0); RProperty.RandVector(settings.Properties, "Scene_Midtones", 0, 6f, ThreadSafeRandom.Next(5) == 0); RProperty.RandVector(settings.Properties, "Scene_Shadows", 0, .4f, ThreadSafeRandom.Next(8) == 0); export.WriteProperty(settings); return(true); } return(false); }