ArchViz Camera
Last updated
Last updated
ArchViz Camera enables you to create architecture rendering for 2-point perspective. It works by altering camera pitch and offset so that lines in the scene manage to be parallel while maintaining the camera's pivot point (center point).
There are two types of ArchViz cameras in ComponentCameraSystem: EArchVizCamera and EArchVizCineCamera. The former is used for general gameplay purpose like any other ECameraBase cameras, and the latter is specialized for Sequencers where you can keyframe different parameters to control the strength of two-point perspective.
Creating an ArchViz camera is as simple as creating a general ECamera.
Search in the blueprint class for "EArchVizCamera", select it and rename as whatever you want.
In the "Components" panel on the left side, you can find a "CameraComponent" which has been substituted with the EArchVizCameraComponent class. This is the class in which you need to tweak some parameters to control the strength of two-point perspective.
Select the "CameraComponent" and go to the "Details" panel, you will see the "Arch Viz Camera Component" section and several parameters in it. Each parameter has detailed explanation and you can play with them at runtime to get an intuitive understanding of how they work.
As what other normal cameras can do, you can also add a follow component, an aim component and multiple extensions in the "CameraSettingsComponent".
In blueprint use the "CallCamera" node to invoke this camera.
Now by turning on the "Enable Correction" parameter and tweaking the "Perspective Strength" value, you can see the vertical lines of game objects are becoming more parallel, in the camera's view. Note that "Perspective Strength" will make no effect if the camera's own pitch is zero. To make it work, try a non-zero pitch.
However, you should be very careful of tweaking the "Perspective Strength" value. When it has a large value with large (if positive) / small (if negative) pitches, the whole rendered view would get extensive distortion. If this is not what you need, you should restrict pitch range or use smaller "Perspective Strength".
This class is very similar to ArchViz Camera except that it is better for Sequencers than ArchViz Camera in that it contains a CineCamera Component instead of a plain Camera Component, though you can also keyframe a ArchViz Camera in Sequencer but ArchViz CineCamera is recommended.
To use ArchViz CineCamera in Sequencer, just follow the next steps.
Create a new level sequencer.
Open the sequencer and add the track of a ArchViz CineCamera. You can use an existing ArchViz CineCamera by first adding it to the scene or use the feature of Spawnables provided by Sequencer. Whichever method you use, you now have a track of ArchViz CineCamera.
Keyframe its properties of your interest. Specifically, you may need to keyframe the "Enable Correction" and "Perspective Strength" properties.
(Optional) If you want to blend to an ordinary gameplay camera when the level sequence finishes, create a new custom event and bind it to the On Finished delegate. Don't forget to set Blend Time if you need.
Now you can play the Sequencer and have a smooth transition to gameplay cameras.
The UE's built-in add-on Movie Render Queue (MRQ) is specialized for rendering high-quality images from level sequencers. To enable use of ArchViz CineCameras in MRQ, what you only need to do is to use the rendering settings affixed with "EArchViz".
Note that if you are using MRQ with ArchViz cameras, be sure to use ArchVizCineCamera rather than ArchVizCamera as only the former is supported.
ArchViz Camera and ArchViz CineCamera have the same following parameters included by both ArchViz Camera Component and ArchViz CineCamera Component.
Enable
Correction
Whether to enable perspective correction.
Perspective
Strength
Strength to correct perspective. 1.0 means full correction.
Vertical
Project
Offset
Read-only
This is read-only for debug purposes.
MinMax
Pitch
Max and min pitch, should be propertly set to avoid distortion. If also using ControlAim, this parameter should be compatible with that in ControlAim.