tracksperanto 4.1.3 → 4.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.travis.yml +2 -2
- data/{History.txt → CHANGELOG.md} +131 -109
- data/MIT_LICENSE.txt +1 -1
- data/README.md +5 -2
- data/Rakefile +1 -1
- data/lib/import/pftrack.rb +4 -4
- data/lib/import/shake_script.rb +2 -2
- data/lib/tracksperanto.rb +0 -1
- data/lib/tracksperanto/block_init.rb +2 -2
- data/lib/tracksperanto/buffer_io.rb +4 -5
- data/lib/tracksperanto/version.rb +1 -1
- data/tracksperanto.gemspec +3 -2
- metadata +26 -14
- data/lib/tracksperanto/returning.rb +0 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: f768440fc22c699271edd268e05aaabcc809ef13a0bafcb73676b63ffd2aac4d
|
4
|
+
data.tar.gz: d1a4204240338acecaa3790df4d000d7dd76c22f62134011fb562187e6bcd0e0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a1af6ec7a98771b55ec3da3e802f15ae56c19f587733a38b64efcb15846ae0d23926534f3ba1034b383d3411e0216657908aa5bcab794b3a0336720f01b06912
|
7
|
+
data.tar.gz: 6c74f9f68ff32ee1ecb0405d442d32519fab1918691fd34858c4abe2258bcd43f36d8255b88bea658f865ae2c04271ecfbfc98d9375b6c65017dfd4c404b6423
|
data/.travis.yml
CHANGED
@@ -1,162 +1,184 @@
|
|
1
|
-
|
1
|
+
### 4.2.0
|
2
|
+
|
3
|
+
* Revert keyword arguments change in BlockInit so that compatibility with Ruby 3.x can be assured
|
4
|
+
|
5
|
+
### 4.1.3
|
6
|
+
|
7
|
+
* Make sure the test corpus doesn't get included in the released gem (size constraints)
|
8
|
+
|
9
|
+
### 4.1.2
|
10
|
+
|
11
|
+
* Update the used version of Tickly (used for Nuke scripts)
|
12
|
+
|
13
|
+
### 4.1.0
|
14
|
+
|
15
|
+
* Iron out a few kinks with the now-smaller subset of Rubies we support
|
16
|
+
|
17
|
+
### 4.0.0
|
18
|
+
|
19
|
+
* The version drop support for Ruby versions below 2.2 - older versions of Tracksperanto still can be installed and used, but not 4.x and newer. We need to make this change to simplify CI runs and the test matrix, also installing and running older Ruby versions is turning into more and more of a hassle
|
20
|
+
* Update some idioms for more modern Ruby syntax: introduce `require_relative` in most places, use `#tap` instead of `#returning` and other small modernizations
|
21
|
+
* Remove Jeweler which was used for packaging the gem and use just builtin Bundler features + .gemspec file
|
22
|
+
|
23
|
+
### 3.5.9
|
2
24
|
|
3
25
|
* Set the maximum version for some gems to reenable Ruby 1.8.7 installs
|
4
26
|
|
5
|
-
|
27
|
+
### 3.5.8
|
6
28
|
|
7
29
|
* Fixes to MatchMover .rz import
|
8
30
|
|
9
|
-
|
31
|
+
### 3.5.6
|
10
32
|
|
11
33
|
* SynthEyes has two export formats which creates confusion. Add snag messages to import moudules to hint that.
|
12
34
|
|
13
|
-
|
35
|
+
### 3.5.5
|
14
36
|
|
15
37
|
* Fix joining animation curves that had negative frame numbers (might happen in Nuke scripts)
|
16
38
|
|
17
|
-
|
39
|
+
### 3.5.4
|
18
40
|
|
19
41
|
* Fix parsing Nuke scripts with Tracker4 where some tracks were expression-only
|
20
42
|
* Fix parsing Nuke scripts with Tracker4 nodes having empty or no tracks at all
|
21
43
|
|
22
|
-
|
44
|
+
### 3.5.0
|
23
45
|
|
24
46
|
* Add early bailout if unsupported formats are fed in. Because some people just can't read.
|
25
47
|
|
26
|
-
|
48
|
+
### 3.4.1
|
27
49
|
|
28
50
|
* Fix parsing of curve expressions with modifiers in Nuke scripts
|
29
51
|
|
30
|
-
|
52
|
+
### 3.4.0
|
31
53
|
|
32
54
|
* Add specific Flame/Smoke exporters for IFFS 2014 and above, including updated cornerpin order
|
33
55
|
|
34
|
-
|
56
|
+
### 3.3.13
|
35
57
|
|
36
58
|
* Fix the bug in Shake script imports where the import would fail if animation curves contained a non-numeric value
|
37
59
|
|
38
|
-
|
60
|
+
### 3.3.12
|
39
61
|
|
40
62
|
* Fix the bug in MatchMover imports that caused the import to fail if the file contained a multiline path
|
41
63
|
|
42
|
-
|
64
|
+
### 3.3.11
|
43
65
|
|
44
66
|
* Fix the bug that caused CLI short flags to be ignored
|
45
67
|
|
46
|
-
|
68
|
+
### 3.3.10
|
47
69
|
|
48
70
|
* Use the updated Tickly for Nuke's animation curves that have a slightly different format
|
49
71
|
|
50
|
-
|
72
|
+
### 3.3.9
|
51
73
|
|
52
74
|
* Use the updated Tickly that handles Winshitows line breaks gracefully
|
53
75
|
|
54
|
-
|
76
|
+
### 3.3.8
|
55
77
|
|
56
78
|
* Small bugfix in the Nuke import module
|
57
79
|
* Add Nuke Transform2D support for center and translate
|
58
80
|
|
59
|
-
|
81
|
+
### 3.3.7
|
60
82
|
|
61
83
|
* Fix PlanarTracker import support in Nuke 7 scripts
|
62
84
|
* Add Nuke CornerPin node support
|
63
85
|
|
64
|
-
|
86
|
+
### 3.3.6
|
65
87
|
|
66
88
|
* Shake out the latest Bundler integration issues
|
67
89
|
|
68
|
-
|
90
|
+
### 3.3.0
|
69
91
|
|
70
92
|
* Require dependencies using Bundler
|
71
93
|
* Update to newer Tickly that has a faster parser
|
72
94
|
|
73
|
-
|
95
|
+
### 3.2.2
|
74
96
|
|
75
97
|
* Bump a whole array of dependencies to speed up and simplify Nuke and Shake parsers
|
76
98
|
|
77
|
-
|
99
|
+
### 3.2.1
|
78
100
|
|
79
101
|
* Improve Nuke 7 import support with the new version of Tickly
|
80
102
|
|
81
|
-
|
103
|
+
### 3.2.0
|
82
104
|
|
83
105
|
* Add Nuke 7 import support
|
84
106
|
|
85
|
-
|
107
|
+
### 3.1.0
|
86
108
|
|
87
109
|
* Add a Maxscript export module
|
88
110
|
|
89
|
-
|
111
|
+
### 3.0.1
|
90
112
|
|
91
113
|
* Subtract 1 frame from PFTrack imports (PFTrack starts on 1)
|
92
114
|
|
93
|
-
|
115
|
+
### 3.0.0
|
94
116
|
|
95
117
|
* Middleware renamed to Tools
|
96
118
|
* Multiple subpixel accuracy tests added
|
97
119
|
* Subpixel accuracy fixed for Syntheyes modules
|
98
120
|
* Subpixel accuracy fixed for PFTrack modules
|
99
121
|
|
100
|
-
|
122
|
+
### 2.12.0
|
101
123
|
|
102
124
|
* Add an export module for Nuke's CameraTracker node. This is just like the Shake format, except that tracker names have to be special.
|
103
125
|
|
104
|
-
|
126
|
+
### 2.11.3
|
105
127
|
|
106
128
|
* Hint that we only support specific nodes in Nuke
|
107
129
|
* Hint the user that a comp must be focused in AfterEffects when the import script is run without focusing on a comp first
|
108
130
|
|
109
|
-
|
131
|
+
### 2.11.1
|
110
132
|
|
111
133
|
* Fixes a bug with importer snag display
|
112
134
|
|
113
|
-
|
135
|
+
### 2.11.0
|
114
136
|
|
115
137
|
* This release adds a Softimage|XSI export module which outputs a Python script with moving nulls on an image plane
|
116
138
|
|
117
|
-
|
139
|
+
### 2.10.0
|
118
140
|
|
119
141
|
* Nuke importer now supports PlanarTracker nodes and their corner-pin output
|
120
142
|
|
121
|
-
|
143
|
+
### 2.9.9
|
122
144
|
|
123
145
|
* Add lens distortion tool. Adds the possibility to remove or add Syntheyes lens distortion to your plates.
|
124
146
|
|
125
|
-
|
147
|
+
### 2.9.8
|
126
148
|
|
127
149
|
* Ensure that Boujou vertical coords start off 1, not off 0 - both in import and export
|
128
150
|
|
129
|
-
|
151
|
+
### 2.9.7
|
130
152
|
|
131
153
|
* Add Syntheyes "All tracker paths" support
|
132
154
|
|
133
|
-
|
155
|
+
### 2.9.6
|
134
156
|
|
135
157
|
* Add Nuke Reconcile3D support
|
136
158
|
* Add Tool::Base.parameters for automatic GUI building
|
137
159
|
|
138
|
-
|
160
|
+
### 2.9.5
|
139
161
|
|
140
162
|
* Export a Maya ASCII scene instead of a MEL script
|
141
163
|
|
142
|
-
|
164
|
+
### 2.9.4
|
143
165
|
|
144
166
|
* Add MatchMover RZML import support
|
145
167
|
* Export Boujou trackers starting at frame 0, not at frame 1
|
146
168
|
|
147
|
-
|
169
|
+
### 2.9.3
|
148
170
|
|
149
171
|
* Add export for AE null layers as a .jsx script
|
150
172
|
|
151
|
-
|
173
|
+
### 2.9.2
|
152
174
|
|
153
175
|
* In the Maya locator export, do not advance the timebar when creating trackers. Refreshing all these viewports is SLOW.
|
154
176
|
|
155
|
-
|
177
|
+
### 2.9.1
|
156
178
|
|
157
179
|
* Adds an export module for Maya locators on an image plane
|
158
180
|
|
159
|
-
|
181
|
+
### 2.9
|
160
182
|
|
161
183
|
* Tracker objects now use a Hash as internal storage model instead of being an Array delegate.
|
162
184
|
Note that due to that some stuff might have become broken since behavior differs in subtle ways.
|
@@ -164,63 +186,63 @@
|
|
164
186
|
* Make test runs architecture-resilient by hardcoding floats
|
165
187
|
* Adds Tracker#to_ruby for people who like that sort of thing
|
166
188
|
|
167
|
-
|
189
|
+
### 2.8.6
|
168
190
|
|
169
191
|
* Ensure the Flame cornerpin export module always exports points in the proper Z-order
|
170
192
|
|
171
|
-
|
193
|
+
### 2.8.5
|
172
194
|
|
173
195
|
* Add Pad and Crop tools for fixing botched telecine and anamorphic Alexa
|
174
196
|
|
175
|
-
|
197
|
+
### 2.8.2
|
176
198
|
|
177
199
|
* Fix release gemspec
|
178
200
|
|
179
|
-
|
201
|
+
### 2.8.2
|
180
202
|
|
181
203
|
* Dramatically improve the update speed by not shipping the test cases with the gem anymore
|
182
204
|
* Fix obuf for ruby 1.8x
|
183
205
|
|
184
|
-
|
206
|
+
### 2.8.1
|
185
207
|
|
186
208
|
* Fix the bug that MatchMover importer would always assume the sequence starting on frame 1
|
187
209
|
* Fix the bug that Lint tool would raise when the export was started from negative frame offsets
|
188
210
|
|
189
|
-
|
211
|
+
### 2.8.0
|
190
212
|
|
191
213
|
* Add a special exporter for Flame cornerpins. Apparently the bilinear staiblizer wants the trackers to have the right names
|
192
214
|
right from the start (top_left, top_right and so on)
|
193
215
|
* Check trackers sent through to ensure that they always come sequentially without violating the frame ordering
|
194
216
|
|
195
|
-
|
217
|
+
### 2.7.0
|
196
218
|
|
197
219
|
* Speedup Shake script parsing by using a buffering reader
|
198
220
|
|
199
|
-
|
221
|
+
### 2.6.4
|
200
222
|
|
201
223
|
* Use various external dependencies that we extracted
|
202
224
|
* Note that Nuke now supports import and export of camera tracker features!
|
203
225
|
|
204
|
-
|
226
|
+
### 2.6.3
|
205
227
|
|
206
228
|
* Report progress from the parser for Flame, like it has been before
|
207
229
|
|
208
|
-
|
230
|
+
### 2.6.2
|
209
231
|
|
210
232
|
* Fix missing progress percentages in the Flame import module
|
211
233
|
|
212
|
-
|
234
|
+
### 2.6.1
|
213
235
|
|
214
236
|
* Fix errors that occurred when empty disabled trackers were present in Flame setups
|
215
237
|
* Give better error reports when an unknown constant gets requested (like a wrong importer)
|
216
238
|
* Use the flame_channel_parser gem now that it's stable.
|
217
239
|
|
218
|
-
|
240
|
+
### 2.6.0
|
219
241
|
|
220
242
|
* Adds the --trim option to remove keyframes that come in negative frames (before frame 0).
|
221
243
|
Some apps improperly handle such frames (Syntheyes)
|
222
244
|
|
223
|
-
|
245
|
+
### 2.5.0
|
224
246
|
|
225
247
|
* No status display in the progress bar. It was an annoyance.
|
226
248
|
* There are still crashes with flexmocks in tests, relevant flexmock issues filed upstream
|
@@ -228,266 +250,266 @@
|
|
228
250
|
* Use update_hints gem for version checks
|
229
251
|
* PFTrack 2011 and PFMAtchit actually use the same format, so we don't need to have 2 modules for them
|
230
252
|
|
231
|
-
|
253
|
+
### 2.4.0
|
232
254
|
|
233
255
|
* Added an official PFTrack 2011 exporter that is verified
|
234
256
|
|
235
|
-
|
257
|
+
### 2.3.3
|
236
258
|
|
237
259
|
* Fixed parsing of stereoscopic PFTrack exports
|
238
260
|
|
239
|
-
|
261
|
+
### 2.3.2
|
240
262
|
|
241
263
|
* Fixed handling of inline comments which are tacked onto the line in in Shake scripts
|
242
264
|
|
243
|
-
|
265
|
+
### 2.3.1
|
244
266
|
|
245
267
|
* Fixed support for curly braces in Shake scripts
|
246
268
|
* Added checks to prevent exports with empty trackers or exports which contain no data at all
|
247
269
|
|
248
|
-
|
270
|
+
### 2.3.0
|
249
271
|
|
250
272
|
* Fixed issue#1 (Last tracker in some Flame exports receives an empty shift channel)
|
251
273
|
* Nicer progress reports
|
252
274
|
* Modified the Accumulator to support nested iterations and random access
|
253
275
|
|
254
|
-
|
276
|
+
### 2.2.4
|
255
277
|
|
256
278
|
* Properly deal with negative frames happening in Shake scripts sometimes. We will now recognize a script starting at negative
|
257
279
|
frames and "bump" it's frames in curves so that everything neatly starts at frame 0. Granted this does not give us the same frame range
|
258
280
|
but most apps wil go bonkers anyway if we send them negative frame numbers.
|
259
281
|
|
260
|
-
|
282
|
+
### 2.2.3
|
261
283
|
|
262
284
|
* Prevent zero-length trackers (trackers having no position information) from being accumulated during import.
|
263
285
|
This had adverse effects on export modules that could not export trackers containing no information. As a sidenote we
|
264
286
|
will write down in the doco that an export module should not expect empty trackers with no keyframes to be sent
|
265
287
|
|
266
|
-
|
288
|
+
### 2.2.2
|
267
289
|
|
268
290
|
* The last change to PFMatchit exporter had adverse effects on pftrack files, now fixed.
|
269
291
|
* Pipeline now has it's own exceptions, all inheriting from RuntimeError
|
270
292
|
|
271
|
-
|
293
|
+
### 2.2.1
|
272
294
|
|
273
295
|
* April fool!
|
274
296
|
* PFMAtchit requires LF in it's files instead of CRLF, but our FPTrack exporter used CRLF. Now fixed.
|
275
297
|
* Changed PFMatchit exporter to export .txt files instead of .2dt
|
276
298
|
|
277
|
-
|
299
|
+
### 2.2.0
|
278
300
|
|
279
301
|
* Improve documentation substantially
|
280
302
|
* Changed the Import::Base interface yo use enumeration instead of @receiver.
|
281
303
|
Upside: This allows us to convert importers to an array of trackers and other niceties.
|
282
304
|
Downside: stream_parse will be deprecated. It is however still available for backwards compatibility
|
283
305
|
|
284
|
-
|
306
|
+
### 2.1.1
|
285
307
|
|
286
308
|
* Fix handling of Shake scripts containing stabilizer nodes with no animation
|
287
309
|
* Remove underscores from tracker names exported to Syntheyes to prevent spaces from being generated
|
288
310
|
|
289
|
-
|
311
|
+
### 2.1.0
|
290
312
|
* Adds PFMatchit import support. Also all PFTrack imported cameras will have a camera name injected into the tracker
|
291
313
|
* Adds a PFMatchit exporter (PFMatchit only wants cameras with numbers in the name)
|
292
314
|
|
293
|
-
|
315
|
+
### 2.0.2
|
294
316
|
* Compatible with Ruby 1.9.2
|
295
317
|
* Scaler tool now supports negative scaling factors
|
296
318
|
|
297
|
-
|
319
|
+
### 2.0.0
|
298
320
|
* Bugfix for PFTrack exports to contain cross-platform linebreaks (rn instead of n)
|
299
321
|
|
300
|
-
|
322
|
+
### 1.9.9
|
301
323
|
|
302
324
|
* Buffer the parsed trackers on disk or in a stream (all backwards-compatible). Substantially reduces conversion times and memory
|
303
325
|
usage on huge files.
|
304
326
|
|
305
|
-
|
327
|
+
### 1.9.8
|
306
328
|
|
307
329
|
* Very minor changes and improvements
|
308
330
|
* The app will now tell you when you try to feed it an empty file
|
309
331
|
* Change Synetheyes exports to start with a standard frame and not a keyframe to make 1-frame trackers work
|
310
332
|
* Adds a flip tool to mirror a tracked comp
|
311
333
|
|
312
|
-
|
334
|
+
### 1.9.6
|
313
335
|
|
314
336
|
* Support Tracker nodes in Shake scripts that come from an old (ages old!) Shake version
|
315
337
|
* Only parse channels that are actually relevant in the Flame importer
|
316
338
|
|
317
|
-
|
339
|
+
### 1.9.5
|
318
340
|
|
319
341
|
* More stringently check for trackers in the Shake script importer (helps from recognizing arbitrary variables as trackers)
|
320
342
|
* Increase the size of the in-mem string export buffer
|
321
343
|
|
322
|
-
|
344
|
+
### 1.9.4
|
323
345
|
|
324
346
|
* Fix the boujou exporter to not crash boujou 5
|
325
347
|
|
326
|
-
|
348
|
+
### 1.9.3
|
327
349
|
|
328
350
|
* Add direct export to boujou feature tracks
|
329
351
|
* Automatically check for new versions and alert the user that he needs an update
|
330
352
|
* Add tests for the commandline binary itself
|
331
353
|
|
332
|
-
|
354
|
+
### 1.9.2
|
333
355
|
|
334
356
|
* Fix a crasher when the progress bar was being set higher than 100 percent
|
335
357
|
|
336
|
-
|
358
|
+
### 1.9.1
|
337
359
|
|
338
360
|
* Fix a Pipeline bug introduced with the last version
|
339
361
|
|
340
|
-
|
362
|
+
### 1.9.0
|
341
363
|
|
342
364
|
* Use proper progress bars
|
343
365
|
* Allow proper chaining of tools in the commandline app - you can now apply many tools of the same nature in chain, and they will be ordered correctly
|
344
366
|
* Small rewrites to Pipeline::Base (changes API slightly - please consult the docs)
|
345
367
|
|
346
|
-
|
368
|
+
### 1.8.4
|
347
369
|
|
348
370
|
* Fix PFTrack imports neglecting the feature name if it only contained digits
|
349
371
|
|
350
|
-
|
372
|
+
### 1.8.3
|
351
373
|
|
352
374
|
* Fix faulty remaining trackers report being sent from the pipeline
|
353
375
|
|
354
|
-
|
376
|
+
### 1.8.2
|
355
377
|
|
356
378
|
* Fix the bug in the Flame exporter that was convincing Flame that there is only one tracker in the setup
|
357
379
|
* Buffer temporary outputs to String buffers until they reach a certain size. Helps with tempfile pollution and IO speed
|
358
380
|
|
359
|
-
|
381
|
+
### 1.8.1
|
360
382
|
|
361
383
|
* Add Flame stabilizer export support
|
362
384
|
|
363
|
-
|
385
|
+
### 1.7.5
|
364
386
|
|
365
387
|
* Use a special IO so that we can display progress when parsing/reading a file (based on the IO offset)
|
366
388
|
|
367
|
-
|
389
|
+
### 1.7.4
|
368
390
|
|
369
391
|
* Introduce an intentional gap in the reference exports to test trackers with gaps
|
370
392
|
* Export Syntheyes paths as normal frames, not as keyframes. This produces better solves by not overconstraining the solver
|
371
393
|
(Without this TransitionFrms, a crucial parameter in SY, seizes to work)
|
372
394
|
* Add a LengthCutoff tool that allows you to remove trackers that have less than X keyframes in them from the export
|
373
395
|
|
374
|
-
|
396
|
+
### 1.7.3
|
375
397
|
|
376
398
|
* Fixed the --only option in the commandline binary
|
377
399
|
|
378
|
-
|
400
|
+
### 1.7.2
|
379
401
|
|
380
402
|
* Add a Lerp tool that linearly interpolates missing keyframes (USE CAREFULLY!)
|
381
403
|
* Prevent the Shake lexer from walking into the woods on files that are certainly wrong
|
382
404
|
* Export proper project length with Nuke scripts
|
383
405
|
* Ensure preamble for Nuke exports does not get overriden in width/height
|
384
406
|
|
385
|
-
|
407
|
+
### 1.7.1
|
386
408
|
|
387
409
|
* Fix Ruby 1.9 compatibility
|
388
410
|
|
389
|
-
|
411
|
+
### 1.7.0
|
390
412
|
|
391
413
|
* Fix edge cases of specific comp sizes outputting incorrect exports for Equalizer 3 and MatchMover
|
392
414
|
|
393
|
-
|
415
|
+
### 1.6.9
|
394
416
|
|
395
417
|
* Make the commandline progress reports shorter
|
396
418
|
|
397
|
-
|
419
|
+
### 1.6.8
|
398
420
|
|
399
421
|
* Fix frame gap handling for repeating gaps in the Nuke importer
|
400
422
|
|
401
|
-
|
423
|
+
### 1.6.7
|
402
424
|
|
403
425
|
* Fix frame gap sizes in the Nuke exporter (thanks Michael Lester)
|
404
426
|
|
405
|
-
|
427
|
+
### 1.6.6
|
406
428
|
|
407
429
|
* Handle Hermite cuves in Shake scripts
|
408
430
|
|
409
|
-
|
431
|
+
### 1.6.5
|
410
432
|
|
411
433
|
* Adds the --only option for the tracksperanto binary to only export a specific format
|
412
434
|
* Automatically unlink tempfiles in the Equalizer4 exporter
|
413
435
|
|
414
|
-
|
436
|
+
### 1.6.4
|
415
437
|
|
416
438
|
* Adds Boujou 2d feature import support (to export for Boujou use the Shake text format)
|
417
439
|
|
418
|
-
|
440
|
+
### 1.6.3
|
419
441
|
|
420
442
|
* Fixes the Shake importer so that it doesn't apply correlation curves if they are not present or constantized to 1
|
421
443
|
|
422
|
-
|
444
|
+
### 1.6.2
|
423
445
|
|
424
446
|
* Fixes the Reformat tool to not suppress the end_export call. Crucial for exporters that
|
425
447
|
use end_export to finalize output
|
426
448
|
|
427
|
-
|
449
|
+
### 1.6.0
|
428
450
|
|
429
451
|
* MatchMover has top-left coordinates - fixed for both import and export
|
430
452
|
* Prevent Tracker from being Array#flatten'ed
|
431
453
|
|
432
|
-
|
454
|
+
### 1.5.7
|
433
455
|
|
434
456
|
* Add a Prefix tool that prefixes tracker names
|
435
457
|
|
436
|
-
|
458
|
+
### 1.5.6
|
437
459
|
|
438
460
|
* Rerelase of 1.5.5 without the huge binary blob in the middle
|
439
461
|
* Interpret Shake NSplines as Linear instead of discarding them
|
440
462
|
|
441
|
-
|
463
|
+
### 1.5.4
|
442
464
|
|
443
465
|
* Fix a bug in the Shake importer for tracks that have no animation
|
444
466
|
|
445
|
-
|
467
|
+
### 1.5.37
|
446
468
|
|
447
469
|
* Fix a bug in the Nuke importer for tracks that have no animation
|
448
470
|
|
449
|
-
|
471
|
+
### 1.5.2
|
450
472
|
|
451
473
|
* Fix Windows-specific issue (Tempfile-related) in the Equalizer4 exporter
|
452
474
|
* Add Export::Base#just_export and Tool::Base#just_export
|
453
475
|
|
454
|
-
|
476
|
+
### 1.5.0
|
455
477
|
|
456
478
|
* Implement support for older 3DE exports (in and out)
|
457
479
|
|
458
|
-
|
480
|
+
### 1.4.0
|
459
481
|
|
460
482
|
* Implement MayaLive import and export
|
461
483
|
|
462
|
-
|
484
|
+
### 1.3.1
|
463
485
|
|
464
486
|
* Implement 3DE import and export
|
465
487
|
|
466
|
-
|
488
|
+
### 1.2.7
|
467
489
|
|
468
490
|
* Improved progress reporting
|
469
491
|
|
470
|
-
|
492
|
+
### 1.2.6
|
471
493
|
|
472
494
|
* Add const_name to the classes being introspected most often
|
473
495
|
|
474
|
-
|
496
|
+
### 1.2.5
|
475
497
|
|
476
498
|
* Reset residual on Syntheyes imports to 0
|
477
499
|
|
478
|
-
|
500
|
+
### 1.2.4
|
479
501
|
|
480
502
|
* Write to files in binary mode
|
481
503
|
|
482
|
-
|
504
|
+
### 1.2.3
|
483
505
|
|
484
506
|
* Support both PFTrack 4 and 5
|
485
507
|
|
486
|
-
|
508
|
+
### 1.2.1
|
487
509
|
|
488
510
|
* Fixed the binary that was not able to properly pass the importer class to the pipeline
|
489
511
|
|
490
|
-
|
512
|
+
### 1.2.0
|
491
513
|
|
492
514
|
* Add experimental MatchMoverPro import and export support
|
493
515
|
* Rewrite the Shake parser, support MatchMove and Stabilize nodes and many tracks per node
|
@@ -498,6 +520,6 @@ Downside: stream_parse will be deprecated. It is however still available for bac
|
|
498
520
|
* Much improved test coverage
|
499
521
|
* Support Nuke import and export
|
500
522
|
|
501
|
-
|
523
|
+
### 1.0.0
|
502
524
|
|
503
525
|
* Welcome
|
data/MIT_LICENSE.txt
CHANGED
data/README.md
CHANGED
@@ -64,7 +64,10 @@ RubyGems system:
|
|
64
64
|
|
65
65
|
$ sudo gem install tracksperanto
|
66
66
|
|
67
|
-
|
67
|
+
If you do not have administrator access on macOS you can follow the steps in [this video](https://youtu.be/p_f7dZrfcis)
|
68
|
+
to use the gem as a user.
|
69
|
+
|
70
|
+
Once these steps are complete you are going to have a `tracksperanto` binary in your $PATH, which you can use like this:
|
68
71
|
|
69
72
|
$ tracksperanto -w 1920 -h 1080 /Films/Blockbuster/Shots/001/script.shk
|
70
73
|
|
@@ -81,7 +84,7 @@ For situations where you cannot install anything on your machine, or you run a s
|
|
81
84
|
run Ruby decently, or you are in a locked-down environment, we offer a web-enabled version of
|
82
85
|
Tracksperanto at the following URL:
|
83
86
|
|
84
|
-
|
87
|
+
https://tracksperanto.guerilla-di.org/
|
85
88
|
|
86
89
|
This is a web-app which is always in lock-step with the main Tracksperanto in terms of versions,
|
87
90
|
features and bug fixes. As a matter of principle, we reserve the right to use anything you upload
|
data/Rakefile
CHANGED
data/lib/import/pftrack.rb
CHANGED
@@ -19,7 +19,7 @@ class Tracksperanto::Import::PFTrack < Tracksperanto::Import::Base
|
|
19
19
|
CHARACTERS_OR_QUOTES = /[AZaz"]/
|
20
20
|
INTS = /^\d+$/
|
21
21
|
|
22
|
-
def each
|
22
|
+
def each(&blk)
|
23
23
|
until @io.eof?
|
24
24
|
line = @io.gets
|
25
25
|
next if (!line || line =~ /^#/)
|
@@ -27,13 +27,13 @@ class Tracksperanto::Import::PFTrack < Tracksperanto::Import::Base
|
|
27
27
|
if line =~ CHARACTERS_OR_QUOTES # Tracker with a name
|
28
28
|
name = unquote(line.strip)
|
29
29
|
report_progress("Reading tracker #{name}")
|
30
|
-
parse_trackers(name, @io, &
|
30
|
+
parse_trackers(name, @io, &blk)
|
31
31
|
end
|
32
32
|
end
|
33
33
|
end
|
34
34
|
|
35
35
|
private
|
36
|
-
def parse_trackers(name, io)
|
36
|
+
def parse_trackers(name, io, &blk)
|
37
37
|
first_tracker_line = io.gets.chomp
|
38
38
|
|
39
39
|
# We will be reading one line too many possibly, so we need to know
|
@@ -57,7 +57,7 @@ class Tracksperanto::Import::PFTrack < Tracksperanto::Import::Base
|
|
57
57
|
io.seek(cur_pos)
|
58
58
|
return if !next_line || next_line.strip.empty?
|
59
59
|
|
60
|
-
parse_trackers(name, io, &
|
60
|
+
parse_trackers(name, io, &blk)
|
61
61
|
else
|
62
62
|
num_of_keyframes = first_tracker_line.to_i
|
63
63
|
# Backtrack to where we were on this IO so that the first line read will be the tracker
|
data/lib/import/shake_script.rb
CHANGED
@@ -16,10 +16,10 @@ class Tracksperanto::Import::ShakeScript < Tracksperanto::Import::Base
|
|
16
16
|
'Take care to remove expressions or nodes containing them first.'
|
17
17
|
end
|
18
18
|
|
19
|
-
def each
|
19
|
+
def each(&blk)
|
20
20
|
s = Sentinel.new
|
21
21
|
s.progress_proc = method(:report_progress)
|
22
|
-
s.tracker_proc =
|
22
|
+
s.tracker_proc = blk.to_proc
|
23
23
|
TrackExtractor.new(@io, s)
|
24
24
|
end
|
25
25
|
|
data/lib/tracksperanto.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# Implements the conventional constructor with "hash of attributes" and block support
|
2
2
|
module Tracksperanto::BlockInit
|
3
|
-
def initialize(
|
4
|
-
|
3
|
+
def initialize(attributes = {})
|
4
|
+
attributes.map { |(k, v)| public_send("#{k}=", v) }
|
5
5
|
yield(self) if block_given?
|
6
6
|
end
|
7
7
|
end
|
@@ -12,7 +12,6 @@ end
|
|
12
12
|
# of the underlying string buffer exceeds MAX_IN_MEM_BYTES the string will be flushed to disk
|
13
13
|
# and it automagically becomes a Tempfile
|
14
14
|
class Tracksperanto::BufferIO < Tracksperanto::IOWrapper
|
15
|
-
include Tracksperanto::Returning
|
16
15
|
|
17
16
|
MAX_IN_MEM_BYTES = 5_000_000
|
18
17
|
|
@@ -21,16 +20,16 @@ class Tracksperanto::BufferIO < Tracksperanto::IOWrapper
|
|
21
20
|
end
|
22
21
|
|
23
22
|
def write(s)
|
24
|
-
|
23
|
+
super.tap { replace_with_tempfile_if_needed }
|
25
24
|
end
|
26
25
|
alias_method :<<, :write
|
27
26
|
|
28
27
|
def puts(s)
|
29
|
-
|
28
|
+
super.tap { replace_with_tempfile_if_needed }
|
30
29
|
end
|
31
30
|
|
32
31
|
def putc(c)
|
33
|
-
|
32
|
+
super.tap { replace_with_tempfile_if_needed }
|
34
33
|
end
|
35
34
|
|
36
35
|
def close!
|
@@ -59,7 +58,7 @@ class Tracksperanto::BufferIO < Tracksperanto::IOWrapper
|
|
59
58
|
tf.set_encoding(Encoding::BINARY) if @rewindable_io.respond_to?(:set_encoding)
|
60
59
|
tf.binmode
|
61
60
|
tf.write(sio.string)
|
62
|
-
tf.flush # Needed
|
61
|
+
tf.flush # Needed if we are going to reopen this file soon from another thread/loop
|
63
62
|
sio.string = ""
|
64
63
|
GC.start
|
65
64
|
@backing_buffer = tf
|
data/tracksperanto.gemspec
CHANGED
@@ -42,11 +42,12 @@ Gem::Specification.new do |spec|
|
|
42
42
|
spec.add_runtime_dependency "flame_channel_parser", "~> 4", ">= 4.1.1"
|
43
43
|
spec.add_runtime_dependency "progressbar", "0.10.0"
|
44
44
|
spec.add_runtime_dependency "update_hints", "~> 1"
|
45
|
+
spec.add_runtime_dependency "rexml"
|
45
46
|
|
46
|
-
spec.add_development_dependency "bundler"
|
47
|
+
spec.add_development_dependency "bundler"
|
47
48
|
spec.add_development_dependency "test-unit", '~> 3'
|
48
49
|
spec.add_development_dependency "approximately"
|
49
|
-
spec.add_development_dependency "rake"
|
50
|
+
spec.add_development_dependency "rake"
|
50
51
|
spec.add_development_dependency "linebyline"
|
51
52
|
spec.add_development_dependency "flexmock"
|
52
53
|
spec.add_development_dependency "cli_test", "~>1"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tracksperanto
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Julik Tarkhanov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-03-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: obuf
|
@@ -120,20 +120,34 @@ dependencies:
|
|
120
120
|
- - "~>"
|
121
121
|
- !ruby/object:Gem::Version
|
122
122
|
version: '1'
|
123
|
+
- !ruby/object:Gem::Dependency
|
124
|
+
name: rexml
|
125
|
+
requirement: !ruby/object:Gem::Requirement
|
126
|
+
requirements:
|
127
|
+
- - ">="
|
128
|
+
- !ruby/object:Gem::Version
|
129
|
+
version: '0'
|
130
|
+
type: :runtime
|
131
|
+
prerelease: false
|
132
|
+
version_requirements: !ruby/object:Gem::Requirement
|
133
|
+
requirements:
|
134
|
+
- - ">="
|
135
|
+
- !ruby/object:Gem::Version
|
136
|
+
version: '0'
|
123
137
|
- !ruby/object:Gem::Dependency
|
124
138
|
name: bundler
|
125
139
|
requirement: !ruby/object:Gem::Requirement
|
126
140
|
requirements:
|
127
|
-
- - "
|
141
|
+
- - ">="
|
128
142
|
- !ruby/object:Gem::Version
|
129
|
-
version: '
|
143
|
+
version: '0'
|
130
144
|
type: :development
|
131
145
|
prerelease: false
|
132
146
|
version_requirements: !ruby/object:Gem::Requirement
|
133
147
|
requirements:
|
134
|
-
- - "
|
148
|
+
- - ">="
|
135
149
|
- !ruby/object:Gem::Version
|
136
|
-
version: '
|
150
|
+
version: '0'
|
137
151
|
- !ruby/object:Gem::Dependency
|
138
152
|
name: test-unit
|
139
153
|
requirement: !ruby/object:Gem::Requirement
|
@@ -166,16 +180,16 @@ dependencies:
|
|
166
180
|
name: rake
|
167
181
|
requirement: !ruby/object:Gem::Requirement
|
168
182
|
requirements:
|
169
|
-
- - "
|
183
|
+
- - ">="
|
170
184
|
- !ruby/object:Gem::Version
|
171
|
-
version: '
|
185
|
+
version: '0'
|
172
186
|
type: :development
|
173
187
|
prerelease: false
|
174
188
|
version_requirements: !ruby/object:Gem::Requirement
|
175
189
|
requirements:
|
176
|
-
- - "
|
190
|
+
- - ">="
|
177
191
|
- !ruby/object:Gem::Version
|
178
|
-
version: '
|
192
|
+
version: '0'
|
179
193
|
- !ruby/object:Gem::Dependency
|
180
194
|
name: linebyline
|
181
195
|
requirement: !ruby/object:Gem::Requirement
|
@@ -231,9 +245,9 @@ files:
|
|
231
245
|
- ".tm_properties"
|
232
246
|
- ".travis.yml"
|
233
247
|
- ".yardopts"
|
248
|
+
- CHANGELOG.md
|
234
249
|
- CONTRIBUTING.md
|
235
250
|
- Gemfile
|
236
|
-
- History.txt
|
237
251
|
- MIT_LICENSE.txt
|
238
252
|
- README.md
|
239
253
|
- Rakefile
|
@@ -307,7 +321,6 @@ files:
|
|
307
321
|
- lib/tracksperanto/keyframe.rb
|
308
322
|
- lib/tracksperanto/parameters.rb
|
309
323
|
- lib/tracksperanto/pf_coords.rb
|
310
|
-
- lib/tracksperanto/returning.rb
|
311
324
|
- lib/tracksperanto/safety.rb
|
312
325
|
- lib/tracksperanto/simple_export.rb
|
313
326
|
- lib/tracksperanto/tracker.rb
|
@@ -337,8 +350,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
337
350
|
- !ruby/object:Gem::Version
|
338
351
|
version: '0'
|
339
352
|
requirements: []
|
340
|
-
|
341
|
-
rubygems_version: 2.6.11
|
353
|
+
rubygems_version: 3.0.3
|
342
354
|
signing_key:
|
343
355
|
specification_version: 4
|
344
356
|
summary: A universal 2D tracks converter
|