Feb 272011
This is a very simple script I wrote to make BVH’s exported from DANCE (Dynamic Animation and Control Environment) able to be imported into Blender.
It just adds blank channels to joints if there are less than 3.
""" DANCE BVH EXPORT THING -Simple BVH file thing that adds blank channels of position to JOINTS and FRAMES to allow BVH Exports from DANCE (Dynamic Animation and Control Environment) to be imported into Blender. www.funkboxing.com """ infile = "c:\workspace\bvhMINE\bvhdata\skelORIG2.bvh" outfile = "c:\workspace\bvhMINE\bvhdata\skelTESTOUT.bvh" def loadDANCEBVH(fin, fout): tab = chr(9) f = open(fin, 'r') lines = f.readlines() f.close() newlines = list(lines) newlines[16] = str(tab+tab+tab+tab+"CHANNELS 3 Xrotation Yrotation Zrotationn") newlines[30] = str(tab+tab+tab+tab+"CHANNELS 3 Yrotation Xrotation Zrotationn") newlines[34] = str(tab+tab+tab+tab+"CHANNELS 3 Yrotation Zrotation Xrotationn") newlines[49] = str(tab+tab+tab+tab+"CHANNELS 3 Yrotation Xrotation Zrotationn") newlines[53] = str(tab+tab+tab+tab+"CHANNELS 3 Yrotation Zrotation Xrotationn") newlines[69] = str(tab+tab+tab+tab+"CHANNELS 3 Xrotation Yrotation Zrotationn") newlines[73] = str(tab+tab+tab+tab+"CHANNELS 3 Xrotation Zrotation Yrotationn") newlines[88] = str(tab+tab+tab+tab+"CHANNELS 3 Xrotation Yrotation Zrotationn") newlines[92] = str(tab+tab+tab+tab+"CHANNELS 3 Xrotation Zrotation Yrotationn") for li in range(104, len(lines)): vals = lines[li].split(" ") vals.insert(12, '0') vals.insert(12, '0') vals.insert(19, '0') vals.insert(21, '0') vals.insert(27, '0') vals.insert(30, '0') vals.insert(30, '0') vals.insert(35, '0') vals.insert(35, '0') vals.insert(39, '0') vals.insert(44, '0') vals.insert(44, '0') vals.insert(48, '0') newlines[li] = " ".join(vals) fo = open(fout, 'w') fo.writelines(newlines) loadDANCEBVH(infile, outfile)
Thanks for exposing me to this excellent project. Now I just need to learn to use it. P.S. You have a great site.