Skip to content

Posts tagged ‘Datasets’

More on FACS, rules need and animation correctives.

June 16, 2007



I’ve included what would be needed for a non-breakable system for the animators, it includes (in green) some 10 more additional targets needed. In total there’s some 30 targets for 6 base shapes. What key with a combination network system is:

  • How many connections a corrective has.
  • And how these are connected.

If we split the system down into essentially ‘stacks’ then it can become easier to understand, the first stack is an order of 1 -this is the base stack, then 2 then 3 and so on; for each corrective in its appropriate stack its has the same amount of inputs as the order of the stack. What becomes interesting is the connections, in most cases the last stack drives the next but we also have unique connections such as a 2 stack corrective (6 + 9)  driving a 5th stack corrective jumping 3 stacks.

Whats also important in this system is compiling the network when you change a corrective in a stack. On each stack all you need to be doing is generating a corrective and the inputs it requires – compiling this network would go through the connections a build the correctives. What the user see’s/modifies is the final corrective – which is infact a mathmatical ‘messed up’ target working behind the scenes. Whether this is realtime generated thing or a procedural ‘compiling ‘ step depends. Then later takes your ‘asthetic’ target, looks at its inputs and generates the real corrective.

The network is non-comunicative in terms of process – its a left to right system with all the corrective looking only at there inputs with a simple sorting method.

More Euclidean (n-space) notes..

December 25, 2006


So I’m back in the UK spending christmas with family, but had some time to think about the relationship between datasets and n-space’s.  An n space of 2 is pretty easy to work out as the dataset existing in that space can either be (1), (2) or (1,2) and has a direct relationship to the vector existing in the space the datasets reside. What gets trick is when the dimensions get bigger:

For instance a 3n space consists of 3 weights and datasets existing at aproximately 7 places at positions of 1 and infinite inbetween positions like so: [1], [2], [3], [1,2], [1,3], [2,3], [1,2,3] What gets tricky is that the if a dataset exists at [1,2,3] (a value of 1.0 at each dimension) with a vector in this space: [.5, .5, 0]. How does the dataset know about the 0?

We’ll it should’nt – infact this is what im doing with the dataset, if a dataset is at [1,1,0] then really its at [1,2] with a value along each of these dimensions. So this is what theoretically what im doing with the nspace – essentially its dynamic. If I have 3 weights but only 2 are greater than 0, then I only use them in my nspace like so,

[1,0,1] = [1,3]

then i’ll do a cross-check against these. Dont know if this is correct but, im gettting there slowly.

Facial Research..

December 9, 2006


I took another look at some research on n-space combination sculpture today and the light-bulb ( i think) finally went off in my head as to how it works. Essentially you have four parts:

  • A n-space comprised of weights
  • A set of targets (i.e shapes)
  • An orgin/neutral shape
  • A vector (the sum of the weights)

The old ideas of standard blendshapes basically go out the window, but the power you gain is pretty amazing – and in theory can be used for any facial type setup including bones and muscle rigs.

In simple terms, you associate a target(shape) to a weight,this for all instances is standard blendshape stuff – but with n-space combinations you can associate a target to more than one weight.

 For example lets say we have two targets: A and B, and there respective weights: w1[1,0] and w2[0,1] remember weights exist in an n-space so if there was 3 it would be as follow w1[1,0,0] , w2[0,1,0]  and w3 [0,0,1]. These do nothing atm, until we associate a target(s) to them so e.g target a is associated to w1 at [0.5,0] ( a target doesnt have to be at 1 of the weight)

 Still follow? Well simply put we define a space from weights so point1 would be just one weight, a point2 would be 2 weights and a point3 would be three weights.. and so on. If we have a space of the nth number its an n-space so if we have 30 weights, i.e sliders in our rig we have…. yes….. an n-space of 30 dimensions!

Now the clever part comes in that the system basically cant break. The cool part comes in that you can associate a target shape to 1 or more weights(sliders)! so say we set weight w1 at a value of 1 so [1,0] and w2 the same [0,1] we now have a combined value of: [1,1] and this shape combination may not work. So we associate a new shape to this weight vector.

All that changing the value of the weights does is that it moves a vector through the space of what its comprise of eg. 3 weights [.3,0,0] [0,.2,0] [0,0,.7]  we have a vector in this space: [0.3,0.2,0.7].

What i dont fully understand is achieving the final, delta. But im working on it – the funny thing is Jason Osipas setup is very reminesent of this n-space idea, working in planes etc. And could easily i think be adapted to work with it.

more to come..