I am still having an issue, I can now rotate a damage_voume_device using Verse and MoveTo, however I am getting what I can only describe as a “tearing” effect. To help isolate the issue I’ve created a new map and setup a BuildingProp blueprint actor with the damage_volume_device attached as a child. I kept the Verse as simple as possible and tried a few different varations. I’ve also tried changing the amount of radians I rotate in one MoveTo call and playing with the duration, but I still ultimately end up with a volume that glitches back to random positions while rotating.
Version one of the Verse I tried:
Sorry first part has to be left out of a Code Block because the forum webpage freezes the second I try to paste or type ‘[’ or ‘]’
RotateTag := class(tag){}
RotateProps := class(creative_device):
# Runs when the device is started in a running game
OnBegin<override>()<suspends>:void=
if(SelectedProp := creative_prop[GetCreativeObjectsWithTag(RotateTag{})[0]]):
spawn:
RotateProp(SelectedProp)
RotateProp(TheProp : creative_prop)<suspends> : void =
CurrentTransform := TheProp.GetTransform()
CurrentTranslation := CurrentTransform.Translation
CurrentRotation := CurrentTransform.Rotation
NewRotation := CurrentRotation.ApplyYaw(90.0)
MovedAsset := TheProp.MoveTo(CurrentTranslation, NewRotation, 2.0)
#Others claim this fixes this bug, it does not. I believe
#you should only be able to get to this point after the Prop hits its
#destination anyways, otherwise the function would not run recursively
#it would hit the condtional statement as false and exit
#Tested by using Print statements and they are 2.0 seconds apart
if(MovedAsset = move_to_result.DestinationReached):
RotateProp(TheProp)
Also tried a super simplified version thinking maybe Verse has an issue with the fact I pull the data into constants each time in a recursive function (Garbage Collection?)
Again sorry Code Block is causing issues here, I think this is attempt 16 at editing this draft?
RotateProp(TheProp : creative_prop) : void =
#Obviously one line, Thanks Code Blocks!
MovedAsset := TheProp.MoveTo(TheProp.GetTransform().Translation, TheProp.GetTransform().Rotation.ApplyLocalRotationZ(90.0), 2.0)
if(MovedAsset = move_to_result.DestinationReached):
RotateProp(TheProp)
Longer Video Version: glitch_video.mp4 - Google Drive
Short Version:
[Edit] This happens with other props too that are not children of a parent BuildingProp, just not anywhere near as bad (Very subtle glitch / springback)