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

User avatar
ulrik
Posts: 1087
Joined: Thu Aug 11, 2005 10:32 pm
Location: Stockholm Sweden
Contact:

Post by ulrik »

Rudiger wrote: 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.
Hi Rudiger, does this mean you have a new version out somewhere? :o
Rudiger
Posts: 786
Joined: Sun Dec 18, 2005 2:25 am

Post by Rudiger »

ulrik wrote:
Rudiger wrote: 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.
Hi Rudiger, does this mean you have a new version out somewhere? :o
I am currently developing a new version, but haven't released it anywhere yet. DarthFurby and funksmaname have put their hands up to become beta testers for it, so I should be able to package something up for them soon. To be honest, I don't think they know what they're in for! I was playing with different workflows a lot, so there's many, many more options than the released version, which is why I've been reluctant to post it to this thread.
User avatar
ulrik
Posts: 1087
Joined: Thu Aug 11, 2005 10:32 pm
Location: Stockholm Sweden
Contact:

Post by ulrik »

Rudiger wrote:
ulrik wrote:
Rudiger wrote: 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.
Hi Rudiger, does this mean you have a new version out somewhere? :o
I am currently developing a new version, but haven't released it anywhere yet. DarthFurby and funksmaname have put their hands up to become beta testers for it, so I should be able to package something up for them soon. To be honest, I don't think they know what they're in for! I was playing with different workflows a lot, so there's many, many more options than the released version, which is why I've been reluctant to post it to this thread.
That sounds really interesting! :D
I'll keep an eye on this thread. It's a fantastic script you made, thank you!

regards
User avatar
funksmaname
Posts: 3174
Joined: Tue May 29, 2007 11:31 am
Location: New Zealand

Post by funksmaname »

:shock: :)

I'm not sure that 'reloading' a multiframe action for repetition will be that useful universally... the workflow of going into actions and changing them is so smooth that you can always manually sync the animated action to where it should be... some more mechanical actions might benefit but then you can set them up as cycles anyway.

this script has rekindled my entheusiasm for AS! :)
User avatar
funksmaname
Posts: 3174
Joined: Tue May 29, 2007 11:31 am
Location: New Zealand

Post by funksmaname »

Morning Rudiger!
I have come up with a feature request - hope I can explain it. You may have already thought of it, but just in case here it is:

You mention being able to assign multiple morphs to a single bone? Not sure how youmade this work but my idea is to seperate the number of actions equally around the 360 rotation (or 0-100% of proximity to the control bone)

e.g.
you have the following actions, with the added naming convension below

ShoulderUp:1:roboBoogy
elbowUp:2:roboBoogy
wristUp:3:roboBoogy
fingersUp:4:roboBoogy


now you could create a control bone for any of those, but if you create a bone called 'roboBoogy', it will be split into quarters with each quarter relating to 1,2,3,4 above (and in that order) so just rotating it does the classic breakdancing move (although it's probably not called 'the RoboBoogy' you get the idea)

additionally, you could add the following action;
ShouldDown:2:roboBoogy

so that as you enter segment 2, where before the shoulder would return to its starting position, this time you are specifying that it goes down (past its starting point).

This brings you closer to the 'one bone animation' target :P
the original thought was that you could assign all phenomes to a single bone, and then use it like a theramin with a static control bone like I showed in my 2nd vid. but you could assign a bunch of unrelated actions to a sequence - heck you could even assing an action to several sequence bones by naming it thus:
ShoulderDown:2:roboBoogy,1:shrug whe're 'Shrug' is it's own morphDial bone!

I don't know if this is possible, or makes any sense, or whether you've already tried it... but thought i'd throw it out there! Could be really useful and minimise control rig clutter...
sbtamu
Posts: 1915
Joined: Tue Dec 15, 2009 5:05 am
Location: Texas
Contact:

Post by sbtamu »

I tried again and failed. Could the interpolate bug in AS7 be causing the problem? Does anyone else use this script with AS7?

Any who, take a look and see if I might be doing something wrong.

Thanks,

Stephen



http://www.youtube.com/watch?v=-c_BbgjwFcg
Sorry for bad animation

http://www.youtube.com/user/sbtamu
User avatar
funksmaname
Posts: 3174
Joined: Tue May 29, 2007 11:31 am
Location: New Zealand

Post by funksmaname »

hey sbtamu, did you actually fix the menu dialogue box? you don't show it in your video, and i suspect this is still the problem.

Go to the script menu, and open the morph>set bake morph-dials options
and in there, make sure that the two text boxes at the bottom are not empty.

By default the name to use should be 'MorphDials' and the seperator is ;

I cover this at the start of my 2nd screencast... but this is almost certainly your problem!

hope that helps :)
sbtamu
Posts: 1915
Joined: Tue Dec 15, 2009 5:05 am
Location: Texas
Contact:

Post by sbtamu »

funksmaname wrote:hey sbtamu, did you actually fix the menu dialogue box? you don't show it in your video, and i suspect this is still the problem.

Go to the script menu, and open the morph>set bake morph-dials options
and in there, make sure that the two text boxes at the bottom are not empty.

By default the name to use should be 'MorphDials' and the seperator is ;

I cover this at the start of my 2nd screencast... but this is almost certainly your problem!

hope that helps :)
Boy I feel stupid, I had the morph dial layer named but not the other one.

Thanks a lot, that fixed it.
Sorry for bad animation

http://www.youtube.com/user/sbtamu
Rudiger
Posts: 786
Joined: Sun Dec 18, 2005 2:25 am

Post by Rudiger »

funksmaname wrote:Morning Rudiger!
I have come up with a feature request - hope I can explain it. You may have already thought of it, but just in case here it is:

You mention being able to assign multiple morphs to a single bone? Not sure how youmade this work but my idea is to seperate the number of actions equally around the 360 rotation (or 0-100% of proximity to the control bone)

e.g.
you have the following actions, with the added naming convension below

ShoulderUp:1:roboBoogy
elbowUp:2:roboBoogy
wristUp:3:roboBoogy
fingersUp:4:roboBoogy


now you could create a control bone for any of those, but if you create a bone called 'roboBoogy', it will be split into quarters with each quarter relating to 1,2,3,4 above (and in that order) so just rotating it does the classic breakdancing move (although it's probably not called 'the RoboBoogy' you get the idea)

additionally, you could add the following action;
ShouldDown:2:roboBoogy

so that as you enter segment 2, where before the shoulder would return to its starting position, this time you are specifying that it goes down (past its starting point).

This brings you closer to the 'one bone animation' target :P
the original thought was that you could assign all phenomes to a single bone, and then use it like a theramin with a static control bone like I showed in my 2nd vid. but you could assign a bunch of unrelated actions to a sequence - heck you could even assing an action to several sequence bones by naming it thus:
ShoulderDown:2:roboBoogy,1:shrug whe're 'Shrug' is it's own morphDial bone!

I don't know if this is possible, or makes any sense, or whether you've already tried it... but thought i'd throw it out there! Could be really useful and minimise control rig clutter...
Good morning to you as well. I'm in Australia, so our timezones are pretty much lined up for a change.

Yeah, I had already thought about this approach, but to be fair, I have been thinking about this stuff a lot longer than you ;)! Actually, that's how I originally did it when I was working on the initial prototype of this idea. However, I hadn't thought of using the action name to specify the angles that each morph should become active at, so that is a good addition.

I would also like the scale of the bone to affect the strength of the morph. That would let you tweak transitions from morph to morph as well as transitioning between morphs that aren't adjacent to each other in terms of the rotation angle. The only issue is that controlling the scale and rotation of a bone is cumbersome and doesn't always interpolate well. However, I have another script, similar to Heyvern's AimBone script, that lets you simultaneously control the angle and scale of a bone by making it's tip stick to another bone.

That would let you set up rigs very quickly without having to make lots of adjustments to the placement of each action's morph bone, while still having similar control. I agree it's perfect for phonemes, but with the bone scale controlling morph strength, it's also perfect for head rotation.

Also, how cool would it be to have one of these multi-morph dials for shape/layer order! You could do some amazing pseudo-3D animations with that level of control.
User avatar
funksmaname
Posts: 3174
Joined: Tue May 29, 2007 11:31 am
Location: New Zealand

Post by funksmaname »

Hey, that's cool!
Yeah i realise this thread is a year old (still kicking myself) :P

I wanted to try something a little more practical, which included lipsync... I created phenome actions on the face vector, as well as phenome actions to trigger them on the MotionDials layer - then used papagayo to create a .dat file which I applied to the MotionDial bones using Remon's 'Lipsync with actions' script.

I think the 'mood dial' mixture worked quite well with the generic phenomes which were seperate - this will really give a lot of options when animating.

Also, i used the blink bone to blink by rotation, but also used it for subtle eye movement by animating the control bone (blue) next to it.

This is the only workflow i could get to work for the lipsync - i'm still a little rusty on baking and creating new morph positions - doing the lipsync any other way (actions using rotation rather than movement) just caused odd behaviour. I couldn't have the lipsync on the face layer itself as it was overridden by the motiondials... however this seems to work ok :)

The head rotation uses a normal bone on the bone layer which is holding everything inside it - however i tried rigging the pupils to a bone too and no matter what i did (even after baking) they just wouldn't move... i'm sure i can work it out eventually :P

http://www.youtube.com/watch?v=8NInaZz1ASM
Rudiger
Posts: 786
Joined: Sun Dec 18, 2005 2:25 am

Post by Rudiger »

That's very impressive, Funk! You might be a year late, but you're certainly making up for lost time now!

I'm curious though, why did you do the phonemes by moving the target bones? Surely for this case where you only want one morph active at a time, it would make more sense to move the control bone around. Then you would only have one channel of one bone to worry about.
User avatar
funksmaname
Posts: 3174
Joined: Tue May 29, 2007 11:31 am
Location: New Zealand

Post by funksmaname »

yeah, that's the first way i did it, but it didnt really work - the control bone was swooshing all over the radius mid phenome so the blending wasn't on... The lipsync didn't seem snappy this way for some reason, and some phenomes seemed to be lost completely... it may have been due to the speed of the control bone and had i baked it maybe the results would have been the same??

i also tried just tilting each bone 45degs, but for some reaosn when importing the dat with Ramons script i got a large group of them all turning at once cause silly results :P

its not too difficult though, all i had to do was for each phenome action i moved the relevant phenome to the center point - 1 frame - and the .dat file took care of the rest...

I'm pretty sure the tool buttons arent working at all for me, they dont appear to do anything! i've not managed to tweak or save targets other than going into the action and editting...
Rudiger
Posts: 786
Joined: Sun Dec 18, 2005 2:25 am

Post by Rudiger »

I see what you mean. At least with the control bone being fixed at the centre, the target bones always have to be moved the same distance for each transition, which would be good for consistency. It would be interesting to see if the transition from phoneme to phoneme looked any better after baking, so hope you can get that working soon.
User avatar
funksmaname
Posts: 3174
Joined: Tue May 29, 2007 11:31 am
Location: New Zealand

Post by funksmaname »

well, i did manage to bake this animation, but i dunno why, the control bone in the original set up wasn't very precise (although i didnt try baking THAT)

I bake using the menu script, the two tool buttons seem to have no effect on anything... *shrug* :)
Rudiger
Posts: 786
Joined: Sun Dec 18, 2005 2:25 am

Post by Rudiger »

The version of the script you are using might be a fussy about which layer you are on when you bake. I think you have to be on the MorphDials layer. Otherwise you may something wrong with your button tools. Did you set them up as buttons in your tool_list ?
Post Reply