From: <fu...@us...> - 2013-10-22 14:06:23
|
Revision: 14287 http://sourceforge.net/p/supertuxkart/code/14287 Author: funto66 Date: 2013-10-22 14:06:20 +0000 (Tue, 22 Oct 2013) Log Message: ----------- Add "speed-weighted" object type to Blender scripts + fix problem where the objects' positions could be moved by the script in case the B3D exporter is not available. Modified Paths: -------------- media/trunk/blender_25/stk_kart.py media/trunk/blender_25/stkdata/stk_kart_object_parameters.xml Modified: media/trunk/blender_25/stk_kart.py =================================================================== --- media/trunk/blender_25/stk_kart.py 2013-10-22 13:44:08 UTC (rev 14286) +++ media/trunk/blender_25/stk_kart.py 2013-10-22 14:06:20 UTC (rev 14287) @@ -93,7 +93,38 @@ f.write(' </nitro-emitter>\n') # ------------------------------------------------------------------------------ +# Save speed weighted +def saveSpeedWeighted(f, lSpeedWeighted, path): + if 'b3d_export' not in dir(bpy.ops.screen): + log_error("Cannot find the B3D exporter, make sure you installed it properly") + return + + f.write(' <speed-weighted>\n') + for obj in lSpeedWeighted: + f.write(' <speed-weighted position = "%f %f %f" model = "%s.b3d"/>\n' \ + % (obj.location.x, obj.location.z, obj.location.y, obj.name)) + + lOldPos = Vector([obj.location.x, obj.location.y, obj.location.z]) + obj.location = Vector([0, 0, 0]) + + global the_scene + the_scene.obj_list = [obj] + + bpy.ops.screen.b3d_export(localsp=False, mipmap=True, lights=False, vcolors=True, + vnormals=True, cameras=False, filepath=path + "/" + obj.name, + overwrite_without_asking=True) + the_scene.obj_list = [] + + obj.location = lOldPos + + f.write(' </speed-weighted>\n') + +# ------------------------------------------------------------------------------ def saveWheels(f, lWheels, path): + if 'b3d_export' not in dir(bpy.ops.screen): + log_error("Cannot find the B3D exporter, make sure you installed it properly") + return + if len(lWheels)!=4: log_warning("Warning - %d wheels specified" % len(lWheels)) @@ -134,10 +165,6 @@ global the_scene the_scene.obj_list = [wheel] - if 'b3d_export' not in dir(bpy.ops.screen): - log_error("Cannot find the B3D exporter, make sure you installed it properly") - return - bpy.ops.screen.b3d_export(localsp=False, mipmap=True, lights=False, vcolors=True, vnormals=True, cameras=False, filepath=path + "/" + lWheelNames[index], overwrite_without_asking=True) @@ -168,7 +195,8 @@ ["straight", "right", "left", "start-winning", "start-winning-loop", "end-winning", "start-losing", "start-losing-loop", "end-losing", "start-explosion", "end-explosion", "start-jump", "start-jump-loop", "end-jump", - "turning-l", "center", "turning-r", "repeat-losing", "repeat-winning"]: + "turning-l", "center", "turning-r", "repeat-losing", "repeat-winning", + "start-speed-weighted", "end-speed-weighted"]: if markerName=="turning-l": markerName="left" if markerName=="turning-r": markerName="right" if markerName=="center": markerName="straight" @@ -251,6 +279,7 @@ lWheels = [] lKart = [] lNitroEmitter = [] + lSpeedWeighted = [] for obj in lObj: stktype = getProperty(obj, "type", "").strip().upper() name = obj.name.upper() @@ -258,6 +287,8 @@ lWheels.append(obj) elif stktype=="NITRO-EMITTER": lNitroEmitter.append(obj) + elif stktype=="SPEED-WEIGHTED": + lSpeedWeighted.append(obj) elif stktype=="IGNORE": pass # For backward compatibility @@ -271,8 +302,7 @@ lKart.insert(0, obj) else: lKart.append(obj) - - + # Write the xml file # ------------------ kart_shadow = the_scene['shadow'] @@ -327,12 +357,13 @@ saveAnimations(f) saveWheels(f, lWheels, path) saveNitroEmitter(f, lNitroEmitter, path) + saveSpeedWeighted(f, lSpeedWeighted, path) hat_offset = "0.0 1.0 0.0" if 'hat_offset' in the_scene and len(the_scene['hat_offset']) > 0: hat_offset = the_scene['hat_offset'] - f.write(' <hat offset="' + hat_offset + '"/>\n') + f.write(' <hat offset="' + hat_offset + '"/>\n') f.write('</kart>\n') f.close() Modified: media/trunk/blender_25/stkdata/stk_kart_object_parameters.xml =================================================================== --- media/trunk/blender_25/stkdata/stk_kart_object_parameters.xml 2013-10-22 13:44:08 UTC (rev 14286) +++ media/trunk/blender_25/stkdata/stk_kart_object_parameters.xml 2013-10-22 14:06:20 UTC (rev 14287) @@ -11,5 +11,6 @@ <EnumChoice id="ignore" label="Ignore" doc="Do not export this object" /> <EnumChoice id="wheel" label="Wheel" doc="This object is a kart wheel" /> <EnumChoice id="nitro-emitter" label="Nitro Emitter" doc="This object is where nitro particles are emitted" /> + <EnumChoice id="speed-weighted" label="Speed Weighted" doc="This object's animation is weighted by the kart's speed" /> </EnumProp> </Properties> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |