• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
0

Can't change/animate the colour of my text objects (I need Opacity set to 0% for the Range Selector animation to work)

Engaged ,
Apr 29, 2019 Apr 29, 2019

Copy link to clipboard

Copied

I have text running out by character left to right in the standard way shown in many tutorials.

In order to set the start at 0% then interpolate it to 100% you have to have the Opacity property set to 0% (or you see all the text as soon as the layer comes on).

But in order to set the text colour (with an expression I might add not using the AE User Interface) I need the Opacity up higher.

There must be an answer but it isn't obvious to me. I can use expressions and a slider mapping to an RGB colour effect set of keys to do it on text layers I aren't animating and it works fine using:

thisComp.layer("[CONTROLS]").effect("Quote Mark Colours")("Color").key(thisComp.layer("[CONTROLS]").effect("Quote Mark Colour")("Slider"));

I tried adding a RGB Color Effect to the layer but it does nothing when I change it's color manually or programatically. I have an expression controlling the time of these layers in the Start property of the Range selector. It's not strictly relevant but it's complicated and I need it to stay as is (or functionally equivalent).

Screen Shot 2019-04-29 at 7.47.01 pm.png

Screen Shot 2019-04-29 at 7.46.49 pm.png

Views

5.1K

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines

correct answers 1 Correct answer

Valorous Hero , Apr 29, 2019 Apr 29, 2019

There is actually a change in color but it's very subtle and very quick cos your keyframes are not sufficiently distant. To get what you want within the duration specified, you will require another Text Animator Group, with the Fill Color Animator Property. Then, you offset its Start keyframes from the other Text Animator Group - see image below for a guide.

Votes

Translate

Translate
Valorous Hero ,
Apr 29, 2019 Apr 29, 2019

Copy link to clipboard

Copied

There is actually a change in color but it's very subtle and very quick cos your keyframes are not sufficiently distant. To get what you want within the duration specified, you will require another Text Animator Group, with the Fill Color Animator Property. Then, you offset its Start keyframes from the other Text Animator Group - see image below for a guide.

Motion Graphics Brand Guidelines & Motion Graphics Responsive Design Toolkits

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Engaged ,
Apr 29, 2019 Apr 29, 2019

Copy link to clipboard

Copied

Here's my control on the range animation, you mean I have to repeat the expression in the second Animator but subtract a bit from time from this to keep it a few frames behind or something?

TAT = thisComp.layer("[CONTROLS]").effect("Total Animation Period")("Slider");

delay1 = thisComp.layer("[CONTROLS]").effect("Bkgd fade period")("Slider")

delay2 = thisComp.layer("[CONTROLS]").effect("Quotation mark in/out period")("Slider");

delay3 = thisComp.layer("[CONTROLS]").effect("Period b/w lines of text")("Slider");

delay4 = thisComp.layer("[CONTROLS]").effect("Delay at End")("Slider");

startTime = delay1 + delay2;

timePerLine = (TAT - 2*(delay1 + delay2 + delay3) - delay4)/3;

startTime += 2*(timePerLine + delay3);

100 * (time - startTime)/timePerLine;

I realise I might have approached this exercise to build a controllable and flexible composition for displaying quotes another way, perhaps referencing layers above/below with `index` but I didn't know that trick when I started, and I'm still not sure it would have been easier.

Thinking about it more I must have misunderstood you because I'm effectively trying to do the same thing with Animator 2 as I can't do with animator 1. Thanks for your help, really appreciate it, wishing I'd made this in Quartz Composer and wrapped it with the Noise Industries API to make it an Adobe plugin for AE and PremPro, spent way to long on this!

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Engaged ,
Apr 29, 2019 Apr 29, 2019

Copy link to clipboard

Copied

I'm thinking of just using the colorise effect as a post effect on white animated type. This is pretty confusing for me.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Valorous Hero ,
Apr 29, 2019 Apr 29, 2019

Copy link to clipboard

Copied

Since the Start prop in the first Text Animator already does the calculations; the second Text Animator's Start property should reference this value and then you apply a simple time offset - there is no requirement to recalculate the same thing twice.

The second Start prop would have an Expression similar to this -

text.animator("Animator 1").selector("Range Selector 1").start + delay

Motion Graphics Brand Guidelines & Motion Graphics Responsive Design Toolkits

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Engaged ,
Apr 29, 2019 Apr 29, 2019

Copy link to clipboard

Copied

yeah I thought about that too, but was fast for me to copy & paste! Okay I'll do that.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Engaged ,
Apr 29, 2019 Apr 29, 2019

Copy link to clipboard

Copied

text.animator("Animator 1").selector("Range Selector 1").start -10;

didnt work well

text.animator("Animator 1").selector("Range Selector 1").start -100

works. totally spelunking around here. That's subtracting from the percentage value not the time right?! Your delay variable is time related?

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Valorous Hero ,
Apr 29, 2019 Apr 29, 2019

Copy link to clipboard

Copied

LATEST

When I wrote this earlier - text.animator("Animator 1").selector("Range Selector 1").start + delay

I was under the assumption that you knew the delay represented time. So, you had to input a valueAtTime method in order to get the delay.

Anyway, this Expression should work. And since we're using the valueAtTime, we are calculating in terms of time and specifically the delay here is in seconds. You can look at other time related Expression methods to calculate in terms of frames.

text.animator("Animator 1").selector("Range Selector 1").start.valueAtTime(time-1)

Motion Graphics Brand Guidelines & Motion Graphics Responsive Design Toolkits

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Engaged ,
Apr 29, 2019 Apr 29, 2019

Copy link to clipboard

Copied

I subtracted 10 (seconds) from the time value in the second animator expression and surprisingly it seems to work! I have no idea what is going on conceptually. Please explain if you have time.

     100 * (time – 10 – startTime)/timePerLine;

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines