MotionTool - Dev Thread


(vitorbalbio) #1

Motiontool. The New Way To Make Animations!

MotionTool is the in-house Node Based Animation Framework developed by Cogumelo Softworks. For those that work with Animation, Motion Graphics, FX and need a better animation solution or just wanna have some fun with procedural and node based animations MotionTool is just what you need!

What features does MotionTool have?

MotionTool was designed for a In House solution, it’s already quite stable and can be used in your diary works. despite it’s in BETA stage so much more features will be released yet!

  • Node Based Anim: MotionTool is a Node Based Animation Framework, just play with it non linear, new paradigm of animation!
  • Easy To Use: MotionTool is very easy to use! Just set easy nodes config and play to see animation!
  • Out of Box: MotionTool is full out of box, that mean that we have our own animation system, it doesn’t use fcurves or actions to do the job
  • Realtime Feedback: See your animation flowing through the nodes with a realtime feedback in Node Editor.
  • Objects or Full Scenes: Link Diagrams to as many objects as you want to in a single node config or make a full scene animated
  • Group Management: Configure Object groups and set its sequence to make effects like time offset in objects!
  • Ease Motion: MotionTool implements from scratch the ease interpolations, just set and see the effects!
  • Full Library: Play with more than 20 node types that include math, transforms, data access, flow control and much more!
  • More Coming! See more news, videos and tutorials in our Youtube Channel

This is the Dev Thread, here we will post all updates, tests and development news about MotionTool, if you have any issue using it please contact us in the Support forum, if you want to know more, have some suggestions or ideas to share with us you can just post it here! We want to listen what did you think about it! Cheers!

Buy it now on BlenderMarket


(Jacques Lucke) #2

Hey this looks awesome. In the other thread you said that your approach is different. You were totally right! I really like how easy it is to create these animations using your addon :slight_smile:


(vitorbalbio) #3

Thanks Jacques! :wink:
We’re very proud of our system, it took a lot of time to design and a lot more to code! If you have any suggestion please let us now, we want to make it the best system possible! During the BETA program we will catch all feedback of the users and make a roadmap for next versions, we have already a lot of ideas but we think much more can come from users.

Cheers!


(Jacques Lucke) #4

and you can be very proud of your system! :smiley: I really can imagine how much effort you put into it and it was worth it :slight_smile:
May I ask how much code this addon has in total? I know you can’t measure software this way, but it would be very interesting for me.

When I looked deeper into the functionality of your addon, I will definitly try to give you some feedback. :slight_smile: Sadly I’m currently limited to your Videos but I think this should be enough to get a good idea how it works.


(vitorbalbio) #5

Hi Jaccques, it have almost 2k lines of Python code, it don’t seams too much, but it’s cause we have planned it a lot, so we don’t spend too much code to handle useless things. Also our code is very condensed in just 3 files, this makes it easier when we want to update all nodes with a new feature / code block…


(Jacques Lucke) #6

Okay. Thanks. Well, with 2k lines of Python code you can do a looot :smiley:
yep. handling useless things always makes a lot of annoying code

I’m always trying to separate the nodes into individual files so that I can work on one alone without all the code that doesn’t belong to its functionality. But your way of dealing with files is totally fine: your nodes do totally different things than mine :smiley:

Sooo. Now I wait for more vids from your side :wink: Keep on writing such cool addons :slight_smile:


(kakachiex2) #7

hello victor wow so nice i will buy it wen i get some job done it will be possible to do something like fxfactory node you cant see some info here maybe you can get some inspiration
http://fxfactory.com/info/nodes2/
http://fxfactory.com/


(vitorbalbio) #8

Hi i didn’t know this Nodes2 from FXfactory, very nice. it’s much more a “template” based effect system than MotionTool that is a framework.

Actually some of the effects that i saw in the demo we can do with MotionTool. If you have any others links of great motion graphics effects it would be great! We already saw a lot but there’s much more around…


(karlis.stigis) #9

After tinkering a bit with this tool I see a few things that could make this tool more useful… will have to test a bit more though.

For example there could be a function to make the IDs of objects in their selected order or randomly.

For nodes would be good to have a Random function which really makes a random number every frame, not just a static random number.

Would be cool to have a condition node, for example - if objects x rotation gets to 90, start next event.

Another thing I think would be better… if everything would work not only when playing it back, but also without playback. When changing parameters in nodes and moving objects in scene… for example if I have an area influence object, I can not move and animate it without a visual feedback.

Another thing - taking animation from one object and repeating that to another with delay node. Including texts. :slight_smile:

That are my thoughts for now… :wink:


(vitorbalbio) #10

Hi Karlis! Thanks a lot for your feedback! Saw your portfolio website, quite impressive works!
I will try to answer it all.

For example there could be a function to make the IDs of objects in their selected order or randomly.

