MotionTool - Dev Thread

I think you took this a little too personally, because of pressure in comments from many people. I said, that in my experience many addons are not actually fully doing what they where ment to, because of some limitations or maybe people just cant spend enough time to complete them. And I think you would agree, that many things are mediocre and not well thought out in Blender community, and from what I have seen and tested - addons especially. I am very aware of those talks programmers have, that users just want a specific feature and so on, but doesn’t care about other things, but I don’t think that is the case. What I actually want is a unified system which animators could use for many purposes and not be limited by some technicalities. Like for example I know there are plans for unified physics system in Blender, where cloth sim and soft objects, rigid objects could all collide… that is the power of one system. Now they all act separately and cannot impact each other… the same thing is with any other tool, it’s great that it all works together and without need for many small addons for every single object type for example… (exaggerating a little now), but that is all I am saying. Of course I completely understand that you cannot do all of that and I don’t expect it from you, but I think you already have the right direction and I am sharing things I have stumbled upon from my personal experience.

You know better what is and what is not possible in Blenders system, that is for sure,
I just know what I have seen in other - commercial apps. ( And I have no idea how those things work inside)

(But please other people, don’t start accusing me of comparing Blender to other apps… :wink: )

Good luck, Balbio.

Thanks for clear your position but i really don’t took it personally, i really think that say it’s mediocre just cause it don’t have a specific feature (That blender don’t have too) is unfair. But i share your opinion that a lot of Blender addons around are not well done. I think Blender limitations is just one part of it and i don’t think is the main cause at all, for sure the second that you point is very more relevant on it case.

See that a system that is a solution for every single problem in all CGI is simply impossible, cause that we have a base software and Plugins, mostly of the CG solution (Open Source or not) work with that proposal ( we make a base system, you make plugins for your needs ) cause is simple impossible move all the people and money and time necessary to make a single, unified system that you can do everything for everyone… What you want is a utopia and i share your desire! I want it too! But in real world that’s not feasible… Cinema 4D Mograph is the most close of it that you will find around for it specific task (Motion Graphics), it took a full effort of a huge company during many years making Cinema 4D and focusing mostly on it segment. But I can bet that i can find someone from it community that can point something missing…

About MotionTool we do not have this goal (be the single one solution for everything), we just want to be the best Node Based Animation Framework possible, integrated as possible with blender and with others plugins too. But we don’t have illusions about a full transversal integration.
Cheers! :wink:

Bridges can be made easily between these bpy pynode systems, agreed it doesn’t make sense to integrate all possible ideas into one node system. For Sverchok - animation is not high on the priority list, so I don’t think our efforts overlap yet. In the long term things will start to overlap, this should be obvious.

Good luck with this project, I think it looks really slick!

Today we was presented to a patch from Thomas Beck (plasmasolutions) that implement a lot of others ease equations. It was already merged in our code for next release! Thanks Thomas!
http://puu.sh/bXvSF/bd0a038b1c.jpg

Updates for MotionTool BETA 0.2 (released planed to next week)

New ID Group assign functions…

  • Fixed: The same as before just assign it value to selected objects
  • Axis: Chose a direction and it will sorted objects by it position, if objects share a position it will share it id too.
  • Random: Random a value 1~len(object count) they are not unique so objects can have repeated random numbers. Random Unique will be implemented after…
  • Object Name: as it say sort it by Object Name

http://puu.sh/bXDmV/bf05e9efe9.png

New Condition Node, Logic Gates and Value Checks for Float (>,<,==,!=) are in progress…
http://puu.sh/bY1pD/659f8129ec.png

Hello again. :slight_smile:

I’m glad to see these updates and can’t wait to see more developments.
Meanwhile I have tested it and have a few things to say.

Here is my test:

First of all, when you start to get into it, it’s really easy to get nice results fast and that is great,
of course it’s possible to make more difficult systems if you know math and etc… I must learn that more. :slight_smile:

Ok… those things I talked about…
I wanted to make roof parts planks to be more bent and imitating flexing from motion, so I used simple Bend modifier on them and as soon as I did that and made 30 copies of it, everything started to slow down significantly, but I can understand that… probably python can’t do it much better… and I know you already said that speed is one of your main priorities.

The way I was planing to make that bending react was to make it react to position of object… and because I used “out back” I got a flexible movement, although would be better with “elastic” easing, that was not possible for now.
But the problem to get the right movement was that I could not delay the bending parameter, so it’s not exactly how I would want it to be.
I tried a version where empty was following a plank objects position with a delay, so I can get the planks position parameter with delay and that actually worked fine, but the problem was, that I could not use this system for copies, because that empty followed only that one plank, so for others it’s not usable. I tried to copy that empty for every plank, but that was just not the right way to do it, because then I would have to make a new diagram for every plank, and that just loses all the point to make this with nodes… heh. Maybe you can find a solution for situations like that or maybe I just don’t know something.
Here is what I wanted to achieve:

