Relative vertex key enhancements.

The interface, modeling, 3d editing tools, import/export, feature requests, etc

Moderators: jesterKing, stiv

gabio
Posts: 0
Joined: Thu Jan 15, 2004 6:41 am
Location: Canada - Québec - Sherbrooke
Contact:

Post by gabio »

ok ok, now find a good way for the user to specifie what he want to mix.
On the current system we can already have all the list of rvk with slider. it's in the action windows. Ho and also it's possible to rename these channels.
though it's not new stuff for you, what i'm talking about is that the current implementation is not so bad, just realy disconnected. You have to work in 3dview, ipo windows and action windows to add a morph, activate it, renaming it and keyframe anim.
would it be worthy to remove RVK support from action and ipo windows and make a completely independant windows for RVk control? this way it could be possible to have all the place possible to put all sort of new feature to morphing of all kind.
Just some though, presence of morph keyframe in action window is usefull along armature animation? does it work with NLA or something. if so then geting it out is a less easy way.

Anyway I'm thinking about the keyword of next gen blender: "Modular".

matt_e
Posts: 410
Joined: Mon Oct 14, 2002 4:32 am
Location: Sydney, Australia
Contact:

Post by matt_e »

The problem with the current sliders though, is that they've been grafted on to something that doesn't really fit - the bizarre lines+curve UI. They work ok, as long as you just use the action window sliders and don't touch the Ipo curve. But when you need more control over the curve, the nice facade of the sliders comes crashing down revealing the weirdness underneath. What we really need is a new system like Joeri proposed. One separate curve for each blend shape, which can have values between 0 and 100% (or more), over time.

An important thing to mention too, is that whatever method is used, it needs to be interactive - i.e. you can see the manipulations happening as you drag the mouse, not just when you let go (like the current sliders).

aligorith
Posts: 0
Joined: Sun Dec 05, 2004 3:40 am
Location: Chch, NZ

Post by aligorith »

IMO Blender's animation tools should be made able to be used without fiddling with IPOs. This means easier use, a few extra interface items, and quite a bit of code. Only when this is done, can RVK's be more acceptable to use.

At the moment, I've been turned off using RVK's (using bones instead) due to its close assosiation with the IPO window. There doesn't seem any other way to control them.

Secondly, creating them is a nuisance, once again due to the IPO window. The IPO window creates a series of horizontal lines, all similarly and many the same colour.

- When selecting RVK's to use, it would be helpful if hovering over the name of the RVK in the Outliner or its slider to display a smaller preview of what the rvk target looks like on the side of the mesh (optional).



Aligorith

joeri
Posts: 96
Joined: Fri Jan 10, 2003 6:41 pm
Contact:

Post by joeri »

aligorith wrote: Secondly, creating them is a nuisance, once again due to the IPO window. The IPO window creates a series of horizontal lines, all similarly and many the same colour.
I agree, that's why I proposed to have the targets visualy in the 3d window. Solmax thinks it will clutter the view. Specially with 30 targets (Which is bad practice btw. pro's stick to 12 top, including all the mouth shapes for talk.)
But for talking/lipsync it's also an advantage if it are different objects.
It's very easy to do what broken calls group.
Another advantage of this visual clutter is shareness. I can understand a file someone else made without flipping truw all the keys trying to reorder the blue lines into something I can understand.

As each morph target can be a RVK by itself. Think about it. it's easy to do the lipsync in morphtarget 1. Have eyes (eyebrow, pinching) in morphtarget 2. Select both, select a master opject Ikey->Blendshapes. Done. Mixed the emotionless talking head (what my friend Paul made) with some eyebrowe movement ready to tweak.

Monkeyboi
Posts: 251
Joined: Tue Nov 26, 2002 1:24 pm
Location: Copenhagen, Denmark
Contact:

Post by Monkeyboi »

