KatsBits Community

[MD5] EXPORT script for Blender 2.6x (OPEN)

keless · 228 · 262374

0 Members and 1 Guest are viewing this topic.

Online kat

  • Administrator
  • Hero Member
  • *
    • Posts: 2692
    • KatsBits
Thanks to motorsep (special thanks to MCampagnini) the MD5 export scripts now work with Blender 2.62 and 2.63. Note: each script work with it's respective version of Blender so double-check correct pairing before use (most issues arise from using the wrong version of Blender). For local download of MD5 scripts see first post. More information and usage instructions can be found by clicking here.


Offline motorsep

  • Jr. Member
  • *
    • Posts: 75
@kat: I added minor fixes (mostly to how they appear in the Export menu)  and removed warning from the scripts. Added description of the workflow and a video depicting it :P

It's all on BlenderArtists thread



Online kat

  • Administrator
  • Hero Member
  • *
    • Posts: 2692
    • KatsBits
Yep I grabbed the versions you posted to PasteAll after you made the initial edits ;)

I added the GPL block to the versions available on KatsBits tools page for clarity with respect to usage (and copyright malarkey) and updated the "Report a Bug" link so it comes straight here when users click the button in Blender (rather than going to the home page as it was doing). Two minors but things that needed to be addressed.

Cheers for the hard work you put in to getting these fixed up to run motorsep, it now means there is an alternative route open to content creators making their own games using the later versions of Blender *thumbsup*. I watched the vid, heh.


Offline motorsep

  • Jr. Member
  • *
    • Posts: 75

Offline xt_hydra

  • Newbie
    • Posts: 3
so like.. i recently got back to trying to make the exporter make something...and now i got a mesh
but now i got an error saying i need a bounding box or something about it when i try to make an anim
im thinking about this could be produce by a transformation.. not applyed? i don't know seriously..i think i remember trying to resolve to this by pressing space and write "apply" n stuff...well damnit



Offline xt_hydra

  • Newbie
    • Posts: 3
im already using 2.62 and i also tryed plugin for 2.63
seriously.. this bounding box is irevelant.. isnt bounding box is for physic?

also ive saw ur post about your 2.62 fix but im not sure what u meant by unparenting armature from mesh


Online kat

  • Administrator
  • Hero Member
  • *
    • Posts: 2692
    • KatsBits
Unparenting the meshfrom the armature (select the mesh, press "Alt+P" and select "Clear Parent" or "Keep Transform") isn't an absolute necessity as the exporter will output the correct files is either case. Just make sure your mesh has vertex_groups assigned and you should be good to go.

Have you read through the general prep and export information linked in the first post xt_? I'd recommend doing that and then looking at how you have your mesh, rig and animation set up in relation to it. Basically, if you're being asked for a bounding box on export then something isn't set-up correctly (the MD5 exporter has no idea what a Bounding Box is so won't ask for it specifically).


Offline dgis

  • Newbie
    • Posts: 1
Hi,
May be I'm wrong but I think the weights are not well calculated.
They are computed too early before knowing if several faces share the same vertex (and weight).
So, I would want to share with you my fix for the version 2.63:  http://www.pasteall.org/34591/python
I hope it help. Anyway, keep on the good work!


Offline wtrsltnk

  • Newbie
    • Posts: 2
Hi there,

First of all thanks for this nice plug-in! It works great, except for one thing: The shader names. When i have a mesh with multiple materials assigned, all meshes in the md5mesh file get the first material as shader name. Is this a bug? I tried tot fix it, but i don't see how.

Thanks,
wouter


Online kat

  • Administrator
  • Hero Member
  • *
    • Posts: 2692
    • KatsBits
It's a (built-in/designed) 'limitation' of the format, you can only have a single material assigned per mesh. So in instances where more than one are assigned, the mesh would need to be broken down into corresponding sections - a "head", "body", "feet" material assignment would have the mesh split into "head", "body" and "feet" sections. Or, the texture/material assignments would need to be unified (from multiple, into a single image). If you do break the mesh up, you may also need to make sure you 'close' the sections - they ideally need to be seen as 'solid' and 'complete' objects rather than shells or skins the innards of which can be seen - in other words, any openings, gaps or holes need to be filled, UV-mapped and textured (this only needs to be done approximately).

