• News

• Industries

• Learning & Support

• Community

• Marketplace

# Transform variable in blueprint isn't Correctly mapped to roll pith yaw

In blueprint editor, when I use ‘make transform’ to generate a transform, in the rotation section, x,y,z are correctly mapped to roll, pitch, yaw. But when I add a new variable of type ‘transform’, its x,y and z aren’t correctly mapped to roll, pitch and yaw. And x seems mapped to yaw. So every time I spawn an actor use this variable transform, it spawns the actor with a weird rotation. Is it a bug, or is it made this way for some reason?

Are you sure that you are using either world rotation or local rotation (ie same type) in both cases?
If your actor is rotated inside level by 90deg its yaw, roll, pitch axes will be different for world and local rotation.
And that would appear like they are just swapped around, because 90deg rotation is just that.

Yeah, I thought it might be the case, but it’s not. I have a blueprint created from an actor called robot manager, which is responsible for spawning my robot. When the game begin, I spawn my manager in level blueprint with transform{location{0,0,0},rotation{0,0,0},scale{1,1,1}}. Then inside the robot manager, it spawns my robot. But I need my robot rotate 180 degree in yaw, so I make a transform variable {location{0,0,0},rotation{0,0,-179.xx},scale{1,1,1}} and drag a node SpawnActorFromClass with this variable as transform input. But when i see it spawned, instead of rotate 180 in yaw, it rotates 180 in roll. And I just checked my LeveBlueprint HAS A rotation (0,0,0). Really Weird. The important thing is that If I use make Transform to get {location{0,0,0}, rotation{0,0,180}, scale{1,1,1}} as transform input, it spawn the robot in a correct rotation, which rotates 180 degree in yaw. The only difference is that one transform is a variable, and the other is generated by ‘make transform’ node

PS: The number -179.xx is automatically converted from 180 which I typed in the editor.