There may be differences between your version of Spark AR Studio and this tutorial because the product is currently in beta and we update it regularly.
In this tutorial you'll create a 2D frame using 2 objects included in Spark AR Studio - the canvas and rectangles.
You'll learn to:
Download the sample content to follow along. If you open the unfinished effect in the sample content folder, you'll see we've imported a custom texture. It's called frame and listed in the Assets panel. You'll use this to add extra detail to the frame you build. In another tutorial, we'll show you how to add text to this frame.
Frames made with Spark AR Studio can be used in the Facebook and Instagram cameras. To create a frame for a Facebook profile picture, use Frame Studio instead
The first step for building effects with 2D objects is to add a canvas. The canvas creates a space to lay-out 2D objects like the rectangles you're going to add to this effect.
To add a canvas:
You'll see canvas0 listed in the Scene panel.
If you look at its properties in the Inspector, you'll see an option labeled Mode. This is set to Camera Space by default. Any objects grouped underneath a canvas in camera space can be positioned and set to scale in relation to the size of the device screen.
In the Inspector you’ll see that the Size property can't be changed. This is because it will always match the size of the screen of the device.
If you changed the Mode to World Space, you'd be able to use the canvas to create 2D world effects. When a canvas is in world space, it's decoupled from the camera field of view. This means it can be positioned in 3D space. Follow this tutorial to use a canvas in world space
We want this effect to scale with the screen of the device, so keep the Mode set to camera space.
To add a rectangle:
You'll see the rectangle in the center of the Viewport.
To add 3 more rectangles, you can either repeat these steps, or copy and paste the rectangle you just made:
It's worth renaming the rectangles so you can keep track of them as you build your effect. To do this, right-click on each rectangle and select rename.
To reflect where they'll be positioned, rename:
In Spark AR Studio materials define the appearance of objects in your scene. You can add materials and textures to rectangles to build colored filters, vignettes and frames.
In this effect you'll use the same material for each rectangle, and add a color to it.
You can create the material and add it every rectangle at the same time. Start by selecting the rectangles. You can select them all at the same time holding down either command or control on your keyboard, and clicking each rectangle in the Scene panel.
Then, in the Inspector click + next to Materials. You'll see the new material listed in the Assets panel under Materials, as material0.
Select the material to view its properties in the Inspector. You can make all kinds of changes to the material here. For this effect, start by changing the Shader Type. Click the dropdown next to Shader Type and select Flat.
The flat material is the best option for materials applied to 2D objects, because it doesn't emit or respond to light. This means it has less impact on the performance of your effect.
Next add a color using the Color option under Diffuse:
Now let's edit the size of the rectangles to start building the shape of the frame.
If you select the top_rectangle in the Inspector, you'll see 2 options next to Size. Use the first option to change the Width of the rectangle, and the second option to change the Height.
You're going to make two of the rectangles the same width as the canvas, and two of the rectangles the same height.
For top_rectangle, click in the first box. You'll see the Fill Width option appear which will make the rectangle fill the width of the canvas. Select this option.
Do the same for bottom_rectangle:
For both right_rectangle and left_rectangle:
Here's how your project should be looking once you're done:
So these rectangles completely fill the space around the texture we're going to add to the center of the effect, make a second edit to the Size option.
Select top_rectange and bottom_rectange. Again, you can select them both at the same time by holding down command on your keyboard. Change the Height to 140 in the Inspector.
For right_rectangle and left_rectangle, change the Width to 30:
To position the rectangles we're going to use alignment. Alignment moves a 2D object around within the canvas.
Each of the buttons here will move the rectangle to a different position:
Start by setting alignment for top_rectangle:
Do the same for the other 3 rectangles. Align:
The frame is really taking shape now. But, if you were to change the size of the device in the Simulator - for example to iPad Pro - you'll see the rectangles stay the same size and in the same position. We can use the flexibility and pinning features to change this.
Flexibility scales the height and width of each rectangle in relation to the canvas. This means objects will stay in proportion on all devices.
To set flexibility:
If you changed the device type to iPad Pro in the Simulator, you'd see the rectangle at the top of the screen get bigger in sync with the device screen - but the others won't.
Set Flexibility for the remaining 3 Rectangles:
So now we've set flexibility the rectangles will scale with the size of the device screen. However, they'll stay in the same place.
Using pinning will change this. Pinning a rectangle means it will maintain the same distance to the border of the canvas, however big or small the canvas is.
Start with the rectangle at the bottom of the scene:
This will pin the rectangle to the bottom of the canvas.
Pin the other 3 rectangles, so:
Now the frame shape is finished we can add the texture.
First, add another canvas:
Canvas1 should now be listed in the Scene panel.
Next, insert another rectangle as a child of canvas1:
The next step is to add a material to the rectangle which we'll then apply the texture to. To do this:
Select the new material - it'll be listed as material1. Like before, set the Shader Type to Flat. Then, to add the texture:
To make the black section in the center of the texture transparent, adjust the Render Options:
This mode will make the black section in the texture appear as if it's transparent because it adds the color information in each channel together.
You should now be able to see the white frame in the scene, but it's a little smaller than we need it to be. To change this, change the size of the rectangle:
This rectangle is pinned to the center of the canvas by default - which is right for this effect. Make sure flexibility is set for both the height and width of this rectangle, by clicking the arrows next to Flexibility.
As the rectangle is supposed to stay in the middle of the scene, there's no need to set alignment.
To make sure the objects in your scene show up in this effect in the right order, you need to adjust the layers.
For this effect, the texture on the second canvas should render after the rectangles on the first, so it's at the front.
To do this, select canvas1 in the Scene panel. In the Inspector, click the dropdown next to Layer and select Create New Layer. The second canvas and all the objects underneath it have now been assigned to this layer.
If you click onto the layers panel, you'll see the new layer - Layer1 - is at the top of the list. This means objects on this layer will render first. You can change this order, by dragging the layers to a different position. For this effect, they're in the right place.