Well the problem is that without this axis information, the bone rotation is too
global. This may just be a design decision but for me it is inconvenient. Here
are two examples of why:
1. Here's the ASF file I've been using:
http://mocap.cs.cmu.edu:8080/subjects/69/69.asf
It's just a walk subject from the cmu mocap database, in ASF format. The
character's zeroed stance is not a t-position, but more like a star-jump
position with legs apart. Because the legs aren't pointing straight down to
start, none of the rotations of the slider bars on the lower leg actually bends
the knee as you would expect, so no sensible limitation can be put on this
joint. You can see this problem if you just create a new articulated object with
two joints from 0,0,0 to 1,1,1 and 1,1,1 to 2,2,2. None of the slider bars bends
this joint back on itself in any direction, but if I created a character like
that (or got one from mocap data) then I would want the axes of rotation to be
naturally correct.
2. In the same ASF file, look at the joint limits for elbows. Both are (-10,
170). This is relative to the rotation of the limbs. In the standard skeleton in
DANCE, the elbow limits are global (so something like (-10, 170) and (-170, 10).
This not only means that I can't use the limits directly from the ASF file but
also just isn't intuitive as I want to define how far I can bend a joint from
whereever it is in the ref pose.
So are these design decisions or known issues? What is the reasoning for not
using relative joint axes?
Thanks,
Joel
--- In dancedev@yahoogroups.com, Ari Shapiro <shapiroari@...> wrote:
>
> Hi Joel,
>
> As you pointed out, the asf/amc file formats include bone axes get removed
when you create a simulated character. However, the data should convert
smoothly. Is your asf/amc file format much different from the 02.asf and
02_01.amc in the $DANCE_DIR/data/motions directory?
>
> If you send me your data files (shapiroari@...), I can take a look to see
what's going wrong.
>
> Regards,
>
> Ari Shapiro
>
>
>
>
>
> ________________________________
> From: Joel Horne <joel@...>
> To: dancedev@yahoogroups.com
> Sent: Tuesday, June 9, 2009 3:42:16 AM
> Subject: [dancedev] Re: Automatic geometry problem
>
>
>
>
>
> Hi Ari,
>
> I appreciate that it is difficult for you to provide full support.
>
> I'm continuing to try to automatically create a properly setup character based
on an ASF file, and the further I go the further it seems like big changes will
be needed. When an ASF/ACM is read in as a motion, then that char converted to a
simulated character, most of the joint information is lost. Even once I got the
limits to read from the ASF, it seems all of the axes information was lost from
the joints (ASF files specifies the axis for each joint, which I think is often
redundant when you have the direction and length, but when it comes to, say,
which way the elbow bends then this is important). Also if the character isn't
zeroed with the legs pointing straight down, none of the 3 knee joint rotations
rotate a knee as it should (i.e. it is rotating on global axis, not the axes of
the joint).
>
> I just want to check that I am not doing something massively against your
method. Have you never used ASF files to create a simulated character that
responds exactly as the motion characters would?
>
> Thanks
> Joel
>
> --- In dancedev@yahoogroup s.com, "shapiroari" <shapiroari@ ...> wrote:
> >
> > Hi Joel,
> >
> > Thanks for the code fixes.
> >
> > These days I work full time for a visual effects company (Rhythm & Hues) and
can only work on DANCE outside of work when I have time (plus, I just had a new
baby girl born last month, which is also taking up a lot of my time),
> >
> > I am finding some time to incorporate all the code fixes that my users are
reporting into the code base, and am trying to release a new version on a fairly
regular basis. However, this is a far cry from being 'actively' supported and
developed.
> >
> > If there is a commercial or noncommerical entity that would like to partner
to improve the product (or to license the code), I would be happy to discuss
that (You can email me directly if you are interested: shapiroari@ ..). Right
now, the license on the software is for non-commerical use.
> >
> > Regards,
> >
> > Ari Shapiro
> >
> >
> >
> > --- In dancedev@yahoogroup s.com, "Joel Horne" <joel@> wrote:
> > >
> > > Hi Ari,
> > >
> > > I am currently evaluating DANCE to see if I can use it for my research
project, so I'm looking for more permanent solutions. It certainly has a lot of
features, but seems to have quite a few holes and bugs. Are you still intending
to support it or are you doing something else?
> > >
> > > For example, the cube orientation problem was something to do with the
strange way the cubes were being created. You had them being scaled in varying
directions using a 'whichdim' method. A simple change that just created the
right length cube scaled to bone length in the z dir then rotating it to the
joint orientation seems to work OK.
> > > The capsules were also at the wrong rotation, as a result of this around
line 400:
> > > q.rotateAxis( capsuleAxis, boneAxis);
> > > which I think should be
> > > q.rotateAxis( boneAxis, capsuleAxis) ;
> > > as this actually works.
> > >
> > > In the same class, I don't know if this is intentional but you have:
> > > double curVolume = lengthX * lengthY + lengthZ;
> > > which should surely be
> > > double curVolume = lengthX * lengthY * lengthZ;
> > > ??
> > >
> > > So what is the status of support on this program? fixing it up as I go
along takes time, but it's probably faster than trying to write my own, and
despite my complaints there is a lot of good code in there too :)
> > >
> > > Joel
> > >
> > > --- In dancedev@yahoogroup s.com, "shapiroari" <shapiroari@ > wrote:
> > > >
> > > > For the problem with cube orientation, you can try selecting the
particular piece of geometry (which is named the same as the bone) and then use
'Rotate X/Y/Z' in order to orient the cubes to better align with the bones.
> > > >
> > > > Regarding the large hands/writst, I'll have to look at the code to see
why. The code is in:
> > > > $DANCE_DIR/systems/ ArticulatedObjec t/AutomaticSetti ngsWindow. cpp
> > > >
> > > > Again, the temporary solution is to find the offending geometry object
and scale it down.
> > > >
> > > > Ari
> > > >
> > > >
> > > > --- In dancedev@yahoogroup s.com, "Joel Horne" <joel@> wrote:
> > > > >
> > > > > Hello,
> > > > >
> > > > > I am interested in using dance to create controllers that track MoCap
data. To do this, I want to generate geometry for the character based on the
MoCap data. However, when I tried to do this with several different sets of
asf/amc MoCap data, the geometry for the legs is attached at completely the
wrong angle is cubes or spheres are used. The links look right and capsules come
out OK but cubes and spheres fail on several different examples of motion data.
Also when capsules are used, the hands are huge and I'm not sure why.
> > > > >
> > > > > Any ideas?
> > > > >
> > > > > Thanks,
> > > > > Joel
> > > > >
> > > >
> > >
> >
>