Bone morph dials script

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

Moderators: Víctor Paredes, Belgarath, slowtiger

DarthFurby
Posts: 510
Joined: Sat Jul 29, 2006 1:34 pm
Location: New York City
Contact:

Post by DarthFurby »

which menu script did you embed? I'll try it. Also my system crashed while naming the effector bone, same as you.
Rudiger
Posts: 786
Joined: Sun Dec 18, 2005 2:25 am

Post by Rudiger »

funksmaname wrote:i've only experienced 2 or 3 crashes using this, and they all happened upon pressing the 'enter' key after defining a group effector bone (1;2;3;<enter>*CRASH*)

strange if it works for you it must be something i triggered locally trying to recreate sbtamu's problem - we must both have dome SOMETHING that screwed it up locally?? does the script write any external settings or antyhign? what about the menu script? as i embedded the menu script which caused AN error (different error), maybe its the menu script settings file that is corrupt?? where are those settings stored?

-----

ARGH! i just opened the menu and the 'enable layer scripts for realtime morph blending' was unticked (i didnt do this manually)
Ticking it brings up a DIFFERENT error:
\menu\Morphs\rt_bake_morph_dials.lua:168: malformed pattern (missing ']')

*thud*
I was going to suggest that. I also noticed from your anme file that your control bone is currently unnamed. That might be causing problems.
User avatar
funksmaname
Posts: 3174
Joined: Tue May 29, 2007 11:31 am
Location: New Zealand

Post by funksmaname »

I FIXED IT!!!!!!

it seems upon closer inspection, the menu script was emptied of its default settings!

once i added 'MorphDials' to the default name, and ; to the default character, all is back to normal!!!

i guess embedding the menu script messed up its settings... :)

-----

yeah, sorry, this file was saved before naming the effector bone in my tutorial, and i didnt save again after... but still the only crashes i've had are when naming that bone... any ideas why Rudiger?
DarthFurby
Posts: 510
Joined: Sat Jul 29, 2006 1:34 pm
Location: New York City
Contact:

Post by DarthFurby »

The settings that need to be checked off under the morph dials menu(under the scripts menu, morphs, set bake morph-dials options):

Enable layer scripts for realtime morph blending
Preseve interpolation mode (morph-dial key trumps action key)
Preseve existing keys during real-time operation

MorphDials Name to use for morph-dial layer
; Separator character to use for control bone and create morph name

All other options are checked off.
Last edited by DarthFurby on Wed Aug 11, 2010 3:22 am, edited 2 times in total.
DarthFurby
Posts: 510
Joined: Sat Jul 29, 2006 1:34 pm
Location: New York City
Contact:

Post by DarthFurby »

Great! At least we learned something new today: Don't embed the menu script on accident!
Rudiger
Posts: 786
Joined: Sun Dec 18, 2005 2:25 am

Post by Rudiger »

I also just noticed that the realtime morph blending doesn't work on frame 1, just like funksmaname said. There's certainly no reason it shouldn't work on frame 1. I guess I ended up using baking so much on my old, slow laptop, that I never noticed.
DarthFurby
Posts: 510
Joined: Sat Jul 29, 2006 1:34 pm
Location: New York City
Contact:

Post by DarthFurby »

It works on frame 1 for me.
User avatar
funksmaname
Posts: 3174
Joined: Tue May 29, 2007 11:31 am
Location: New Zealand

Post by funksmaname »

lol.
Might be something to do with another script i have... i am pretty indiscriminate when it comes to trying (and then leaving to fester) scripts :)

I'm going to do another screen cast soon explaining a few things including my idea for alternative use of the control bone, and how control bone size (radius) affects individual morph bones...
DarthFurby
Posts: 510
Joined: Sat Jul 29, 2006 1:34 pm
Location: New York City
Contact:

Post by DarthFurby »

looking forward to the video funk, and I'm actually glad that this problem happened, as it should help other people in the future troubleshoot and install the script.
User avatar
funksmaname
Posts: 3174
Joined: Tue May 29, 2007 11:31 am
Location: New Zealand

Post by funksmaname »

I'll mention the problem in my video ;)
There's so much to cover with this tool (and more to come!) - I'm new to screencasting so don't know how much/little to include in a single video...

live and learn i guess...

having scripting functionality for the community in AS was probably the best decision ever made for the application!

-----------

New screencast gone live showing some setup options, and control bone influence explained: http://www.youtube.com/watch?v=sn5VcF4nzFY
Hope it's helpful!
Last edited by funksmaname on Wed Aug 11, 2010 6:07 am, edited 1 time in total.
F.M.
Posts: 497
Joined: Thu Nov 04, 2004 4:29 pm
Location: Between my ears

Post by F.M. »

