Relative vertex key enhancements.

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

Moderators: jesterKing, stiv

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

Relative vertex key enhancements.

Post by joeri » Fri Dec 17, 2004 4:28 pm

Proposed relative vertex key enhancements that is.

Select a bunch of objects (with the same amount of verteces)
and select an active Master that will become the animated version.
Press I and select Blendshape. The Master has his own subsurf settings.
Also the UV's are taken from the master.
Image

The Ipo window will show a list of the blendshapes and the curves on how much they alter the Master version. A nice 0-100% scale. 200% is okay to set but this makes it more obvious it's a 0-100 thingy. Leave out the horizontal keys. They no longer have use, because we can alter the blend shapes.
Image

In the 3d view a window with sliders of the Ipo values of the current frame might be handy. Have an insert key button and maybe also an auto key, so if you move a slider a key is set.
Image

What you think? Anyone rushing to implement this?

lukep
Posts: 0
Joined: Sun Apr 04, 2004 1:39 pm

Re: Relative vertex key enhancements.

Post by lukep » Fri Dec 17, 2004 5:12 pm

joeri wrote:Proposed relative vertex key enhancements that is.

...

What you think? Anyone rushing to implement this?
Seems simple and efficient. not too far from what i was thinking.

Only critic, imo the panel should not be floating but in button window.

I think some programs (Maya does it ?) allow negative values too, to turn a smile in a frown.

Ton said he was studying competitors methods, i suppose he will come with something. it was spoken about getting UI proposals and feedback before doing anything, this is definitively an interesting one.

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

Post by joeri » Fri Dec 17, 2004 5:48 pm

I can see how a slider window can be a display version of the IPO window. Same thing, other display method. I thought of that first but then I saw a link to Messiah that broken & monkeyboi gave, and thought the floating panel was cool.
For the feeling that one is moving an IPO curve point up and down an vertical slider is better, it's also commen in audio mix panels.
But most sliders (all?) in blender are horizontal, and I think I have more precision in my mouse, moving horizontal then vertical.

Monkeyboi made a simular proposal, his document is at:
http://www.shadeless.dk/ui/morphtargets.htm

The curves can be from -1000 to 1000 or more, but i think the legend on the left should make clear it's a relative thing. You are adding this pose for 25% or -10% is fine with me. Maya buttons have the advantage that if you manualy type a number that's bigger or smaller then the slider limits it will set the limits to new bounderies. So a 'R' slider will go from 0 till 1, but if you type in a 2 the limits are reset to 0 till 10.

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

Post by harkyman » Fri Dec 17, 2004 9:55 pm

Do the names of the RVks take their names from the objects used to create the blends? Also, does it determine relative keys as opposed to absolute by comparing the overall vertex positions of each mesh (i.e. only moved vertices are counted)?

I left the RVK spot basically open in my proposal because I just wasn't on that wavelength at the time, but this would be very useful.

lukep
Posts: 0
Joined: Sun Apr 04, 2004 1:39 pm

Post by lukep » Fri Dec 17, 2004 11:51 pm

harkyman wrote:Do the names of the RVks take their names from the objects used to create the blends? Also, does it determine relative keys as opposed to absolute by comparing the overall vertex positions of each mesh (i.e. only moved vertices are counted)?

I left the RVK spot basically open in my proposal because I just wasn't on that wavelength at the time, but this would be very useful.
Perhaps it's time that those who have made proposals, Joeri, Harkyman, monkeyboi and others, check with others advanced users what they really want and need, and so come with a coherent document including all the tools, so that coders have a base for the coming work. Else i fear some interesting ideas will be forgotten.

For example, Joeri, i really liked the UI you proposed for driven keys, but it's now buried quite far in the forums.

Of course, coders will certainely not implement all in first pass, or will
come with different ideas, but that would be a foundation to build from.

the thing which is important, imho, is to expand on what already exist.

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

Re: Relative vertex key enhancements.

Post by gabio » Sat Dec 18, 2004 6:44 am

