Bone morph dials script

Moho allows users to write new tools and plugins. Discuss scripting ideas and problems here.

Moderators: Fahim, Distinct Sun, Víctor Paredes, erey, Belgarath, slowtiger

Rudiger
Posts: 786
Joined: Sun Dec 18, 2005 2:25 am

Post by Rudiger » Tue Feb 16, 2010 2:06 am

Hehe, I'm glad you like it Selgin and I'm really looking forward to seeing what you can do with it! Whenever I'm writing a tool, I try to stick to the Law of Maximum Flexibility, to make it possible for talented people like yourself to come up with uses that I wouldn't even have thought of!

You're timing couldn't be better as I'm currently on holidays and have been busy adding a bunch of new features to the tool:

1. Added ability to specify a point group along with an action using dot notation. This one I really like as it reduces the number of actions you have to create. For example, in the demo file, you only need to have an action for "angry", "sad", etc, plus a group defined for "eyes", "mouth", etc, then you can add control bones like "angry.mouth" just to specify that you only want the mouth to be affected by the angry morph. It would also be useful if you wanted to only have an expression only affect half the face, etc. The added bonus is that it's faster as the script only goes through the points in the relevant group instead of the entire mesh each time.

2. Instead of "Bake Morphs" being a final step, made the process reversible so you can switch between realtime and static modes just by pressing a button. I found this to be useful of complex characters where the number of points is too great for fast playback in realtime mode.

3. In realtime mode, made it so edits to the main timeline add to the effect of the morph dials instead of replacing them. This makes it really easy to tweak the effect of the morph dials and it can also be baked in.

4. Made it possible to bake in multiple passes so that stuff like head turns can be kept smooth if you have other actions with keys on every frame, like for dialog, etc. This also lets you use the result of a bake as another morph dial to help speed up complex sequences involving lots of morphs.

The only thing is that this version is quite raw at the moment, but if you interested, I could possibly sneak you a copy for alpha-testing.

With regards to your question, only point position can be viewed in realtime as there is no way to affect the other channels without creating a keyframe. The curvature channel should already be included in baking though. With regards to color, I'm still thinking about the best way to do it, as so far all morphs are applied as the difference from frame 0 instead of its absolute value, but perhaps this doesn't make as much sense for color. Perhaps, if you let me know what your intended use was, it would help me work out what would be the most useful.
User avatar
Víctor Paredes
Posts: 4874
Joined: Wed Jan 26, 2005 12:18 am
Location: Ireland/Chile
Contact:

Post by Víctor Paredes » Tue Feb 16, 2010 4:01 pm

Oh, thank you for your reply. The new features looks pretty useful.
I'm right now working in a turning face but with a secret improvement :roll:, I hope to show you the first test soon. Obviously this character will be made using your morph dials script.

If you want a beta tester I happily offer myself.

About my channel question, I have nothing right now in mind, just thought it would be cool to have as many channels as possible. Curvature, nevertheless, is a must be for this kind of tool, changing the curvature of some points really gives a spacial effect. And I can't really imagine a mouth or eyes without changing their curvature.

About color channel I just have an idea, for example, for light changes it would be great. I can't explain it well, so I send you an anme file
http://www.mediafire.com/?h3myud4idxj

Thanks again for your kindness and your absolutely fantastic scripts.
Víctor Paredes
Former Moho Product Manager
Animator in Cartoon Saloon
My Youtube Channel - My webinars
Rudiger
Posts: 786
Joined: Sun Dec 18, 2005 2:25 am

Post by Rudiger » Tue Feb 16, 2010 10:53 pm

Hi Selgin,

Going on that example, it would seem that you would still want the morphs to be applied absolutely for colors, by default. You could then add modifiers to the bone name to control how you want the color morph to be applied, eg affect alpha only, saturation only, etc. I'll add it in to the latest version and IM you the link so you can try it out.

