Skip to main content
Version: 3.3.0

Press Conference


This template tutorial was created using Effect House 2.5.0.

This effect creates a press conference effect by using the Look At component to configure a set of microphones to follow the movements of a face.

How to Use This Template

Open Effect House, go to Templates, click the Interactive tab, and select the Press Conference template.

open the press conference template tutorial in effect house


In the Hierarchy panel, you essentially have four sections that are responsible for the different parts of the effect. As shown in the following screenshot, the camera and lights define the scene and lighting, the Head Tracker and AimTarget objects are used by the Look At component, microphone objects make up the 3D models, and another camera controls the 2D animation sequence.

press conference objects in the hierarchy panel

Look At Component

First take a look at the objects that are used by the Look At component-Head Tracker and AimTarget. The Head Tracker is used to determine where the user's head is and AimTarget, an empty object, is attached to the Head Tracker. The AimTarget is what all Look At components are pointing at.

aimtarget of the look at component

Under MicrophoneAndHandGroup, there are duplicates of essentially the same objects. If you expand the different microphone objects, you can find the same content with the exception of the logos.

all mic hands

Notice that the Look At component is on the forearm joint, Forearm_JNT, for all microphone objects. If you click a Forearm_JNT object, you can see its Look At configuration in the Inspector panel. AimTarget is the assigned target and its mode is Look At Point, which allows the object to point at the transform of AimTarget.

look at component on forearm joint  aimtarget assigned to forearm joint  

Camera Flashes

The 2D Camera, along with Camera Flashes, can be found in the 2D Foreground Effects render group. Camera Flashes plays the animation of the flashing effect to create a realistic press conference effect.

flash demo with black background  camera flash animation  

Visual Scripting

Start by checking if a face is present in the screen. The Face Detection node has 1 Face Detected variables and its value can either be true or false. This means that once the Face Detection node is kicked off, and a face is detected, then the Face Detected variable is set to true. If a face is not found by the end of the detection, then the Face Detected variable is set to false.

face detected node

The Face Detected variable is then used in this next section to determine the behavior of the microphones' movement. If the value is true, then the Mics Follow Face subgraph is kicked off. However, if the value is false, then the Return Mics to Center subgraph is initiated.

follow detected face

Mics Follow Face Subgraph

First the distance between the Camera and Head Tracker is determined to be used for the Current Distance Between Camera and Face variable.

get distance between camera and head tracker

After establishing the distance between the camera and face, the 2D position of nose is retrieved and converted to the world space with the Screen to World node. The Add node then determines the position the microphone should point at, and rather than touching the microphone objects, AimTarget is moved. The position of AimTarget is lerped to the new position with a step of 0.50 to create a smooth movement for the microphones.

mics follow face visual scripting logic

Then we enter into the next subgraph which controls the distance between the microphones and face.

Control the Mic Distance Subgraph

This subgraph checks to see if the face is too close to the camera. If it is, then the Minimum Mic Distance from Face variable is enforced.

check distance logic

First the Current Distance Between Camera and Face variable is checked to see if it's too small, or less than the defined minimum microphone distance. If it is too small, then the Position of the entire MicrophoneAndHandGroup object is set (and not AimTarget). The current distance is subtracted from the defined minimum microphone distance to get a new Z value, ensuring ample room for the face and microphones.

Returns Mics to Center Subgraph

If a face is not detected, the position of AimTarget is pushed to the center of the screen. The position of AimTarget is lerped to the stop position that is hard coded in the Lerp node.

returns mic to center logic