Activity › Forums › Adobe After Effects Expressions › Predictive text T9 old texting method script?
-
Predictive text T9 old texting method script?
Posted by Adam Lewen on May 3, 2022 at 9:37 pmHello forum, before I delve into a tedious hand made imitation of old Nokia 9pad texting, i thought asking here might be of help.
I need to create some lines of text messages as they were written on pre-smart phone.
So pressing the letter “C” will cycle through a couple of frames of “A” and a couple “B” and then “C”…etc…
Any ideas or thoughts on a script or an idea I can manipulate?
This will be tremendous help.
Thanks for reading.Filip Vandueren replied 4 years ago 3 Members · 7 Replies -
7 Replies
-
Tomas Bumbulevičius
May 4, 2022 at 9:31 amhey Adam, it would be great if you specify how you envision “pressing” and “cycle through” the letters.
You could setup 9 controllers, each linking to 9 text layers (aka, buttons on a mobile)
Then, check “Character Value” text animator in text animation engine. It has full-unicode or types-only controller, which cycles through the alphabet. So you would set a limit of each, to fit specific boundaries of the phone key.
Then its a matter of planning and executing based on your needs. To mention – its just one of the ways how this could be achieved for sure.
-
Adam Lewen
May 4, 2022 at 10:19 amThanks for the reply Tomas!
I imagine when pressing “C” for example, “A” will show for 4 frames- a blank ONE frame-“B” will show for 4 frame – One blank frame – “C” will show, and stay
But if A or B will be pressed, they will have to have a shorter cycle.
And that is true to all 9 controllers.
I understand the idea, but due to my scripting capabilities and the fact some messages will be in the Hebrew language, I fear/guess I will do it by hand…
I thought a script like this might be already exist somewhere 🙂
I will update here if I find anything.
Thanks again! -
Filip Vandueren
May 5, 2022 at 9:21 amHi Adam, this doesn’t implement the blinking of the final character, that could be added with a textanimator, but I hope this can send you on your way:
const message = "123 Typing T9 style texts inside of after effects.".toUpperCase();
const multitaps = { "B": "AB", "C": "ABC", "2": "ABC2", "E": "DE", "F": "DEF", "3": "DEF3", "H": "GH", "I": "GHI", "4": "GHI4", "K": "JK", "L": "JKL", "5": "JKL5", "N": "MN", "O": "MNO", "6": "MNO6", "Q": "PQ", "R": "PQR", "S": "PQRS", "7": "PQRS7", "U": "TU", "V": "TUV", "8": "TUV8", "X": "WX", "Y": "WXY", "Z": "WXYZ", "9": "WXYZ9"};
let steps = [];
let result = "";
for (let character of message) {
let keypresses = multitaps[character];
if (keypresses == undefined) {
result += character;
steps.push(result);
} else {
for (let keypress of keypresses) {
steps.push(result + keypress);
}
result+= character;
}
}
let f = timeToFrames(time/5);
steps[f-1]; -
Adam Lewen
May 7, 2022 at 3:11 pmDear Fillip, I appreciate your reply very much! I am trying to understand how to implement in and how to start. Should I save it as a script and manipulate my way with a text layer?
I am sorry I am asking a very basic question…
Regards and thank you. -
Filip Vandueren
May 7, 2022 at 3:32 pmHey Adam, this should be an expression on the sourceText of a text-layer
-
Adam Lewen
May 8, 2022 at 5:53 amO my!
I am speechless. A quick test showed it also works in Hebrew!
If in English you would want to differentiate upper and lower letters, this would have to be via “cont message.toUpperCase and lower?”
for example “Good morning Filip!, this is very NICE”.
//Thank you! -
Filip Vandueren
May 8, 2022 at 9:31 amYou would not do uppercase() at all, and add extra entries for the lowercase characters in the multitap object.
The way it works is that if it doesn’t find it in the multitap-object, the character appears immediately, if it’s in the multitap, it goes through every character in that string.
So you could also do c: “ABC2abc”, but that’s not how it worked back then I think. There were extra menu buttons to switch lowercase/uppercase in the phones, no?
Instead of basing the next step on the time/frames, you could tie that to a slider of course. The main thing to remember is that you are animating through the amount of taps, not the final characters.
Reply to this Discussion! Login or Sign Up