/// <summary>
        /// Shakes values over time
        /// </summary>
        protected override void Shake()
        {
            float newPostExposure = ShakeFloat(ShakePostExposure, RemapPostExposureZero, RemapPostExposureOne, RelativeValues, _initialPostExposure);

            _colorAdjustments.postExposure.Override(newPostExposure);
            float newHueShift = ShakeFloat(ShakeHueShift, RemapHueShiftZero, RemapHueShiftOne, RelativeValues, _initialHueShift);

            _colorAdjustments.hueShift.Override(newHueShift);
            float newSaturation = ShakeFloat(ShakeSaturation, RemapSaturationZero, RemapSaturationOne, RelativeValues, _initialSaturation);

            _colorAdjustments.saturation.Override(newSaturation);
            float newContrast = ShakeFloat(ShakeContrast, RemapContrastZero, RemapContrastOne, RelativeValues, _initialContrast);

            _colorAdjustments.contrast.Override(newContrast);

            _remappedTimeSinceStart = MMFeedbacksHelpers.Remap(Time.time - _shakeStartedTimestamp, 0f, ShakeDuration, 0f, 1f);

            if (ColorFilterMode == ColorFilterModes.Gradient)
            {
                _colorAdjustments.colorFilter.Override(ColorFilterGradient.Evaluate(_remappedTimeSinceStart));
            }
            else if (ColorFilterMode == ColorFilterModes.Interpolate)
            {
                float factor = ColorFilterCurve.Evaluate(_remappedTimeSinceStart);
                _colorAdjustments.colorFilter.Override(Color.LerpUnclamped(_initialColorFilterColor, ColorFilterDestination, factor));
            }
        }
        /// <summary>
        /// On update, processes the blend if needed
        /// </summary>
        protected virtual void Update()
        {
            if (!_blending)
            {
                return;
            }

            float timeElapsed = (GetTime() - _startTime);

            if (timeElapsed < BlendDuration)
            {
                float remapped = MMFeedbacksHelpers.Remap(timeElapsed, 0f, BlendDuration, 0f, 1f);
                _volume.weight = Mathf.LerpUnclamped(_initial, _destination, Curve.Evaluate(remapped));
            }
            else
            {
                // after end is reached
                _volume.weight = _destination;
                _blending      = false;
                if (DisableVolumeOnZeroWeight && (_volume.weight == 0f))
                {
                    _volume.enabled = false;
                }
                if (DisableSelfAfterEnd)
                {
                    this.enabled = false;
                }
            }
        }
        protected virtual void Shake()
        {
            _remappedTimeSinceStart = MMFeedbacksHelpers.Remap(Time.time - _shakeStartedTimestamp, 0f, ShakeDuration, 0f, 1f);

            _colorGrading.postExposure.Override(ShakePostExposure.Evaluate(_remappedTimeSinceStart) * ShakePostExposureAmplitude);
            _colorGrading.hueShift.Override(ShakeHueShift.Evaluate(_remappedTimeSinceStart) * ShakeHueShiftAmplitude);
            _colorGrading.saturation.Override(ShakeSaturation.Evaluate(_remappedTimeSinceStart) * ShakeSaturationAmplitude);
            _colorGrading.contrast.Override(ShakeContrast.Evaluate(_remappedTimeSinceStart) * ShakeContrastAmplitude);

            if (RelativeIntensity)
            {
                _colorGrading.postExposure.Override(_colorGrading.postExposure + _initialPostExposure);
            }
            if (RelativeIntensity)
            {
                _colorGrading.hueShift.Override(_colorGrading.hueShift + _initialHueShift);
            }
            if (RelativeIntensity)
            {
                _colorGrading.saturation.Override(_colorGrading.saturation + _initialSaturation);
            }
            if (RelativeIntensity)
            {
                _colorGrading.contrast.Override(_colorGrading.contrast + _initialContrast);
            }
        }
Пример #4
0
 protected virtual void Shake()
 {
     _remappedTimeSinceStart = MMFeedbacksHelpers.Remap(Time.time - _shakeStartedTimestamp, 0f, ShakeDuration, 0f, 1f);
     _vignette.intensity.Override(ShakeIntensity.Evaluate(_remappedTimeSinceStart) * ShakeAmplitude);
     if (RelativeIntensity)
     {
         _vignette.intensity.Override(_vignette.intensity + _initialIntensity);
     }
 }
        protected virtual void Shake()
        {
            _remappedTimeSinceStart = MMFeedbacksHelpers.Remap(Time.time - _shakeStartedTimestamp, 0f, ShakeDuration, 0f, 1f);

            _depthOfField.focusDistance.Override(ShakeFocusDistance.Evaluate(_remappedTimeSinceStart) * ShakeFocusDistanceAmplitude);
            _depthOfField.aperture.Override(ShakeAperture.Evaluate(_remappedTimeSinceStart) * ShakeApertureAmplitude);
            _depthOfField.focalLength.Override(ShakeFocalLength.Evaluate(_remappedTimeSinceStart) * ShakeFocalLengthAmplitude);
            if (RelativeIntensities)
            {
                _depthOfField.focusDistance.Override(_depthOfField.focusDistance + _initialFocusDistance);
                _depthOfField.aperture.Override(_depthOfField.aperture + _initialAperture);
                _depthOfField.focalLength.Override(_depthOfField.focalLength + _initialFocalLength);
            }
        }
Пример #6
0
        protected virtual void Shake()
        {
            _remappedTimeSinceStart = MMFeedbacksHelpers.Remap(Time.time - _shakeStartedTimestamp, 0f, ShakeDuration, 0f, 1f);

            _bloom.intensity.Override(ShakeIntensity.Evaluate(_remappedTimeSinceStart) * ShakeIntensityAmplitude);
            _bloom.threshold.Override(ShakeThreshold.Evaluate(_remappedTimeSinceStart) * ShakeThresholdAmplitude);
            if (RelativeIntensity)
            {
                _bloom.intensity.Override(_bloom.intensity + _initialIntensity);
            }
            if (RelativeIntensity)
            {
                _bloom.threshold.Override(_bloom.threshold + _initialThreshold);
            }
        }
Пример #7
0
        /// <summary>
        /// A coroutine used to modulate frequency and amplitude at runtime
        /// </summary>
        /// <returns></returns>
        protected virtual IEnumerator RealtimeModulationCo()
        {
            IsPlaying = true;
            float journey = NormalPlayDirection ? 0f : FeedbackDuration;

            while ((journey >= 0) && (journey <= FeedbackDuration) && (FeedbackDuration > 0))
            {
                float remappedTime = MMFeedbacksHelpers.Remap(journey, 0f, FeedbackDuration, 0f, 1f);

                HapticController.clipLevel          = AmplitudeMultiplication.Evaluate(remappedTime);
                HapticController.clipFrequencyShift = ShiftFrequency.Evaluate(remappedTime);

                journey += NormalPlayDirection ? FeedbackDeltaTime : -FeedbackDeltaTime;
                yield return(null);
            }
            HapticController.clipLevel          = AmplitudeMultiplication.Evaluate(FinalNormalizedTime);
            HapticController.clipFrequencyShift = ShiftFrequency.Evaluate(FinalNormalizedTime);

            IsPlaying  = false;
            _coroutine = null;
            yield return(null);
        }