Another problem which is really odd and I don’t know why that happened - I opened today this same file I made yesterday and it’s just not working, all is there, but nothing moves. If I make a new object and make new diagram for it, then it works. Weird…
------Edit: I found out, that if at least one object has a diagram, that does not exist anymore, everything stops working. You can get in this situation if diagram has been deleted and file is saved, then, next time you open file, that object still remembers the name of diagram, but diagram does not exist anymore.-----

And it seams I lost one of my diagrams, because I did’t press the “F”, to save it even if it has no users.
By default it thinks that it has no users, so must remeber to press that otherwise will lose it.

That’s it for now, thanks.

Karlis

I’m glad to see these updates and can’t wait to see more developments.
Meanwhile I have tested it and have a few things to say.

Really great videos! You will love the new Group ID assign functions. it’s a huge time saver for that kind of animation. :wink:

I wanted to make roof parts planks to be more bent and imitating flexing from motion, so I used simple Bend modifier on them and as soon as I did that and made 30 copies of it, everything started to slow down significantly, but I can understand that… probably python can’t do it much better… and I know you already said that speed is one of your main priorities.

Can you send me the test file? I really want to take a look on this.

The way I was planing to make that bending react was to make it react to position of object… and because I used “out back” I got a flexible movement, although would be better with “elastic” easing, that was not possible for now.

Elastic ease interpolation is not implemented for now, but i can take a look and advance it for next release. I think the" Out Elastic" is the one that you need for that

I tried a version where empty was following a plank objects position with a delay, so I can get the planks position parameter with delay and that actually worked fine, but the problem was, that I could not use this system for copies, because that empty followed only that one plank, so for others it’s not usable. I tried to copy that empty for every plank, but that was just not the right way to do it, because then I would have to make a new diagram for every plank, and that just loses all the point to make this with nodes… heh. Maybe you can find a solution for situations like that or maybe I just don’t know something.

Sure we can handle it someway, with the file in hands i will take a look for a solution. Something that i think can be useful is the new “Self” option for the Get Object Transform Node that can get the Position of itself anytime (not only the initial one as the Begin)… send me the this file as in the second video and i will take a look. :wink:

Another problem which is really odd and I don’t know why that happened - I opened today this same file I made yesterday and it’s just not working, all is there, but nothing moves. If I make a new object and make new diagram for it, then it works. Weird…
------Edit: I found out, that if at least one object has a diagram, that does not exist anymore, everything stops working. You can get in this situation if diagram has been deleted and file is saved, then, next time you open file, that object still remembers the name of diagram, but diagram does not exist anymore.-----

We found this bug this week too. We will force by code for now always to use the “F” (Fake User) option. But i will take a look for a better handler for it after.

Great feedback! Thank you for share your tries, send me the file if you can, i want to take a look on it too! Cheers! :wink:

great addon, motiontool encapsulates functionality that ive been dreaming of for some time. I’m hoping to get some time next week to give you some proper feedback, but till heres some quick suggestions. (or if the functionality exists then please point me in the right direction) It seems you’ve already address many of my wishlist items in the upcoming release but hers some other ideas…

Firstly a loop control. with infinite and limited functionality, This would be really useful with the new Conditional.

Secondly (and this may be solved by the conditional functionality) once the area influence passes over a object the object retains its value rather than falling off once the area effect has passed.

Also a Value node that can show value changes in real time, would be useful for bug fixing and troubleshooting…

Also there are a number of attributes such as the area influence multiplier that feel like they should have an input, i’m sure theres good reason, it just felt like its worth a mention.
Overall I think you should be massively proud of this Addon, I was intending to develop a more complete version of my old dynamic trigger script, but you’ve created such a robust solution here that it makes that script totally obsolete.
Thanks for putting together such a useful and powerful tool.

Hi,

Here is the file:
https://dl.dropboxusercontent.com/u/2086432/Motion_Tool_Testing.zip

I have one suggestion,

Would be great if animations would calculate only active - visible layers, so even if it starts to slow down, you can isolate one thing to see.
Or, there could be some other way to disable/enable diagram execution even if it is used in scene. Maybe a switch on the node itself… or in a list in toolbar.

Firstly a loop control. with infinite and limited functionality, This would be really useful with the new Conditional.

