I have updated the build of D11522 at Blender Builds - blender.org
You have to enable “Developer Extras” in “Interface” and “Geometry Nodes Fields” in “Experimental” in Preferences.
The patch now only contains the “String to Curve” node. String manipulation nodes will have their own patch.
I’m aware that using this with the Curve Fill node is really slow right now and that’s because it only supports triangulating the whole curve together. There’s a plan to support multithreaded triangulation of each character separately like in earlier versions.
Would appreciate any feedback. Here’s an example of what can be done now with fields:
Awesome!! Had a little fun, hope to test it more thoroughly later when I have some time, but the little I tried it worked perfectly. Working great with fields. Really hope this makes it to master soon.
I agree. This should go to master soon!
Did a little test, tried to achieve the similar effect I had earlier.
Looks very pretty! Would you say there are any disadvantages of doing this with fields instead of the old attributes?
@ecke101 Great work!
The node feels nice and intuitive. A few comments:
-
Will we be able to transform the letters using the letter index after meshing them with the Curve Fill? Transforming the splines causes very slow performance since the result needs to be meshed at every update. The setup below doesn’t seem to work:
-
Is it possible to get the rotation pivot at points that fall on the spline? Notice the “T” letter here how it rotates floating, in contrast with the “h” letter that seems nicely planted.
-
I’m not sure if we do need all of these options. I’m not sure how the “Max Height” works, and I found the “Align Y” options the least useful.
On the other hand, I love the choices in the “Align X”.
Or it could be just me. -
Would it be possible to have a multi-line string? That would provide an intuitive way of making lines.
-
There is a Character Index and a Line Index output, it would be nice to have a Word index as well.
Which nodes can we use these with? I noticed Set Position works but not Geometry Transform. -
This could be that the field nodes aren’t there yet, but one of the first things I would try to do with Motion Text is to align it along a curve. I can’t figure out if this is possible now and how easy it would be to achieve it.
We would need to place the letters along the curve while preserving their relative spacing from each other.
Great work overall!
P.S.
@cmzw Where are all these nodes from? Are they animation nodes?
Can’t say for sure, but with the current text node one of the cons could be that I can no longer manipulate individual points for each character before they are instanced (text distribute).
But since not all the nodes from fields prototype are there yet, and you also mentioned that there will be string manipulation nodes in another patch, so this might change.
Overall I think this is great because you can create the same effect with less nodes.
Those are just math/vector math/mix nodes (i.e. from shader nodes) you can already access from within the geometry nodes editor.
Thanks, I didn’t realize there was a frame node already. I searched for that but couldn’t find it. Could you say how to find that?
Oh for that’s just a value node with a frame driver.
Thanks, some of my thoughts on your feedback:
-
I’m hoping what I mentioned above about adding a Grouping input socket to the Curve Fill node where Character Index can be connected will solve the bad performance. That’s similar to how it worked in earlier versions before Curve Fill was in master, and it was quite fast.
-
I’m not sure if this is a good idea. What would happen to the ‘e’ that has a rounded bottom for example? Maybe it could be an additional smarter mode in the future.
-
‘Max Height’ is used with the ‘Scale to Fit’-mode to scale the text to fit into a box. The ‘Align Y’-options are probably most useful in this mode too.
-
If you mean a multi-line String input node that’s a bit complicated as there is no such text control in Blender yet. If you want to add a new line you can type ‘\n’ in the string. There’s also a node coming that allows you to use a Text data-block that you can edit in the Scripting editor.
-
I’ve looked at this but it’s a bit more complicated than one might think to extract words from a string. Will probably be implemented in the future.
-
Will have to think about this. I would guess the best way to do it right now is after meshing, similar to the Curve Modifier.
Thanks Eric,
I’m not sure if this is a good idea. What would happen to the ‘e’ that has a rounded bottom for example? Maybe it could be an additional smarter mode in the future.
An additional mode would make sense. I know it’s not as fundamental as other features, but when rotating letters it would look better. The idea is to pivot them like a human would do, instead of just using the bounding box of the letter. For the “e” it could find a bottom-left point on the curve, probably favouring the bottom.
Edit:
Will have to think about this. I would guess the best way to do it right now is after meshing, similar to the Curve Modifier.
I think what’s missing right now is the ability to distribute points separately, getting the position of those points and using them on the letters. I don’t think I can mix & match the indices of two different branches together, I’ve mentioned this in the Fields topic as well.
In the end it would be ideal to have a node to do this in an user-friendly way, but it’s better to think ahead what’s needed.
Really nice work so far @ecke101 , So much better with fields now.
Here is my first test, doing some procedural squishy text.
The node graph:
Was going to post the project file, but realised I can’t attach zips or blends here.
@ecke101 Just a couple of issues that occurred to me while playing around with the build.
-
When using curve fill, it flattens onto a single plane. How would I be able to use it when rotating characters on the z axis like in the animation above?
-
Is there going to be a way to isolate single characters to texture them individually, like you can do with object instances and the object info shader node? For instance if wanted each extruded character to be a random hue or change based on distance.
Thanks @ecke101 for this amazing nodes ! Just starting to play with it and it is already one of my favorites !
That example was made with the older build so it doesn’t work anymore, as you can see on the red nodes here,
Most of the options were exposed as inputs for the modifier so I could animate them directly from the modifier panel
Haven’t had time to try the new build but I think it shouldn’t be too hard to replicate. I’ll see if I can play with it over the weekend.
Thanks i think i got it
Beautiful! This is amazing.
It also seem like curve fill behaved differently(compared to the last build), was it a bug?