[Bf-extensions-cvs] [09dd79e] master: Fix T41118: Mesh cache modifier cannot use sub-frames stored in .pc2 files?

Bastien Montagne noreply at git.blender.org
Mon Aug 25 15:34:00 CEST 2014


Commit: 09dd79eddd8e57951ae9cfb3237e58f40c86138c
Author: Bastien Montagne
Date:   Mon Aug 25 15:33:23 2014 +0200
Branches: master
https://developer.blender.org/rBA09dd79eddd8e57951ae9cfb3237e58f40c86138c

Fix T41118: Mesh cache modifier cannot use sub-frames stored in .pc2 files?

Actually issue was in pc2 exporter, which was not handling subframes correctly.

===================================================================

M	io_export_pc2.py

===================================================================

diff --git a/io_export_pc2.py b/io_export_pc2.py
index 663f3a5..e00ee46 100644
--- a/io_export_pc2.py
+++ b/io_export_pc2.py
@@ -19,8 +19,8 @@
 bl_info = {
     "name": "Export Pointcache Format(.pc2)",
     "author": "Florian Meyer (tstscr)",
-    "version": (1, 0),
-    "blender": (2, 57, 0),
+    "version": (1, 1),
+    "blender": (2, 71, 0),
     "location": "File > Export > Pointcache (.pc2)",
     "description": "Export mesh Pointcache data (.pc2)",
     "warning": "",
@@ -41,16 +41,17 @@ cacheFile -pc2 1 -pcf "<insert filepath of source>" -f "<insert target filename
 """
 
 import bpy
-from bpy.props import *
-import mathutils, math, struct
+from bpy.props import BoolProperty, IntProperty, EnumProperty
+import mathutils
+from bpy_extras.io_utils import ExportHelper
+
 from os import remove
 import time
-from bpy_extras.io_utils import ExportHelper
+import math
+import struct
 
-def getSampling(start, end, sampling):
-    samples = [start + x * sampling
-               for x in range(int((end - start) / sampling) + 1)]
-    return samples
+def get_sampled_frames(start, end, sampling):
+    return [math.modf(start + x * sampling) for x in range(int((end - start) / sampling) + 1)]
 
 def do_export(context, props, filepath):
     mat_x90 = mathutils.Matrix.Rotation(-math.pi/2, 4, 'X')
@@ -62,7 +63,7 @@ def do_export(context, props, filepath):
     apply_modifiers = props.apply_modifiers
     me = ob.to_mesh(sc, apply_modifiers, 'PREVIEW')
     vertCount = len(me.vertices)
-    sampletimes = getSampling(start, end, sampling)
+    sampletimes = get_sampled_frames(start, end, sampling)
     sampleCount = len(sampletimes)
 
     # Create the header
@@ -74,7 +75,7 @@ def do_export(context, props, filepath):
     file.write(headerStr)
 
     for frame in sampletimes:
-        sc.frame_set(frame)
+        sc.frame_set(int(frame[1]), frame[0])  # stupid modf() gives decimal part first!
         me = ob.to_mesh(sc, apply_modifiers, 'PREVIEW')
 
         if len(me.vertices) != vertCount:



More information about the Bf-extensions-cvs mailing list