3
$\begingroup$

I want to animate text same way as shown in NFT below using blender. Is it possible?

https://rarible.com/token/0xd07dc4262bcdbf85190c01c996b4c06a461d2430:540065?tab=owners

enter image description here

$\endgroup$
5
  • 1
    $\begingroup$ of course, you need to use the location values of the Mapping and plug the Mapping into the Image Texture that has your text $\endgroup$
    – moonboots
    Jul 5 '21 at 13:28
  • $\begingroup$ @moonboots: That's a cheap solution. Have a look at my answer for real hardcore Blender users...! $\endgroup$
    – Chris
    Jul 5 '21 at 14:25
  • 2
    $\begingroup$ I'm disapointed I thought there would be a bit of Python or some Geometry nodes :/ $\endgroup$
    – moonboots
    Jul 5 '21 at 14:48
  • $\begingroup$ @moonboots I didn't learn geonodes yet, but made Python solution for you. $\endgroup$ Jul 10 '21 at 17:27
  • $\begingroup$ Ok I'm happy then ;) $\endgroup$
    – moonboots
    Jul 10 '21 at 17:33
4
$\begingroup$

Python script

Copy the name of the text curve:

And paste it inside quotes on line 4:

import bpy

frames_per_change = 5
curve = bpy.data.curves["Text"]


def my_listener_text_update(scene):
    if not scene.frame_current % frames_per_change:
        curve.body = curve.body[1:] + curve.body[0]
    

listeners = bpy.app.handlers.frame_change_post
for l in (l for l in listeners if l.__name__ == "my_listener_text_update"): 
    # this is here so you can change the script and run it again without having
    # multiple listeners stacking - make sure the function name is unique
    listeners.remove(l)
bpy.app.handlers.frame_change_post.append(my_listener_text_update)
$\endgroup$
8
  • $\begingroup$ Awesome :) Thanks $\endgroup$
    – vklidu
    Jul 10 '21 at 17:39
  • $\begingroup$ I'm new to python so do I have to copy entire script or only certain lines from it? $\endgroup$ Jul 12 '21 at 8:55
  • $\begingroup$ @RamizDzhavadov copy entire script into a new Text datablock and run it. To see the text changing, just press space or whatever shortcut you use for playback i.imgur.com/GrNlCfq.gif $\endgroup$ Jul 12 '21 at 9:41
  • $\begingroup$ Thank you so much, best solution so far. $\endgroup$ Jul 12 '21 at 10:42
  • $\begingroup$ I'd say it's the worst solution, I added it for fun, but if it works for you...😁 $\endgroup$ Jul 12 '21 at 10:43
7
$\begingroup$

@moonboots in images ... create a text as texture and animate X location in Mapping node.
The easiest way is to create driver, just type #frame*0.01 into Mapping node > Location > X.

enter image description here

enter image description here enter image description here

$\endgroup$
3
  • $\begingroup$ Nice one!!!!!! :D If I would have written such a solution, i BET at least one person would have written: but then you cannot use modifiers and don't have the freedom to do all that good stuff you can do with meshes.....!!! :D $\endgroup$
    – Chris
    Jul 10 '21 at 4:21
  • 1
    $\begingroup$ Lets do setup or render speed competition ... than you will discover what real freedom means :) $\endgroup$
    – vklidu
    Jul 10 '21 at 17:46
  • $\begingroup$ give me another half year of learning (i started Blender half year ago)....then we can do. I am still beginner ... :D but i am really curious how your render speed competition would look like ;) $\endgroup$
    – Chris
    Jul 10 '21 at 18:01
6
$\begingroup$

No real hardcore Blender user would EVER use this very cheap solution moonboots proposes (which of course works and is too easy to use here).

So the real hardcore Blender user always (!) uses meshes to do things.

So first let's create this mesh here by just moving some vertices of a circle around:

enter image description here

Then convert it to a curve.

enter image description here

Then add a text object with a very important text, add an array modifier and adapt the constant offset so that it fits and looks good. And also add a curve modifier with the curve as object you created before.

enter image description here

Then you get this:

enter image description here

Then keyframe the x value of the curve to get his:

enter image description here

To "cut out" just the front we use some math in the shader editor like this:

enter image description here

result:

enter image description here

and if you then add a wave modifier to that...you get a REALLY COOL animation...(nope, can't be done with shaders....except your name is Robin Betts)

enter image description here

blend file:

$\endgroup$
15
  • $\begingroup$ What I got after using math nodes in shader editor is that some part of text retained material color and some parts just became black. imgur.com/a/qpaqm69 $\endgroup$ Jul 9 '21 at 17:00
  • $\begingroup$ Then provide blend file - I will check it out $\endgroup$
    – Chris
    Jul 9 '21 at 17:02
  • $\begingroup$ just adapt the threshold to your needs -> my origin point was another than yours. try this: [1]: i.stack.imgur.com/MDgvh.png -> just "play" around with the values so you see what happens. $\endgroup$
    – Chris
    Jul 9 '21 at 18:08
  • $\begingroup$ Don’t forget to set blend mode to alpha blend in your material! $\endgroup$
    – Chris
    Jul 9 '21 at 18:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.