Copy link to clipboard
Copied
Hi,
I'm animating a character's mouth, using an expression by Dan Ebberts.
I have a comp in a project from the previous version and this expression was working earlier today until I updated to v17.1.1, and now it doesn't seem to work. There are no errors being thrown by the expression code, but the animation does not work.
Here's the set up:
I have a comp for the character, which we'll call CHARACTER. In that comp is a precomposed layer for the mouth, called MOUTH, which contains all of the required mouth animations, each labelled by name with a marker within that comp. On that precomposed MOUTH layer in the CHARACTER comp, I have a time remap with the following expression from Dan Ebberts:
action = comp("MOUTH").layer("MOUTH");
n = 0;
if (marker.numKeys > 0){
n = marker.nearestKey(time).index;
if (marker.key(n).time > time){
n--;
}
}
if (n == 0){
0
}else{
m = marker.key(n);
myComment = m.comment;
t = time - m.time;
try{
actMarker = action.marker.key(myComment);
if (action.marker.numKeys > actMarker.index){
tMax = action.marker.key(actMarker.index + 1).time - actMarker.time;
}else{
tMax = action.outPoint - actMarker.time;
}
t = Math.min(t, tMax);
actMarker.time + t;
}catch (err){
0
}
}
This expression allows me to call each animation in the MOUTH precomp, by putting markers on the precomped MOUTH layer in the CHARACTER comp, each labelled with the same name as the markers for each animation inside the precomp.
As stated before, this was working earlier today, until I updated AE to v17.1.1. I've cleared the cache and database, but still no change.
My only conclusion at this point is that there has been some change in the library of functions within the scripting language. Can someone please investigate this?
- Ben
OS: macOS Mojave 10.14.6
This appears to be due to a recently-introduced bug where using a marker's comment as the index generates an error with the JavaScript engine. Hopefully it will be fixed soon.
Dan
Copy link to clipboard
Copied
To clarify - this expression has also stopped working in other projects completed in the previous version.
Copy link to clipboard
Copied
Start by pressing Shift + Alt/Option + Ctrl/Cmnd + K to open the Project Settings. You can also use the File/Project Settings menu.
Go to the Expressions tab and change the preferences from Javascript to Legacy ExtendScript.
That should solve the problem. The latest build of AE is a little more strict.
There is also a script available that is supposed to convert ExtendScript to Javascript, but I don't know if it will work on this oldie but goodie from Dan.
Copy link to clipboard
Copied
Thanks so much Rick! I'd never have known that setting was there. Much appreciated.
- Ben
Copy link to clipboard
Copied
This appears to be due to a recently-introduced bug where using a marker's comment as the index generates an error with the JavaScript engine. Hopefully it will be fixed soon.
Dan
Copy link to clipboard
Copied
I found running a script with
app.project.autoFixExpressions("Marker", "Marker");
Has fixed a project.