By the way, I'm glad you're playing around with lighting as I've always seen some great potential for some cool lighting effects using this technique. I think I already mentioned it to Darth Furby above, but one thing you could do is set up an array for controlling the light direction, similar to the one for head direction. You could then have separate dials for intensity and color, etc.

Rudiger
Rudiger
Posts: 786
Joined: Sun Dec 18, 2005 2:25 am

Post by Rudiger » Fri Feb 19, 2010 5:12 pm

Damn, I love differential blending! After spending the whole day trying to get the absolute color blending to work on each color channel individually, I discovered that making the color blending differential gives you all that for free! Also, it's a lot easier to implement since all the other morph blending is done differentially.

Like I said it's pretty rough, but I can package what I've got for anyone who wants to try and test it out. Just PM me if you are interested.
User avatar
Víctor Paredes
Posts: 4874
Joined: Wed Jan 26, 2005 12:18 am
Location: Ireland/Chile
Contact:

Post by Víctor Paredes » Mon Feb 22, 2010 12:38 pm

I want to test! I want to test! :D
Ok, I'll send you a PM too :roll:. Sorry I haven't answered before, I was a little busy.
Víctor Paredes
Former Moho Product Manager
Animator in Cartoon Saloon
My Youtube Channel - My webinars
tinnycan
Posts: 28
Joined: Mon Nov 13, 2006 5:46 pm

Post by tinnycan » Mon Mar 08, 2010 12:30 am

This is a really awesome tool! If I name the actions the same they all get effected by the dial, awesome for head turns and such. On a semi-related note, how can I apply scripts to multiple layers in one go?
Rudiger
Posts: 786
Joined: Sun Dec 18, 2005 2:25 am

Post by Rudiger » Tue Mar 09, 2010 7:49 am

Glad you like it tinnycan. By the way, I've now added color and layer order channels, so I hope to finish cleaning up and testing soon, so I can release it. The inclusion of layer order is particularly cool, as it means that you can now do complete 360 degree head-turns, which has certainly been a holy grail of mine for some time!

Of course, these new channels will only work when you bake in the effect of the morph dials, like you already have to do with curvature and width. However, I've added an auto-bake feature to customized version of the translate_bone and rotate_bone tools, so you can see the result of all of the channels in real-time without requiring any embedded layer scripts.

Also, I'm afraid I don't know of any way of adding scripts to multiple layers in one go, other than bringing up the anme file in a text editor, of course.
tinnycan
Posts: 28
Joined: Mon Nov 13, 2006 5:46 pm

Post by tinnycan » Fri Mar 12, 2010 4:55 pm

Great, cant wait! Also a quick question, what does Bake in effects of morph dial do? I've also tried to use your create morph tool instead of regular actions but it has problems when a layer is inside of a group/bone (like resetting to default scale, etc) minor issues really.
Rudiger
Posts: 786
Joined: Sun Dec 18, 2005 2:25 am

Post by Rudiger » Sat Mar 13, 2010 4:02 am

The "Bake" tool creates keys in the main timeline based on the morph dials at each frame. The big advantage to doing this is that means the morph dials can effect all of the channels instead of just point position.

I also like baking as I have very complex characters, which just can't be played back at the full frame rate with the real-time layer scripts enabled on my 5 year old machine. The other advantage of baking is it lets you use the morph-dials in conjunction with bone animation. Oh yeah, and with baking you can often achieve a smoother result, as you can rely on Anime Studio's interpolation between frames for head turns, instead of having to calculate the morph result at each frame.

In case you haven't guessed, I've been leaning more and more towards the baking approach lately :D.

With regards to your bug inquiry, I'm not sure what you mean by "resetting to default scale", so could you please give me more information or perhaps even send me an anme file example. It sounds like maybe the CreateMorph tool is acting on the bones in your bone layer. To be honest I haven't tested it much with bone layers, so I'm not surprised it's giving you trouble.
williamsmith
Posts: 1
Joined: Tue Apr 06, 2010 11:58 am

