How to get interpolation data from transform?

RenderView renderView {
transform=interpolate(
(0, TransformHex("0A967B3F3D553D3E0000008041368A3806A8 B7B9FFFF7F3F3D553D3E0B967BBFE3E0BAB900000000000000 A02DDD6440000000C0143B88C000000060DEB45540")),
(1, TransformHex("EA42783F85DF793E000000805D6EB538C642 B4B9FFFF7F3F84DF793EE94278BF38E1B9B900000000000000 80072A6B4000000060310788C000000060DEB45540"))
);
fov=0.4173635;
focalDistance=200;
clipping=0;
clipping_near=1;
clipping_far=1000;
}

in fact, transform is interpolation list, however, in app sdk, I can only get Transform instance.

Hello, the interpolated values could be obtained using the Animation API (several examples are available the examples/ folder).

In AppSDK version 6, there are two methods available, as shown in the CSharp example below.
In case you use AppSDK version 5, you could use the first one only:


RenderView renderView = renderer.GetInstanceOrCreate<RenderView>();
if (Globals.GetVRayVersion() < 0x60000)
{
    // AppSDK version 5 - only standard Animation API available
    // 'UseAnimatedValues' is necessary to be set, in case the standard Animation API is used
    renderer.UseAnimatedValues = true;
    renderer.Time = 0;
    Transform RVT_0 = renderView.Transform;
    renderer.Time = 0.25;
    Transform RVT_025 = renderView.Transform;
    renderer.Time = 0.5;
    Transform RVT_05 = renderView.Transform;
    renderer.Time = 1;
    Transform RVT_1 = renderView.Transform;
}
else
{
    // AppSDK version 6 - Animation2 API available
    // 'UseAnimatedValues' is not necessary to be set, in case only Animation2 API is used
    Transform RVT_0 = renderView.Get_Transform(0);
    Transform RVT_025 = renderView.Get_Transform(0.25);
    Transform RVT_05 = renderView.Get_Transform(0.5);
    Transform RVT_1 = renderView.Get_Transform(1);
    // The standard Animation API is available as well
}

```​​

To add to Plamen’s answer, you can retrieve the key-frame times with plugin.getKeyframeTimes(‘propertyName’). Here is a sample Python script:

import vray
renderer = vray.VRayRenderer()
renderer.loadAsText("""RenderView renderView {
transform=interpolate(
(0, TransformHex("0A967B3F3D553D3E0000008041368A3806A8 B7B9FFFF7F3F3D553D3E0B967BBFE3E0BAB900000000000000 A02DDD6440000000C0143B88C000000060DEB45540")),
(1, TransformHex("EA42783F85DF793E000000805D6EB538C642 B4B9FFFF7F3F84DF793EE94278BF38E1B9B900000000000000 80072A6B4000000060310788C000000060DEB45540"))
);
fov=0.4173635;
focalDistance=200;
clipping=0;
clipping_near=1;
clipping_far=1000;
}""")
renderer.useAnimatedValues = True
renderView = renderer.classes.RenderView.getInstanceOrCreate()
times = renderView.getKeyframeTimes('transform')
for t in times:
  renderer.time = t
  print(t, renderView.transform)
​

The last 2 lines can be rewritten as one in version 6:

for t in times:
​  print(t, renderView.getValue('transform', t))