Manipulate Camera Properties
-
Hi Shubhendu,
Lens Studio does not currently have any built-in camera controls. With some object manipulation or scripting, however, you could create your own. For example, you could create a zoomed in view by applying the Device Camera Texture to a Biillboard and scaling up that billboard.
Let me know if you'd like to see some specific examples.
Best,
Peter
Comment actions -
Hiya, I was just wondering if you could elaborate on that method of creating a zoom effect? I understand the idea of scaling up the camera but am not sure how to implement this in a script that is triggered by tapping, for example.
Cheers
Comment actions -
Here's a step-by-step example of how to create a simple Lens that zooms in the device video texture on touch start:
- In the Objects pane, Create a new Billboard (Add New -> Billboard)
- Select the new Billboard object
- In the Inspector, set the BaseTex property on the Billboard's Sprite Component to the "Device Camera Texture"
- Add a new Script Component to the Billboard object you have created and set it to "Touch Started"
- Open the new Script and add the following code:
//@input float zoomWidth = 2.0
if(script.getSceneObject().getComponentCount("Component.SpriteAligner") > 0)
{
var spriteAligner = script.getSceneObject().getFirstComponent("Component.SpriteAligner");
spriteAligner.size = new vec2(script.zoomWidth, script.zoomWidth);
}Now, whenever you touch the screen in the Preview pane, you should see the video feed "zoom in"
In the Inspector, you can change the Script's "Zoom Width" property to adjust how much it zooms in.
Let me know if you have any questions about how this example works!
Best,
Peter
Comment actions -
Hi Peter,
I've recently tried using this script and it doesn't seem to work. Is it maybe because it's outdated?
Comment actions -
put the script to the sprite of the billboard
//@input float zoomWidth = 2.0
function zoomIn() {
if(script.getSceneObject().getComponentCount("Component.SpriteAligner") > 0)
{
var spriteAligner = script.getSceneObject().getFirstComponent("Component.SpriteAligner");
spriteAligner.size = new vec2(script.zoomWidth, script.zoomWidth);
}
}
var event = script.createEvent("TapEvent");
event.bind(zoomIn)
Comment actions
Please sign in to leave a comment.
Have a comment?