Difference between revisions of "TranslateTo - ObjectReference"
Jump to navigation
Jump to search
imported>Threedee (Removed this from the Console Category because this is not a console command.) |
imported>Verteiron m (→Collision boxes, bugs and other oddities: -- Added note regarding OnLoad event) |
||
Line 57: | Line 57: | ||
* You can however translate an enabled activator when it has no 3D... meaning you can do it from ANYWHERE at any time - as long as it was enabled (and a slight wait or other function afterwards). | * You can however translate an enabled activator when it has no 3D... meaning you can do it from ANYWHERE at any time - as long as it was enabled (and a slight wait or other function afterwards). | ||
* The function does not work on MiscItems (presumably for the same reason). [[SetPosition - ObjectReference]] works though. | * The function does not work on MiscItems (presumably for the same reason). [[SetPosition - ObjectReference]] works though. | ||
* You cannot translate something that is disabled (or was just enabled). You will get a no3D error. | * You cannot translate something that is disabled (or was just enabled). You will get a no3D error. It may even be necessary to add a [[Wait - Utility]] statement or double-check the load status using [[Is3DLoaded - ObjectReference]] before translating an object after its OnLoad event is called. | ||
== See Also == | == See Also == |
Revision as of 13:46, 4 December 2013
Member of: ObjectReference Script
Makes the object translate to the passed in position and orientation at the given speed.
Syntax
Function TranslateTo(float afX, float afY, float afZ, float afAngleX, float afAngleY, float afAngleZ, float afSpeed, \
float afMaxRotationSpeed = 0.0) native
Parameters
- afX: Position along the X axis (Absolute world coordinates).
- afY: Position along the Y axis (Absolute world coordinates).
- afZ: Position along the Z axis (Absolute world coordinates).
- afAngleX: Destination X Angle (Absolute world rotation).
- afAngleY: Destination Y Angle (Absolute world rotation) (rarely used).
- afAngleZ: Destination Z Angle (Absolute world rotation).
- afSpeed: Movement Speed.
- afMaxRotationSpeed: Maximum rotation Speed (default is 0 to mean "don't clamp the rotation speed") - Negative values cause unpredictable rotation.
Return Value
None.
Examples
; Translate the bird slowly to 0,0,0 with a rotation of 90,90,90
Bird.TranslateTo(0.0, 0.0, 0.0, 90.0, 90.0, 90.0, 1.0)
; Translate the bird slowly to 0,0,0 with a rotation of 90,90,90 with a max rotation speed of 10
Bird.TranslateTo(0.0, 0.0, 0.0, 90.0, 90.0, 90.0, 1.0, 10.0)
Tips
A movement speed parameter (afSpeed) of 1 is extremely slow - nearly imperceptible to the human eye. Starting at a an afSpeed of 100 and working up or down towards the desired speed is recommended.
Notes
- The movement speed is in units per second.
- The rotation speed is in degrees per second.
- afMaxRotationSpeed equal to 0 means that the object will reach the target rotation when it reaches the target position.
- It is not possible to cause the object to rotate faster than it would with afMaxRotationSpeed equal to 0. (Cannot reach target rotation before target position.)
- The OnTranslationComplete event will fire when the object reaches both the target position and target rotation.
- The OnTranslationAlmostComplete event can fire even when the target rotation is far from being reached.
Collision boxes, bugs and other oddities
The collision "boxes" may not be updated after using this function. Here are some of the observations reported on the forums. (source)
- The collision box is property updated for moveable statics.
- The collision box is not moved for other static objects. To fix this the object must be declared as a MoveableStatic and its mesh must have the bhkRigidBody settings corrected (see this post).
- The collision box is voided for actors (but they will still collide with the ground). They will go through other actors, activators, etc.
Besides of that, a few bugs and oddities have been reported:
- Using havok collision in an activator then trying to translate it doesn't work... it just sits there motionless.
- You can however translate an enabled activator when it has no 3D... meaning you can do it from ANYWHERE at any time - as long as it was enabled (and a slight wait or other function afterwards).
- The function does not work on MiscItems (presumably for the same reason). SetPosition - ObjectReference works though.
- You cannot translate something that is disabled (or was just enabled). You will get a no3D error. It may even be necessary to add a Wait - Utility statement or double-check the load status using Is3DLoaded - ObjectReference before translating an object after its OnLoad event is called.
See Also
- ObjectReference Script
- SplineTranslateTo - ObjectReference
- SplineTranslateToRef - ObjectReference
- SplineTranslateToRefNode - ObjectReference
- StopTranslation - ObjectReference
- TranslateToRef - ObjectReference
- OnTranslationComplete - ObjectReference
- OnTranslationFailed - ObjectReference
- Spatial functions and snippets