Post by williamsmith » Tue Apr 06, 2010 12:27 pm

It just occurred to me that, because this script operates on bones, it could be used recursively. What I mean is you could create actions on the bone control layer and then blend these actions together on another bone control layer. Yeah I know, it made by brain explode too. I guess it's a bit screwy, but who doesn't want to follow the dream of doing an entire animation with a single bone
william smith
Genete
Posts: 3483
Joined: Tue Oct 17, 2006 3:27 pm
Location: España / Spain

Post by Genete » Tue Apr 06, 2010 1:50 pm

but who doesn't want to follow the dream of doing an entire animation with a single bone
If you press space, left ALT right CTRL, ESC and Pause keys with a single hand meanwhile trace a circle with the mouse and make a small jump in your chair, a hidden special script wizard will be triggered which would create the animation of your dreams in one shot. :P
-G
Rudiger
Posts: 786
Joined: Sun Dec 18, 2005 2:25 am

Post by Rudiger » Tue Apr 06, 2010 2:11 pm

williamsmith wrote:It just occurred to me that, because this script operates on bones, it could be used recursively. What I mean is you could create actions on the bone control layer and then blend these actions together on another bone control layer. Yeah I know, it made by brain explode too. I guess it's a bit screwy, but who doesn't want to follow the dream of doing an entire animation with a single bone
Wow, is there an echo in here? Any particular reason you decided to repeat my post without making it clear or adding anything new?
Genete
Posts: 3483
Joined: Tue Oct 17, 2006 3:27 pm
Location: España / Spain

Post by Genete » Tue Apr 06, 2010 10:34 pm

Ugh! that means that my silly post is meaningless. I apologize for making a joke on that! :oops:
-G
Rudiger
Posts: 786
Joined: Sun Dec 18, 2005 2:25 am

Post by Rudiger » Wed Apr 07, 2010 1:24 am

Genete wrote:Ugh! that means that my silly post is meaningless. I apologize for making a joke on that! :oops:
-G
Not at all! My post definitely deserved a comment like that, so better late than never, eh?

I suspect that our friend William Smith is actually a spam bot in disguise. Maybe repeating a random post from a thread is a new way to up their post count so when they advertise something it is more believable. I wonder whether AI will ever get good enough that you won't be able to tell the difference between spam bots and people? Maybe, that's what's supposed to happen. The bots will overrun the internet and claim it as there own, and us humans will be pushed back into the real world where we belong :).
Dsieda
Posts: 7
Joined: Wed Apr 14, 2010 10:07 pm
Contact:

Post by Dsieda » Wed Apr 21, 2010 12:36 am

I think I may be the only person dumb enough to not understand this at all. ^^; I don't expect immidiate help as I know everyone is very busy, but maybe someone can dumb it down for me to understand how to work this.

When I unzipped the package, I went into my directory, where the scripts are I extracted the tool into the tool folder, menu I opened the menu folder and put in the whole Morphs folder. Then where it says Embeded I put that into my scripts folder... I could be so wrong on that but I don't know.

So I go and open that anme file. Go to the MorphDials layer so the bones are showing, hit play on the timeline. I see the bones are moving but... the vector layer isn't. I'm ssure everyone's like "We've answered this question a thousand times!" XD Thing is, I think I'm too dumb to actually know what's wrong and what the solution is. Ok, so then what I do is go back to frame 0. Go to the menu bar and where it says scripts, I go to Morphs. RT: Bake in effect of bone Morph dials

Ok now push play and it starts to behave. However, if I try to move the bones myself now, it doesn't want to work. It just shows bone movement again. So... I make a new keyframe, open scripts, morph repeat what I've done, it works for that keyframe, then no more.

Now, I'm thinking, Dsieda, you're weird, just read through what they've said and try to fix it. I've gone back through posts...but my brain exploded. ;-; can someone tell me what on earth I'm doing?
Post Reply