RxLaboratory / DuStroke

Advanced Strokes for After Effects
GNU General Public License v3.0
3 stars 0 forks source link

Issues and Suggestions from Testing #2

Open jetrotal opened 5 years ago

jetrotal commented 5 years ago

The Stroke / Path alignment Propriety comes as "-18" by default. I Don't know if expressions have access to the Font Size, a script probably has access to it.

Maybe, In the ideal scenario, the User should never touch the Font Panel when setting up his stroke, since is too easy to break the stroke through it.

So we could define all the Default Values to the Font inside the Script. Like 1 for Font Size and 0.5 for Path Alignment


I was messing with the flow propriety from Brush options, and was having issues with my stroke breaking into two parts. Later i discovered that the Flow from Random Options was set to "50%" by default. Is that working as intended by default?

image


image

Probably you wanted to have one for initial setup and other for controling from Zero. So should the setup one be hidden in the backend of the expression then?


image

✅ I wrote a new sourceText engine based on the TextController suggestion, check here: https://github.com/Rainbox-dev/DuStroke/tree/master/Pseudo%20Effects/DuStroke%20PrototypeTest


image

With it, for example, a user could make Clouds or Spikes with the same Brush: image

Something like this may do the trick of Odds / Even Dynamic Flip: if (textIndex % 2) 100 else -100

And maybe something similar, to do the flop ( Mirror mode? )


image

The error points to this line: ch = parseInt(c);

Maybe the solution is to change it to this: ch = parseInt(ch);

*Another problem with randomize is that it should work either in "Repeat" Mode (densityshape.length) or in "As Is" Mode (density). Maybe we should transform it into a checkbox called "Random Order"**

✅ The sourceText engine covers these issues, check here: https://github.com/Rainbox-dev/DuStroke/tree/master/Pseudo%20Effects/DuStroke%20PrototypeTest


✅ The sourceText engine covers these issues, check here: https://github.com/Rainbox-dev/DuStroke/tree/master/Pseudo%20Effects/DuStroke%20PrototypeTest

I put together this expressions to somehow test this idea, it goes on a custom Source Text:

 //Begin expression
numOfLetters = 10 ;  // Density
useSpaces = true ;
changeEveryFrame = true;
startCharacterCount = 0         // 0 is A
endCharacterCount =8      // 25 is Z

posterizeTime(12);

seedRandom(index, !changeEveryFrame);

//--
function genLetter( )
{
tempA = 65 + startCharacterCount;
tempB = 65 + endCharacterCount
r = random(tempA, tempB); // from a to z
return String.fromCharCode( r );
}
s = "";
for(i = 0; i < numOfLetters; i++)
{
s += genLetter();
if(useSpaces)
s += " ";
}
s
//End expression

Maybe we can Unify them, inside their proper panel, like these mockups: image


There is this big blank space on the smaller end of a tapered stroke:

image

Would it be less task heavy for AE to give more space to bigger characters and less to smaller, instead of multiplying the number of characters to fill these gaps? With a Spacing in ramp mode, we could fix that.

image I kinda found a workaround to solve the space between smaller characters. I made a Position animator, and used these settings and code below:

var a = -(effect("DuStroke")("Enabled")) * (effect("DuStroke")("End"));  // -taperCheckbox * Stroke.endPosition
[a,0]

image

The problem with this solution is that i had to increase the End property until i had a similar spacing between both ends of the DuStroke. And, when i turn the taper off, i have to decrease the End back to "0" too.

I think there's a better way to fix it, considering the scale of every character...


image

We can have a more dynamic way to do these brushes, by Scaling the width from the characters and rotating them.

The advantage to do this is that it will work with any shape of brush, not only these.

The problem is that this solution will conflict with the Dynamic Flip and Rotation properties. Is there a way to deform the width and height of a character ignoring its rotation?

They tackle this propriety as "Roundness" in Photoshop:

image


Every time i wanted to flip a stroke, i had to make the Taper Bigger than the Size. And it changes every property, not only a specific one.

I can aways do a Taper like this:

image

but have a hard time, making something like this:

image

A solution could be attached to an Invert checkbox, or by considering when the Start value is bigger than the End value:

image

Maybe the "Taper" value should be Absolute, not relative to the "Size" property image


In my workflow, i always start creating a DuStroke, then a Shape Layer. Next i have to connect the path from both layers, finally i have to connect all the transform properties from the Shape to the DuStroke, so i can resize, rotate and move the Shape Layer with the Dustroke altogether.

I mean, that's not a big deal, but made me think about skipping some of those steps using through the Script.


Check it out: https://github.com/Rainbox-dev/DuStroke/blob/master/Demo/Mauro_Demos/DuStroke_CurveController_test.aep

image

I had to hardcode the Selector Range Layers, probably there is a dynamic way to do them, and even break them into more segments than i did.


image Proof of Concept: https://github.com/Rainbox-dev/DuStroke/tree/master/Pseudo%20Effects/TextController (The main code is inside the TextInput Layer)

It isn't as flexible as a custom text from another Text Layer, but it could be an alternative to the A to Z combobox, and a helper to anyone that needs self-contained brush presets.

i coded "Tags" to determine the Start and End caps too, like: <sc AAA/> ABBCA <ec CCC/> and made some other tags that breaks the lines and inserts white spaces between specific characters. AAAABAA <br> AAACCAA <tab> AAA <tab> AA <tab> A

image (Text FPS property shouldn't be = 0, After Effects crashes when PosterizeTime is 0);

We could consider it only when the Custom Text/Text Source layer property points to the DuStroke Itself, "None" or invalid layers.

The script Panel could handle all this renaming workaround in a better-looking way, like on that old mockup thingy that we discussed earlier: image

(I included the "break line" tag after testing how duStroke handles text with multiple lines, it could be further implemented, but it's too laggy and out of DuStroke main focus). image

jetrotal commented 5 years ago

(Personal checklist)





image https://github.com/Rainbox-dev/DuStroke/tree/master/DuDots/src/DuDots_FontsMap

I even thought about expanding the html fonts map, to work as an editor, since it's easy to make a text follow a svg path: image

It could write/read a json file, that would affect the scriptUI too. But it seems like it doesn't worth the effort.