Ok. We're planning on doing a pretty ambitious game using simple boned
characters. They need to have multiple animations and textures. Having
the ability to have multiple objects making up a character would be a
bonus (say a gun that can be holstered and drawn for example).
The main 3D app being used is Maya in OSX, with the COLLADA 3.05b
plugin (the next gen one won't load - says it's missing a library).
I've tried:
Method 1:
Creating one long animation in Maya and exporting to COLLADA format.
Loading is fine, but I can't break up the main animation into clips.
Specifying start and length parameters on the SkinAnimation works
great the first time through, but on all loops after the first, the
start time is being reset to 0 (although the length value seems to
remain constant):
skinAnimation = model.animationLibrary['default'].animation as
SkinAnimation;
skinAnimation.start = 0;
skinAnimation.length = 0;
Method 2:
I tried adding a <library_animation_clips> set after the closing </
library_animations> tag like so:
<library_animation_clips>
<animation_clip id="anim1" start="0" end="1">
<instance_animation url="#joint1.rotateX" />
<instance_animation url="#joint1.rotateY" />
...
</animattion_clip>
<animation_clip id="anim2" start="1" end="2">
<instance_animation url="#joint1.rotateX" />
<instance_animation url="#joint1.rotateY" />
...
</animation_clip>
</library_animation_clips>
and loading them with:
var animationData:AnimationData = (model.animationLibrary['anim2'] as
AnimationData);
if (animationData != null && animationData.animation != null)
skinAnimation = animationData.animation as SkinAnimation;
but both anim1 and anim2 play as the whole clip (the main testing
animation is 72 frames).
I tried altering the COLLADA data as suggested elsewhere in the group
discussions like:
<animation_clip id="anim1">
<instance_animation url="#joint1.rotateX" start="0" end="1" />
<instance_animation url="#joint1.rotateY" start="0" end="1" />
...
</animattion_clip>
but that didn't work either. The animation played was the entire clip.
Method 3:
I tried exporting mesh "keyframes" from Maya as DAE, pulling them into
Blender and exporting those as AS3 classes, then using the animator
class to tween between them, but ran into a problem because (I'm
assuming) when I baked the meshes, I excluded the bones (as they were
now unnecessary), which removed the connections between objects, and
now each mesh is composed of multiple objects. This results in only
the first object being tweened across the meshes and some oddness in
the tweening (I'm thinking because of the multiple objects thing).
If we make sure all of those AS3 classes only contain one object, it
works fine (multiple objects work in the COLLADA animation files in
methods 1 and 2, but that may be because of the bones connecting
them).
The biggest issue we have with using the animator class like this is
when we update geometry, we have to export all of the mesh keyframes
again, pull them into blender, export as AS3... It's an overtly
complicated workflow and we will have a *lot* of characters to work
with.
Don't get me wrong, the animator class is pretty damn awesome, we're
just finding needs that seem to break it and we'd like to keep the
amount of files to a minimum.
What we need:
We'd prefer to be able to call out animation clips inside the COLLADA
file, making them available to call, by name, when needed in the
ActionScript. Being able to to dat would make any change made to the
geometry/animation relatively easy to update, but I just can't get the
clips to work right.
Unfortunately, the MD2 format and Blender are not production options
for us.
We chose Away3D for its animation support and, for simple animations,
it's been great. It's just this latest, more-complex issue we've run
into (oh, and while we can't cut up the clips, the bones animation
works *really* well - I am truly impressed, devs!).
Any suggestions, ideas, whatever would be *extremely* appreciated.
I've been trying to work this out myself for 3 days now and I fear I
may be going insane. A lot of the Away3D classes, when I look at them
make my head swim. This is some seriously complex stuff you guys have
got going on here. =)