I’ve been trying to implement retiming for all our caches following the value clip method and have a question.
Suppose the unretimed shot has
endTimeCode = 2045
framesPerSecond = 48
startTimeCode = 1995
Suppose the shot needs to be retimed with a curve. For each cache I create a clip layer along the line of this trex_retimed.usda
file:
#usda 1.0
(
endTimeCode = 1020
framesPerSecond = 24
startTimeCode = 1000
subLayers = [
@./trex_hair_retimed.topology.usd@
]
)
over "Char"
{
over "trex2" (
clips = {
dictionary default = {
double2[] active = [(1000, 0)]
asset[] assetPaths = [@./trex_hair_clip.usd@]
asset manifestAssetPath = @./trex_hair_retimed.manifest.usd@
string primPath = "/Char/trex2"
double2[] times = [(1000, 2000), (1001, 2001), (1002, 2002), (1003, 2003), (1004, 2004), (1005, 2005), (1006, 2006), (1007, 2007), (1008, 2008), (1009, 2009), (1010, 2010), (1011, 2011), (1012, 2012), (1013, 2013), (1014, 2014), (1015, 2015), (1016, 2016), (1017, 2017), (1018, 2018), (1019, 2019), (1020, 2020)]
}
}
)
{
}
}
It’s not clear to me how the various frame ranges and fps are handled in the composition of the layers.
- It seems
trex_hair_clip.usd
which is the actual cache, should not contain any frame range and fps metadata, or the retime will not work. Is that correct? Why?
- Note
trex_retimed.usda
contains frame range and fps. If I open trex_retimed.usda
by itself, the retiming works, but as soon as it is sublayered, it stops working. What layer, if any, is supposed to define the frame range and fps?