See that loops such “For” statements are not “Node Designed”, they not make much sense since we can’t refresh the screen during the For Block. So if you have a “For(i=0, i < 1000, i++)” with a “Set Position” Node inside the Block it will be processed 1000 times, every single time with the same result and only after that it will refresh the screen. I’m sure we can make a better design for tasks that are commonly done by loops.

Secondly (and this may be solved by the conditional functionality) once the area influence passes over a object the object retains its value rather than falling off once the area effect has passed.

It can be done with custom property and a If Node that was implemented.

Also a Value node that can show value changes in real time, would be useful for bug fixing and troubleshooting…

Every Node will have a output that you can see when our Debug system is finished. it will be showed in the Properties Panel “N”

Also there are a number of attributes such as the area influence multiplier that feel like they should have an input, i’m sure theres good reason, it just felt like its worth a mention.

Sure, in time every property that can be converted to a input will be, look too that every single input in a node is a bit slower than a property too.

Overall I think you should be massively proud of this Addon, I was intending to develop a more complete version of my old dynamic trigger script, but you’ve created such a robust solution here that it makes that script totally obsolete.
Thanks for putting together such a useful and powerful tool.

Thanks a lot for your feedback. If you any any other ideas latter please let us know. Cheers! :wink:

Here is the file:
https://dl.dropboxusercontent.com/u/…ol_Testing.zip

I will test it!

Would be great if animations would calculate only active - visible layers, so even if it starts to slow down, you can isolate one thing to see.
Or, there could be some other way to disable/enable diagram execution even if it is used in scene. Maybe a switch on the node itself… or in a list in toolbar.

Actually today it only process the objects that are visible (not hidden), but that’s not good cause hide is a important animate parameter to handle, so i’m changing it to “only process objects that are in visible layers”. I think it’s better that way.

Cheers! :wink:

NEWS:

Implemented Logic Functions:

  • If Statement
  • Logic Gates
  • Float Compares ( True if value >=, <=…)

Example:

Cheers!

Hi. Thanks for incredible addon.
But i have some problem since i switched to 2.72 official release (from rc1) - When i create “MotionTool Group”, it appears to be empty. I can rename it, but it marks red color and do not appear in the list. I’m using win64 version.

Hi Dihotom, you need first to create the Group in MotionTool Groups in Scene Panel. In Constraint MotionTool panel you only create a Group Slot and Assign it. Take a look on the Group chapter in the Manual.pdf or checkThis Tutorial. If you yet have problems after that, please send me a example file and i will check for you :wink:

@@karlis.stigis. I tested your file and i can see that it’s a way more complex that i would like to see to implement this effect. That’s the cause of the low performance ( performance decrease with objects count and with diagram complexity ). Instead to send to you a solution for that diagram (that will not fix the performance issue ) i will implement a Interpolate Node (with ease equations too) in future versions ( I will need to rewrite some functions so it’s too late for 0.2 but for sure will be in 0.3 ), that way you can make animation in any data values (included modifier parameter values) such as you do with transformations. That will make much more easy to Anim the modifier value as you need and can also be used for others like materials, shape keys…

Your tests and suggestions has been of great help in making more MotionTool full featured! :wink:
Cheers!

NEWS:
Samples updated to Blender 2.72 with Frames to better reading

New Anim Float Property ( Can be used to anim with ease interpolation float properties of constraints, shape keys…). Color and Vector Anim are next…

Hi,
Great work !

I’m coming from Softimage and with this recent debacle i’m looking at your motion tool as a key for switching…

Over the year (if you know ICE) i’ve managed to create a set of compound who are doing just what Motiontool is doing, managing animation just by proceduraly modulating the current time.

So if we can discuss and share idea it would be very very great, and would give me the oportunity to switch on this platform

I have a bunch of very important questions to understand…

  1. So motion tool is working if i understand right with groups of objects… great, but what about poygon islands and polygon clusters (polygon clusters sorry for the term, in soft this is a group of polygon manually selected in a single mesh) ?
    To explain you better, in some (not rares) cases we need to work on a single mesh and animate directly the islands as separated objects, or polygon groups. Is motion tool able to do that or can you consider to implement that ?

2.a) On Soft, my compounds permits the same with point cloud (managing the SRT of each points for various purpose. Is motiontool able to animate point clouds ??
2.b) If a) i use to also controle “instance animation”, think about a whole hierarchy, pre animated(key frames), point cloud instanced, then proceduraly animated with motion tool, then again proceduraly instances animation delayed ;-). Can motiontool able to do that ? if not… it would be a great idea