We can’t keep tracking of the selected objects order, it’s a blender limitation that is very annoying! Actually the Set Group in Animation Tab was coded for this task but when we saw that we can’t do it we just make it set to a single value. I’m thinking in a solution for that maybe with a modal operator… we need design it better. However Random IDs are feasible to make, Noted.

For nodes would be good to have a Random function which really makes a random number every frame, not just a static random number.

We can set the seed value of the Random as a input, that way you can set the current frame as a seed value and get a new random number by frame. That looks better than a fixed parameter seed actually. Noted Too.

Would be cool to have a condition node, for example - if objects x rotation gets to 90, start next event.

Condition node is planned for future releases but we need a good design for it yet. I like the way that UE4 blueprint works for that, maybe we can do something similar ( If a condition is true go to the Branch 1 if it’s false to to the Branch 2), and make a Logic Gate node with outputs True/False for a float test ( >, <, >=, <=, !=, == ) that link on it. but we need to see if it works in our core system.

Another thing I think would be better… if everything would work not only when playing it back, but also without playback. When changing parameters in nodes and moving objects in scene… for example if I have an area influence object, I can not move and animate it without a visual feedback.

That is quite against MotionTool Design, take as example the “Set Position” if it update during each scene update you would never change the position of the object, the Set Position would stuck it on that position… You can think that we can make a switch On/Off for this task but it’s simply not elegant, we want to make it simple as possible, and mostly non intrusive as possible too. The “Interactive” Mode is when you play the animation exactly as other blender interactive/simulation tools such Smoke and Fluid Simulation, it have the same design.

Another thing - taking animation from one object and repeating that to another with delay node. Including texts. :slight_smile:

MotionTool is not designed for that kind of task, we don’t want to be a “Fcurve Helper”, one of the goals of MotionTool is to be out of box, that mean, don’t get in Blender Animation System to do things… I’m sure you can find other better solutions for that around.

We want to hear more, if you have any other suggestions please let us know.
Cheers! :wink:


(nicolas rouelle) #11

hy, very great tool,
is there texte control, like kern and set, size, rotation, position of letters inside a word orparagraph or text, for mograph animation with textes?


(nicolas rouelle) #12

can we animate textures, color and transparence of objects by nodes too?


(vitorbalbio) #13

Hi nicolas!

hy, very great tool,
is there texte control, like kern and set, size, rotation, position of letters inside a word orparagraph or text, for mograph animation with textes?

there’s not a specific operator for texts, but as you can see in the demos you can just convert a text to objects and handle it as a group. I don’t think there’s a way to do such a thing without convert it to objects before in blender.

can we animate textures, color and transparence of objects by nodes too?

Textures can be animated using a UV Project modifier and accessing it with a Set Float Operator the path is this kind of data is:
X position: “modifiers[“Here is the name of the modifier”].aspect_x”
Y position: “modifiers[“Here is the name of the modifier”].aspect_y”

Transparency can be handle with Object Color in BI with a Set Color Operator. The Path for OBcolor is “color”
In Cycles you can change the Node value directly with a Set Color Operator. The Path is: active_material.node_tree.nodes[“Node Name Here”].inputs[0].default_value

Cheers!


(nicolas rouelle) #14

Thanks, i was thinking of word or paragraph with procedural actions inside without stoping text editing in case of client changings but it already work well in your exemple.
Thanks for the exemple of color/texture animation and transparency, definitely cool tool :slight_smile:


(karlis.stigis) #15

I am happy to hear that you are planing to make those other things, but I dont understand why you dont want to make it as “helper” for curves also, because it’s much simpler and more creative to animate a movement as you like and then apply a node to delay that for other objects. Making the same effect with only numbers and nodes is great, but not that intuitive in many cases, so these things should benefit from each other. As I said in onother forum thread, as animator I dont want to learn and use many different node tools, would be great to stick with one.

As for text fiels… Hmm, I am not programmer, so I dont know how it’s done, but I think that should be able to do. Because you lose the flexibility of work by seperating every letter manually. For example it’s a very common situation when client changes text in project few or many times and most of the time in last minute… So imagine if everything has to be separeted again and again and again. Maybe for one word it’s ok, but not if you have a sentence.


(karlis.stigis) #16

Also it would be super useful to have something like “cable connection” system to get parameter from anywhere in Blenders interface and not bother with datapath copying and searching.
something like this: https://cdn.tutsplus.com/cg/uploads/legacy/076_Max_SoundScript/7.jpg
Of course this probably is a whole different job to implement that, because there is no such possibility in Blender at all…


(monsterdog) #17

This looks pretty cool.

Is it pure python and does it run on Linux/Mac/Windows?


(vitorbalbio) #18

but I dont understand why you dont want to make it as “helper” for curves also, because it’s much simpler and more creative to animate a movement as you like and then apply a node to delay that for other objects.

