Using "timeshift" + "cache" does not alter the clip metadata but the actual primitive attributes, which makes sense.
But if I know I can retime the clip information only and change the metadata it would be much more efficient. I have already been able to do this via a VEX script but it's lots of code that seems like it should be wrapped up somewhere in a node.
Here is some example VEX that I wrote to change clip metadata (we have internal examples that use spline lookups for more complicated retimes):
int stride = 3000; string clips[] = {"default"}; foreach (string clip; clips) { string assets[] = usd_metadata(0, @primpath, "clips:" + clip + ":assetPaths"); vector2 times[] = usd_metadata(0, @primpath, "clips:" + clip + ":times"); vector2 active_out[]; vector2 times_out[]; for (int i=0; i<len(assets); i++) { append(times_out, set(i*stride, times[i][1])); append(active_out, set(i*stride, i)); } usd_setmetadata(0, @primpath, "clips:" + clip + ":times", times_out); usd_setmetadata(0, @primpath, "clips:" + clip + ":active", active_out); usd_setmetadata(0, @primpath, "clips:" + clip + ":interpolateMissingClipValues", 1); }