Editing
TranslateTo - ObjectReference
Jump to navigation
Jump to search
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
[[Category:Scripting]] [[Category:Papyrus]] '''Member of:''' [[ObjectReference Script]] Makes the object translate to the passed in position and orientation at the given speed. == Syntax == <syntaxhighlight lang="papyrus"> Function TranslateTo(float afX, float afY, float afZ, float afXAngle, float afYAngle, float afZAngle, float afSpeed, \ float afMaxRotationSpeed = 0.0) native </syntaxhighlight> == 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). *afXAngle: Destination X Angle (Absolute world rotation). *afYAngle: Destination Y Angle (Absolute world rotation) (rarely used). *afZAngle: 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 == <syntaxhighlight lang="papyrus"> ; 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) </syntaxhighlight> <br> <syntaxhighlight lang="papyrus"> ; 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) </syntaxhighlight> == 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|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. [http://forums.bethsoft.com/topic/1383367-getting-collisions-to-move-with-translateto/page__view__findpost__p__20989813 (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 [http://forums.bethsoft.com/topic/1383367-getting-collisions-to-move-with-translateto/page__view__findpost__p__20988707 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. * '''It is possible to translate havok-enabled items''' by [[SetMotionType_-_ObjectReference|setting their MotionType]] to motion_keyframed. After being translated, they can be forced back into Havok simulation by changing their motion type back to motion_dynamic and [[ApplyHavokImpulse - ObjectReference|applying a small havok impulse]]. Deleting havok objects or changing their motion type mid-translation may cause a CTD: use [[StopTranslation - ObjectReference|StopTranslation]] first. * 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. *You cannot translate an object that is flagged as '''Full LOD''', it will simply ignore the command and papyrus logs will show no errors. Translating water activators: * Water plane activators can be translated, but their collision does not move with them unless the "Movable" keyword is added to the activator. This can be seen in TG08Water1024. * The collision for water planes is handled in a very "coarse" manner. Non-horizontal water planes will intersect strangely and may cause objects to float well above their surfaces. == See Also == *[[ObjectReference Script]] *[[SplineTranslateTo - ObjectReference]] *[[SplineTranslateToRef - ObjectReference]] *[[SplineTranslateToRefNode - ObjectReference]] *[[StopTranslation - ObjectReference]] *[[TranslateToRef - ObjectReference]] *[[OnTranslationComplete - ObjectReference]] *[[OnTranslationFailed - ObjectReference]] *[[Spatial functions and snippets]]
Summary:
Please note that all contributions to the CreationKit Wiki are considered to be released under the Creative Commons Attribution-ShareAlike (see
CreationKit:Copyrights
for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource.
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Navigation menu
Personal tools
Not logged in
Talk
Contributions
Create account
Log in
Namespaces
Page
Discussion
English
Views
Read
Edit
Edit source
View history
More
Search
Navigation
Landing page
Tutorials
Game Systems
Editor Reference
Scripting Reference
Recent changes
Help
Tools
What links here
Related changes
Special pages
Page information
Page values