flame_timewarp_extractor 1.1.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.autotest +23 -0
- data/History.txt +4 -0
- data/Manifest.txt +5 -0
- data/lib/flame_timewarp_extractor.rb +10 -6
- data/test/.DS_Store +0 -0
- data/test/samples/TW_016_010_v01.timewarp +134 -0
- data/test/samples/TW_016_010_v01_Baked.timewarp +6109 -0
- data/test/samples/my_output.framecurve.txt +815 -0
- data/test/test_twextract.rb +4 -7
- metadata +10 -5
data/.autotest
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
# -*- ruby -*-
|
2
|
+
|
3
|
+
require 'autotest/restart'
|
4
|
+
|
5
|
+
# Autotest.add_hook :initialize do |at|
|
6
|
+
# at.extra_files << "../some/external/dependency.rb"
|
7
|
+
#
|
8
|
+
# at.libs << ":../some/external"
|
9
|
+
#
|
10
|
+
# at.add_exception 'vendor'
|
11
|
+
#
|
12
|
+
# at.add_mapping(/dependency.rb/) do |f, _|
|
13
|
+
# at.files_matching(/test_.*rb$/)
|
14
|
+
# end
|
15
|
+
#
|
16
|
+
# %w(TestA TestB).each do |klass|
|
17
|
+
# at.extra_class_map[klass] = "test/test_misc.rb"
|
18
|
+
# end
|
19
|
+
# end
|
20
|
+
|
21
|
+
# Autotest.add_hook :run_command do |at|
|
22
|
+
# system "rake build"
|
23
|
+
# end
|
data/History.txt
CHANGED
data/Manifest.txt
CHANGED
@@ -1,9 +1,14 @@
|
|
1
|
+
.autotest
|
1
2
|
History.txt
|
2
3
|
Manifest.txt
|
3
4
|
README.rdoc
|
4
5
|
Rakefile
|
5
6
|
bin/flametwextract
|
6
7
|
lib/flame_timewarp_extractor.rb
|
8
|
+
test/.DS_Store
|
7
9
|
test/samples/TW_015_010_v01_Baked.timewarp
|
10
|
+
test/samples/TW_016_010_v01.timewarp
|
11
|
+
test/samples/TW_016_010_v01_Baked.timewarp
|
12
|
+
test/samples/my_output.framecurve.txt
|
8
13
|
test/samples/output.txt
|
9
14
|
test/test_twextract.rb
|
@@ -3,29 +3,33 @@ require "flame_channel_parser"
|
|
3
3
|
|
4
4
|
class FlameTimewarpExtractor
|
5
5
|
|
6
|
-
VERSION = "
|
6
|
+
VERSION = "2.0.0"
|
7
7
|
|
8
8
|
CHANNELS = %( Timing/Timing Frame )
|
9
9
|
|
10
|
+
DEFAULTS = {:destination => $stdout, :start_frame => 1, :end_frame => :auto }
|
11
|
+
|
10
12
|
# Pass the path to the Kronos or Timewarp setup here and you will get the timewarp curve on STDOUT
|
11
|
-
def extract(path,
|
13
|
+
def extract(path, options = {})
|
14
|
+
options = DEFAULTS.merge(options)
|
12
15
|
File.open(path) do | f |
|
13
16
|
channels = FlameChannelParser.parse(f)
|
14
17
|
|
15
18
|
timing_channel = channels.find{|c| CHANNELS.include?(c.name) }
|
16
19
|
raise "No timing channel found in this setup" unless timing_channel
|
17
20
|
|
18
|
-
write_channel(timing_channel,
|
21
|
+
write_channel(timing_channel, options[:destination], options[:start_frame], options[:end_frame])
|
19
22
|
end
|
20
23
|
end
|
21
24
|
|
22
25
|
private
|
23
26
|
|
24
|
-
def write_channel(channel, to_io)
|
27
|
+
def write_channel(channel, to_io, start_frame, end_frame)
|
25
28
|
interpolator = FlameChannelParser::Interpolator.new(channel)
|
26
29
|
|
27
|
-
|
28
|
-
|
30
|
+
|
31
|
+
from_frame = (start_frame == :auto) ? interpolator.first_defined_frame : start_frame
|
32
|
+
to_frame = (end_frame == :auto) ? interpolator.last_defined_frame : interpolator.last_defined_frame
|
29
33
|
|
30
34
|
(from_frame..to_frame).each do | frame |
|
31
35
|
to_io.puts("%d\t%.5f" % [frame, interpolator.sample_at(frame)])
|
data/test/.DS_Store
ADDED
Binary file
|
@@ -0,0 +1,134 @@
|
|
1
|
+
TimewarpFileVersion 1.0
|
2
|
+
CreationDate Fri Apr 22 16:37:34 2011
|
3
|
+
|
4
|
+
|
5
|
+
Fields 0
|
6
|
+
Frames 428
|
7
|
+
Origin 1
|
8
|
+
RenderType no
|
9
|
+
SamplingStep 0
|
10
|
+
Interpolation 0
|
11
|
+
FlowQuality 2
|
12
|
+
Animation
|
13
|
+
Channel Speed
|
14
|
+
Extrapolation constant
|
15
|
+
Value 100
|
16
|
+
Size 5
|
17
|
+
KeyVersion 1
|
18
|
+
Key 0
|
19
|
+
Frame 1
|
20
|
+
Value 100
|
21
|
+
Interpolation hermite
|
22
|
+
RightAutomaticSlope no
|
23
|
+
LeftAutomaticSlope no
|
24
|
+
BreakSlope yes
|
25
|
+
End
|
26
|
+
Key 1
|
27
|
+
Frame 160
|
28
|
+
Value 100
|
29
|
+
Interpolation hermite
|
30
|
+
RightAutomaticSlope no
|
31
|
+
LeftAutomaticSlope no
|
32
|
+
BreakSlope yes
|
33
|
+
End
|
34
|
+
Key 2
|
35
|
+
Frame 179
|
36
|
+
Value 211.478
|
37
|
+
Interpolation hermite
|
38
|
+
RightSlope 0.558946
|
39
|
+
LeftSlope 0.558946
|
40
|
+
End
|
41
|
+
Key 3
|
42
|
+
Frame 197
|
43
|
+
Value 120.681
|
44
|
+
Interpolation hermite
|
45
|
+
RightSlope -3.04349
|
46
|
+
LeftSlope -4.12211
|
47
|
+
RightAutomaticSlope no
|
48
|
+
LeftAutomaticSlope no
|
49
|
+
BreakSlope yes
|
50
|
+
End
|
51
|
+
Key 4
|
52
|
+
Frame 215
|
53
|
+
Value 100
|
54
|
+
Interpolation hermite
|
55
|
+
LeftSlope 0.382772
|
56
|
+
RightAutomaticSlope no
|
57
|
+
LeftAutomaticSlope no
|
58
|
+
BreakSlope yes
|
59
|
+
End
|
60
|
+
Uncollapsed
|
61
|
+
End
|
62
|
+
Channel Timing/Timing
|
63
|
+
Extrapolation linear
|
64
|
+
Value 148
|
65
|
+
Size 5
|
66
|
+
KeyVersion 1
|
67
|
+
Key 0
|
68
|
+
Frame 1
|
69
|
+
Value 1
|
70
|
+
Interpolation hermite
|
71
|
+
RightSlope 1
|
72
|
+
RightAutomaticSlope no
|
73
|
+
LeftAutomaticSlope no
|
74
|
+
End
|
75
|
+
Key 1
|
76
|
+
Frame 160
|
77
|
+
Value 160
|
78
|
+
Interpolation hermite
|
79
|
+
RightSlope 1
|
80
|
+
LeftSlope 1
|
81
|
+
RightAutomaticSlope no
|
82
|
+
LeftAutomaticSlope no
|
83
|
+
End
|
84
|
+
Key 2
|
85
|
+
Frame 179
|
86
|
+
Value 189.422
|
87
|
+
Interpolation hermite
|
88
|
+
RightSlope 2.11478
|
89
|
+
LeftSlope 2.11478
|
90
|
+
RightAutomaticSlope no
|
91
|
+
LeftAutomaticSlope no
|
92
|
+
End
|
93
|
+
Key 3
|
94
|
+
Frame 197
|
95
|
+
Value 220.58
|
96
|
+
Interpolation hermite
|
97
|
+
RightSlope 1.20681
|
98
|
+
LeftSlope 1.20681
|
99
|
+
RightAutomaticSlope no
|
100
|
+
LeftAutomaticSlope no
|
101
|
+
End
|
102
|
+
Key 4
|
103
|
+
Frame 215
|
104
|
+
Value 239.517
|
105
|
+
Interpolation hermite
|
106
|
+
RightSlope 1
|
107
|
+
LeftSlope 1
|
108
|
+
RightAutomaticSlope no
|
109
|
+
LeftAutomaticSlope no
|
110
|
+
End
|
111
|
+
Uncollapsed
|
112
|
+
End
|
113
|
+
Channel Mix/Mix
|
114
|
+
Extrapolation constant
|
115
|
+
Value 0
|
116
|
+
End
|
117
|
+
Channel Trail/Pre_Trail
|
118
|
+
Extrapolation constant
|
119
|
+
Value 1
|
120
|
+
End
|
121
|
+
Channel Trail/Pre_Weight
|
122
|
+
Extrapolation constant
|
123
|
+
Value 100
|
124
|
+
End
|
125
|
+
Channel Trail/Post_Trail
|
126
|
+
Extrapolation constant
|
127
|
+
Value 1
|
128
|
+
End
|
129
|
+
Channel Trail/Post_Weight
|
130
|
+
Extrapolation constant
|
131
|
+
Value 100
|
132
|
+
End
|
133
|
+
ChannelEnd
|
134
|
+
End
|