Jump to content

Animation Pipeline


Gen.Kenobi
 Share

Recommended Posts

It's in the root.

Already posted the error, but if you want the whole crash log, here you go:

  Reveal hidden contents

Link to comment
Share on other sites

  On 02/02/2012 at 3:19 PM, Gen.Kenobi said:
Assertion failed: "variant.GetNodeName() == el_variant"

That means it expected a <variant> in the XML file at a certain point, and found something else instead. In this case the problem is you've put a <group> inside another <group>. You shouldn't need an extra group or variant at all - just put the <texture> line right after the <mesh> line, inside the first group/variant.

Link to comment
Share on other sites

Indeed. Minor XML codding mistake by me :P

This is what I got now:

ERROR: art/meshes/skeletal/fisherman_paddling.dae: Assertion not satisfied (line 393): failed requirement "recognised skeleton structure"

ERROR: Could not load mesh 'art/meshes/skeletal/fisherman_paddling.dae'

ERROR: CObjectEntry::BuildVariation(): Model art/meshes/skeletal/fisherman_paddling.dae failed to load

ERROR: Failed to build prop model "units/china/chin_fisherman.xml" on actor "fishing_ship"

Back where we started. :/

Link to comment
Share on other sites

Hmmm... I'll probably have to check this out when I get off work.

Your only placing the fisherman actor right? Not the fisherman on the boat?

If you removed the skeleton stuff you had in there yesterday and replaced it with my skeleton I posted last night... it should work because it worked for me. Unless I was getting some advantageous caching error.

Link to comment
Share on other sites

  On 02/02/2012 at 6:28 PM, Wijitmaker said:

If you removed the skeleton stuff you had in there yesterday and replaced it with my skeleton I posted last night... it should work because it worked for me. Unless I was getting some advantageous caching error.