lukep wrote:Ton said he was studying competitors methods, i suppose he will come with something. it was spoken about getting UI proposals and feedback before doing anything, this is definitively an interesting one.
Yea just a word on that. The curret way of working with RVk is kind of hidden, even if it does work like all the rest in blender (aka the IKEY and the lack of good channel management). Maybe if we could more easily add, modify delet channel in the ipo windows. Would be cool, though i don't had clear proposal for that.
For now I will rely on Monkeyboi's one, which is near what i'm talking about.

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

Post by solmax » Sat Dec 18, 2004 3:16 pm

i think the idea with multiple meshes as blendshapes is kind of a step back. i remember every other program worked that way, until lightwave introduced their so called "endomorphs". nothing more or less than blenders integrated RVK's. this means: different mesh states are all linked to one mesh, wothout the need for additional objects from which the mesh-data should be taken.

the only improvement i currently can think of is easier selection of RVK's. get rid of this strage window with colored horizontal lines! since this is mesh-related, i could imagine a tab similar to the vertex-groups tab, where the user can add new mesh-states ("Add RVK") and select from exisiting. of course selection should be possible in the outliner, too.

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

Post by gabio » Sat Dec 18, 2004 4:43 pm

solmax wrote:i think the idea with multiple meshes as blendshapes is kind of a step back. i remember every other program worked that way, until lightwave introduced their so called "endomorphs". nothing more or less than blenders integrated RVK's. this means: different mesh states are all linked to one mesh, wothout the need for additional objects from which the mesh-data should be taken.

the only improvement i currently can think of is easier selection of RVK's. get rid of this strage window with colored horizontal lines! since this is mesh-related, i could imagine a tab similar to the vertex-groups tab, where the user can add new mesh-states ("Add RVK") and select from exisiting. of course selection should be possible in the outliner, too.
that's it!
and copy past morphing target, so you can start from one adn continue or have always the base mesh near.
All these functionnality could take place in the outliner, though the ipo windows channel badly nees a refresh. I'm always searching for my RVK in all these KEY channel and somethinm i lose the base mesh :x

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

Post by Monkeyboi » Sat Dec 18, 2004 4:57 pm

Solmax and Gabio:

I agree with both of you that seperate meshes is more chunky, and your workflow suggestions are very reasonable. Managing and adding new RVKs could very well happen in the Edit buttons window. (Or maybe complete new button window under Editing context?)

One feature that would be nice is the ability to transform or add vertices accross all the RVKs. If you realise "Oh, I should have made his nose bigger", you should be able to make it bigger in all the RVKs in one move. There could be an Edit Current/Edit All choise for that.
Currently you'd have to enter all the RVKs one by one and try to match the changes, which is huge labor.

Putting all the managing controls in the Edit buttons has the advantage of having plenty of space for Sliders, which would be nice. Could be in a expandable panel like constraints.

And, with Harkymans idea of having IPO strips in the NLA editor, you could also use that you have several layers of RVK animations going on at once. Think of the possobilities!

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

Post by joeri » Sat Dec 18, 2004 9:15 pm

harkyman wrote:Do the names of the RVks take their names from the objects used to create the blends? Also, does it determine relative keys as opposed to absolute by comparing the overall vertex positions of each mesh (i.e. only moved vertices are counted)?

I left the RVK spot basically open in my proposal because I just wasn't on that wavelength at the time, but this would be very useful.
I would say a channel named "Wink" says more to a user then "key1" (obviously).
A good solution to that is to take the name of the target object. Risc is the key channel name will be cube.002, but if it changes with an object name alteration that could be a nice way to give it a understandable name.

All the verteces of the master object are displaced with a given IPO amount in regard to the "morph target" or "blend shape". So if vertex #1 of the master is on the same spot as the morph target #1 then it will not be displaced.
The distance of MorphTarget 1 vertex #2 to Master vertex #2 can be for example x0.2, y0.0, z0.1. If the IPO says MT1 should be used for 50% the vertex in the master object get x+0.1, y+0.0, z+0.05. This is also why -10 or +150% work ( x+0.3, y+0.0, z+0.15 )

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

Post by joeri » Sat Dec 18, 2004 9:38 pm

