Difference between revisions of "IC Python API:Camera Dolly Zoom"

From Reallusion Wiki!
Jump to: navigation, search
m
m (Required Files)
 
(6 intermediate revisions by the same user not shown)
Line 4: Line 4:
 
== Demo Video ==
 
== Demo Video ==
  
 +
{{#evt:
 +
service=youtube
 +
|id=https://www.youtube.com/watch?v=CkUimGI1hLc
 +
}}
  
 
== Description ==
 
== Description ==
 +
 +
[[File:Ic_python_api_camera_dolly_zoom_01.gif|frame|left]]
  
 
Dolly Zoom is an in-camera effect that utilizes perspective distortion to make the background appear as if it’s changing its size relative to the subject.  The visual appearance for the viewer is that either the background suddenly grows in size and detail to overwhelm the foreground, or the foreground becomes immense and dominates the previous setting, depending on which way the dolly zoom is executed.  This script simulates the Dolly Zoom effect by animating the camera's Focal Length and positioning according to the current camera settings and the desired Focal Length.  Automatic Depth of Field on the target object is an optional setting.{{clear}}
 
Dolly Zoom is an in-camera effect that utilizes perspective distortion to make the background appear as if it’s changing its size relative to the subject.  The visual appearance for the viewer is that either the background suddenly grows in size and detail to overwhelm the foreground, or the foreground becomes immense and dominates the previous setting, depending on which way the dolly zoom is executed.  This script simulates the Dolly Zoom effect by animating the camera's Focal Length and positioning according to the current camera settings and the desired Focal Length.  Automatic Depth of Field on the target object is an optional setting.{{clear}}
Line 35: Line 41:
 
== Takeaway Lessons ==
 
== Takeaway Lessons ==
  
*Calculate the dolly zoom effect with a simple formula.
+
*Calculate the dolly zoom effect with a formula.
*Locally translate an object in code in spite of the world-space transformation system.
+
*Translate an object in local-space.
  
 
== Required Files ==
 
== Required Files ==
  
 
*Camera Dolly Zoom Python script
 
*Camera Dolly Zoom Python script
*iClone scene with selectable props or characters, preferably in a setting filled with background objects.
+
*iClone scene with select-able props or characters, preferably in a setting filled with background objects.
 +
 
 +
You can download this plugin from the [https://marketplace.reallusion.com/camera-dolly-zoom Reallusion Marketplace]. 
 +
To acquire and view the source code, please visit [https://github.com/reallusion/iClone/tree/master/Camera_Dolly_Zoom Reallusion GitHub].
  
 
== Usage Instructions ==
 
== Usage Instructions ==
Line 53: Line 62:
 
== Code Flow ==
 
== Code Flow ==
  
#The current viewing camera is the currently driven camera.
+
#The current viewing camera is the currently driven camera.  This camera can not be the '''default''' camera, therefore must be made from scratch.
#The current selection is the DOF target, the first item in multiple selection is designated as the target.
+
#The current object selected is the Focal Length target and the first item in multiple selection is designated as the target.  Only props and characters are allowed.
#Adjust the parameters such as Auto-Distance and Auto-Range toggle and multiplier.  
+
#Adjust the parameters such as the '''Frame Duration''', '''Target Focal Length''', and '''Set DOF Key''' (optional).  
#The z-distance between the target prop from the current viewing camera is calculated.
+
#Once the user pressed the '''Key Dolly Zoom''' button, the final distance and Focal Length values will be calculated.  
#DOF key is created taking into account the depth distance value and the parameter settings.
+
#Focal Length keys are created taking into account the starting Focal Length value, viewing distance, and the parameter settings.
#The created DOF key is set on the current viewing camera in near real-time.
+
  
 
[[File:Ic_python_api_camera_dolly_zoom_02.png]]
 
[[File:Ic_python_api_camera_dolly_zoom_02.png]]

Latest revision as of 19:38, 19 February 2020

Main article: RL Python Samples.

Demo Video

Description

Ic python api camera dolly zoom 01.gif
Dolly Zoom is an in-camera effect that utilizes perspective distortion to make the background appear as if it’s changing its size relative to the subject. The visual appearance for the viewer is that either the background suddenly grows in size and detail to overwhelm the foreground, or the foreground becomes immense and dominates the previous setting, depending on which way the dolly zoom is executed. This script simulates the Dolly Zoom effect by animating the camera's Focal Length and positioning according to the current camera settings and the desired Focal Length. Automatic Depth of Field on the target object is an optional setting.

Course Prerequisites

You should familiarize yourself with the following fundamental articles before you proceed:

Link Purpose
Object Type Return the object type for the first selected object.
Message Box Create notifications and warning messages in iClone.
Item Lister Learn how to validate objects for listing and removal.
Dialog Callbacks Understand dialog callbacks at a deeper level.
Local Move Use matrix math to locally translate an object.

Takeaway Lessons

  • Calculate the dolly zoom effect with a formula.
  • Translate an object in local-space.

Required Files

  • Camera Dolly Zoom Python script
  • iClone scene with select-able props or characters, preferably in a setting filled with background objects.

You can download this plugin from the Reallusion Marketplace. To acquire and view the source code, please visit Reallusion GitHub.

Usage Instructions

  1. Clone or download the Reallusion/iClone GitHub.
  2. Copy Camera_Dolly_Zoom folder into the iClone install directory > ...\Bin64\OpenPlugin.
  3. Load the script into the project from the menu: Plugins > Python Samples > Camera Dolly Zoom.
  4. Create a new camera and pick an item in the scene.
  5. Adjust the settings and press the Key Dolly Zoom button.

Code Flow

  1. The current viewing camera is the currently driven camera. This camera can not be the default camera, therefore must be made from scratch.
  2. The current object selected is the Focal Length target and the first item in multiple selection is designated as the target. Only props and characters are allowed.
  3. Adjust the parameters such as the Frame Duration, Target Focal Length, and Set DOF Key (optional).
  4. Once the user pressed the Key Dolly Zoom button, the final distance and Focal Length values will be calculated.
  5. Focal Length keys are created taking into account the starting Focal Length value, viewing distance, and the parameter settings.

Ic python api camera dolly zoom 02.png

APIs Used

You can research the following references for the APIs deployed in this code.