Thanks for the script, Rudiger!
Also want to thank Funk, for the tutorial, it cleared some important steps that I couldn't grasp. I'm just too damn visual!
"and then Man created god!"
User avatar
funksmaname
Posts: 3174
Joined: Tue May 29, 2007 11:31 am
Location: New Zealand

Post by funksmaname »

glad it helped F.M.

I had a play to make a few seconds of animation and put some of this stuff to practice!

I added an up pose, and a left pose - i wanted to see if they would mix together to make a diagonal left pose... result wasn't too bad imo, although you could create a specific 45deg pose... I overlayed the bones with shapes so you can see how they move.

I really love how this lets you just PLAY. for example, when all bones go to a 45 degree angle was an accident - i had them all selected and then rotated them all at once making a pose i wasn't planning and quite liked! this takes some of the pre-planning out of your puppetry for unexpected results :)

http://www.youtube.com/watch?v=6ilJ8fJXSlM

I set the pupil movements to 'step' to make them a little less fluid.

The actual animation doesn't show the full up and left poses as raw actions so heres a screenshot:

Image

upcoming screencasts include (once I work out how to use them!): How to use the tools, how to bake and tweek, and how to use animated action channels... Rudiger, if you can explain these to me it will speed up my learning curve lol.

I tried creating a looped 'lalala' tongue flickering layer and was amazed to see that if you turn its MorphDial(TM) partially between 0 and 45degs it actually tapers the animation!
Rudiger
Posts: 786
Joined: Sun Dec 18, 2005 2:25 am

Post by Rudiger »

Oh wow, that's a very innovative way to use the tool. I always try and make my tools as flexible as possible in the hope that someone will think of a way to use it that I never could have. It also makes me wish I had a multi-touch screen at it would just be like puppeteering!

I can barely remember how those tools work either :). Bake should be fairly self explanatory as it just converts the morph blending into actual point keys. Once you run it, you should be able to turn off the realtime morph blending and see the baked animation. It's also good for other channels like curvature and width that can't be modified in real time.

The create morph tool is quite interesting. It lets you do the reverse of the normal morph blending process. So you can tweak the look of the morph result at a certain frame on the main timeline then you can hit the create morph tool and specify an action for the tweak to go into. Then you can delete the keyframe on the main timeline and your tweak will still be applied in realtime along with the other morphs.

Hope this helps.
User avatar
funksmaname
Posts: 3174
Joined: Tue May 29, 2007 11:31 am
Location: New Zealand

Post by funksmaname »

ok, I assume that only works when the current actions are baked? i can't make any point animation direct while the 'use morphdials' tickbox is active.

Also, i've noticed sometimes when I create and name a bone it creates an action for me automatically, but haven't been able to reproduce this behaviour consistently enough to work out when/how it happens - could you clarify?

regarding animated channels, does the animation stay synced to the main timeline? for example, if i create a single blink action without defining it as a repeating cycle, will it only play if the action is active in sync with the main timeline?

My mind is buzzing regarding being able to taper intensity of lipsync depending on the bone angle! for example, you could create a lipsync of a face with extreme disgust, but then 'ride' the bone rotation (*did i just say 'ride the bone?? :S I think it's justified in this instance lol) to vary the 'disgust intensity' throughout the dialogue! this should result in a very organic non-uniform dialogue performance... mix that with a bit of happy lipsync of the same conversation for a few words and you have a evil mocking disgust... *phew!*

Can't wait for object order control... how is that controlled?

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

Post by Rudiger »

You can tweak the result of the blending even with real-time blending enabled. Just make sure that the "Preserve existing keys during real-time operation" checkbox is checked.

It will always automatically create an action as soon as the bone with the action name has a non-zero weight. Later versions of AS let you query whether an action exists or not, but I haven't bothered to make use of that yet.

For animated channels, I'm afraid it's not clever enough to resync actions when their weight comes out of 0. For all actions, whether they are single frame or multi-frame, it's always the current frame that is used. Resyncing would be very hard to do in real-time mode as you wouldn't always be stepping serially through the frames, but it might be a possibility for baking.

Don't forget bone rotation works in both directions, so you can amplify animated channels as well as tapering them. Definitely good for adding emphasis to lipsync.

The object order control is layer based since AS still doesn't have animated shape order (my fingers are crossed for AS8 if Mike's listening :)). Obviously, you can't really "blend" two different layer orders together, so it works by the one with the maximum weight winning out. It sounds overly simple, but it works surprisingly well. In the newest version you can assign mutliple target morphs per bone, so you can add one layer order morph (eg left ear behind head) to the "left" morph bone and another (eg right ear behind head) to the "right" morph bone. When you're exactly at midway between the "left" and "right" morph bones it switches the layer order over, which is exactly what you want.
Last edited by Rudiger on Wed Aug 11, 2010 10:56 am, edited 1 time in total.
Post Reply