joeri wrote:As each morph target can be a RVK by itself. Think about it..
A morph target IS an RVK, but from what I understand you want to have both RVKs and morph tagets and once so to be able to layer them? If so, I think that sounds over complicated. Layering is nice, but let's use the NLA instead..
joeri wrote:it's easy to do the lipsync in morphtarget 1. Have eyes (eyebrow, pinching) in morphtarget 2. Select both, select a master opject Ikey->Blendshapes. Done. Mixed the emotionless talking head (what my friend Paul made) with some eyebrowe movement ready to tweak.
With the proposed idea of letting the NLA work with IPOs (Harkyman's proposal) would give you the same, but in a more consistent and flexible way.

Something related I'd like to see though is a way of grouping RVKs so you could isolate all the sliders you want to work with an hide the others. You could categorise your targets into Expressions, Phonemes (mouth shapes), muscles etc, somewhat like Brokens mockup.

joeri
Posts: 96
Joined: Fri Jan 10, 2003 6:41 pm
Contact:

Post by joeri »

Monkeyboi wrote:
joeri wrote:As each morph target can be a RVK by itself. Think about it..
A morph target IS an RVK, but from what I understand you want to have both RVKs and morph tagets and once so to be able to layer them? If so, I think that sounds over complicated. Layering is nice, but let's use the NLA instead..
joeri wrote:it's easy to do the lipsync in morphtarget 1. Have eyes (eyebrow, pinching) in morphtarget 2. Select both, select a master opject Ikey->Blendshapes. Done. Mixed the emotionless talking head (what my friend Paul made) with some eyebrowe movement ready to tweak.
With the proposed idea of letting the NLA work with IPOs (Harkyman's proposal) would give you the same, but in a more consistent and flexible way.

Something related I'd like to see though is a way of grouping RVKs so you could isolate all the sliders you want to work with an hide the others. You could categorise your targets into Expressions, Phonemes (mouth shapes), muscles etc, somewhat like Brokens mockup.

I don't see what NLA has got to do with RVK.
If I want my character to say "hello little bird" then that's an action that will never be repeated. The mouth will go from H/A to L to O etc shapes.
Please not in NLA, but with some sliders on the H/A, L and O morph target.

I can let my character say a whole sentance with 5 morph targets.
The master can be a new morph target with other morph targets of facial expressions.
It's not "over complicated", it's highly controllable.
I no longer need to worry about the timing of my character saying it's line, and I can now add a smile, or frown.

I don't believe in a system setup where I make groups of groups and groups so I move a slider from left to right to make my character say "H-LL-O" left being H, right being O, middle being LL.
Or left is smile and right is frown. Then again, if the user could make it's own sliders and assign values to it a smile_frown slider would be nothing more then passing smile = smile_frown.value; frown= 1.0-smile_frown.value;


No clutter, just 1 view and everything is clear.
Image

solmax
Posts: 86
Joined: Fri Oct 18, 2002 2:47 am
Contact:

Post by solmax »

i say it again: multiple objects IS clutter. if it's not a problem for you - fine. for me, it is. so, as i said before: adding additinal targets from other meshes should be an option, not the replacement for the current implementation.

and, of course RVK's have something to do in the NLA. if a have sentences/words that appear more often than once, i could reuse them by duplicating the appropriate strip (which contains all animation for a word like "hello").

matt_e
Posts: 410
Joined: Mon Oct 14, 2002 4:32 am
Location: Sydney, Australia
Contact:

Post by matt_e »

joeri wrote: Or left is smile and right is frown. Then again, if the user could make it's own sliders and assign values to it a smile_frown slider would be nothing more then passing smile = smile_frown.value; frown= 1.0-smile_frown.value;
While of course custom slider setups would be key, the idea I was trying to point out is that (to reuse the example) the shape of a smile is certainly not just an upside-down frown. They're two different shapes. The idea is to also make it easy to blend between shapes, not just blending the influence of certain shapes. We should be able to customise and link multiple curves/channels/whatever together into the one slider, so instead of having to do:

Set Smile to 1.0, set Frown to 0.0, (...move to next key position...), Set Smile to 0.0, set Frown to 1.0

you could just do:

Set slider to 'Smile', (...move to next key position...), Set slider to 'Frown'

It would work somehow when you create a new slider, you could specify how many different blend shapes you want to blend between, from 1 up to whatever.

Money_YaY!
Posts: 442
Joined: Wed Oct 23, 2002 2:47 pm

Post by Money_YaY! »

How about just blend shapes? It is an old tool from others could be made even better in blender.

It just compares the two meshes and tweens the mold together, just like we have now of RVK but this works on different meshes to like turning a ball into a soda bottle and then into whatever. Also good for body animations..

harkyman
Posts: 98
Joined: Fri Oct 18, 2002 2:47 pm
Location: Pennsylvania, USA
Contact:

Post by harkyman »

In my animation proposal, anything that can be keyed can be placed in an Action, added to NLA, or made into a slider. You would just make a single-frame action containing the mix of RVKs you want, then convert that to a slider and voila, you have a slider that controls for several things at once.

joeri
Posts: 96
Joined: Fri Jan 10, 2003 6:41 pm
Contact:

Post by joeri »

On NLA:
solmax wrote: and, of course RVK's have something to do in the NLA. if a have sentences/words that appear more often than once, i could reuse them by duplicating the appropriate strip (which contains all animation for a word like "hello").
solmax wrote: In my animation proposal, anything that can be keyed can be placed in an Action, added to NLA, or made into a slider. You would just make a single-frame action containing the mix of RVKs you want, then convert that to a slider and voila, you have a slider that controls for several things at once.
Yes, everything that can be adjusted/animated should be in the NLA.
That's not this topic.
solmax wrote: i say it again: multiple objects IS clutter. if it's not a problem for you - fine. for me, it is. so, as i said before: adding additinal targets from other meshes should be an option, not the replacement for the current implementation.
How about giving a non clutterd example of the advantages I gave.
1. Easy to see what someone else made, portable, easy to export.
2. Easy of Gui, 3 clicks and you got an extra key working.
3. Change the morph target and see what happens to the master while you are changing the morph target. (no going in and out of keys).
4. See the different textures on each morph target. (Famous frog with transparant chin when full of air.)
5. Work on no sub div morph target and see what sub div master does.
6. Have animated meshes be morph targets.

But I totally agree that there should never be taken any functionality away/out of blender. That's a total waiste of effort people put into blender.
And any good programs has many roads to rome, right :)
Last edited by joeri on Mon Dec 20, 2004 10:25 pm, edited 1 time in total.

joeri
Posts: 96
Joined: Fri Jan 10, 2003 6:41 pm
Contact:

Post by joeri »

broken wrote:
Set Smile to 1.0, set Frown to 0.0, (...move to next key position...), Set Smile to 0.0, set Frown to 1.0

you could just do:

Set slider to 'Smile', (...move to next key position...), Set slider to 'Frown'
Yes.
But I think that's where the driven keys come in, or expression driven whatever.
I'd rather have the user decide what he wants to be connected, then have blender make that decision. I'm working on a mockup for driven keys.
It should explain better what I think.

joeri
Posts: 96
Joined: Fri Jan 10, 2003 6:41 pm
Contact:

Post by joeri »

I think you saw my drive keys:
Image
I've put in a slider, doesn't always make sense, but I see it as the beholder of the data. It has an input (object channels) and an output (also object channels). It could have an autokey button, move the slider and it will set a key in the curve.
Notice how I nicely avoided the question how we got this window. Is it a add-driven-key popup? Or select 2 (or more; active is driver) objects and press IKEY->driven keys?

The Input and output are popups.
Image

A nice python/expression interface might help the semi programmers to do some relative animation.
Image

But I'm getting all to far away here. A start expression would be more like:
Image

Normal IPO's could get Sliders.
Image
IPO curve input, Material channel output, 1 slider per curve.

Sensors could be nice, like a near sensor.
But then I got stuck. I also want to tie in other sliders. And have multiple outputs, and control other (RVK) sliders,... I better sleep another night and let the nightshift do some thinking.

matt_e
Posts: 410
Joined: Mon Oct 14, 2002 4:32 am
Location: Sydney, Australia
Contact:

Post by matt_e »

Good thinking.

Having a flexible, generalised system, where you could assign a slider to all sorts of different values, like the height of an Ipo curve, or scrubbing through an Action (like the Action constraint), or the result of an expression or % of a driven key, is definitely the way to go.

From all of this, it looks like what we need as the first fundamental step is to redo the RVK system so it uses one curve per RVK/blend shape, representing the percentage of influence. From this, it would be a good base to build other things upon in a flexible way, like combining them into Actions (if we get the ability to use a collection of any Ipos as an Action), or sliders, or etc.

PS. You should have a look at how expressions (and their associated curves) are done in Shake. Very elegant.

joeri
Posts: 96
Joined: Fri Jan 10, 2003 6:41 pm
Contact:

Post by joeri »

I'll trow in one more, the value wrapper.
Not sure how this fits in, but I got pixel happy.
Image

It's based on a slider that can be driven by a IpoCurve (or not) and it drives other channels. slider goes 0-1, output can be set and warp is a popup with liniear, exponential, sin, invert (although min/max swap will do the same) and Ipo Curve. Very handy to rig finger bones on a hand for example.

The most easy way to connect would be to drag a channel name and drop it on the slider, but,.... you know,.... Let's do first things first.

Post Reply