Greetings to all of you, we are using LiveLinkFreeD and UE 4.27 to build a virtual studio for broadcasting. In order to do that we are trying to control our virtual cameras with LiveLinkFreeD so that they behave in the same way as our real PTZ cameras (Panasonic UE-100 and UE-150) do. The pan and tilt work fine but we can’t get the zoom to work properly.
It seems like Epics FreeD plugin doesn’t support zoom and focus out of the box so we tried two different ways:
Add the LiveLinkCamera plugin which activates the option to add a Camera Role to the Role Controllers of the LiveLinkComponentController
Create a small blueprint which handles zoom and focus by evaluating the LiveLink frames
Both ways change the focal length of our virtual CineCam based on the lens parameters of the FreeD package.
Furthermore, we found out that the FreeD protocol returns the zoom as a float between 0 (tele) and 1 (wide), which is why we use lerp to interpolate between our actual min and max focal length based on this number.
Our problem is that the virtual camera zooms in a different speed compared to the real one and therefore makes the zoom unusable.
We did some testing and came to the conclusion that the PTZ cams of Panasonic don’t zoom linear between min and max but instead use some kind of exponential lens curve in order to make the zoom feel more intuitive. Sadly, Panasonic doesn’t add this lens curve to FreeD which is why our virtual and non-virtual cameras don’t behave equally.
Things we tried and didn’t solve anything:
Make sure that CineCam has the same lens and filmback settings as the PTZ cameras
Disable ‘Speed with zoom Position’ in PTZ camera controls
Replace lerp with typical functions (exponential, logarithmic, etc.)
Replace lerp with an a^x function and changing a until the zoom is neither to fast nor to slow (not possible it’s always one of both)
Changing the LiveLinkFreeD Panasonic Preset properties in LiveLink window
At this point we don’t know any further and would very much appreciate any advice you guys could give us!!!
Sounds like you might have to calibrate the zoom curve since it’s non-linear.
Make a table with a number of samples. Example: .1 = 25mm, .2 = 38mm, etc.
Use this as a form of Lookup table and lerp between the closest steps or curve fit the data so you simply end up with 100 steps (or whatever resolution you need) so that a value of .25 provides you 31mm output.
Hi Luis and scottunreal, i was reading this post searching same solution for Sony PTZ camera problem with zoom lens curve.
Can I contact you to solve it? I don’t know how to add a table on the lerp blueprint function. It would be so great if you can give an idea. thanks very much
Hi @Jan_Boria11, hi everybody here is how my solution works:
You have two float Arrays (both the same length)
FreeD_Steps: The Focal Length values which FreeD returns when you change the Zoom of your PTZ (e.g. 0; 0.1; 0.2; 0.3; … ; 1)
Virtual_FLength_Steps: The correct Focal Lenth values which the virtual camera should have at the FreeD values from the other array(e.g. 3.8; 5.34; 7.5; 9.89; … ; 92.82)
=> The more FreeD / FocalLength value pairs you have the more accurate is going to be your zoom.
Now to the Blueprint:
Get the Focal Length from the Live Link Frame and save it in a variable (Free D Cur Value)
If its greater continue with the next index of the array
If its equal set the focal length of the virtual camera to the value at the same index in Virtual_FLength_Steps and break the loop
If its less map the range between the current and the last FreeD_Step to the range between the current and the last Virtual_FLength_Step (This is done in the collapsed graph ‘Map Range from FreeD to virtual FL’) and break the loop
sorry for pushing this old topic, but I have the same problem here. We work with Panasonic UE100 and UE150, just like you. Maybe I’m missing something very simple here, but I actually have no clue how to get those value pairs Zoom->Focal Length. The Camera doesn’t show its Focal Length anywhere - not in the web user interface nore in the camera controller (as far as i know). I don’t have any problems in programming the blueprints to use those values, but first I need to HAVE those values… it’s really frustrating!
Does anyone has a tip on how to get those values? How am I supposed to know, what focal length equals a zoom value of “0.5”?
Having same issue, can’t seem to get the math right to get a clean zoom curve anyone else have luck with the panasonic ue150 also have access to proper sensor size and focal length info Im finding mixed results on the web.
Did anyone get their ue100s to calibrate correctly? I am using the disrupt AR plug-in and my zoom looks gods, but it seems like my nodal or axis information is off as I slide around on pan and tilt. Any thoughts?
[quote=“LuisRP, post:1, topic:510697, full:true, username:LuisRP”]
Greetings to all of you, we are using LiveLinkFreeD and UE 4.27 to build a virtual studio for broadcasting. In order to do that we are trying to control our virtual cameras with LiveLinkFreeD so that they behave in the same way as our real PTZ cameras (Panasonic UE-100 and UE-150) do. The pan and tilt work fine but we can’t get the zoom to work properly.
It seems like Epics FreeD plugin doesn’t support zoom and focus out of the box so we tried two different ways:
Add the LiveLinkCamera plugin which activates the option to add a Camera Role to the Role Controllers of the LiveLinkComponentController
Create a small blueprint which handles zoom and focus by evaluating the LiveLink frames
Both ways change the focal length of our virtual CineCam based on the lens parameters of the FreeD package.
Furthermore, we found out that the FreeD protocol returns the zoom as a float between 0 (tele) and 1 (wide), which is why we use lerp to interpolate between our actual min and max focal length based on this number.
Our problem is that the virtual camera zooms in a different speed compared to the real one and therefore makes the zoom unusable.
We did some testing and came to the conclusion that the PTZ cams of Panasonic don’t zoom linear between min and max but instead use some kind of exponential lens curve in order to make the zoom feel more intuitive. Sadly, Panasonic doesn’t add this lens curve to FreeD which is why our virtual and non-virtual cameras don’t behave equally.
Things we tried and didn’t solve anything:
Make sure that CineCam has the same lens and filmback settings as the PTZ cameras
Disable ‘Speed with zoom Position’ in PTZ camera controls
Replace lerp with typical functions (exponential, logarithmic, etc.)
Replace lerp with an a^x function and changing a until the zoom is neither to fast nor to slow (not possible it’s always one of both)