Blender to dpm, a mini tutorial
Pre-required tools and reading
- Go here - http://developer.valvesoftware.com/wiki/Blender#Installation and download the export script.
- Rig / Animate as outlined here - http://developer.valvesoftware.com/wiki/Animation_in_Blender.
- Only works with Blender 248a -- 249b (2.50 is a no go).
Blender work flow
- Select your mesh and armature, export as smd. select Static Mesh. You only need to re-export this smd if the mesh or the rig change.
- Now export as Animation Sequence. Preferably you have one track (and smd file) per animation. name it so you know what it is (modelname_attack1.smd for example).
- You could possibly use the “Animation Sequence ( ALL )” or “All…” options, but I haven’t tried so i cant say if it works.
dpmodel work flow
dpmodel needs and a text file telling it how to bake the mesh and animation(s) into a dpm. This text file should look something like:
# save the model as model.dpm model model # move the model this much before saving origin 0 0 0 # rotate the model 90 degrees around vertical rotate 90 # scale the model by this amount, 0.5 would be half size and 2.0 would be double size scale 1 # load the mesh file, this is stored into the dpm as frame 0 scene model.smd # Each following (if any) smd's are animations scene model_action1.smd fps 30 scene model_action2.smd fps 30
Place all smd’s and the text file in the same place, execute
dpmodel whatever_you_named_that_text_file. If all goes well you should now have a working dpm (and .framegroups file if its animated)
- Your mesh needs to have a material assigned to it. The name of the material is what dp will look for to use as texture/shader on the model/mesh/es.
- Blender exports what you got selected. make sure you have the relevant (and only the relevant) objects selected.
- If export script fail with a encoding error, open it in a text editor and remove the whole top comment block (lines starting with #). There’s an illegal character in there according to pyton. I haven’t bothered to check closer witch one it could be.