Closed GoogleCodeExporter closed 8 years ago
Additional information:
Those errors are coming from 'achive.h' lines 246 & 285.
Original comment by ThomasBu...@gmail.com
on 24 Dec 2014 at 4:55
That's right SkinnedMesh isn't part of ozz libraries. It's provided with the
skinning sample, as this data structure and its tool chain only suit samples
needs. On the other side ozz::geometry::SkinningJob is part of the library
(ozz_geometry) and is designed to work with any mesh structure.
Now to answer your questions:
1) Seems like you're deserializing an object (using IArchive operator >>) that
doesn't implement ozz serialization functions (see
https://code.google.com/p/ozz-animation/wiki/Advanced#Serialization_mechanics).
If it's a mesh that you're trying to load, then I can imagine 2 reasons for
these errors:
- if you forward declared the SkinnedMesh (something like "struct SkinnedMesh") but you didn't include skin_mesh.h, this would happen.
- if you try to deserialize a SkinnedMesh pointer "SkinnedMesh*", this would happen also. Look at utils.cc LoadSkeleton() function for an example.
If this is neither or or the other, then please send me your cc file so I can reproduce.
2) There's no fbx2ozz command line tool. Existing fbx tools are:
- fbx2anim and fbx2skel allow to build an animation and a skeleton. See https://code.google.com/p/ozz-animation/wiki/OfflinePipeline#Standard_pipeline. If you download ozz binaries this tools are located in bin/tools folder.
- sample_skin_fbx2skin allows to load a skinned mesh from a fbx file. It's build with sample_skin. I just saw that it wasn't included in the binary packages with version 0.7.0. I'll fix it for the next build. In the mean time I've uploaded Windows version here: http://ozz.qualipilote.fr/downloads/ozz-0.7.0-windows32-vs2012-sample_fbx2mesh.zip.
Also note that if you're building ozz from sources you'll need to have fbx sdk installed, otherwise only Collada tools will be built.
3) I understand this point and the need for more "atomic" tutorials. Could you
open a new "enhancement" issue and list the kind of things you'd expect ?
I think that skinning is the most advanced sample, because SkinningJob setup
requires a lot of pointer arithmetic. Playback and Attach sample are probably
easier ones to start with.
In next version (0.8.0) I'm doing some refactoring in the sample framework with
skinning and meshes. The mesh structure will be available in the sample
framework (not only the skinning sample) and the tool (renamed as fbx2mesh) as
well.
Thanks for posting, hope it will help,
Guillaume
Original comment by guillaum...@gmail.com
on 24 Dec 2014 at 3:58
Thanks for the quick response, and the upload of fbx2mesh.
In response to my initial problem, I was incorrectly trying to deserialize a
pointer as suggested.
When you say it's (SkinnedMesh) a data structure only suitable for the skinning
example: Am I correct in thinking it's only taking information from the model
file that the example_skin solution finds relevant to rendering? i.e. there is
no reason this same structure wouldn't work for other FBX model files- but it
will only get the same information it currently does and is set up for.
Your answer sort of suggests that SkinningJob maybe an alternative to
SkinnedMesh, but the example uses both. Do you know what would be the optimal
way of skinning would be? Am I best placed to follow the skin tutorial and
alter the SkinnedMesh to my requirements?
Original comment by ThomasBu...@gmail.com
on 24 Dec 2014 at 4:30
Also; I've just double checked looking for those binaries. Thought you should
know that in "ozz-0.7.0-windows32-vs2013.zip" ./bin/tools there are no fbx2skel
and fbx2anim executables, only the collada counterparts.
Original comment by ThomasBu...@gmail.com
on 25 Dec 2014 at 12:02
>> Am I correct in thinking it's only taking information from the model file
that the example_skin solution finds relevant to rendering?
That's correct. I also meant that the tool (skin_sample_fbx2skin) has some
restrictions that are ok for the purpose of the sample, but might not for a
production case: it only extracts the first mesh, doesn't support static
meshes, doesn't support materials ... I'll improve it in future release, but it
will still target samples usage.
>> there is no reason this same structure wouldn't work for other FBX model
files.
That's right also, this structure will work for other models. I don't think it
will fit every engine use case though, which is why I release it with the
samples.
>> Your answer sort of suggests that SkinningJob maybe an alternative to
SkinnedMesh.
No that's not what I wanted to say. ozz::sample::SkinnedMesh is a data
structure, whereas ozz::geometry::SkinningJob is a proccess/algorithm for
skinning ANY mesh (just a matter of input/output setup). So if you want to use
ozz skinning you need the SkinningJob, but not necessarily the SkinnedMesh. One
would also only use ozz skeletal animation features (sampling, blending...)
with his own skinning implementation.
>> Do you know what would be the optimal way of skinning would be? Am I best
placed to follow the skin tutorial and alter the SkinnedMesh to my requirements?
That's a good strategy (for a quick start) if you don't already have a mesh
format. As you said you'll then probably modify/extend the SkinnedMesh for your
needs, and adapt the tool also. Please note that I'm doing some changes on this
data structure for the 0.8.0 build (work in progress here:
http://code.google.com/p/ozz-animation/source/browse/?name=incoming), and also
to the skinning sample to make it a bit more "real world" (output vertices
directly to a vertex buffer).
>> Thought you should know that in "ozz-0.7.0-windows32-vs2013.zip" ./bin/tools
there are no fbx2skel and fbx2anim executables.
Thanks! I opened issue
http://code.google.com/p/ozz-animation/issues/detail?id=3 to track this down.
If we're done with your original build issue I'll close this thread. Don't
hesitate to start a new one for any other issue, question, or suggestion.
Thanks for posting,
Guillaume
Original comment by guillaum...@gmail.com
on 25 Dec 2014 at 2:58
Original comment by guillaum...@gmail.com
on 27 Dec 2014 at 10:38
The version of fbx2mesh you've uploaded seems to create mesh.ozz files with a
tag of "ozz-sample-Mesh" rather than the "ozz-sample-SkinnedMesh" used in the
skinning example - is there any reason for this?
I was trying to swap the model for one of my own.
Original comment by ThomasBu...@gmail.com
on 28 Dec 2014 at 10:08
This renaming is part of the changes I'm doing for the next build, my mistake
uploading this version. Is it solved if you use the tool provided with version
0.7.1 ?
Original comment by guillaum...@gmail.com
on 29 Dec 2014 at 10:20
Building 0.7.1 gives me a correct executable, I thought I would just let you
know for the sake of the archive :)
Original comment by ThomasBu...@gmail.com
on 29 Dec 2014 at 12:54
I've removed the 0.7.0 executable from the downloads.
Thanks!
Original comment by guillaum...@gmail.com
on 29 Dec 2014 at 7:55
Original issue reported on code.google.com by
ThomasBu...@gmail.com
on 24 Dec 2014 at 4:52