3.) “Groups Management”, Are you able to delay with: group order/inverse order/random order/manual ordering by typing the sequence in a field/Diagonal order(for lines of text)/X Y Z ordering/Manual Axe order.

4.) Also about groups and delays, for object you provide easing of the profile animation but, what about the easing profile the delay node, is it already available ? it is VERY important to be able to do that.

5.) Easing, what about a manual fcurve profile ?

6.) Having managed this stuff from many years i’ll tend to think you miss a full matrix transform node, to be able to tackle some common cases of problem with layered transforms :wink:

Thanks you, this seems fantastic !

Looks like this release will be awesome. Can’t wait!

(Also, for better reading would be good if reroute would work.)

MotionTool 0.2 Dev Preview - Anim Float Properties

I’m coming from Softimage and with this recent debacle i’m looking at your motion tool as a key for switching…

Over the year (if you know ICE) i’ve managed to create a set of compound who are doing just what Motiontool is doing, managing animation just by proceduraly modulating the current time.

That’s great! I never saw ICE working but i saw a lot of people talking about it when softimage was dropped. If it’s a node based system so i think i need to take a look on it :slight_smile:

  1. So motion tool is working if i understand right with groups of objects… great, but what about poygon islands and polygon clusters (polygon clusters sorry for the term, in soft this is a group of polygon manually selected in a single mesh) ?
    To explain you better, in some (not rares) cases we need to work on a single mesh and animate directly the islands as separated objects, or polygon groups. Is motion tool able to do that or can you consider to implement that ?

Reading your description i think the Blender’s similar of Polygon Cluster is our Vertex Groups. For now MotionTool don’t support it cause handle transformations per vertex is a way more expansive to processing than Objects. But we have plains for future include it as a experimental or at least with a warning that it’s high demand operation. In some specific cases you can use Shape Keys (Morphs) to transform a mesh topology but probably it’s not what you want…

2.a) On Soft, my compounds permits the same with point cloud (managing the SRT of each points for various purpose. Is motiontool able to animate point clouds ??
2.b) If a) i use to also controle “instance animation”, think about a whole hierarchy, pre animated(key frames), point cloud instanced, then proceduraly animated with motion tool, then again proceduraly instances animation delayed ;-). Can motiontool able to do that ? if not… it would be a great idea

I don’t think i complete understand what did you want, probably we can’t do it in exactly same way since Blender don’t have a great Point Cloud support but maybe we can handle it in other ways, can you send a video example about this kind of effect?

3.) “Groups Management”, Are you able to delay with: group order/inverse order/random order/manual ordering by typing the sequence in a field/Diagonal order(for lines of text)/X Y Z ordering/Manual Axe order.

Group ID Assign by Name, Axis (X,-X,Y,-Y,Z,-Z) and Random was implemented in BETA 0.2 version that will be release this week yet, Manual assign was already since BETA 0.1, more modes are coming (Diagonal is a nice idea).

4.) Also about groups and delays, for object you provide easing of the profile animation but, what about the easing profile the delay node, is it already available ? it is VERY important to be able to do that.

That can be a nice addition, never thought about it, something like a Out Back/Out Quad Group Delay… Can be done i think. Noted here for further investigations :wink:

5.) Easing, what about a manual fcurve profile ?

That can be a bit more complicated, but was already in our scope. We’re already investigating about it.

6.) Having managed this stuff from many years i’ll tend to think you miss a full matrix transform node, to be able to tackle some common cases of problem with layered transforms :wink:

A Matrix Transformation Node can be a nice addition for hardcore users but we need to find a nice way to expose it as a Node without going to a giant block of data impossible to understand.

Thanks for all your feedback, your experience with other softwares is very contributing for MotionTool development! :wink:
Cheers!

Wow, I feel almost like this release is specially for me. :smiley:
Thanks, seeing this playing back so fast really makes me happy.

Wow, I feel almost like this release is specially for me. :smiley:
Thanks, seeing this playing back so fast really makes me happy.

For sure your contribution and from others guide this release, this is the BETA goal in fact. Thanks for share your ideas about MotionTool :wink:

NEWS:
Added Anim Float and Anim Vector. Updated to a More streamlined design, now you use it as a interpolation node only and set it value to a “Set Float” / “Set Vector” Operator, was added too a “Set Modifier Float” and a “Set Modifier Vector” that set a Modifier parameter by it name so you don’t need to find or know it data path anymore… It implementation is a bit slower in large object count but is much more user friendly and scale a lot better. Set Shape Key Float, Constraint Float and Vector and Cycles Nodes (Color,Float,Vector) are planned (of couse you already can use Set Properties for it if you know it data path)