Difference between revisions of "IC Python API:RLPy RTime"

From Reallusion Wiki!
Jump to: navigation, search
m
m
 
(7 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
{{TOC}}
 
{{TOC}}
 
{{Parent|IC_Python_API:RL_Python_Modules|Modules}}
 
{{Parent|IC_Python_API:RL_Python_Modules|Modules}}
== Detailed Description ==
+
{{last_modified}}
This class is used to hold and manipulate timing information.
+
 
Time is stored internally in system as milliseconds. Most API methods
+
== Description ==
that require or return timing information do so through variables of
+
 
this type. This class also provide methods to convert between Frame and RTime, such as GetFrameIndex() and IndexedFrameTime(). Use GetFrameTime() can ensure that RTime is on the correct frame. <syntaxhighlight lang="Python">
+
This class represents the midst unit (a.k.a unit of time) in animation.  Currently, it provides two states: milliseconds and 60FPS (frames per second). When you create an animation key, you'll need to set the value according to the incoming time. This class also provides different unit conversions such as [[#GetFrameIndex ( self, kTime, nFps )|GetFrameIndex]], [[#IndexedFrameTime ( self, nFrameIndex, nFps )|IndexedFrameTime]], and [[#GetFrameTime ( self, kTime, nFps )|GetFrameTime]] to ensure that the time retrieved is aligned with animation frames.
 +
 
 +
== Operators ==
 +
 
 +
=== == ===
 +
 
 +
The "equal to" operator.  Check if two time objects are equal.
 +
 
 +
==== Returns ====
 +
:'''True''' if the values of the two time objects are equal, else '''False'''.
 +
 
 +
See Also: [[#!=|!=]]
 +
 
 +
<syntaxhighlight lang="python" line='line'>
 +
# Equivalence operator
 +
time1 = RLPy.RTime(3000)
 +
time2 = RLPy.RTime(3000)
 +
print(time1 == time2)
 +
 
 +
# Compare current time
 
time = RLPy.RGlobal.GetTime()
 
time = RLPy.RGlobal.GetTime()
+
 
# compare time
+
 
if time == RLPy.RGlobal.SetTime(RLPy.RTime(1000)):
 
if time == RLPy.RGlobal.SetTime(RLPy.RTime(1000)):
print("equal")
+
  print("equal")
else if time > RLPy.RGlobal.SetTime(RLPy.RTime(1000)):
+
elif time > RLPy.RGlobal.SetTime(RLPy.RTime(1000)):
print("greater")
+
  print("greater")
else if time < RLPy.RGlobal.SetTime(RLPy.RTime(1000)):
+
elif time < RLPy.RGlobal.SetTime(RLPy.RTime(1000)):
print("less")
+
  print("less")
+
# operator
+
time += RLPy.RTime(1000)
+
time -= RLPy.RTime(1000)
+
time *= 2
+
time /= 2
+
+
# convert between Frame
+
time = RLPy.RTime(3000)
+
print(RLPy.RTime.GetFrameIndex(time, RLPy.RGlobal.GetFps())) # 180
+
+
time = RLPy.RTime.IndexedFrameTime(180, RLPy.RGlobal.GetFps())
+
print(time.GetValue()) # 3000
+
+
time = RLPy.RTime(3005)
+
frame_time = RLPy.RTime.GetFrameTime(time, RLPy.RGlobal.GetFps())
+
print(frame_time.GetValue()) # 3000
+
+
 
</syntaxhighlight>
 
</syntaxhighlight>
==Constructor & Destructors==
+
 
===__init__===
+
=== != ===
<syntaxhighlight lang="Python">
+
 
RLPy.RTime.__init__ ( self, args )
+
The "not equal to" operator.  Check if two time object are not equal.
 +
 
 +
==== Returns ====
 +
:'''True''' if the values of the two time objects are not equal, otherwise return '''False'''.
 +
 
 +
See Also: [[#==|==]]
 +
 
 +
<syntaxhighlight lang="python" line='line'>
 +
# Not equal operator
 +
time1 = RLPy.RTime(3000)
 +
time2 = RLPy.RTime(3000, RLPy.k60FPS)
 +
print(time1 != time2)
 
</syntaxhighlight>
 
</syntaxhighlight>
Constructor, Initialize a new RTime object with a float value and an unit.
 
====Parameters====
 
<div style="margin-left: 2em;">
 
  
'''fValue''' [IN] a float value representing a time - float
+
=== < ===
  
'''eUnit''' [IN] a time unit - RLPy.Unit
+
The "less than" operator.  Check if a time object is less than another.
*'''RLPy.kInvalid'''
+
 
*'''RLPy.kHours not support
+
==== Returns ====
*'''RLPy.kMinutes not support
+
:'''True''' if this value is less than or equal to another [[IC_Python_API:RLPy_RTime|RTime]]value, else '''False'''.
*'''RLPy.kSeconds not support
+
 
*'''RLPy.kMilliseconds 1/1000 of a second
+
See Also: [[#<=|<=]]
*'''RLPy.k30FPS not support
+
 
*'''RLPy.k60FPS 60 frames per second
+
<syntaxhighlight lang="python" line='line'>
*'''RLPy.kUserDef not support
+
# Less equal operator
</div>
+
time1 = RLPy.RTime(1000)
==Member Functions==
+
time2 = RLPy.RTime(2000)
===AsUnits===
+
print(time1 <= time2)
<syntaxhighlight lang="Python">
+
RLPy.RTime.AsUnits ( self, eUnit )
+
 
</syntaxhighlight>
 
</syntaxhighlight>
Returns the current time value in the given units.
 
This does not affect the current units for the instance.
 
====Parameters====
 
<div style="margin-left: 2em;">
 
  
'''eUnit''' [IN] a time unit - RLPy.Unit
+
=== >= ===
*'''RLPy.kInvalid'''
+
 
*'''RLPy.kHours not support
+
The "greater than or equal" operator.  Check if a time object is greater than or equal to another.
*'''RLPy.kMinutes not support
+
 
*'''RLPy.kSeconds not support
+
==== Returns ====
*'''RLPy.kMilliseconds 1/1000 of a second
+
:'''True''' if this [[IC_Python_API:RLPy_RTime|RTime]]value is greater than or equal to another [[IC_Python_API:RLPy_RTime|RTime]]value, else '''False'''.
*'''RLPy.k30FPS not support
+
 
*'''RLPy.k60FPS 60 frames per second
+
See Also: [[#>|>]]
*'''RLPy.kUserDef not support
+
 
</div>
+
<syntaxhighlight lang="python" line='line'>
====Returns====
+
# Less equal operator
<div style="margin-left: 2em;">The current time value in the given units - float
+
time1 = RLPy.RTime(2000)
</div>
+
time2 = RLPy.RTime(1000)
-----
+
print(time1 >= time2)
===GetFrameIndex===
+
<syntaxhighlight lang="Python">
+
RLPy.RTime.GetFrameIndex ( kTime, nFps )
+
 
</syntaxhighlight>
 
</syntaxhighlight>
Get frame index from frame time.
 
====Parameters====
 
<div style="margin-left: 2em;">
 
  
'''kTime''' [IN] the time for this frame - RLPy.RTime
+
=== < ===
  
'''nFps''' [IN] frames per second - int
+
The "less than" operator.  Check if a time object is less than another.
</div>
+
 
====Returns====
+
==== Returns ====
<div style="margin-left: 2em;">The frame index - int
+
:'''True''' if this [[IC_Python_API:RLPy_RTime|RTime]]value is less than another [[IC_Python_API:RLPy_RTime|RTime]]value, else '''False'''.
</div>
+
 
-----
+
<syntaxhighlight lang="python" line='line'>
===GetFrameTime===
+
# Less than operator
<syntaxhighlight lang="Python">
+
time1 = RLPy.RTime(1000)
RLPy.RTime.GetFrameTime ( kTime, nFps )
+
time2 = RLPy.RTime(3000)
 +
print(time1 < time2)
 
</syntaxhighlight>
 
</syntaxhighlight>
Get frame time from a time.
 
The time of a RTime object may not located exactly on a frame. Call this function to get the closest frame time for this RTime object.
 
====Parameters====
 
<div style="margin-left: 2em;">
 
  
'''kTime''' [IN] the time in an animation - RLPy.RTime
+
=== > ===
  
'''nFps''' [IN] frames per second - int
+
The "greater than" operator.  Check if a time object is greater than another.
</div>
+
 
====Returns====
+
==== Returns ====
<div style="margin-left: 2em;">The frame time - RLPy.RTime
+
:'''True''' if this [[IC_Python_API:RLPy_RTime|RTime]]value is greater than another [[IC_Python_API:RLPy_RTime|RTime]]value, else '''False'''.
</div>
+
 
-----
+
See Also: [[#>=|>=]]
===GetUnit===
+
 
<syntaxhighlight lang="Python">
+
<syntaxhighlight lang="python" line='line'>
RLPy.RTime.GetUnit ( self )
+
# Greater than operator
 +
time1 = RLPy.RTime(3000)
 +
time2 = RLPy.RTime(1000)
 +
print(time1 > time2)
 
</syntaxhighlight>
 
</syntaxhighlight>
Get the unit of this RTime object.
+
 
====Returns====
+
=== + ===
<div style="margin-left: 2em;">The unit of this RTime object - RLPy.Unit
+
 
*'''RLPy.kInvalid'''
+
The addition operator. Add two time objects together.
*'''RLPy.kHours not support
+
 
*'''RLPy.kMinutes not support
+
==== Returns ====
*'''RLPy.kSeconds not support
+
:Sum of the two time objects - [[IC_Python_API:RLPy_RTime|RTime]]
*'''RLPy.kMilliseconds 1/1000 of a second
+
 
*'''RLPy.k30FPS not support
+
See Also: [[#+=|+=]]
*'''RLPy.k60FPS 60 frames per second
+
 
*'''RLPy.kUserDef not support
+
<syntaxhighlight lang="python" line='line'>
</div>
+
# Addition operator
-----
+
time1 = RLPy.RTime(1000)
===GetValue===
+
time2 = RLPy.RTime(2000)
<syntaxhighlight lang="Python">
+
time3 = time1 + time2
RLPy.RTime.GetValue ( self )
+
print(time3)
 
</syntaxhighlight>
 
</syntaxhighlight>
Get the float value of this RTime object.
+
 
====Returns====
+
=== += ===
<div style="margin-left: 2em;">The float value of this RTime object - float
+
 
</div>
+
The "addition assignment" operator. Add a time object to this time object.
-----
+
 
===IndexedFrameTime===
+
==== Returns ====
<syntaxhighlight lang="Python">
+
:Sum of the two time objects.
RLPy.RTime.IndexedFrameTime ( nFrameIndex, nFps )
+
 
 +
See Also: [[#+|+]]
 +
 
 +
<syntaxhighlight lang="python" line='line'>
 +
# Addition assignment operator
 +
time1 = RLPy.RTime(1000)
 +
time2 = RLPy.RTime(3000)
 +
time1 += time2
 +
print(time1)
 
</syntaxhighlight>
 
</syntaxhighlight>
Get frame time from frame index.
 
====Parameters====
 
<div style="margin-left: 2em;">
 
  
'''nFrameIndex''' [IN] the frame index for this frame time - int
+
=== - ===
  
'''nFps''' [IN] frames per second - int
+
The 'subtraction' operator.  Minus a time object from another.
</div>
+
 
====Returns====
+
==== Returns ====
<div style="margin-left: 2em;">The frame time - RLPy.RTime
+
:Difference of the two time objects - [[IC_Python_API:RLPy_RTime|RTime]]
</div>
+
 
-----
+
See Also: [[#-=|-=]]
===SetUnit===
+
 
<syntaxhighlight lang="Python">
+
<syntaxhighlight lang="python" line='line'>
RLPy.RTime.SetUnit ( self, eUnit )
+
# Subtraction operator
 +
time1 = RLPy.RTime(1000)
 +
time2 = RLPy.RTime(2000)
 +
time3 = time2 - time1
 +
print(time3)
 
</syntaxhighlight>
 
</syntaxhighlight>
Set time unit.
 
====Parameters====
 
<div style="margin-left: 2em;">
 
  
'''eUnit''' [IN] a time unit - RLPy.Unit
+
=== -= ===
*'''RLPy.kInvalid'''
+
 
*'''RLPy.kHours not support
+
The "subtraction assignment" operator. Subtract a time object from this time object.
*'''RLPy.kMinutes not support
+
 
*'''RLPy.kSeconds not support
+
==== Returns ====
*'''RLPy.kMilliseconds 1/1000 of a second
+
:Difference of the two time objects - [[IC_Python_API:RLPy_RTime|RTime]]
*'''RLPy.k30FPS not support
+
 
*'''RLPy.k60FPS 60 frames per second
+
See Also: [[#-|-]]
*'''RLPy.kUserDef not support
+
 
</div>
+
<syntaxhighlight lang="python" line='line'>
-----
+
# Subtraction assignment operator
===SetValue===
+
time1 = RLPy.RTime(1000)
<syntaxhighlight lang="Python">
+
time2 = RLPy.RTime(3000)
RLPy.RTime.SetValue ( self, fValue )
+
time2 -= time1
 +
print(time2)
 
</syntaxhighlight>
 
</syntaxhighlight>
Set the float value of a time.
 
====Parameters====
 
<div style="margin-left: 2em;">
 
  
'''fValue''' [IN] a float value of a time - float
+
=== * ===
</div>
+
 
 +
The "multiplication" operator.  Multiply two time objects.
 +
 
 +
==== Returns ====
 +
:Time object with the multiplied value - [[IC_Python_API:RLPy_RTime|RTime]]
 +
 
 +
See Also: [[#*=|*=]]
 +
 
 +
<syntaxhighlight lang="python" line='line'>
 +
# Multiplication operator
 +
time1 = RLPy.RTime(100.0)
 +
time2 = time1 * 0.5
 +
print(time2)
 +
</syntaxhighlight>
 +
 
 +
=== *= ===
 +
 
 +
The "multiplication assignment" operator.  Mutliply a time object to this time object.
 +
 
 +
==== Returns ====
 +
:Time object with the product value - [[IC_Python_API:RLPy_RTime|RTime]]
 +
 
 +
See Also: [[#*|*]]
 +
 
 +
<syntaxhighlight lang="python" line='line'>
 +
# Multiplication assignment operator
 +
time1 = RLPy.RTime(200.0)
 +
time1 *= 1.5
 +
print(time1)
 +
</syntaxhighlight>
 +
 
 +
=== / ===
 +
 
 +
The "division" operator.  Divide two time objects.
 +
 
 +
==== Returns ====
 +
:Time object with the quotient value - [[IC_Python_API:RLPy_RTime|RTime]]
 +
 
 +
See Also: [[#/=|/=]]
 +
 
 +
<syntaxhighlight lang="python" line='line'>
 +
# Division operator
 +
time1 = RLPy.RTime(3000)
 +
time2 = time1 / 150
 +
print(time2)
 +
</syntaxhighlight>
 +
 
 +
=== /= ===
 +
 
 +
The "division assignment" operator.  Divide a time object from this time object.
 +
 
 +
==== Returns ====
 +
:Time object with the quotient value - [[IC_Python_API:RLPy_RTime|RTime]]
 +
 
 +
See Also: [[#/|/]]
 +
 
 +
<syntaxhighlight lang="python" line='line'>
 +
# Division assignment operator
 +
time1 = RLPy.RTime(3000.0)
 +
time1 /= 15
 +
print(time1)
 +
</syntaxhighlight>
 +
 
 +
== Member Functions ==
 +
 
 +
=== __init__ ( self, args ) ===
 +
 
 +
This operation creates a time object instance.
 +
 
 +
<syntaxhighlight lang="python" line='line'>
 +
# Constructor RTime object
 +
time1 = RLPy.RTime()
 +
 
 +
# Constructor RTime object with RTime object
 +
time2 = RLPy.RTime(time1)
 +
 
 +
# Constructor RTime object with float value and unit
 +
time3 = RLPy.RTime(0, RLPy.kMilliseconds)
 +
</syntaxhighlight>
 +
 
 +
=== GetUnit ( self ) ===
 +
 
 +
Get the midst unit for the time object.
 +
 
 +
See Also: [[#SetUnit( self, eUnit )|SetUnit( self, eUnit )]]
 +
 
 +
==== Returns ====
 +
:Midst unit of a given time object - [[IC_Python_API:Enums#RLPy.Unit|RLPy.Unit]]
 +
 
 +
<syntaxhighlight lang="python" line='line'>
 +
# Get time unit
 +
time = RLPy.RTime(0, RLPy.kMilliseconds)
 +
time_unit = time.GetUnit()
 +
print(time_unit)
 +
</syntaxhighlight>
 +
 
 +
=== GetValue ( self ) ===
 +
 
 +
Get the time value of the time object.
 +
 
 +
See Also: [[#SetValue( self, fValue )|SetValue( self, fValue )]]
 +
 
 +
==== Returns ====
 +
:Time value of the time object - float
 +
 
 +
<syntaxhighlight lang="python" line='line'>
 +
# Get time value
 +
time = RLPy.RTime(3000)
 +
time_value = time.GetValue()
 +
print(time_value)
 +
</syntaxhighlight>
 +
 
 +
=== SetUnit ( self, eUnit ) ===
 +
 
 +
Set the midst unit for the time object.
 +
 
 +
See Also: [[#RTime.GetUnit( self )|GetUnit( self )]]
 +
 
 +
==== Parameters ====
 +
:'''eUnit''' [IN] Midst unit - [[IC_Python_API:Enums#RLPy.Unit|RLPy.Unit]]
 +
 
 +
<syntaxhighlight lang="python" line='line'>
 +
# Set time unit
 +
time = RLPy.RTime(0)
 +
time.SetUnit(RLPy.k60FPS)
 +
</syntaxhighlight>
 +
 
 +
=== SetValue ( self, fValue ) ===
 +
 
 +
Set the time value for the time object.
 +
 
 +
See Also: [[#RTime.GetValue( self )|GetValue( self )]]
 +
 
 +
==== Parameters ====
 +
:'''fValue''' [IN] Time value - float
 +
 
 +
<syntaxhighlight lang="python" line='line'>
 +
# Set time value
 +
time = RLPy.RTime(0)
 +
time.SetValue(3000)
 +
</syntaxhighlight>
 +
 
 +
=== AsUnits ( self, eUnit ) ===
 +
 
 +
Convert the time value to a specified midst unit without changing it for the time object.
 +
 
 +
==== Returns ====
 +
:The converted time value of the time object in the specified midst unit - float
 +
 
 +
<syntaxhighlight lang="python" line='line'>
 +
# As units milliseconds
 +
time = RLPy.RTime(2000)
 +
time_value = time.AsUnits(RLPy.kMilliseconds)
 +
</syntaxhighlight>
 +
 
 +
=== GetFrameIndex ( self, kTime, nFps ) ===
 +
 
 +
Get the frame index of a given time based on a specified FPS.
 +
 
 +
==== Parameters ====
 +
:'''kTime''' [IN] animation time - [[IC_Python_API:RLPy_RTime|RTime]]
 +
:'''nFps''' [IN] frames per second - integer
 +
 
 +
==== Returns ====
 +
:The corresponding frame index - integer
 +
 
 +
<syntaxhighlight lang="python" line='line'>
 +
# Get frame index
 +
frame_index = RLPy.RTime.GetFrameIndex(RLPy.RTime(3000.0), 60)
 +
print(frame_index)
 +
</syntaxhighlight>
 +
 
 +
=== IndexedFrameTime ( self, nFrameIndex, nFps ) ===
 +
 
 +
Get the time of a given frame index based on a specified FPS.
 +
 
 +
==== Parameters ====
 +
:'''nFrameIndex''' [IN] input frame index - integer
 +
:'''nFps''' [IN] frames per second - integer
 +
 
 +
==== Returns ====
 +
:The corresponding time - [[IC_Python_API:RLPy_RTime|RTime]]
 +
 
 +
<syntaxhighlight lang="python" line='line'>
 +
# Get indexed frame time
 +
frame_time = RLPy.RTime.IndexedFrameTime(180, 60)
 +
print(frame_time)
 +
</syntaxhighlight>
 +
 
 +
=== GetFrameTime ( self, kTime, nFps ) ===
 +
 
 +
Checks if the input time falls on a specific frame based on the input FPS.  If the time does not match up correctly with any frame, then return the time of the nearest frame.  This ensures that the return value will always align to a specific animation frame.
 +
 
 +
==== Parameters ====
 +
:'''kTime''' [IN] animation time - [[IC_Python_API:RLPy_RTime|RTime]]
 +
:'''nFps''' [IN] frames per second - integer
 +
 
 +
==== Returns ====
 +
:The corresponding time - [[IC_Python_API:RLPy_RTime|RTime]]
 +
 
 +
<syntaxhighlight lang="python" line='line'>
 +
# Get frame time
 +
frame_time = RLPy.RTime.GetFrameTime(RLPy.RTime(3002), 60)
 +
print(time2)
 +
</syntaxhighlight>

Latest revision as of 20:38, 12 May 2020

Main article: Modules.
Last modified: 05/12/2020

Description

This class represents the midst unit (a.k.a unit of time) in animation. Currently, it provides two states: milliseconds and 60FPS (frames per second). When you create an animation key, you'll need to set the value according to the incoming time. This class also provides different unit conversions such as GetFrameIndex, IndexedFrameTime, and GetFrameTime to ensure that the time retrieved is aligned with animation frames.

Operators

==

The "equal to" operator. Check if two time objects are equal.

Returns

True if the values of the two time objects are equal, else False.

See Also: !=

 1 # Equivalence operator
 2 time1 = RLPy.RTime(3000)
 3 time2 = RLPy.RTime(3000)
 4 print(time1 == time2)
 5 
 6 # Compare current time
 7 time = RLPy.RGlobal.GetTime()
 8 
 9 if time == RLPy.RGlobal.SetTime(RLPy.RTime(1000)):
10    print("equal")
11 elif time > RLPy.RGlobal.SetTime(RLPy.RTime(1000)):
12    print("greater")
13 elif time < RLPy.RGlobal.SetTime(RLPy.RTime(1000)):
14    print("less")

!=

The "not equal to" operator. Check if two time object are not equal.

Returns

True if the values of the two time objects are not equal, otherwise return False.

See Also: ==

1 # Not equal operator
2 time1 = RLPy.RTime(3000)
3 time2 = RLPy.RTime(3000, RLPy.k60FPS)
4 print(time1 != time2)

<

The "less than" operator. Check if a time object is less than another.

Returns

True if this value is less than or equal to another RTimevalue, else False.

See Also: <=

1 # Less equal operator
2 time1 = RLPy.RTime(1000)
3 time2 = RLPy.RTime(2000)
4 print(time1 <= time2)

>=

The "greater than or equal" operator. Check if a time object is greater than or equal to another.

Returns

True if this RTimevalue is greater than or equal to another RTimevalue, else False.

See Also: >

1 # Less equal operator
2 time1 = RLPy.RTime(2000)
3 time2 = RLPy.RTime(1000)
4 print(time1 >= time2)

<

The "less than" operator. Check if a time object is less than another.

Returns

True if this RTimevalue is less than another RTimevalue, else False.
1 # Less than operator
2 time1 = RLPy.RTime(1000)
3 time2 = RLPy.RTime(3000)
4 print(time1 < time2)

>

The "greater than" operator. Check if a time object is greater than another.

Returns

True if this RTimevalue is greater than another RTimevalue, else False.

See Also: >=

1 # Greater than operator
2 time1 = RLPy.RTime(3000)
3 time2 = RLPy.RTime(1000)
4 print(time1 > time2)

+

The addition operator. Add two time objects together.

Returns

Sum of the two time objects - RTime

See Also: +=

1 # Addition operator
2 time1 = RLPy.RTime(1000)
3 time2 = RLPy.RTime(2000)
4 time3 = time1 + time2
5 print(time3)

+=

The "addition assignment" operator. Add a time object to this time object.

Returns

Sum of the two time objects.

See Also: +

1 # Addition assignment operator
2 time1 = RLPy.RTime(1000)
3 time2 = RLPy.RTime(3000)
4 time1 += time2
5 print(time1)

-

The 'subtraction' operator. Minus a time object from another.

Returns

Difference of the two time objects - RTime

See Also: -=

1 # Subtraction operator
2 time1 = RLPy.RTime(1000)
3 time2 = RLPy.RTime(2000)
4 time3 = time2 - time1
5 print(time3)

-=

The "subtraction assignment" operator. Subtract a time object from this time object.

Returns

Difference of the two time objects - RTime

See Also: -

1 # Subtraction assignment operator
2 time1 = RLPy.RTime(1000)
3 time2 = RLPy.RTime(3000)
4 time2 -= time1
5 print(time2)

*

The "multiplication" operator. Multiply two time objects.

Returns

Time object with the multiplied value - RTime

See Also: *=

1 # Multiplication operator
2 time1 = RLPy.RTime(100.0)
3 time2 = time1 * 0.5
4 print(time2)

*=

The "multiplication assignment" operator. Mutliply a time object to this time object.

Returns

Time object with the product value - RTime

See Also: *

1 # Multiplication assignment operator
2 time1 = RLPy.RTime(200.0)
3 time1 *= 1.5
4 print(time1)

/

The "division" operator. Divide two time objects.

Returns

Time object with the quotient value - RTime

See Also: /=

1 # Division operator
2 time1 = RLPy.RTime(3000)
3 time2 = time1 / 150
4 print(time2)

/=

The "division assignment" operator. Divide a time object from this time object.

Returns

Time object with the quotient value - RTime

See Also: /

1 # Division assignment operator
2 time1 = RLPy.RTime(3000.0)
3 time1 /= 15
4 print(time1)

Member Functions

__init__ ( self, args )

This operation creates a time object instance.

1 # Constructor RTime object
2 time1 = RLPy.RTime()
3 
4 # Constructor RTime object with RTime object
5 time2 = RLPy.RTime(time1)
6 
7 # Constructor RTime object with float value and unit
8 time3 = RLPy.RTime(0, RLPy.kMilliseconds)

GetUnit ( self )

Get the midst unit for the time object.

See Also: SetUnit( self, eUnit )

Returns

Midst unit of a given time object - RLPy.Unit
1 # Get time unit
2 time = RLPy.RTime(0, RLPy.kMilliseconds)
3 time_unit = time.GetUnit()
4 print(time_unit)

GetValue ( self )

Get the time value of the time object.

See Also: SetValue( self, fValue )

Returns

Time value of the time object - float
1 # Get time value
2 time = RLPy.RTime(3000)
3 time_value = time.GetValue()
4 print(time_value)

SetUnit ( self, eUnit )

Set the midst unit for the time object.

See Also: GetUnit( self )

Parameters

eUnit [IN] Midst unit - RLPy.Unit
1 # Set time unit
2 time = RLPy.RTime(0)
3 time.SetUnit(RLPy.k60FPS)

SetValue ( self, fValue )

Set the time value for the time object.

See Also: GetValue( self )

Parameters

fValue [IN] Time value - float
1 # Set time value
2 time = RLPy.RTime(0)
3 time.SetValue(3000)

AsUnits ( self, eUnit )

Convert the time value to a specified midst unit without changing it for the time object.

Returns

The converted time value of the time object in the specified midst unit - float
1 # As units milliseconds
2 time = RLPy.RTime(2000)
3 time_value = time.AsUnits(RLPy.kMilliseconds)

GetFrameIndex ( self, kTime, nFps )

Get the frame index of a given time based on a specified FPS.

Parameters

kTime [IN] animation time - RTime
nFps [IN] frames per second - integer

Returns

The corresponding frame index - integer
1 # Get frame index
2 frame_index = RLPy.RTime.GetFrameIndex(RLPy.RTime(3000.0), 60)
3 print(frame_index)

IndexedFrameTime ( self, nFrameIndex, nFps )

Get the time of a given frame index based on a specified FPS.

Parameters

nFrameIndex [IN] input frame index - integer
nFps [IN] frames per second - integer

Returns

The corresponding time - RTime
1 # Get indexed frame time
2 frame_time = RLPy.RTime.IndexedFrameTime(180, 60)
3 print(frame_time)

GetFrameTime ( self, kTime, nFps )

Checks if the input time falls on a specific frame based on the input FPS. If the time does not match up correctly with any frame, then return the time of the nearest frame. This ensures that the return value will always align to a specific animation frame.

Parameters

kTime [IN] animation time - RTime
nFps [IN] frames per second - integer

Returns

The corresponding time - RTime
1 # Get frame time
2 frame_time = RLPy.RTime.GetFrameTime(RLPy.RTime(3002), 60)
3 print(time2)