Activity › Forums › Adobe After Effects › Random Letters
-
Random Letters
Posted by Ken on April 4, 2006 at 6:01 pmHi…Sort of a different take on a question I asked a few days ago that Mylennium was kind enough to answer. I have an expression that I’m using to generate a random 5 digit number like:
Math.round(random(11111,99999))
Works great, but now they would like to see how letters would look in the same situation. Is there an easy bit of code to modify this and make 5 letters happen?
Thanks in advance,
KenMylenium replied 20 years, 1 month ago 4 Members · 9 Replies -
9 Replies
-
Mylenium
April 4, 2006 at 6:36 pmYou could try using the fromCharCode() or a custom array, the latter perhaps being more practical. Try this:
my_alphabet=[“a”,”b”,”c”,…,”z”] //insert the complete alphahabet
my_random_a = Math.round(random(0,23)); //arrays start with zero
my_letter_a = my_alphabet[my_random_a]; //get the random letter from the alphabet//create the same setup for all 5 letters
[my_letter_a + my_letter_b + my_letter_c + my_letter_d + my_letter_e] //print the result string
This should give you something usable if you apply it to the source text.
Mylenium
[Pour Myl
-
Colin Braley
April 4, 2006 at 10:04 pmWhile Mylenium’s way will work fine, I did something similar to this recently and came up with a quicker way. Just use this expression for source text of a layer:
//Begin expression
numOfLetters = 10;//Modify me
useSpaces = true;//Modify me
changeEveryFrame = false;//Modify me//Don’t modify below this line
seedRandom(index, !changeEveryFrame)
//–
function genLetter( )
{
r = random(65, 90);//from a to z
return String.fromCharCode( r );
}
s = “”;
for(i = 0; i < numOfLetters; i++) { s += genLetter(); if(useSpaces) s += " "; } s //End expression Modify the first couple lines of code as needed. ~Colin -
Mylenium
April 5, 2006 at 5:18 amYeah, while it works perfectly, it’s way to complicated for someone who’s just started to begin using expressions. Not meaning to be negative, but there is no point in showing off your programming skills if the guy on the other end doesn’t understand a thing and is unable to modify your stuff easily (Can you be sure he even understands the concept of ASCII/ Unicode char codes? Can you be sure he even understands the concept of functions, methods and variables?). You know, people don’t learn anything from just copying pre-made code they don’t see thru… In addition to that my concept can easily be expanded to include other letters or even entire words, which might be what he needs at some later point.
Mylenium
[Pour Myl
-
Mike Clasby
April 5, 2006 at 8:27 amHey, since Ken’s head is spinning, why not throw this into the mix:
This is modified from Dan’s “Exploring Expressions in After Effects 6”, halfway down the page wth the grid of random numbers and text:
https://www.creativecow.net/articles/ebberts_dan/ae6_exp/index2.html
numRows = 1;
numChars = 5;
holdFrames = 5;seed = Math.floor(time/(holdFrames*thisComp.frameDuration));
seedRandom(seed,true);s = “”;
j = 0;
while(j < numRows){ k = 0; while (k < numChars){ c = Math.floor(random(65,91)); s += String.fromCharCode(c); k += 1; } s += "\r"; j += 1; } s ------------------- With the text tool, click to get that little flashing cursor thing, then twirl down the text to reveal "Source Text" and apply this expression to the source text. The way it's set up will give 1 row of 5 numbers that holds for 5 frames, change to suit yourself. -
Mylenium
April 5, 2006 at 8:57 amWhoa, you guys are crazy ;o). If I asked my mom (she’s a teacher) she’d probably say that this is against all rules of didactics and teaching methodology.
Mylenium
[Pour Myl
-
Mike Clasby
April 5, 2006 at 9:25 amI just think it’s nice to have choices, and on the page cited, Dan does a pretty nice job of, if not explaining his expression, at least shedding light on it. Anyway sometimes it’s fun to have your head spin, like getting dizzy from twirling around and around.
-
Colin Braley
April 5, 2006 at 3:34 pmMylenium,
I’m just trying to share what I know. While this expression may have been a bit complicated for a beginner to understand, I assume others who read this thread will be able to look through it and figure out the code and maybe learn something. And in Ken’s case, he got a quick and easy solution even if he doesn’t feel like reading through all the code and figuring it out.
~Colin -
Mylenium
April 5, 2006 at 6:10 pm[Colin Braley] “Mylenium,
I’m just trying to share what I know. While this expression may have been a bit complicated for a beginner to understand, I assume others who read this thread will be able to look through it and figure out the code and maybe learn something. And in Ken’s case, he got a quick and easy solution even if he doesn’t feel like reading through all the code and figuring it out.”Please, no need to apologize. You guys are great (but still a bit crazy ;-D) it’s just that my own rule of thumb is: keep it simple. Using loops, conditional statements and string methods certainly does not fall into that category. You know, the danger is that with such complex stuff you can easily put off people from ever using expressions again (out of frustration of not understanding the code)and that can’t be what we want when we should be convincing them of the exact opposite.
Mylenium
[Pour Myl
Reply to this Discussion! Login or Sign Up