public override void ProcessFrame(Playable playable, FrameData info, object playerData) { MeshRendererActivationController trackBinding = playerData as MeshRendererActivationController; if (!trackBinding) { return; } int inputCount = playable.GetInputCount(); bool hasInput = false; for (int i = 0; i < inputCount; i++) { float inputWeight = playable.GetInputWeight(i); // ScriptPlayable<MeshRendererActivationBehaviour> inputPlayable = (ScriptPlayable<MeshRendererActivationBehaviour>)playable.GetInput(i); // MeshRendererActivationBehaviour input = inputPlayable.GetBehaviour (); if (playable.GetInputWeight(i) > 0) { hasInput = true; break; } } trackBinding.SetActive(hasInput); }
public override void ProcessFrame(Playable playable, FrameData info, object playerData) { // First frame of each behaviour: play audio clip if given, play audio source if given int inputCount = playable.GetInputCount(); for (int i = 0; i < inputCount; i++) { float inputWeight = playable.GetInputWeight(i); m_CurrentWeights[i] = inputWeight; ScriptPlayable <AudioSnapshotBehaviour> inputPlayable = (ScriptPlayable <AudioSnapshotBehaviour>)playable.GetInput(i); AudioSnapshotBehaviour input = inputPlayable.GetBehaviour(); if (Application.isPlaying) { input.PlayAudio(inputWeight); } input.audioSource.volume = input.weightedVolume ? input.volume * playable.GetInputWeight(i) : input.volume; } if (m_Mixer != null) { m_Mixer.TransitionToSnapshots(m_Snapshots, m_CurrentWeights, 0f); } }
public static float NormalizeMixer(Playable mixer) { float result; if (!mixer.IsValid <Playable>()) { result = 0f; } else { int inputCount = mixer.GetInputCount <Playable>(); float num = 0f; for (int i = 0; i < inputCount; i++) { num += mixer.GetInputWeight(i); } if (num > Mathf.Epsilon && num < 1f) { for (int j = 0; j < inputCount; j++) { mixer.SetInputWeight(j, mixer.GetInputWeight(j) / num); } } result = Mathf.Clamp01(num); } return(result); }
private void PrepareSingleTrack(Playable owner, float deltaTime) { var count = owner.GetInputCount(); if (count == 0) { return; } if (mSingleTransitionOut > 0f) { mSingleTransitionOut -= deltaTime; var t = Mathf.Clamp01(1 - mSingleTransitionOut / mSingleTransitionTime); var weight = owner.GetInputWeight(0); owner.SetInputWeight(0, Mathf.Lerp(weight, 0, t)); } else if (mSingleTransitionIn > 0f && mBgmAudioClip != null) { var playable = (AudioClipPlayable)owner.GetInput(0); if (playable.GetClip() != mBgmAudioClip) { playable.SetClip(mBgmAudioClip); playable.SetTime(0); } mSingleTransitionIn -= deltaTime; var t = Mathf.Clamp01(1 - mSingleTransitionIn / mSingleTransitionTime); var weight = owner.GetInputWeight(0); owner.SetInputWeight(0, Mathf.Lerp(weight, 1, t)); } }
public override void ProcessFrame(Playable playable, FrameData info, object playerData) { m_Image = playerData as Image; if (m_Image == null) { return; } //if (!m_FirstFrameHappened) //{ // m_DefaultColor = m_TrackBinding.color; // m_DefaultIntensity = m_TrackBinding.intensity; // m_DefaultBounceIntensity = m_TrackBinding.bounceIntensity; // m_DefaultRange = m_TrackBinding.range; // m_FirstFrameHappened = true; //} int inputCount = playable.GetInputCount(); Debug.Log(playable.GetInputWeight(0)); Debug.Log(playable.GetInputWeight(1)); //Color blendedColor = Color.clear; //float blendedIntensity = 0f; //float blendedBounceIntensity = 0f; //float blendedRange = 0f; //float totalWeight = 0f; //float greatestWeight = 0f; //int currentInputs = 0; //for (int i = 0; i < inputCount; i++) //{ // float inputWeight = playable.GetInputWeight(i); // ScriptPlayable<LightControlBehaviour> inputPlayable = (ScriptPlayable<LightControlBehaviour>)playable.GetInput(i); // LightControlBehaviour input = inputPlayable.GetBehaviour(); // blendedColor += input.color * inputWeight; // blendedIntensity += input.intensity * inputWeight; // blendedBounceIntensity += input.bounceIntensity * inputWeight; // blendedRange += input.range * inputWeight; // totalWeight += inputWeight; // if (inputWeight > greatestWeight) // { // greatestWeight = inputWeight; // } // if (!Mathf.Approximately(inputWeight, 0f)) // currentInputs++; //} //m_TrackBinding.color = blendedColor + m_DefaultColor * (1f - totalWeight); //m_TrackBinding.intensity = blendedIntensity + m_DefaultIntensity * (1f - totalWeight); //m_TrackBinding.bounceIntensity = blendedBounceIntensity + m_DefaultBounceIntensity * (1f - totalWeight); //m_TrackBinding.range = blendedRange + m_DefaultRange * (1f - totalWeight); }
override public void PrepareFrame(Playable playable, FrameData info) { if (mFinishFrameId == info.frameId) { var cb = mFinishCb; mFinishCb = null; cb.Invoke(0); return; } var count = mMixer.GetInputCount(); if (count == 0) { return; } if (count > 1 && mTransitionTime >= 0f) { mTransitionTime -= info.deltaTime; if (mTransitionTime > 0f) { var rate = mTransitionTime / mTransitionDuration; for (var i = 0; i < count - 1; ++i) { mMixer.SetInputWeight(i, Mathf.Lerp(mMixer.GetInputWeight(i), 0f, rate)); } mMixer.SetInputWeight(count - 1, Mathf.Lerp(mMixer.GetInputWeight(count - 1), 1f, 1f - rate)); } else { for (var i = 0; i < count - 1; ++i) { mMixer.GetInput(i).Destroy(); } var clipPlayable = mMixer.GetInput(count - 1); mMixer.DisconnectInput(count - 1); mMixer.SetInputCount(1); mMixer.ConnectInput(0, clipPlayable, 0); mMixer.SetInputWeight(0, 1.0f); } } if (mActionTime > 0) { mActionTime -= info.deltaTime; if (mActionTime <= 0 && mFinishCb != null) { mFinishFrameId = info.frameId + 2; } } }
// NOTE: This function is called at runtime and edit time. Keep that in mind when setting the values of properties. public override void ProcessFrame(Playable playable, FrameData info, object playerData) { int inputCount = playable.GetInputCount(); for (int i = 0; i < inputCount; i++) { float inputWeight = playable.GetInputWeight(i); if (inputWeight > 0.001f && !played.Contains(i)) { played.Add(i); ScriptPlayable <ShowAlertBehaviour> inputPlayable = (ScriptPlayable <ShowAlertBehaviour>)playable.GetInput(i); ShowAlertBehaviour input = inputPlayable.GetBehaviour(); var message = input.message; var duration = input.useTextLengthForDuration ? 0 : (float)inputPlayable.GetDuration(); if (Application.isPlaying) { DialogueManager.ShowAlert(message, duration); } else { PreviewUI.ShowMessage(message, duration, -1); } } else if (inputWeight <= 0.001f && played.Contains(i)) { played.Remove(i); } } }
public override void ProcessFrame(Playable playable, FrameData info, object playerData) { //Get our inputs int inputCount = playable.GetInputCount(); //Calculate blended snow power double blendedSnowPower = 0; double totalWeight = 0; for (int i = 0; i < inputCount; i++) { double inputWeight = playable.GetInputWeight(i); ScriptPlayable <WorldManagerSnowBehaviour> inputPlayable = (ScriptPlayable <WorldManagerSnowBehaviour>)playable.GetInput(i); WorldManagerSnowBehaviour input = inputPlayable.GetBehaviour(); blendedSnowPower += input.snowPower * inputWeight; totalWeight += inputWeight; } //We will only update world manager if we got some weights i.e. we are being affected by the timeline if (!Mathf.Approximately((float)totalWeight, 0f)) { WorldManager.Instance.SnowPower = (float)blendedSnowPower; } }
public override void ProcessFrame(Playable playable, FrameData info, object playerData) { TextMeshProUGUI subtitleTextObject = playerData as TextMeshProUGUI; if (!subtitleTextObject) { return; } string currentText = ""; float currentAlpha = 0.0f; int numberOfClips = playable.GetInputCount(); for (int i = 0; i < numberOfClips; i++) { float clipWeight = playable.GetInputWeight(i); if (clipWeight > 0f) { ScriptPlayable <SubtitleBehaviour> clipPlayable = (ScriptPlayable <SubtitleBehaviour>)playable.GetInput(i); SubtitleBehaviour clipBehaviour = clipPlayable.GetBehaviour(); currentText = clipBehaviour.subtitleText; currentAlpha = clipWeight; } } subtitleTextObject.text = currentText; subtitleTextObject.color = new Color(1, 1, 1, currentAlpha); }
public override void ProcessFrame(Playable playable, FrameData info, object playerData) { NavMeshAgent trackBinding = playerData as NavMeshAgent; if (!trackBinding) { return; } int inputCount = playable.GetInputCount(); for (int i = 0; i < inputCount; i++) { float inputWeight = playable.GetInputWeight(i); ScriptPlayable <NavMeshAgentControlBehaviour> inputPlayable = (ScriptPlayable <NavMeshAgentControlBehaviour>)playable.GetInput(i); NavMeshAgentControlBehaviour input = inputPlayable.GetBehaviour(); if (inputWeight > 0.5f && !input.destinationSet && input.destination) { if (!trackBinding.isOnNavMesh) { continue; } trackBinding.SetDestination(input.destination.position); input.destinationSet = true; } } }
public override void ProcessFrame(Playable playable, FrameData info, object playerData) { m_TrackBinding = playerData as Light; if (m_TrackBinding == null) { return; } if (!m_FirstFrameHappened) { // Save default values m_DefaultColor = m_TrackBinding.color; m_DefaultIntensity = m_TrackBinding.intensity; m_DefaultBounceIntensity = m_TrackBinding.bounceIntensity; m_DefaultRange = m_TrackBinding.range; m_FirstFrameHappened = true; } // clip ¸öÊý int inputCount = playable.GetInputCount(); // temporary values Color blendedColor = Color.clear; float blendedIntensity = 0f; float blendedBounceIntensity = 0f; float blendedRange = 0f; float totalWeight = 0f; float greatestWeight = 0f; int currentInputs = 0; for (int i = 0; i < inputCount; i++) { float inputWeight = playable.GetInputWeight(i); ScriptPlayable <LightControlBehaviour> inputPlayable = (ScriptPlayable <LightControlBehaviour>)playable.GetInput(i); LightControlBehaviour input = inputPlayable.GetBehaviour(); blendedColor += input.color * inputWeight; blendedIntensity += input.intensity * inputWeight; blendedBounceIntensity += input.bounceIntensity * inputWeight; blendedRange += input.range * inputWeight; totalWeight += inputWeight; if (inputWeight > greatestWeight) { greatestWeight = inputWeight; } if (!Mathf.Approximately(inputWeight, 0f)) { currentInputs++; } } m_TrackBinding.color = blendedColor + m_DefaultColor * (1f - totalWeight); m_TrackBinding.intensity = blendedIntensity + m_DefaultIntensity * (1f - totalWeight); m_TrackBinding.bounceIntensity = blendedBounceIntensity + m_DefaultBounceIntensity * (1f - totalWeight); m_TrackBinding.range = blendedRange + m_DefaultRange * (1f - totalWeight); }
// NOTE: This function is called at runtime and edit time. Keep that in mind when setting the values of properties. public override void ProcessFrame(Playable playable, FrameData info, object playerData) { Light trackBinding = playerData as Light; float finalIntensity = 0f; Color finalColor = Color.black; if (!trackBinding) { return; } int inputCount = playable.GetInputCount(); //get the number of all clips on this track for (int i = 0; i < inputCount; i++) { float inputWeight = playable.GetInputWeight(i); ScriptPlayable <Anim_LightControlBehaviour> inputPlayable = (ScriptPlayable <Anim_LightControlBehaviour>)playable.GetInput(i); Anim_LightControlBehaviour input = inputPlayable.GetBehaviour(); // Use the above variables to process each frame of this playable. finalIntensity += input.intensity * inputWeight; finalColor += input.color * inputWeight; } //assign the result to the bound object trackBinding.intensity = finalIntensity; trackBinding.color = finalColor; }
// NOTE: This function is called at runtime and edit time. Keep that in mind when setting the values of properties. public override void ProcessFrame(Playable playable, FrameData info, object playerData) { // cast playerData into our track binding _trackBinding = playerData as PlayerController; if (_trackBinding == null) { return; } // set default value for block input bool blockInput = false; int inputCount = playable.GetInputCount(); for (int i = 0; i < inputCount; i++) { float inputWeight = playable.GetInputWeight(i); ScriptPlayable <BlockInputPlayableBehaviour> inputPlayable = (ScriptPlayable <BlockInputPlayableBehaviour>)playable.GetInput(i); BlockInputPlayableBehaviour input = inputPlayable.GetBehaviour(); // Use the above variables to process each frame of this playable. // if any clip of this track is playing, set blockInput = true if (inputWeight > 0) { blockInput = true; } } // set playerController.BlockInput according to our value _trackBinding.BlockInput = blockInput; }
// NOTE: This function is called at runtime and edit time. Keep that in mind when setting the values of properties. public override void ProcessFrame(Playable playable, FrameData info, object playerData) { VisualEffect vfxComponent = playerData as VisualEffect; if (!vfxComponent) { return; } int inputCount = playable.GetInputCount(); for (int i = 0; i < inputCount; i++) { float inputWeight = playable.GetInputWeight(i); bool newEnabledState = inputWeight != 0.0f; var inputPlayable = (ScriptPlayable <VisualEffectActivationBehaviour>)playable.GetInput(i); var input = inputPlayable.GetBehaviour(); if (enabledStates[i] != newEnabledState) { if (newEnabledState) { input.SendEventEnter(vfxComponent); } else { input.SendEventExit(vfxComponent); } enabledStates[i] = newEnabledState; } } }
public override void ProcessFrame(Playable playable, FrameData info, object playerData) { m_trackBinding = playerData as CanvasGroup; if (m_trackBinding == null) { return; } if (!m_firstFrameHappened) { // 初期値の記憶 m_initialValue = m_trackBinding.alpha; m_firstFrameHappened = true; } // 全clipのalpha値をweightに応じて合計する int inputCount = playable.GetInputCount(); float alpha = 0; for (int i = 0; i < inputCount; ++i) { var inputWeight = playable.GetInputWeight(i); var inputPlayable = (ScriptPlayable <AlphaBehaviour>)playable.GetInput(i); var input = inputPlayable.GetBehaviour(); alpha += input.Alpha * inputWeight; } // 反映 m_trackBinding.alpha = alpha; }
// NOTE: This function is called at runtime and edit time. Keep that in mind when setting the values of properties. public override void ProcessFrame(Playable playable, FrameData info, object playerData) { if (!textMeshProUGUI || !backgroundImage) { return; } int inputCount = playable.GetInputCount(); ToggleSubtitle(false); for (int i = 0; i < inputCount; i++) { float inputWeight = playable.GetInputWeight(i); ScriptPlayable <SubtitleTimelineBehaviour> inputPlayable = (ScriptPlayable <SubtitleTimelineBehaviour>)playable.GetInput(i); SubtitleTimelineBehaviour input = inputPlayable.GetBehaviour(); var clip = clips[i]; var clipProgress = Mathf.Min((float)(director.time - clip.start), (float)clip.duration) / (float)clip.duration; if (clip.start <= director.time && director.time < clip.start + clip.duration) { ToggleSubtitle(true); UpdateSubtitle(clip.displayName, input.textColor, input.backgroundColor); } // Use the above variables to process each frame of this playable. } }
// NOTE: This function is called at runtime and edit time. Keep that in mind when setting the values of properties. public override void ProcessFrame(Playable playable, FrameData info, object playerData) { TextMesh trackBinding = playerData as TextMesh; if (!trackBinding) { return; } int inputCount = playable.GetInputCount(); for (int i = 0; i < inputCount; i++) { float inputWeight = playable.GetInputWeight(i); if (inputWeight < 1f) { continue; } ScriptPlayable <FadeAnimationBehaviour> inputPlayable = (ScriptPlayable <FadeAnimationBehaviour>)playable.GetInput(i); FadeAnimationBehaviour input = inputPlayable.GetBehaviour(); // Use the above variables to process each frame of this playable. double w = inputPlayable.GetTime() / inputPlayable.GetDuration(); Color color = trackBinding.color; color.a = input.Alpha.Evaluate((float)w); trackBinding.color = color; } }
public override void PrepareFrame(Playable playable, FrameData info) { if (!playable.IsValid() || !playable.IsPlayableOfType <AudioMixerPlayable>()) { return; } var inputCount = playable.GetInputCount(); for (int i = 0; i < inputCount; ++i) { if (playable.GetInputWeight(i) > 0.0f) { var input = playable.GetInput(i); if (input.IsValid() && input.IsPlayableOfType <AudioClipPlayable>()) { var audioClipPlayable = (AudioClipPlayable)input; var audioClipProperties = input.GetHandle().GetObject <AudioClipProperties>(); audioClipPlayable.SetVolume(Mathf.Clamp01(volume * audioClipProperties.volume)); audioClipPlayable.SetStereoPan(Mathf.Clamp(stereoPan, -1.0f, 1.0f)); audioClipPlayable.SetSpatialBlend(Mathf.Clamp01(spatialBlend)); } } } }
// NOTE: This function is called at runtime and edit time. Keep that in mind when setting the values of properties. public override void ProcessFrame(Playable playable, FrameData info, object playerData) { Targetable trackBinding = playerData as Targetable; if (!trackBinding) { return; } int inputCount = playable.GetInputCount(); for (int i = 0; i < inputCount; i++) { float inputWeight = playable.GetInputWeight(i); if (inputWeight < 1f) { continue; } ScriptPlayable <TargetSwitcherBehaviour> inputPlayable = (ScriptPlayable <TargetSwitcherBehaviour>)playable.GetInput(i); TargetSwitcherBehaviour input = inputPlayable.GetBehaviour(); // Use the above variables to process each frame of this playable. trackBinding.Target = input.Target; } }
////////////////////////////////////////////////////////////////////////// public override void ProcessFrame(Playable playable, FrameData info, object playerData) { // try to get mixer var audioMixer = playerData as AudioMixer ?? SoundManager.Mixer; if (audioMixer == null) { return; } var finalValue = 0.0f; // calculate weights var inputCount = playable.GetInputCount(); for (var i = 0; i < inputCount; i++) { //if (playable.IsPlayableOfType<ScriptPlayable<MixerPlayableBehaviour>>() == false) // continue; // get clips data var inputWeight = playable.GetInputWeight(i); var inputPlayable = (ScriptPlayable <AudioMixerPlayableBehaviour>)playable.GetInput(i); var input = inputPlayable.GetBehaviour(); // add weighted impact of the clip to final value finalValue += input.Value * inputWeight; } // assign result audioMixer.SetFloat(Parameter, finalValue); }
public override void ProcessFrame(Playable playable, FrameData info, object playerData) { // TODO var binding = playerData as TimelineHandControl; if (!binding) { return; } var time = Director.time; SingleHandShape handShape = new SingleHandShape(); for (int i = 0; i < Clips.Length; i++) { var clip = Clips[i]; var clipAsset = clip.asset as HandClip; var behaviour = clipAsset.behaviour; var clipWeight = playable.GetInputWeight(i); var clipProgress = (float)((time - clip.start) / clip.duration); // if inside of clip if (0f <= clipProgress && clipProgress <= 1f) { handShape += behaviour.handPreset.handShape * behaviour.strengthMultiplier * clipWeight; } } binding.handShape = handShape; }
public override void ProcessFrame(Playable playable, FrameData info, object playerData) { RawImage rawImage = playerData as RawImage; Texture2D currentTexture = null; float curentAlpha = 0f; if (!rawImage) { return; } int inputCount = playable.GetInputCount(); for (int i = 0; i < inputCount; i++) { float inputWeight = playable.GetInputWeight(i); if (inputWeight > 0f) { ScriptPlayable <SlideShowBehavior> inputPlayable = (ScriptPlayable <SlideShowBehavior>)playable.GetInput(i); SlideShowBehavior input = inputPlayable.GetBehaviour(); currentTexture = input.image; curentAlpha = inputWeight; } } rawImage.texture = currentTexture; rawImage.color = new Color(1, 1, 1, curentAlpha); }
public override void ProcessFrame(Playable playable, FrameData info, object playerData) { //Get our inputs int inputCount = playable.GetInputCount(); //Calculate blended progress float blendedProgress = 0; float totalWeight = 0; PegasusManager manager = null; for (int i = 0; i < inputCount; i++) { float inputWeight = playable.GetInputWeight(i); ScriptPlayable <PegasusBehaviour> inputPlayable = (ScriptPlayable <PegasusBehaviour>)playable.GetInput(i); PegasusBehaviour input = inputPlayable.GetBehaviour(); if (manager == null) { manager = input.pegasusManager; } blendedProgress += input.pegasusProgress * inputWeight; totalWeight += inputWeight; } //We will only update if we got some weights i.e. we are being affected by the timeline if (!Mathf.Approximately(totalWeight, 0f)) { if (manager != null) { manager.MoveTargetTo(blendedProgress); } } }
public override void ProcessFrame(Playable playable, FrameData info, object playerData) { Image imageObject = playerData as Image; if (!imageObject) { return; } Color currentColor = new Color(0, 0, 0, 0); float currentAlpha = 0; int numberOfClips = playable.GetInputCount(); for (int i = 0; i < numberOfClips; i++) { float clipWeight = playable.GetInputWeight(i); if (clipWeight > 0f) { ScriptPlayable <PlayableImageBehaviour> clipPlayable = (ScriptPlayable <PlayableImageBehaviour>)playable.GetInput(i); PlayableImageBehaviour clipBehaviour = clipPlayable.GetBehaviour(); currentColor = clipBehaviour.imageColor; currentAlpha = clipWeight; } } imageObject.color = new Color(currentColor.r, currentColor.g, currentColor.b, currentAlpha); }
public override void ProcessFrame(Playable playable, FrameData info, object playerData) { TMP_Text text = playerData as TMP_Text; string currentText = ""; float currentAlpha = 0f; if (!text) { return; } int inputCount = playable.GetInputCount(); for (int i = 0; i < inputCount; i++) { float inputWeight = playable.GetInputWeight(i); if (inputWeight > 0f) { ScriptPlayable <SubtitleBehaviour> inputPlayable = (ScriptPlayable <SubtitleBehaviour>)playable.GetInput(i); SubtitleBehaviour input = inputPlayable.GetBehaviour(); currentText = input.SubtitleText; currentAlpha = inputWeight; } } text.text = currentText; text.color = new Color(1, 1, 1, currentAlpha); }
public override void ProcessFrame(Playable playable, FrameData info, object playerData) { if (playerData is RenderPipeline renderPipeline && renderPipeline.ScreenBlend != null) { if (cachedScreenBlend == null) { cachedScreenBlend = renderPipeline.ScreenBlend; defaultScreenBlendColor = cachedScreenBlend.Properties.Color; } int inputCount = playable.GetInputCount(); Color defaultColor = cachedScreenBlend.Properties.Color; Color blendedColor = Color.clear; float totalWeight = 0.0f; for (int i0 = 0; i0 < inputCount; ++i0) { var playableInput = (ScriptPlayable <ScreenBlendColorTweenBehaviour>)playable.GetInput(i0); ScreenBlendColorTweenBehaviour input = playableInput.GetBehaviour(); float inputWeight = playable.GetInputWeight(i0); float normalisedTime = (float)(playableInput.GetTime() / playableInput.GetDuration()); blendedColor += Color.Lerp(input.startColor, input.endColor, input.transition.Evaluate(normalisedTime)) * inputWeight; totalWeight += inputWeight; } blendedColor += defaultColor * (1.0f - totalWeight); cachedScreenBlend.Properties.Color = blendedColor; } }
// NOTE: This function is called at runtime and edit time. Keep that in mind when setting the values of properties. public override void ProcessFrame(Playable playable, FrameData info, object playerData) { GameObject trackBinding = playerData as GameObject; Transform speaker = (trackBinding != null) ? trackBinding.transform : null; int inputCount = playable.GetInputCount(); for (int i = 0; i < inputCount; i++) { float inputWeight = playable.GetInputWeight(i); if (inputWeight > 0.001f && !played.Contains(i)) { played.Add(i); ScriptPlayable <PlaySequenceBehaviour> inputPlayable = (ScriptPlayable <PlaySequenceBehaviour>)playable.GetInput(i); PlaySequenceBehaviour input = inputPlayable.GetBehaviour(); var sequence = input.sequence; if (Application.isPlaying) { DialogueManager.PlaySequence(sequence, speaker, input.listener); } else { PreviewUI.ShowMessage(sequence, 3, -1); } } else if (inputWeight <= 0.001f && played.Contains(i)) { played.Remove(i); } } }
public override void ProcessFrame(Playable playable, FrameData info, object playerData) { texthandler = playerData as SubTitleHandler; if (texthandler == null) { return; } int inputCount = playable.GetInputCount(); for (int i = 0; i < inputCount; i++) { ScriptPlayable <TextHandlerBehaviour> inputPlayable = (ScriptPlayable <TextHandlerBehaviour>)playable.GetInput(i); TextHandlerBehaviour input = inputPlayable.GetBehaviour(); if (!input.isInQueue && playable.GetInputWeight(i) > float.Epsilon) { texthandler.NextInQueue(input.clipTextSo, input.Speed); if (Application.isPlaying) { input.isInQueue = true; } } } }
public override void ProcessFrame(Playable playable, FrameData info, object playerData) { Renderer controller = playerData as Renderer; if (controller == null) { return; } int inputCount = playable.GetInputCount(); if (inputCount == 0) { return; } float totalWeight = 0; Vector4 value = Vector4.zero; for (int i = 0; i < inputCount; i++) { var inputPlayable = (ScriptPlayable <EZMaterialVectorPropertyBehaviour>)playable.GetInput(i); var inputBehaviour = inputPlayable.GetBehaviour(); float inputWeight = playable.GetInputWeight(i); totalWeight += inputWeight; value += inputBehaviour.value * inputWeight; } controller.GetPropertyBlock(propertyBlock); value = Vector4.Lerp(defaultValue, value, totalWeight); propertyBlock.SetVector(propertyName, value); controller.SetPropertyBlock(propertyBlock); }
public override void ProcessFrame(Playable playable, FrameData info, object playerData) { GameObject subsObject = playerData as GameObject; string currentText = ""; float currentAlpha = 0f; if (!subsObject) { return; } int inputCount = playable.GetInputCount(); for (int i = 0; i < inputCount; i++) { float inputWeight = playable.GetInputWeight(i); if (inputWeight > 0f) { ScriptPlayable <SubtitleBehaviour> inputPlayable; inputPlayable = (ScriptPlayable <SubtitleBehaviour>)playable.GetInput(i); SubtitleBehaviour input = inputPlayable.GetBehaviour(); currentText = input.subtitleText; currentAlpha = inputWeight; } } UpdateText(subsObject, currentText, currentAlpha); }