Movement Relative to Another Object

From the CreationKit Wiki
Jump to navigation Jump to search

Function to move an object reference to a position relative to another object reference.

Function[edit | edit source]

Function MoveRefToPositionRelativeTo(ObjectReference akSubject, ObjectReference akTarget, Float OffsetDistance = 0.0, \
  Float OffsetAngle = 0.0, bool FaceTarget = False) Global
	float AngleZ = akTarget.GetAngleZ() + OffsetAngle
	float OffsetX = OffsetDistance * Math.Sin(AngleZ)
	float OffsetY = OffsetDistance * Math.Cos(AngleZ)
	akSubject.MoveTo(akTarget, OffsetX, OffsetY, 0.0)
	if (FaceTarget)
		akSubject.SetAngle(akSubject.GetAngleX(), akSubject.GetAngleY(), akSubject.GetAngleZ() + \
		  akSubject.GetHeadingAngle(akTarget))
	endif
EndFunction

Parameters[edit | edit source]

  • akSubject: The object reference to be moved.
  • akTarget: The target reference to move to.
  • OffsetDistance: The distance the subject should be moved to relative to the target.
    • Default: 0.0
  • OffsetAngle: The angle the subject should be moved to relative to the target.
    • Default: 0.0
  • FaceTarget: Whether the subject should face the target or not.
    • Default: False

Return Value[edit | edit source]

None.

Examples[edit | edit source]

; Move Bob 256 units to the right of Joe
MoveRefToPositionRelativeTo(Bob, Joe, 256.0, 90.0)


; Move Bob 128 units behind and to the left of Joe, and turn to face him
MoveRefToPositionRelativeTo(Bob, Joe, 128.0, -135.0, True)