Difference between revisions of "IC Python API:RLPy RTime"
Chuck (RL) (Talk | contribs) m |
Chuck (RL) (Talk | contribs) m |
||
Line 394: | Line 394: | ||
==== Parameters ==== | ==== Parameters ==== | ||
+ | :'''kTime''' [IN] animation time - [[IC_Python_API:RLPy_RTime|RTime]] | ||
:'''nFps''' [IN] frames per second - int | :'''nFps''' [IN] frames per second - int | ||
Revision as of 23:14, 8 April 2020
Contents
- 1 Description
- 2 Operators
- 3 Member Functions
- Main article: Modules.
- Last modified: 04/8/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 alined with animation frames.
# Get current time
time = RLPy.RGlobal.GetTime()
# Compare time
if time == RLPy.RGlobal.SetTime(RLPy.RTime(1000)):
print("equal")
elif time > RLPy.RGlobal.SetTime(RLPy.RTime(1000)):
print("greater")
elif time < RLPy.RGlobal.SetTime(RLPy.RTime(1000)):
print("less")
# Operator
time += RLPy.RTime(1000)
time -= RLPy.RTime(1000)
time *= 2
time /= 2
# Convert between frame
time = RLPy.RTime(3000)
frame_index = RLPy.RTime.GetFrameIndex(time, RLPy.RGlobal.GetFps())
print(frame_index) # 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
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: !=
# Equivalence operator
time1 = RLPy.RTime(3000)
time2 = RLPy.RTime(3000)
print(time1 == time2)
!=
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: ==
# Not equal operator
time1 = RLPy.RTime(3000)
time2 = RLPy.RTime(3000, RLPy.k60FPS)
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: <=
# Less equal operator
time1 = RLPy.RTime(1000)
time2 = RLPy.RTime(2000)
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: >
# Less equal operator
time1 = RLPy.RTime(2000)
time2 = RLPy.RTime(1000)
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.
# Less than operator
time1 = RLPy.RTime(1000)
time2 = RLPy.RTime(3000)
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: >=
# Greater than operator
time1 = RLPy.RTime(3000)
time2 = RLPy.RTime(1000)
print(time1 > time2)
+
The addition operator. Add 2 time objects together.
Returns
- Sum of the two time objects - RTime
See Also: +=
# Addition operator
time1 = RLPy.RTime(1000)
time2 = RLPy.RTime(2000)
time3 = time1 + time2
print(time3)
+=
The "addition assignment" operator. Add a time object to this time object.
Returns
- Sum of the two time objects.
See Also: +
# Addition assignment operator
time1 = RLPy.RTime(1000)
time2 = RLPy.RTime(3000)
time1 += time2
print(time1)
-
The 'subtraction' operator. Minus a time object from another.
Returns
- Difference of the two time objects - RTime
See Also: -=
# Subtraction operator
time1 = RLPy.RTime(1000)
time2 = RLPy.RTime(2000)
time3 = time2 - time1
print(time3)
-=
The "subtraction assignment" operator. Subtract a time object from this time object.
Returns
- Difference of the two time objects - RTime
See Also: -
# Subtraction assignment operator
time1 = RLPy.RTime(1000)
time2 = RLPy.RTime(3000)
time2 -= time1
print(time2)
*
The "multiplication" operator. Multiply two time objects.
Returns
- Time object with the multiplied value - RTime
See Also: *=
# Multiplication operator
time1 = RLPy.RTime(100.0)
time2 = time1 * 0.5
print(time2)
*=
The "multiplication assignment" operator. Mutliply a time object to this time object.
Returns
- Time object with the product value - RTime
See Also: *
# Multiplication assignment operator
time1 = RLPy.RTime(200.0)
time1 *= 1.5
print(time1)
/
The "division" operator. Divide two time objects.
Returns
- Time object with the quotient value - RTime
See Also: /=
# Division operator
time1 = RLPy.RTime(3000)
time2 = time1 / 150
print(time2)
/=
The "division assignment" operator. Divide a time object from this time object.
Returns
- Time object with the quotient value - RTime
See Also: /
# Division assignment operator
time1 = RLPy.RTime(3000.0)
time1 /= 15
print(time1)
Member Functions
__init__ ( self, args )
This operation creates a time object instance.
Currently provided units of time (RLPy.Unit):
Unit | Description |
---|---|
RLPy.kInvalid | Invalid value |
RLPy.kHours | Not supported |
RLPy.kMinutes | Not supported |
RLPy.kSeconds | Not supported |
RLPy.kMilliseconds | 1000 units per second |
RLPy.k30FPS | Not supported |
RLPy.k60FPS | 1 second equals 60 frames |
RLPy.kUserDef | Not supported |
# 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)
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
# Get time unit
time = RLPy.RTime(0, RLPy.kMilliseconds)
time_unit = time.GetUnit()
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
# Get time value
time = RLPy.RTime(3000)
time_value = time.GetValue()
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
# Set time unit
time = RLPy.RTime(0)
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
# Set time value
time = RLPy.RTime(0)
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
# As units milliseconds
time = RLPy.RTime(2000)
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 - int
Returns
- The corresponding frame index - int
# Get frame index
frame_index = RLPy.RTime.GetFrameIndex(RLPy.RTime(3000.0), 60)
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 - int
- nFps [IN] frames per second - int
Returns
- The corresponding time - RTime
# Get indexed frame time
frame_time = RLPy.RTime.IndexedFrameTime(180, 60)
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 - int
Returns
- The corresponding time - RTime
# Get frame time
frame_time = RLPy.RTime.GetFrameTime(RLPy.RTime(3002), 60)
print(time2)