Jump to content


WFG Retired
  • Content Count

  • Joined

  • Last visited

  • Days Won


Posts posted by Wijitmaker

  1. Sorry guys, I have to bail on this for a few weeks. I'm taking a trip - leaving this Friday and won't return until 4/7. I need to spend my free time in preparations. Keep fighting the good fight, I'll try to lend my assistance again when I return.

    The next steps I would take is the following:

    Create a simplified animation (maybe 2 bones bending a 4 sided cylinder) in max with some test prop points, then work to get that into blender. Try to export a .dae from max and blender again. Compare the contents of the .dae files with a smaller dataset.

    I'd also be curious to better understand how pyrogenesis converts the .dae files into .psa and .pmd files - and what parts and pieces of the .dae it uses in the conversion.

    I also thought it might be interesting to make a custom texture and paint it so that the vertexs in the scramble would be obvious in their before and after positions.

    • Like 1
  2. Very interesting... I feel like we got a lot of answers today, but now there are more questions.

    Try tweaking the actor file to call out a .dae file instead of a .psa for the walk test. Could I see an animated gif of the walk? Maybe use: inf_pack_walk.dae

    <animation file="biped/inf_pack_walk.dae" name="Walk" speed="120"/>

    I have yet to see the .dae file that blender exports. I'd like to see it so I could do a comparison look. Could I get a copy from you?

    In wonder if the prop orientation error has more to do with how I brought the prop points into blender rather than an error on blender's part. I'm convinced this can be fixed.

    I'm more concerned about the mesh/animation cross talk between the old (max animations and meshes) with the theoretical new (blender meshes and animations).

    • Like 1
  3. I'm not sure what is going on with that head prop... wierd.

    The mesh deformation with the different animations might be because... I think every vertex gets an index number assigned to it in the .dae file. Each vertex is located xyz with bone assignments and weightings. Perhaps the vertex index numbers are getting scrambled between versions of .dae exports?

    All the original max files are in the art repository and could be re-exported as .dae files.

    Hephaestion, I'd be curious to see what you thought as you compared and contrasted the contents of the Max exported .dae files with the blender exported .dae file.

    2 are exported with max's default exporter (autodesk) with different orientations. I never had luck getting these exports to work in pyrogenesis.

    Attached is a screenshot of the export dialog menu, and warnings it threw.

    The other export is colladamax plugin's version - what I always used successfully.




    • Like 1
  4. That looks better. Ok so for the prop points - double check the names. There should be a corresponding prop point for each of these.

    <prop actor="props/units/heads/hele_leonidas.xml" attachpoint="helmet"/>
    <prop actor="props/units/heads/head_hele_h.xml" attachpoint="head"/>
    <prop actor="props/units/shields/hele_round_leonidas.xml" attachpoint="shield"/>
    <prop actor="props/units/cape_long_ragged.xml" attachpoint="shoulders"/>
    <prop actor="props/units/weapons/spear_hoplite.xml" attachpoint="r_hand"/>

    I forget the naming convention for the prop points in blender... if it is simply helmet, or prop_helmet, or props_helmet. And double check how you exported the mesh, did you have the prop points selected when you exported it? That might make a difference.

    So the ultimate goal is to intermingle new animations with old animations, new meshes with old meshes... so we really want to see if you add this line to the actor file, if it turns into a crumbled mess... or if it actually works like we would hope it would.

    <animation file="biped/inf_hoplite_walk.psa" name="Walk" speed="120"/>

    • Like 1
  5. Very good, your almost there. For testing purposes you could make a crude actor file.

    <?xml version="1.0" encoding="utf-8"?><actor version="1">  <castshadow/>  <group>	<variant frequency="1" name="Base">	  <animations>		<animation file="biped/{exported.dae}" name="Idle" speed="100"/>	  </animations>	  <mesh>skeletal/{exported.dae}</mesh>	  <props>		<prop actor="props/units/heads/hele_leonidas.xml" attachpoint="helmet"/>		<prop actor="props/units/heads/head_hele_h.xml" attachpoint="head"/>		<prop actor="props/units/shields/hele_round_leonidas.xml" attachpoint="shield"/>		<prop actor="props/units/cape_long_ragged.xml" attachpoint="shoulders"/>		<prop actor="props/units/weapons/spear_hoplite.xml" attachpoint="r_hand"/>	  </props>	  <textures><texture file="skeletal/hele_leonidas.dds" name="baseTex"/></textures>	</variant>  </group>  <material>player_trans.xml</material></actor>

    Just drop your exported dae file in these locations:



    and replace this in the example above: {exported.dae}

    • Like 1
  6. This one should be compatible with Max 2009 I can make it compatible with max 2006

    Your right this one worked, it didn't error out - but it appears to be empty. There was no geometry included?

    Okay, if it's autogenerated, then it's cool.

    Appended the blender specific skeleton-XML to biped.xml.

    I also have written a blender python script for renaming bones automatically to fit our engine's standard_skeleton:

    • biped

      # Blender Python script - Tested with v2.70, should work with 2.6+.import bpy#------- FUNCTIONS ------------------------------------------------------------##ACTdef act():#context):    #a = context.armature    #print(a)    #if a is None:    a = bpy.data.armatures['Armature']    #TODO better use 0 as index?    remove_pattern = "root_"    if not a:        print("Armature still not found!")        return False    for b in a.bones:        old_name = b.name        print(b.name)        if b.name.find(remove_pattern) != -1:            print('found prepended ' + remove_pattern)            b.name = b.name.replace(remove_pattern, "")        b.name = b.name.lower()        if (old_name != b.name):            print('bone renamed to:' + b.name)        else:            print('nothing to do - report bug in blenderartists or wildfireforums if you think something is wrong.\r\nhttp://www.wildfiregames.com/forum/index.php?showtopic=15552&page=19#entry286903')        print("\r\n")    return Trueact()#context)
  7. ... for other skeletons this can easily be adapted.
  8. Most recent version (GitHub)

    So I will continue my tests..

    Nice work - carry on!

  9. Yes bone root :)

    Yeah please review and fix the hierarchy in blender as needed.

    Yes in 3dmax, there is a plugin (now a part of max) that auto generates bipeds. It is called character studio. You can change the names of the bones, but I left them in there system generated names. The idea behind these skeletons was to allow people to use whatever software they wanted to use and name their bones whatever they wanted and still be able to map them to the master biped skeleton to take full advantage of all the existing biped compatible meshes and animations.

    I think you can ignore the fingers and toes and nubs that you might see. Just don't apply a target like in rows 84 and 85. Those are relics from the pre-collada days. Back when we used the custom 3ds Max plugin to export directly to a .psa and .pmd file.

    Stan, I'll check out your .fbx file now

  10. Hmm, I'm trying to remember what I selected in max when I exported. I can't recall. You might want to try a few different combinations. I'm not even sure if you can do this in blender. But, in max you have the option of "export" which exports the whole scene, or "export selected" - which only exports selected objects (of course ;)). I don't remember if I just selected the root, or just the root and the mesh, or the root, the mesh, and the props (I suspect the later). Or maybe it was the root, all the bones, all the props and the mesh... You might want to try a few different combinations.

  11. Ok, a few things. You can use an export of dude_4 for both the mesh and the animation file in your actor xml file. The engine will only reference the mesh data when loading the mesh from the .dae file - and when doing the animation, it will only reference the animation data stored in the .dae. So you can actually used an animated mesh for your mesh.

    The other thing is the skeleton. I would imagine that exporting the rig from blender will require a new skeleton. This file will need to be appended:


    Note there is 2 basic versions of biped - one for max (line 58 - 115) and one for xsi (line 117 - 186). There will probably need to be one created for blender that names the rigging bones correctly per the blender file.

    The difference could be as subtle as duplicating the structure of max one and just renaming the root. Lines 1- 56 in the file define the skeleton and will never change. The other blocks are basically translators for the various 3d software programs to define equivalent bone names.

    Edit: I see your comments about prop points... was there no prop points in dude 4? I thought I brought those over (might they perhaps be hidden in blender? It shouldn't be to difficult to recreate new prop points or import them into blender and re-attach them with appropriate parent/child relationships.)

  12. Wow, you guys have been busy since the last time I looked at the forums. Nice work. :D

    FYI, I never had any luck using the default .dae file export out of 3ds Max. Back in the day (2006 - when most models and all animations were from 3ds Max for 0 A.D.) we always instructed people to export the .dae file from Max using ColladaMax. Pyrogenesis didn't like the native .dae export. So we used the plugin, which did work. I'm not sure if blender might have issues with the native 3ds Max .dae export as well?

    Last time we made a run at this - I thought we were super close to getting this to work. I successfully got the rig into Blender and I thought it would work, but I'm not familiar enough with Blender to know how the export animation works. Check that out here. Enrique didn't have any luck with the file.


    I think it has a really simple test animation applied to it too.

    • Like 1
  13. Thanks for this, finally fixed the theatron foundations.

    A few question about animations. Now that I've got the max file, what Should I do to have it in the game, Is it the same process as building importation ? Also what is the "base" for ?

    I can point you to more 3dmax youtube tutorials and videos. I think I even have a dvd somewhere (or used too). I'd like to get you to successfully export a .dae file. Why don't you try exporting a .dae from that ox cart max file I sent you and try to replace the chariot file again. Let see what breaks ;)

    Enrique would like to try exporting a humanoid .dae file as well. I think you could help us with that :) If we can get the ox cart working. Lets try this next. How is your documentation of all this going?

    EDIT: Nevermind - you and Enrique are already on it!

    • Like 1
  14. I'll check out your file later, but here is a video tut about setting up hierarchies in max:

    Props don't have to be made out of dummy helpers, they could be made out of geometry (like a box). I just preferred using helpers because you could filter out your selection criteria. Sometimes I would want to only select geometry or only select helpers. If my prop was a geometry type, I couldn't discriminate between the two.

  • Create New...