Page 1 of 1

USD frame rate doesn't work right

Unread postPosted: Thu Nov 14, 2019 9:55 am
by zzhj0213
In a 60 fps animation, the usd file only works fine when I set the frame rate to 24 fps. Is this a bug or not?

Re: USD frame rate doesn't work right

Unread postPosted: Thu Nov 14, 2019 11:04 am
by zzhj0213
I have uploaded a screenshot to demonstrate this issue.

Re: USD frame rate doesn't work right

Unread postPosted: Thu Nov 14, 2019 11:42 am
by dboude
Hi,

I've made a test in Maya with Alembic. No issues. Could you export the same animation in Alembic and see if it matches?

Thanks

Re: USD frame rate doesn't work right

Unread postPosted: Thu Nov 14, 2019 12:01 pm
by zzhj0213
It's fine with Alembic, this issue only appears when use USD format.
But since usd is way better in performance, we are hoping to switch to this format. For now, we use a expression to load a usd sequence to solve this problem, but when I connect it to a scatterer, the time offset of scatterer doesn't work.

Re: USD frame rate doesn't work right

Unread postPosted: Thu Nov 14, 2019 12:11 pm
by dboude
After investigating we see that your .usd has missing data. We converted your file to usda in order to read it in a text editor. The header looks like that :

Code: Select all
#usda 1.0
(
    defaultPrim = "FxAsset"
    endTimeCode = 100
    startTimeCode = 1
    upAxis = "Y"
)


So we have the start and the end but no FPS info.

We just had this line, save the .usda and load it back in Clarisse and it worked fine.

Code: Select all
#usda 1.0
(
    defaultPrim = "FxAsset"
    endTimeCode = 100
    startTimeCode = 1
    framesPerSecond = 60
    upAxis = "Y"
)


Image

So the issue comes from the export in Houdini. You should add this data to the usd file but I don't know how. I let you explore the sideFX forums ;)

Cheers

Re: USD frame rate doesn't work right

Unread postPosted: Thu Nov 14, 2019 12:25 pm
by zzhj0213
Thank you for your help, I'll check my usd export workflow.

Re: USD frame rate doesn't work right

Unread postPosted: Fri Nov 15, 2019 3:58 am
by zzhj0213
#usda 1.0
(
defaultPrim = "Ya_Rig"
endTimeCode = 275
metersPerUnit = 0.01
startTimeCode = 75
upAxis = "Y"
)

def Xform "Ya_Rig" (
kind = "component"
)
{
def Xform "Geo"
{
def Mesh "Toukui"
{
uniform bool doubleSided = 1
float3[] extent.timeSamples = {
75: [(-0.20736752, 1.5806286, -0.105084956), (-0.015420137, 1.798192, 0.07822587)],
77: [(-0.20736752, 1.5806286, -0.105084956), (-0.015420137, 1.798192, 0.07822587)],
78: [(-0.20709188, 1.5805904, -0.10498165), (-0.0151867075, 1.798214, 0.078351885)],
79: [(-0.20679533, 1.5805758, -0.10487893), (-0.014952472, 1.7982345, 0.07847333)],
80: [(-0.20647119, 1.5805885, -0.10478106), (-0.01470835, 1.7982551, 0.0785857)],
81: [(-0.20612413, 1.5806264, -0.10468558), (-0.014453142, 1.7982752, 0.07869109)],
82: [(-0.2057561, 1.5806856, -0.104593664), (-0.014182844, 1.798295, 0.07878793)],
83: [(-0.20537524, 1.5807614, -0.10450586), (-0.0138999475, 1.7983154, 0.078876235)],
84: [(-0.20498405, 1.5808464, -0.10442198), (-0.013602203, 1.7983358, 0.078956336)],
85: [(-0.20459159, 1.5809346, -0.10434141), (-0.013294428, 1.7983569, 0.079029344)],
86: [(-0.20420252, 1.5810181, -0.10426301), (-0.012978583, 1.7983775, 0.07909764)],
87: [(-0.2038194, 1.5810932, -0.10418575), (-0.012656208, 1.7983989, 0.079163216)],
88: [(-0.20345154, 1.581156, -0.104108326), (-0.012335262, 1.798421, 0.07922866)],
89: [(-0.20309922, 1.5812027, -0.10403133), (-0.012017117, 1.7984419, 0.07929477)],
90: [(-0.20276475, 1.5812359, -0.10395254), (-0.011704731, 1.7984643, 0.07936514)],

I have look at the usd file infomation, it defines a frame range and what's in every frame, no matter what frame rate.
So I am wondering, is it better to just stick to the infomation related to just the frame number, not to reinterplate according to 24fps timeline?

Re: USD frame rate doesn't work right

Unread postPosted: Fri Nov 15, 2019 9:14 am
by dboude
When a frame rate isn't defined in the usd file we stick to 24fps by default. So does the USD viewer from Pixar.

The thing we could add is an option for USD/ABC files to make them time agnostic. So whatever the frame rate you set, a frame range will stay a frame range and won't be retimed. Please feel free to use the feature request tracker to ask for it.

Cheers