IC Python API:Smooth Camera Follow

From Reallusion Wiki!
Revision as of 03:15, 24 April 2019 by Chuck (RL) (Talk | contribs) (Required Files)

Jump to: navigation, search
Main article: RL Python Samples.

Smooth Camera Follow

This script lets the user pick a camera/view and a prop/target to follow. The camera will always be facing the direction of the target prop with delay as an adjustable factor. The Offset values creates a distance between the view and the target. Use the Delay value to create a lag between the view and the target.

As the target prop starts to move, the camera will begin to follow with a specified delay. However, the camera's facing direction will always be locked onto the prop's pivot point no matter how fast the prop is moving.

Course Prerequisite

You should be familiar with the following fundamental articles before you proceed.

Learn How to

  • Drive the motion of the camera according to the animation of a prop.
  • Populate drop down menus/combo boxes with elements from the scene.

Required Files

You can download the sample code and related files from this GitHub Page.

  • iClone scene with camera and animated prop
  • Smooth Camera Follow Python script
  • Extensions Python script

Steps to Take

  1. Unzip the contents of Smooth Camera Follow.zip into the iClone install directory ...\Bin64\OpenPlugin.
  2. Load the script into the project from the menu: Plugins > Python Samples > Smooth Camera Follow.
  3. Follow the instructions in the subsequent dialog window.

Code Flow

Given a target prop and a target camera, the script will also require the inputs for the camera movement delay and offset position from the target prop. The code creates a new movement animation for the camera transformations by applying keys in the timeline. The final result is a camera that smoothly follows the target prop at the designated offset position with a certain degree of lag time decided by the user.

Camera WIKI Code Route.png

Modules Used

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

main.py

Extensions.py