Download

Composure : Set target camera to CineCameraComponent

Hi,

I’m doing some virtual production tests with composure and I can’t seem to set the target camera of a CG Element to a CineCameraComponent. It’s look like the class filter is set to CineCameraActor.

The scenario I have is the camera is nested inside a blueprint that has lots of offsets for real world tracking volume/camera as well as logic. I tried changing the camera to a Child Actor (which composure would happily reference) but then I lost all ability to manage the camera setting in the editor. Something about the way child actors are exposed???

My only solution so far is to have a separate CineCameraActor outside of the blueprint as a ‘follow camera’.

This is bad because
A) I’m now duplicating transforms for no solid reason
B) It creates a dependency on the setup outside of the blueprint which is “not ideal”

Has anyone bumped into this or got any ideas…or am I just missing something?

A.

If I understand what you are saying it is a problem I have run into. Currently composure will not reference a Camera Component, only a Camera Actor. In an older Virtual Production project of mine I had my motion controller in another actor and then copied the tracking data to the camera actor.

Just this morning I discovered you can make a motion controller work inside a camera actor by doing a “set owner” in the camera actor so it is owned by the PlayerController or another pawn. I’m still testing this but so far it works. With this setup you can have a CineCameraActor with completely self contained tracking and all the camera’s parameters are exposed to the editor in “detalis”.

I’m still testing this now and if I don’t find problems I should post it to my github later today. The new stuff is in the VPStudio directory, the old project is UEFVirtualProduction. There are tutorials for the older template on my youtube channel

Please be aware that the VPStudio project is a work in progress and is not finished yet. As a result of recent changes there is a lot of obsolete blueprint code (it’s marked) plus a bunch of test stuff in the level blueprint that will be going away. For the camera stuff, it’s all in VPCamera.

Wait till you see an update from today, the camera code that’s up there now is from before this fix and is much more complicated.

Github: GitHub - MiloMindbender/UE4VirtualProduction: An example Unreal Engine Virtual Production Project
Youtube: https://www.youtube.com/user/GregCorson

Hi Greg,
We seem to bump into each other :wink:
Set Owner will certainly work. You could even just re-parent the CineCamera to your pawn in the world outliner.

This turned out to be a happy problem to have as it forced me to consider a more abstracted relationship between a tracker<—>AActor
Ideally I wanted the ability to map ANY AActor to a tracker not just a camera. So I ended up building a Component that would essentially ‘follow’ a tracker in the volume. The actor hierarchy goes:

Tracking Volume->Tracker->Offset
And the Tracked Actor Component mirrors the world transform of “Offset” onto it’s root scene component.

The composure quirk with CineCameraActors was a PITA at the time, but I’m oddly better off because it forced me to not take a short cut :wink:

A.

I ended up doing something similar in the end. I have something that works sort of like “camerarigcrane”. There is a tracker actor that contains a motion controller, optionally delays it and then copies it to another scene component (the “output” component) inside that actor. When you want something to follow the tracker actor you just do an “attach-to”. There is a bit of blueprint code in the tracker actor that takes any actor attached to the root scene component and re-attaches it to the output component.

Originally, I had the motion controller copying the delayed tracking data back to the “tracker actor”'s root scene component. This worked but caused some bad behavior so I changed it to the approach shown above.

@Greg.Corson, I was having the same problem and, after following your indications, it worked!
You are a star!

Hi,

I used roughly the same approach to have my composure switch position to another camera, by just attaching it’s “target camera actor” to another camera as a child and by switching it’s mediaplate. The problem I’m facing now is that attaching the composure’s target camera to another camera, which is tracked (it’s a Panasonic UE150 PTZ cam), makes the composure follow this tracked cam’s rotation and position, but not the lens parameters, like zoom and focus.

It would be great if we would just be able to switch the composure’s target camera, but It doesn’t seem possible.

I guess I’ll be copying the lens data in the blueprint from the tracking data to the target camera actor inside the composure for the time being…

Or any other ideas maybe?

Regards!

Dries

Hey all,

Just wanted to flag that composure does work directly if your blueprint class itself is a ‘Cine Camera Actor’ .Sadly I learned this after building a giant blueprint full of macros, but once I transferred everything over, it now works.

Word of warning though - some elements won’t work out of the box, such as having to replace your camera references with a Self > Get Cine Camera Component node.Easy to do but does take some time.