solmax wrote:i think the idea with multiple meshes as blendshapes is kind of a step back. i remember every other program worked that way, until lightwave introduced their so called "endomorphs". nothing more or less than blenders integrated RVK's. this means: different mesh states are all linked to one mesh, wothout the need for additional objects from which the mesh-data should be taken.

the only improvement i currently can think of is easier selection of RVK's. get rid of this strage window with colored horizontal lines! since this is mesh-related, i could imagine a tab similar to the vertex-groups tab, where the user can add new mesh-states ("Add RVK") and select from exisiting. of course selection should be possible in the outliner, too.
I don't agree that the multiple objects is a step back.
It's a very visual solution for data that is there anyway.
It has lots of advantages, i'll name a few:
- A user can see all the morp targets in one view. No need to step truw the keys to find the one you want to alter.
- You can alter a morph target and see what the result is on the master at the same time, no need to switch key off and on.
- The morph target can be modeled with its own Material, subdiv, and any other setting. So also without them.
- Targets are changeble. Try another one without distroying the key information.
- Then there is this crazy idea I had wich I find very difficult to explain but i'll try: the morph target can be a vertex key animation. The basic idea is that it's a liniear animation, like a twitch of a vein that can be blended in. But it could also be a non-liniear animation that has it's timeline connected to the slider of the RVK blender. I'll try to explain: the vertex of the morph target takes the shortest route, that's not always what you want, but if the morph target is an animation, the animator can make a curved route.
- And it's easy to add a new ones.

I think the ui should be done in 3d not in a IPO window with add this and add that buttons. It should be the same as making a parent. click, click, key, done.
So; select morphtarget object(s), select master (active), I-key -> blendshapes. Done, added up to 32 (?) blendshaped without going truw a process of; add button, key selection, edit mode, copy verteces, out edit mode paste verteces, etc... you get the idea.

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

Post by solmax » Sat Dec 18, 2004 11:37 pm

joeri wrote: I don't agree that the multiple objects is a step back.
It's a very visual solution for data that is there anyway.
It has lots of advantages, i'll name a few:
- A user can see all the morp targets in one view. No need to step truw the keys to find the one you want to alter.
- You can alter a morph target and see what the result is on the master at the same time, no need to switch key off and on.
- The morph target can be modeled with its own Material, subdiv, and any other setting. So also without them.
- Targets are changeble. Try another one without distroying the key information.
- Then there is this crazy idea I had wich I find very difficult to explain but i'll try: the morph target can be a vertex key animation. The basic idea is that it's a liniear animation, like a twitch of a vein that can be blended in. But it could also be a non-liniear animation that has it's timeline connected to the slider of the RVK blender. I'll try to explain: the vertex of the morph target takes the shortest route, that's not always what you want, but if the morph target is an animation, the animator can make a curved route.
- And it's easy to add a new ones.
- all targets in one view - visual clutter. have fun with 30 targets in one view and spend a minute to distinguish between two subtle differences
- i can alter any target afterwards, add new or delete old ones. checking the effect and changes is much easier when i blend on the same mesh from on state to an other, rather than comparing two different objects on two different positions
- morphing materials may be useful, but morphing subdivision settings seems pointless, as subdivision goes in discrete steps (4-5 being maximum in general)
- modifying targets doesn't destroy key information. the user should be able to copy targets and further modify them.

the last point is a subset of a proposal i made regarding the whole animation system. read here:
animation proposal

all i'm saying that embedding all morph targets in one single object is much more elegant than having dozens of objects floating around and eating up valuable screen real estate. of course, the gui needs improvement:
- easy target selection
- methods to create new, copy existing, delete targets easily

to make a compromise: adding targets to an existing object can be an option, but NOT a replacement for the current system.

lukep
Posts: 0
Joined: Sun Apr 04, 2004 1:39 pm

Post by lukep » Sat Dec 18, 2004 11:45 pm

joeri wrote:
solmax wrote:i think the idea with multiple meshes as blendshapes is kind of a step back.
I don't agree that the multiple objects is a step back.
It's a very visual solution for data that is there anyway.
....
I think the ui should be done in 3d not in a IPO window with add this and add that buttons. It should be the same as making a parent. click, click, key, done.
Both of you are kind of right imho.

3D UI is much better that fiddling with the IPO window right, but in the same time they will clutter view.

More, if you want to be able to change combinations, RELATIVE vertex keys means that they still belong to a base mesh and so cannot be separated from it as we would loose the guarantee that all RVK have the same number of vertices in same order if you can edit them separately (a RVK should ideally store only the modified vertices).

So, how can we solve that ?

my idea :

- add a panel for RVK in mesh tab

- in object mode this panel show sliders for each RVK defined, and a button to show all RVK (or only selected one if we add a select box for each). very similar to the first mock-up Joeri presented except that the panel is in button window and the RVK should be presented imo dimmed to point they are not real objects. you can change slider values and add IPO keys the usual way.

- you enter edit mode for the main object, but can change vertex positions of all selected blendshapes. if you add or remove vertex on main, your changes are reported on all RVK.

when in edit mode, buttons in same panel allow you to create or delete additional RVK copying from anyone.

Seem more clean workflow for me, and we did not clutter the 3Dview with panels and blendshapes are shown only when needed.

Panels in 3D view especially are imo bad. One very strong point of blender is its non-overlapping UI. this should be preserved as much as possible (there is already some floating panels, but those are quite general enough)

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

Post by solmax » Sun Dec 19, 2004 12:02 am

i agree - no floating panels. better new window types. maybe one called "slider view", where the user can create sliders, name them and link them to virtually anything that is animatable. this way i can have all controls that aren't IK targets (and such) and therefore need to be in the 3d view in one place.

one step further would be the following workflow:

press a hotkey, which pops up a list with all parameters that are bound to sliders, choose one of them. as soon as i clickon one of them, the list disappears and i see the whole screen. blender-like, i move the mouse left or right without having a button pressed and see the effects of the paramter changed. the window header shows the name of the parameter i'm changing and the current value. as soon as i click again (LMB), the list reappears so that i can choose another parameter. ESC or movement outside closes the list.

-pros: i have the controls right at the place where i need them (undeneath my mouse), AND they don't overlap the view as i tweak settings.
- no new mode, as it's works exactly as transformation (move, rotate..)

- cons: needs to be progammed ;)

marin

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

Post by matt_e » Sun Dec 19, 2004 2:01 am

Good thread! here are a couple of ideas of my own:

Blend shape groups

We should be able to group individual blend shapes to manipulate all at once. Within a facial expression (for example) there are lots of little subtle deformations. We need control over this subtlety, but at the same time, it's a real pain to have to adjust every little fine detail every single time we manipulate a morph. So, we should be able to group more than one blend shape together to manipulate at once, which would work similar to parenting objects, though a blend shape should be able to be in more than one group.

Like in Joeri's proposal, each individual blend shape should have its own curve, but also, each group should have a curve. The group curve would control the amount of influence to blend the contents of the group with, after the result of all the blends inside that group have been calculated. And again, like each individual blend shape, groups should be able to be assigned to sliders too. As a quick, contrived example, with such a system, you could have a setup like this, where you could easily control a character raising both his eyebrows with the one curve/slider, but also have control over the individual eyebrows too. This group could then be part of another larger group to control the facial expression in general.

Image

Sliders

Somewhat related to this, we also need more sophisticated sliders than just the standard Blender sliders. I also agree that these should be kept in the 3D View and made nice and 'manipulatable' - a HUD type overlay seems to work well for this. Currently in Blender (and I presume in a lot of other software), it's only one slider per RVK. This can be very annoying, since a lot of the time, you're more interested in blending between two different shapes, not just the presence or absence of a shape.

So we should have the flexibility to set up our sliders not just as blending between 0 and 100% and having to set each one (click click click) as shown:
Image

But also as blending between two different blend shapes:
Image

And why stop at two? There are plenty of times where you want to tweak more than one shape at a time, just to get that eye squinting right or that lip curling the way you want it to. We should be able to combine them into one 'slider' that blends 2, 3, or more different values at the same time, with the one control and the one mouse click:
Image

Post Reply