Hey there @NEYSE_O001! Are you just trying to split these into their floats? If so, then you can just right click the outputs and select split struct.
Yes I think it’s just it, thanks ![]()
the math definition of a Vector is a magnitude and direction in a coordinate system (most game engines just so happen to work in the 3D Cartesian coordinate system because cross products and 3D trig functions are easily performed in 3D and all are very helpful)
- the programming definition of Vector is a special wrapper on array because it can resize or “change magnitude”, and programmers steal terms from other places all the time.
a rotation: is an expression of a vector either as a Quaternion/Euler explicitly describing an orientation requiring a companion location and something like a speed value.
___
for a Vector that is already pointing in the direction desired; you can just right-click “Split Struct Pin” to get the components, (if you are not given the option, after making sure you are right clicking the struct itself, you might need to promote it to a variable first)
for a Rotator to get the XYZ components of the vector you will need to convert it into a Vector first, and then act on it accordingly (the Vector class already has a conversion available).
for the situation at hand, and considering your other questions about gravitational frames.
if the Vector is already pointing in the direction of the desired movement (like say your arrow is attached to the RootComponent of an object that is already having its orientation set by an arbitrary gravity direction) then: split the struct and apply all 3 components of the vector
- AddMovementInput already takes a full FVector, so alternatively just Right-Click any of the components and “Recombine Struct Pin” and plug the vector in directly.
-
- the version commonly put into blueprints for demonstration split it because a “standard” first or 3rd person controller the Left stick or WASD input goes into the movement keeping Z constant, or don’t both modifying it even though the projection of the vector is more trivial then splitting the operation.
otherwise there is a bit more work that is most efficiently, and accurately done with Quaternions(so C++)
You mean it is just compatible, or practically works in most situations? What Gardian just writed there made me understand a little bit how complex is the stuff. Regardless, I think it will definitely suffice for me now, thanks. ![]()
As Gardian mentioned, this just breaks the data structure into it’s parts, depending on your use case you may need to process the data differently, especially when it comes to rotations or changing from local/relative to world in some instances. As always, it all depends on your use case!