See that there’s no way to delay a “play” of objects fcuves, when you play, all fcurves of all objects play at the same time you can’t retard it, the way to do it is change all the objects fcuves and delay it position in the X (time) axis per a delay time. So it can’t be integrated in any MotionTool functions since it would be not Node Based or Procedural… You need a “Fcurve Helper” to iterate trough objects and change it X position of all Keyframes… At least that’s the way that i see this implemented, of course i want to listening if you have other code solution to that, would be a nice feature to have a “Play Fcurve” that works inside the MotionTool design but as far as i can see it can’t be done.

As for text fiels… Hmm, I am not programmer, so I dont know how it’s done, but I think that should be able to do. Because you lose the flexibility of work by seperating every letter manually. For example it’s a very common situation when client changes text in project few or many times and most of the time in last minute… So imagine if everything has to be separeted again and again and again. Maybe for one word it’s ok, but not if you have a sentence

Animation without make it a object just can’t be done with Blender, that’s not a MotionTool limitation, it’s a Blender limitation since you don’t have access to Letters transforms (Loc,Rot,Scale) inside the Text Object. There’s no too much that we can’t do about it, but i will try to think in others solutions for it task. Maybe there’s a workaround for it, maybe a text generator, but we don’t have a good design for generators yet. Actually generators can be the most hard feature to implement in MotionTool Design that i want to put inside it someday, it’s a very intrusive system and we need to think how to do it right to not be just a hack but a elegant and streamlined solution.

Also it would be super useful to have something like “cable connection” system to get parameter from anywhere in Blenders interface and not bother with datapath copying and searching.
something like this: https://cdn.tutsplus.com/cg/uploads/…ndScript/7.jpg
Of course this probably is a whole different job to implement that, because there is no such possibility in Blender at all…

Today we have only this Direct Data access but with time we will try to push it to a more easy way. Is not that good have to know or find the data path, we know and we are working on solutions for that. This Link system is gorgeous, i would like to see something like that in Blender, i don’t think it’s possible implement some like that in a addon but we will work in a better solution over time.

This looks pretty cool.

Is it pure python and does it run on Linux/Mac/Windows?

That’s full out of box, pure python, it works in any OS that blender works.
Cheers!


(karlis.stigis) #19

Thank you for answers. I feel that you really know what you are talking about and that you understand what I am saying, the only problem is basically, that there are some limitations which can not be overcome through making an addon… and oh my, oh my how often I have heard this SHIT (I apologise :slight_smile: )
That makes me think, that best thing to do would be to not just make an addon, but maybe fund a project to make make your branch of Blender! I understand if you don’t want to get in that so deep, but I feel that most of the addons are not very usable exactly because they just can not do one or another thing limited by Blender… and that is time and money waisted. I mean… what the hell… how hard can it be for Blender to remember order of selection for example. :smiley: Of course this is probably the easiest of tasks, but still - a needed one.
All those things we talked about are really necessary to make this tool great, otherwise it’s just mediocre…
If only more people would be ready to donate/buy it…


(vitorbalbio) #20

That makes me think, that best thing to do would be to not just make an addon, but maybe fund a project to make make your branch of Blender! I understand if you don’t want to get in that so deep, but I feel that most of the addons are not very usable exactly because they just can not do one or another thing limited by Blender… and that is time and money waisted. I mean… what the hell… how hard can it be for Blender to remember order of selection for example. :smiley: Of course this is probably the easiest of tasks, but still - a needed one.
All those things we talked about are really necessary to make this tool great, otherwise it’s just mediocre…
If only more people would be ready to donate/buy it…

I respect your opinion and we will take it as constructive position. Just let me say, MotionTool is not a “Bunch of unrelated tools that i need for Mographs”, it’s a “Node Based Animation Framework”. If we go to the path of “I need a tool for fcurves, texts (set here anything else)… that is not a Node Based related, but i need… otherwise it’s mediocre” everyone can say too “I need a tool for my unique world specific project, it’s mediocre without it…” what you can see is not a fair way to judge a tool or even a smart way drive it development…

“Make my fcurves play when i want” is a nice feature?! I’m in! But it is not possible even if we going to C core code! All Blender internal animation is just designed that way, there’s nothing about MotionTool even if it was written inside Blender Core…

About Keep Tracking of selected Objects, as i said before i think we can make a workaround with a modal operator that you select objects ( and we will keep tracking of this ) and we assign a Group ID for it one in the selected order (we think in even display it ID in Realtime in 3Dview with a OpenGL Draw code)… I can promise you that i will set it on top of our priorities cause we know that is a very important thing to improve our group workflow that is a key part of our system.
Other ideas for ID assign that i collected already are:

  • Assign IDs by objects position (Right->Left, Top->Down…)
  • Assign IDs random
  • Assign IDs by name
  • Assign ID by Data value (Set the path that will be used to sort)

To say that MotionTool (as a BETA you see ) is mediocre and a waste of time just cause it don’t have every single feature that you want just now is not very fair don’t you think? But i’m glad that you share your opinion about it features that you think is necessary, that is exactly what we need to. To know people desires for it ideal and magical tool and make a roadmap that can try (always possible) meet the people needs.

Cheers! :wink: