Download

Help With Blueprint Project, Attached Actor Input

The project has several assets for testing and everything is working except for one thing. One of the attached components is not receiving input.

I have. . .
a blueprint player controller
base pawn with static mesh, sockets, and input blueprints (called tank)
Turret as a pawn with static mesh, socket, and input blueprints (called turret)
Barrel as a pawn with static mesh, socket (for projectile spawn), and input blueprints. (called barrel)

All of the pawns cast to the player controller first, to read the array of pawn asset IDS (violet), where it is stored.

The tank is spawned from an array on begin play and posessed (for player-changeable tank parts later). It reads the array, spawns the turret and attaches it to tank.

The turret reads the array, spawns the barrel, and attaches it to turret.

All control blueprints are on their respective pawns (doing so on the player controller creates error messages of no actor to find in the logs). Movement is on the tank, rotation for aiming is on the turret, and fire (spawn projectile) is on the barrel.

The tank itself responds to input and can be moved around as expected, but the turret isn’t receiving any rotation input.

I worked fine when placed in the level from the start and could be driven and aimed. Now that is is spawned and possessed, it no longer works.

How can I have the input work for the possessed pawn and all attached pawns? It seems for allow input for only the first possessed or attached pawn and ignores everything else.

I am using the spawn actor, attach to, and possess nodes in this blueprint.

Did you check inside your turret BP class if the “Auto Receive input” is enabled?

Class Defaults:

2131231231.jpg

All pawns have that set to disabled.
Would setting them to “player 0” allow input from that player for the entire series of attached actors if the “tank” is posessed.

I can try that when I get back onto UE 4.12.3 this evening with a reply of whether or not it works based on your suggestion.

Thank you for your suggestion.

Not really sure if it will affect the attached actors, you could quickly try it. Another suggestion is to create a function inside the Tank bp to “inject” and input inside every other actor attached to it to force it receive the same inputs as the possessed pawn.

Those options did not work, sadly.
Alternatively, I have chosen to have a dummy model (already fully assembled in the viewport using socket snapping) used that will change all of the static meshes to different ones pulled from an array when the vehicle is spawned. (It looks customizable and that’s what matters at this point) I can pull some variables just like the array to change its speed, turn rate, etc.
I will create an alternative mesh with a socket and change it as a test. I want to know if the static meshes will update locations, stay in place, fall to the ground, etc.

A new problem has surfaced, since the controls are now all on the tank (set relative rotation node is used for the turret). The turret needs alternative controls based on the rotation of the tank static mesh component.

Are there any graphs for finding a relative rotation for the turret static mesh based on the rotation of the tank in the world, so that the turret will always face the lookatrotation node that is generated by the joystick (one for tank and one for turret)
The lookatrotation nodes do generate the proper angle, since they work for the tank itself.
I am using RInterp to Constant so it’s not an instant rotation and turns nicely to point as the joystick does. (This works for the tank)

How can I find the rotator for the direction of the joystick for the “target” node and the current direction of the turret for the “current” node?

This project uses a 3rd person view, with the camera not inheriting its rotations from the controlled pawn (so it is similar to Diablo games in movement and view)

I appreciate your feedback and help. I may try again, but I currently do not know how to “inject” input into an actor for an inputaxis event.