Download

How do I Rotate components by joystick input at different rotation rates?

I have it open. Before I do anything I want to make sure you want your targeter to be able to rotate on its own. Example. Left thumbstick on xbox controller to move right stick to aim. Or WASD to Move Mouse to aim? Because the first thing I see is they should both be separated. Which I’ll do once I confirm.

good news Is I broke it. For some reason it wants to make that static mesh just stay put. Lets see if we can fix it. I created it’s own input. Hopefully I can get it going then you can work your more advanced magic.

well I got it to rotate. Problem was on its own. I don’t think the way I have been doing things likes the way you do things. I’ll try again tomorrow.

Well I want it to rotate with WASD.

It’s suppose to move just like the pawn does, only it should do it instantly.

Thank you so much for taking time to help me with this :smiley:

No problem. I only hope that I can help. I’ve noticed that if you program your move functions one way other functions don’t want to work if they follow different settings. What I did should have worked fine. What I am doing with you is helping me as well. I’m studying some vector and torque stuff tonight and going to see if that works better in both yours and mine application. If I break my lance my theory will be confirmed as I will be using both the vector and local settings.

@PropagandaWar

Hey this set up is “almost” working.
LocalAim01.jpg

The only problem is that the targeter snaps back to it’s original rotation when the analog stick is neutral.

What it should do instead, is persist in pointing in the direction it was looking at.
But it’s so close, but I feel that there has to be a simpler way to handle this, if only we could see how the UE4 devs made these properties for the parent class.

The BP:

CAREFUL! LONG TEXT!

[spoiler]

[/SPOILER]

Put a Float*Float between your break rot at the end of the script. Add a float/float. Then two varibles turn and speed attach to the division float. See if that helps. If not do a float - between input and break rot and a Float + between Make Rot and make vector. I think it’s snapping back because the get control has no value to associate with, but I would try the others first then mess with that one. I of course could be and probably am way off.

I thought you could open up the code to see what the parent class looks like (I can barely read code,but getting better. My friend told me to stay away from it for now because he wants to see what i can do just with the script. Besides he’s been coding for over 20 years any hitches he’ll handle). I just get stuff to work then just take the next logical step and start breaking stuff. Just like how I want my dragon to turn 90degrees max. Pitch and yaw can stay true so I add the clamp to the roll then tie it into the rest of the movement and nothing. It wont work. Separate it then the roll only works. That’s why I’m switching over to vector movement.

@PropagandaWar

What values should “turn” and “speed” be, are they suppose to be set by something?

I would set them to 45 like the rest. It should effect the rotation rate. you may end up adding more or less.

Did you have any luck?

@PropagandaWar

Both methods haven’t resolved the “snap back” issue, unless I’m doing it wrong :confused:

No Im sure your not doing it wrong. try your latest blueprint out this weekend and see if I stumble across something. I’m going crazy with mine right now too.

@PropagandaWar

I think I have something. This took care of the snapping back:
After (RotateVectorAroundAxis) I used a (select vector B) to choose the forward vector of the actor (A), (IF) the input X (AND) Y axis (~=) 0.

I’ll post a screenshot after I get home.

That’s great to hear. I’m still stuck on my roll limits. It’s really the only thing I want to do. Working off local and actor. Why it’s trying to force me to the pitch and yaw that won’t be affected at all is beyond me. I tried vectors the other day and the dragon wouldn’t budge. I know my way will work. Just have to figure out how. What you did does make sense though as far as vectors go. Can you do a full 360 degrees if you want?

Yes I can go full 360 with the rotation, the only limitation is that I can’t control the speed. It’s instantaneous (which IS what I wanted) but I want the option to slow it down if I choose, like how rotation rate works for the character movement component.

here is the BP so far:
bd32935bfa8e57aec1a0050381926eaac1b27264.jpeg

you need to create a speed variable via float. http://imgur.com/a/EmASf look at my image. Try it between your get control rotation and break rotation. Create a two variables using the float variable. It works fine for my dragon.

oh if that doesnt work move it over to your rotation from Xvector

my question for you is do you need a control blueprint to get control rotation?

I’ve hooked up the speed variable/turn to various parts and got some strange results:

Speed set to = 540
Turn set to = 90

Between get control rotation and break rotation: It makes the targeter “orbit” the character???
After Rotation from XVector: Same thing, it orbits the character???

I’m not sure I know what you mean?

it shouldn’t orbit the character it should allow you to change the speed. That’s weird. I can use it on either of my inputs. You can try negative positive but I think you need to do it the way I did it. Maybe someone else would know. Ignore the controller rotation. You can also try a rotator variable but I doubt that would work. You did both the multiplication and the division right? They should cancel each other out. Also by orbit do you mean it just goes in circles and you lose control of it?