If you didn't wipe the cache every time you changed skeletons.xml, then that's a possibility. I was doing that some times I tested, but not always (it's easy to forget).

Link to comment
Share on other sites

I cleared the cache and I get this in the main log:

<p>art/meshes/test/fisherman_paddling.dae: Starting conversion</p>
<p>art/meshes/test/fisherman_paddling.dae: Running FixBrokenXML</p>
<p>art/meshes/test/fisherman_paddling.dae: Authoring tool: Blender 2.61.0 r42615</p>
<p>art/meshes/test/fisherman_paddling.dae: FCollada 175: COLLADA document loaded successfully.</p>
<p>art/meshes/test/fisherman_paddling.dae: Found convertible object 'Mesh'</p>
<p>art/meshes/test/fisherman_paddling.dae: Converting 'rig'</p>
<p>art/meshes/test/fisherman_paddling.dae: Found skinned geometry</p>
<p>art/animation/test/fisherman_paddling.dae: Starting conversion</p>
<p>art/animation/test/fisherman_paddling.dae: Running FixBrokenXML</p>
<p>art/animation/test/fisherman_paddling.dae: Authoring tool: Blender 2.61.0 r42615</p>
<p>art/animation/test/fisherman_paddling.dae: FCollada 175: COLLADA document loaded successfully.</p>
<p>art/animation/test/fisherman_paddling.dae: Found convertible object 'Mesh'</p>
<p>art/animation/test/fisherman_paddling.dae: Converting 'rig'</p>
<p>CSkeletonAnimManager::GetAnimation(art/animation/test/fisherman_paddling.dae): Loaded successfully</p>

Then I get this crash from the program error. I'm going to Atlas, switching to actor viewer, and selecting this test actor.

Much to our regret we must report the program has encountered an error.

Please let us know at http://trac.wildfiregames.com/ and attach the crashlog.txt and crashlog.dmp files.

Details: unhandled exception (Integer divide by zero)

Location: unknown:0 (?)

Call stack:

(error while dumping stack: No stack frames found)
errno = 33 (?)
OS error = 2 (The system cannot find the file specified.)

I guess I need a more descriptive error in order to proceed. I might try tinkering with a few things in the mean time.

art.zip

Link to comment
Share on other sites

  On 03/02/2012 at 12:17 AM, Gen.Kenobi said:

Do I have to clear that cache thing?

You could, or you could trivially modify the DAE, maybe the file's timestamp is all that has to be changed? What's happening is the game is only looking at skeletons.xml when the model is converted from DAE, then it becomes a PMD (our internal format of the data), and skeletons.xml is not used again, unless the DAE changes or the cache is invalidated. Clearing the cache is done by deleting the contents of %appdata%\0ad\cache, which is harmless because it all gets rebuilt.

  On 03/02/2012 at 12:30 AM, Wijitmaker said:

Then I get this crash from the program error. I'm going to Atlas, switching to actor viewer, and selecting this test actor.

I was getting a crash last night, it was a divide by zero error, apparently because there were zero frames in the animation. That was before I cleared my cache, and I couldn't reproduce it afterwards. But looking at <library_animations> in fisherman.dae, I don't see any of the DEF- bones being targeted, so I think there really is no animation we can use. I'm about to make a bug report about the crash though, just need a minimal test case. I don't know if your crash has the same cause.

Link to comment
Share on other sites

I used the Blender's pose editor to pose the model throught the frames inside an action (It's a blender thing that allows you to make multiple different animations with the same model and allows them to be repeated in a time, if you're actually working in an animation movie. I made use of IK and FK solvers in the rig - within the Rigfy modifier.... Painted a few vertexes for the bone's weight...Don't remember anything else.

Not sure what I did wrong... (I did everything by the book - actually, by the training series, the guy animated a model and actually got into Unity with this system. [i didn't look at the unity export lesson, thought.] :P )

Link to comment
Share on other sites

Well, I updated and got the latest .exe after Ben fixed the divide by zero error. This is what you see now:

<p class="error">ERROR: art/animation/test/fisherman_paddling.dae: Assertion not satisfied (line 87): failed requirement "animation must have frames"</p>
<p class="error">ERROR: CSkeletonAnimManager::GetAnimation(art/animation/test/fisherman_paddling.dae): Failed loading, marked file as bad</p>

Sooo, your animation is missing frames. Not sure why because I can see them in your blender file. Perhaps it is how the .dae was exported? On a positive note - I do see the mesh in the game engine.

Link to comment
Share on other sites

The animation needs to be "baked", or converted from the representation in Blender to transformations of the bind pose bones. It's simply not a usable animation the way the COLLADA has been exported right now. If there are no animations directly affecting the bind pose bones, then by definition there are no animations we can use, hence the error message :) There are some instructions here in the Animation section about baking rigified animations for COLLADA export, but I don't know if this feature exists or is simply planned. Couldn't hurt to try it.

Link to comment
Share on other sites

Daniel, while you see if you can make any headway with Ben's suggestion...

  Quote
Fully rigified Armature animations. For export of rigified Armature animations

  • Select Bake Action. ( press space in 3d view and Type Bake Action )
  • If you have only the deform bones selected check "only selected". This will give smaller dae. Otherwise uncheck "Only Selected".
  • Check "Clear Constraints".
  • Bake Action.
  • Select the mesh and the deform bones. Then export to COLLADA while checking only selected option. ( Selecting only the Mesh and bones is not strictly necessary. Selecting and export only selected will give smaller dae.)

I'll see if I can get a custom rig set up in blender by exporting through motion builder. It may be a long shot, but worth a try. Otherwise, I'd recommend creating a custom rig in Blender and not using rigify preset tools.
Link to comment
Share on other sites

I'll see... I'm just very very busy with real life, so, not really much time to try to figure these things out.

I just used Rigfy, because it worked like a charm and it was very easy to do. Creating good biped-rigs, usually takes lots of time, but doesn't means that can't be done. :)

I'll give it a try with the COLLADA baking thing.

That's it! I guess it'll now be working. :)

fisherman-anim-baked.zip

Link to comment
Share on other sites

Nice (y) I'd also be interested in attempting this step:

  Quote

If you have only the deform bones selected check "only selected". This will give smaller dae. Otherwise uncheck "Only Selected".

because that sounds like it would generate less awful DAEs and leave out the unused bones.

This is good though, sounds like we've discovered a process for using Blender Rigified models in game, what did your final skeletons.xml entries look like, Wijitmaker? If this really works, it can be added to the art design document and maybe as a topic on the public forums (removing all the failed attempts and filler).

Link to comment
Share on other sites

  Quote
what did your final skeletons.xml entries look like, Wijitmaker?
Here you go, I've attached, just unzip into public/art and maintain folder structure.

EDIT: On a side note, this blender animation will only work with the blender exported mesh. As I figured would happen, when you try to load this animation with one of our existing skeletal animations it turns the mesh into something that looks like a moving mass of crinkled up paper. This is because the rigify structure (bone lengths, coordinate location of the joints) doesn't match the 3ds Max and XSI structures we have been using for the game.

So... the choices I see are 1) put forth just a little bit more effort to make blender's model conform the existing structures to make them compatible 2) use 2 separate sets of animations and models and don't worry about cross compatibility 3) toss 50+ old biped animations and redo them all using blender.

art.zip

Link to comment
Share on other sites

Awesome! :) Can't wait to see it ingame :P

Well... Blender's Rigfy only works for bipeds, so... :P I wouldn't mind getting my hands dirt and re-doing some old animations, but, unfortunatly, I have very little free time in my hands this year.

BTW, can you get me .gif? :P I'm just eager to see it, but somehow, I screwed my instalation, so I'll need to take sometime putting new things in the right places :P

Link to comment
Share on other sites

Eh.. I don't have that kind of free time :P It looks just like it looks in blender ;)

When your talking about redoing animations I think there should be a serious commitment behind that. It is going to take some considerable time to do that (much more than it would take to make a common/cross compatible rig). If there isn't a commitment and proof that the feat is possible, I fear what has happened in the past will repeat itself. A decision is made to go a different direction (for one reason or another), then people who were behind that decision unfortunately have to leave the project due to other priorities... and then you end up in a worse place than when you started with a half completed transition. One step forward, but two steps back.

The assumption is also being made that newer is going to be better. Until the team sees a side by side comparison of the old and new I wouldn't believe that assumption on the majority of the animations (some however are crap, for example the slinger attack which was intended to only be a place holder).

But, that's just my advise. Ken Wood once said: "The fate of 0 A.D. is in the hands of those that have vision and perseverance" You guys are the ones actively making the game now (persevering) - so the choice and the repercussions are yours (y)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...