Come time to export, just make sure to select all the sections that are supposed to be part of the main object, the process will then output the lot as a series of sub-meshes in the MD5 file - so a single MD5 object composed from a series of sub-meshes.


Offline wtrsltnk

  • Newbie
    • Posts: 2
The weird thing with a blender scene I have, is that I have one mesh that is fully connected. But it also has multiple materials assigned. Every material is assigned to a unique 'group'. With this 'group' i mean all vertices that are assigned to the same materialindex, not a vertexgroup. When I export this scene to md5, i get meshes for all of these 'groups'. I think these exported meshes are based on the material index in blender, except for their shader name, that is the name of the first material assigned to the blender mesh.

I am not sure, I will try to make a blender scene to show this.


Online kat

  • Administrator
  • Hero Member
  • *
    • Posts: 2692
    • KatsBits
Are the meshes individual objects in Blender just (object) grouped together or are you saying the export process is somehow splitting a mesh into corresponding sections based on the (unique) MaterialIndex? If it's the latter, that's the first time I've ever heard of that happening (and it wouldn't be specifically desirable an occurrence!).


Offline nemyax

  • Newbie
    • Posts: 38
wtrsltnk
The mesh may be split up by UV "island". Can you check if this is the case? Your materials may simply match the UV splits.
A vertex can have only one set of 3D coordinates, but multiple sets of UV coordinates. The way MD5 handles this is to split meshes at the UV seams.


Offline ramzez

  • Newbie
    • Posts: 1
Guys, I went through the entire instructions and this thread, still I cannot export the simplest action and a mesh. I used the default cube and three simple key frames with one action. The error is thrown during export:

Code: [Select]
Traceback (most recent call last):
  File "C:\Blender Foundation\Blender\2.63\scripts\addons\io_export_md5-263.py", line 905, in execute
    return {'FINISHED'}
  File "C:\Blender Foundation\Blender\2.63\scripts\addons\io_export_md5-263.py", line 855, in save_md5
    buffer = anim.to_md5anim()
  File "C:\Blender Foundation\Blender\2.63\scripts\addons\io_export_md5-263.py", line 560, in generateboundingbox
    md5animation.bounds.append((min[0]*scale, min[1]*scale, min[2]*scale, max[0]*scale, max[1]*scale, max[2]*scale))
  File "C:\Blender Foundation\Blender\2.63\scripts\addons\io_export_md5-263.py", line 514, in getminmax
    if len(listofpoints[0]) == 0: return ([0,0,0],[0,0,0])
IndexError: list index out of range

location:<unknown location>:-1

Blender 2.63 (r45996)
Export script for 2.63

Test case:
  • Open Blender 2.63, you will see the default cube (3D View)
  • Press Shift+A and add Armature (single bone) to the existing cube
  • Select the cube, select Armature holding shift key (you should have them both selected now)
  • Make Armature the parent: press Ctrl+P and choose With Empty Groups
  • Press Ctrl+A and apply Location, Rotation, Scale
  • Go to DopeSheet view, choose Action Editor
  • Add new Action, give it a name you want
  • Go back to 3D View. Make sure the first frame is set to 1 and the last one is set to 24 (it will give us 1 second of animation for frame rate set to 24
  • Add the first key frame: press I and choose LocRot
  • Move to 12th frame, rotate or move the cube+armature, add another key frame (LocRot)
  • Move to 24th frame, rotate or move the cube+armature, add another key frame (LocRot)
  • Make sure both cube and armature are selected and the Action is active
  • Try to export both Mesh&Animation, the mesh seems to be exported fine but the animation file is empty and the error is thrown

I'm not sure what is wrong with matrix used in getminmax(). Thanks in advance.