Hey, i’m trying to access some cine cam actors actors in Blueprint, but instead of using the get all actors of class i want to get them by the sequence they are in. i worked out this method which seemed to work and collect all my cam actors(i cross-checked the asset paths with the paths from the ‘get all actors of class’ and they match). BUT THEN from these cam actors i try to ‘set view target with blend’ and animate their respective rig rail parent actor and for some reason it doesnt behave the same as if i was to use the ‘get all actors of class’. the ‘set view target with blend’ works with both setups but the rig rail weirdly doesn’t seem to animate. in bp the value changes, but in the world outliner it doesn’t, but i can see the value updating whenever i quit runtime ??? waaaaahhhhh
following up with some more screenshots of the blueprints in question :
struct of cine cams arrays created from the director blueprint :
in the camera logic blueprint when I set the ‘active cam array’ from the struct :
again in the camera logic bp but using the ‘get all actors’ instead of the struct to set the ‘active cam array’
as you can see the paths and names of my cams in the ‘active array’ matches in both screenshots. the only difference is in the elems order in the array but that shouldn’t make a difference.
another thing I noticed is that with the struct method, if I open the sequence the cameras live in and create a camera cut track then I can see the camera animating.
is it perhaps that there is a clash between the player camera and the sequencer camera somehow?
extra screenshots of the camera logic bp if it helps.
Not saying any of these will be the solution but I would approach the problem as such. Doing this from memory so take with a grain of salt!
Random ideas
- Whenever you press play in editor, be sure to close the Sequencer tab/window in your editor. Sometimes it conflicts at runtime.
- Similarly, try to test whether the functionality works as intended when you play in editor using a new window or in standalone. This way you can figure out if it is an editor-only issue or global.
- Always ensure all LocateBoundObjects BP nodes have their Context input node connected to “Self” aka the blueprint itself, to ensure any bound objects are part of the same world context.
Potential struct reference/copy issue
Note here how the left connection is a diamond and the right connection is a circle:
This means
- From your StructCams struct, you Get a reference.
- You then Break the struct, COPYING its contents into an entirely ~new temporary struct~
- To this new temporary copy, the array value is added, meaning the original struct is never changed.
What you can do
- Store the MemberVar0 array temporarily
- Add the CineCameraActor to the temporary array
- Use Set Members In Structs node to By Reference update the array values in the StructCams struct with the updated values from the temporary array
I’ve tried with your new method suggested but I still get the same results.
old method:
new method:
i reckon it’s because the way the ‘director bp’ collects the camera paths doesn’t know when I’m playing in Editor. whereas 'get all actors ’ does know that and so it updates the asset paths accordingly by adding the suffix ‘UEDPIE_0’ to the string.
cam struct paths :
get all actors paths :
i also realized, that if I play in standalone mode my original logic does work. that’s because there the asset paths don’t change and that ‘UEDPIE_0’ isn’t added.