I think I'm doing something wrong, or FR is mocking me... As you can see from the jpg "Store position" I'm storing the initial point position values in a custom attribute ( tmp.origin )
Then I compare ( by setting another ice node in animation mode ) the point position values by getting the self.origin and getting the distance to the point position of the shape point position. Looks like its not working, because I have huge values, while if I try to plug the point position I have proper values ( 0 around the neck area, other values different to zero arounf the mounth ) I also notice that I cannot trigger the shapes from the shape manager, probably because of the lipsync itself, or the envelope or something else...so I'm thinking that FR overrides/reset the shapes ( considering tha absurd values I got ). I also tried to import all the shapes as single meshes and apply an ice tree on them, but if I try to reference a value which is on another mesh it breaks ( some strange error ) At this point I'm thinking to go with the game export and then get all the info from there, but I would like to know if I'm doing something wrong. Also, most important, I have a list of 3d vectors if I compare the points position...even if I plug an array average node I still have 3d vectors...what I have to do to have a single ( average? ) scalar value? Original_point_position.JPG <https://docs.google.com/file/d/0ByXsl1-14iQENDMzb2V5VjZDT3M/edit?usp=drive_web> Store_point_position.JPG <https://docs.google.com/file/d/0ByXsl1-14iQEYUhEcC1YbVRzYUE/edit?usp=drive_web> Get_distance.JPG <https://docs.google.com/file/d/0ByXsl1-14iQEVXZPSlpmMlV5WWc/edit?usp=drive_web> 2014-12-03 16:41 GMT+01:00 Max Crow <[email protected]>: > Hi Nicolas, > Right, a phenome watcher on one mesh to drive phenomes on another is that > it? So its a kind of inverse of the picture I gave you. Perhaps, if you set > up each phenome in the ice tree and then compare the distance to its self > on the mesh as it moves. The average of the array puts out a scalar value, > so when this hits zero you will have a match. if you add a rescale node you > can make go from 0 to 1. You would have to have the original shape > positions stored first to compare. It's a thought anyway. > > Max > > On Wed, Dec 3, 2014 at 2:44 PM, Nicolas Esposito <[email protected]> wrote: > >> Hi Max, >> Thanks for the answer...a couple of minutes ago I was scrolling thru Paul >> Smith tutorial anb I watched exactly what your image shows, which is very >> usefull :) >> >> Actually I'm trying a workaround on my previous discussion here on the >> mailing list ( Lipsync from Facerobot - get anim values ) >> >> The suuggestion by Luc-Eric is exactly what I'm looking for, but not >> being able to script is a hige problem for me :) >> >> The description above is the workaround for me, means that I extracted >> all the phonemes as single meshes from the main mesh. >> >> Since during the lipsync the phonemes value goes from 0 to 1 I'm trying >> to set the base mesh point position to be my "0" value and each phoneme >> mesh point position to be my "1" value. During the animation I have all >> those points position which corresponds to my shapes, so I have a 100% >> match when the phoneme is spoken ( obviously with a blend between each >> phoneme when spoken ). >> >> What I find difficult is how to convert all those 3d vectors from the >> base mesh points position to be my "0", and ( for example ) the phoneme >> "ah" points position to be my "1" value, so that at each frame I have a >> blend value for every phoneme, so that I can drive the shapes which I >> previously created. >> >> Hope its clear >> >> 2014-12-03 13:39 GMT+01:00 Max Crow <[email protected]>: >> >>> Hi Nicolas, >>> >>> get the point position, add it to the shape position then linear >>> interpolate from the original point position and you have an ICE shape >>> manager. Very cool and useful. >>> >>> Hope this helps. >>> Max >>> >>> >>> https://www.dropbox.com/s/orxwfdphyl6x75y/Shape%20Manager%20in%20ICE.jpg?dl=0 >>> >>> On Wed, Dec 3, 2014 at 10:49 AM, Nicolas Esposito <[email protected]> >>> wrote: >>> >>>> Hi all, >>>> >>>> I'm having some difficulties with comparing two shapes using point >>>> position...let me explain. >>>> >>>> Basically I have the base mesh and I created a couple of blend shapes >>>> via the shape manager. >>>> The shape are animated and driven externally. >>>> >>>> I'm not so good with ICE and I may be saying bs, so bare with me :) >>>> What I would like to do is to get the original mesh point position ( so >>>> an array of point position ) and compare those to all the blend shapes I >>>> have. >>>> By doing this I will have an array of values which indicate the >>>> difference between them ( base mesh compared with first blend shape, base >>>> mesh compared to second blend shape, and so on ); I would like to reduce >>>> that list to a single value in order to output a value from 0 to 1 so that: >>>> Base mesh point position: value is 0 >>>> First Blend Shape point position: value is 1 >>>> >>>> Basically ( if possible! ) I would like to check when the base shape >>>> point position are matching ( or how close they are to ) the first Blend >>>> Shape, exactly how the shape manager shape values are displayed when keyed >>>> manually. >>>> The main point is to have the blend shape value ( again, 0 is the base >>>> mesh, 1 is the value when the first blend shape is match ) for each frame >>>> using the point position as my source. >>>> >>>> Doable? I'm having context issues using point position and I don't know >>>> how I could transform the list of arrays into a single value in order to >>>> output and rescale that value to be 0 ( for the base mesh ) and 1 ( for the >>>> first blend shape ) >>>> >>>> Any help will be appreciated >>>> >>>> Cheers >>>> >>>> Nicolas >>>> >>> >>> >> >

