Just a status of the exporters/animation features
at the moment there are 3 ways to export to AS3 in Away:
1/ single output for 1 mesh from the Mesh class as As3
it works fine, but its limited to 4000/4500 polygons. Above you are
able to output, but you can't compile back again. The
class generated is simply too long.
suitable for static objects or parts of an object.
Can be reused indeed for the Animation Class
2/ same as above but animated. The result is like an md2 animated, but
in as3 format.
works ok. But major failure is reexport to as3 due to indexes loss.
There is also the polygon limit
but its in most cases not an issue.
3/ the new exporter to as3
the class has a hex encoding and resuses uv,vertex info and generates
primitives constructors when possible, saving again on data.
I've successfully exported scenes with over 100k polys and it compiles
back again with no problems.
at this time the class supports:
- object3D, objectContainers and Meshes. All primitives inclusives
segments. Not yet the latest RoundedCube. (just realized that :) )
at this time, the output is working only for static objects, animated
objects will be expored, but only last updated vertices list will be
outputed.
- object fast access; the class knows two handlers that returns all
generated containers and Meshes
a simple class.meshes[index].material = new material is enough.
to do asap:
the new exporter, supports already (on my machine only) mesh animated
because of an indexes issue, the animations are playing ok, but the
influence on vertices is out of sync.
Why it works from loaded md2's its because I read and save the
sequence directly from md2 information.
Once this problem is fixed and that this patch is no longer needed,
the exporter will be updated and we should get the following:
- Animator export to as3 will work. The reason its not possible right
now is again, the async indexes problem.
- Old animated as3 outputs will also be rexeportable to new as3
exporter.
- The native animation player, will allow standard a smooth transition
from actual state to the next new defined animation sequence
(thats the gun/shoot example you give). Again that fu#$% index issue.
- bones: the idea is to be able to save an animated collada to this
format. Making the use of those ugly fat xmls for runtime obsolete.
this should be added pretty soon to the exporter.
- be able to mixe all of this in one output. It's already the case,
but as complexty will grow, needs to be tested more.
- Mesh to as3 will be removed once mesh animation is fixed. Making the
swf size a bit smaller for the same price.
to be done
- lz77 encoding for the exporter. It's also already working but since
we transport to systemclipboard
there are a few characters that are omited or altered once in
clipboard, ruining the whole encoding. That why I've done the hex
encoding instead.
It not as compressed as with the lz77 algo, but decompression is
faster. Note here that a 140kb obj file becomes 45 kb and once
compiled even smaller.
If you look at the exported data, you also might find strange that the
data is being compaired as uv's and vertexes level and not at unic
numbers. The reason for this is
simple: I've done it and the gain was very little, and encoding and
decoding exec time were much longer.
I expect soon to have an Air version available. And possibly be able
to export all materials definition and sources as well.
- This will also affect the ObjExporter and add support for .mtl
generation and sources outputs.
I've also done inline encoding of material sources, works but the
resulting file becomes unsanely long: useless.
- Like the primitives, in order to save more data, I want add extrudes
support and Path information.
- unic as3 data export. instead of exporting as classes, then a new
class will emerge: As3loader. The idea is to load
the away3d data dynamically like any text files, again, much more
compact than the actual external solutions, using same Away dedicated
features as explained above.
It will not replace the as3 exports, it will just make the system more
flexible.
in dev for animation feature:
- native programmable bones, be able to add bones to almost anything
on screen via code. and of course be able to save/restore them as well.
- saving path animation.
As Rob said, we have a lot to do atm, but I hope this little status
gives you an idea of the load of work involved just for these features.
Fabrice
On Nov 26, 2008, at 3:57 AM, theiss wrote:
Ya, I know you guys are crazy busy with the flash 10 stuff right now
(in addition to the usual stuff).
The loading the entire animation and then specifying the start and
length values seemed to be the closest to a final solution, I may
*try* to wrap my head around those classes and see if i can maybe find
where the start value is being reset and extend it (anything i may
figure out, i'll share of course). It's tantalizingly close...
Thanks for the super quick response Rob.