Difference between revisions of "Korman:Cameras"

m (Camera Types)
m (Camera Basics)
Line 22: Line 22:
 
Uru tracks cameras in game using a [https://en.wikipedia.org/wiki/Stack_(abstract_data_type) last-in-first-out (LIFO) stack]. When entering an Age, Uru pushes the engine's default camera onto the stack. This camera is functional, however, in many cases it is non-optimal for Ages. Case in point, in fan Ages that do not specify their own camera, you may have noticed that the third person camera can be panned a full 90 degrees, much more than what is possible in Cyan's Ages.
 
Uru tracks cameras in game using a [https://en.wikipedia.org/wiki/Stack_(abstract_data_type) last-in-first-out (LIFO) stack]. When entering an Age, Uru pushes the engine's default camera onto the stack. This camera is functional, however, in many cases it is non-optimal for Ages. Case in point, in fan Ages that do not specify their own camera, you may have noticed that the third person camera can be panned a full 90 degrees, much more than what is possible in Cyan's Ages.
  
To activate a custom camera in your Age, you will need to push a camera onto Uru's camera stack. As noted above, it is generally best practice to create a default camera for the entire Age to limit the amount of panning explorers can do. To push a default camera, you will need to create a ''Camera Region'' in your Age. To do so, create a mesh encompassing the entirety of your Age. Then, add a ''Region'' > ''Camera'' modifier to this object. This modifier is shown in '''Figure 1'''. When an avatar enters the bounds of the region, the Blender camera specified will be pushed onto the camera stack and activated.
+
To activate a custom camera in your Age, you will need to push a camera onto Uru's camera stack. As noted above, it is generally best practice to create a default camera for the entire Age to limit the amount of panning explorers can do. To push a default camera, you will need to create a ''Camera Region'' in your Age. To do so, create a mesh encompassing the entirety of your Age. Then, add a '''Region''' > '''Camera''' modifier to this object. This modifier is shown in '''Figure 1'''. When an avatar enters the bounds of the region, the Blender camera specified will be pushed onto the camera stack and activated.
  
 
To enable faster building of Ages, Korman does not require a Camera to be specified in a Camera Modifier. You can change the ''Camera Type'' to '''Auto Follow Camera''' to quickly gain access to a sensible "default" Age camera. This is a ''Follow Camera'' that is set to follow behind the player's avatar. An example of this is shown in '''Figure 2'''. If you intend to have advanced camera transitions, you will want to change this to a dedicated camera object in the future.
 
To enable faster building of Ages, Korman does not require a Camera to be specified in a Camera Modifier. You can change the ''Camera Type'' to '''Auto Follow Camera''' to quickly gain access to a sensible "default" Age camera. This is a ''Follow Camera'' that is set to follow behind the player's avatar. An example of this is shown in '''Figure 2'''. If you intend to have advanced camera transitions, you will want to change this to a dedicated camera object in the future.

Revision as of 18:00, 12 November 2019

Disambig gray.png

This is a tutorial page.Versions available: PyPRP; 3ds Max; Korman.
 
A custom, cinematic camera

This tutorial will show you how use cameras in your Ages built with Korman.

Introduction

Korman 0.07 added the ability to export custom cameras to Ages. These are especially handy if you want to have a more cinematic angle as you walk through a particular area of an Age or to just keep the default camera a bit closer behind the avatar.

As a companion to this article, a sample Age blend file has been made available with examples of the different camera types in action. The age has been laid out such that the floor is a colored grid representing the different camera examples. For more information about each camera, click on the easel(s) when you link into the Age. Screenshots and GIFs on this page will be taken from this Age.

Camera Basics

Figure 1
Figure 2

There are four primary types of cameras in Uru:

  • Follow Cameras are the "standard" third person cameras used in Uru to follow your avatar. They are so named because the engine changes its position to follow an object in game.
  • Fixed Cameras are used to show an artist defined view point in game.
  • Circle Cameras move about the circumference of a circle.
  • Rail Cameras move along a line or rail in response to the movement of another object.

Each camera object is able to specify a specific object that it tracks in the Age. If this object is set, the camera object's rotation in Blender is discarded, and the game rotates the camera to face the specified object. Additionally, certain camera configurations will accept artist supplied animations.

Uru tracks cameras in game using a last-in-first-out (LIFO) stack. When entering an Age, Uru pushes the engine's default camera onto the stack. This camera is functional, however, in many cases it is non-optimal for Ages. Case in point, in fan Ages that do not specify their own camera, you may have noticed that the third person camera can be panned a full 90 degrees, much more than what is possible in Cyan's Ages.

To activate a custom camera in your Age, you will need to push a camera onto Uru's camera stack. As noted above, it is generally best practice to create a default camera for the entire Age to limit the amount of panning explorers can do. To push a default camera, you will need to create a Camera Region in your Age. To do so, create a mesh encompassing the entirety of your Age. Then, add a Region > Camera modifier to this object. This modifier is shown in Figure 1. When an avatar enters the bounds of the region, the Blender camera specified will be pushed onto the camera stack and activated.

To enable faster building of Ages, Korman does not require a Camera to be specified in a Camera Modifier. You can change the Camera Type to Auto Follow Camera to quickly gain access to a sensible "default" Age camera. This is a Follow Camera that is set to follow behind the player's avatar. An example of this is shown in Figure 2. If you intend to have advanced camera transitions, you will want to change this to a dedicated camera object in the future.

Camera Types

Figure 3

In this section we will examine the camera types in detail. Specifically, we will look at the effects they can produce and how to set them up. This section is intended to be used alongside the camera sample Age.

To create a specific type of camera in Uru, you will first need to create a Blender camera object. You can then adjust its type using the dropdown as shown in Figure 3 via the Blender Camera properties window.

Follow Camera

Figure 4

Follow cameras are used to follow either a specific object or the local avatar. To use a follow camera in your age, you will need to set up the camera's Point of Attention under camera mode as shown in Figure 4. In game, Uru will discard the camera's position and rotation as defined in Blender and will move to follow the object you have specified.

Since follow cameras are the most commonly used camera in Uru, the only example of it in the camera sample Age is the default camera itself.

Fixed Camera

Figure 5 A standard fixed camera in Uru
Figure 6 An animated fixed camera in Uru

Fixed cameras are perhaps the most feature-rich camera type in all of Uru. The name of this camera indicates that it is "fixed" in place, meaning that it is set to a specific location and rotation and never moves. Indeed, that is one application of this camera type. For an example, see the blue camera region in the camera test Age or Figure 5. To preview how the camera will look in game, select the camera, then either press Ctrl+Numpad0 or in the 3D View, press View > Cameras > Set Active Object as Camera.

NOTE to PyPRP Users: There is no need to turn the camera around 180 degrees after placement anymore. Korman exports cameras correctly, so face the camera exactly as you'd like it to appear in-game.

Fixed cameras do "whatever you tell them to" in reality. You can animate a fixed camera's position and rotation to create cinematic effects as shown in the teal camera region in the camera test Age. Additionally, you can set the camera to additionally track an object or the local avatar while animating. An example of this can be seen in the pink camera region or Figure 6. If you chose to have the camera track another object, the game will determine the camera's rotation, however. This can be observed in Figure 7.

To add an animated camera, you will need to enable camera animation export as shown in Figure 8. To have the animation automatically start, use the Animation modifier's Auto Start option.

Figure 8 Camera animation settings
Figure 7

For more examples of fixed cameras, check out the pink, red, blue, purple, salmon, and teal camera regions in the camera sample Age.

Rail Camera

Figure 9 A rail camera in Uru
Figure 10 A rail camera in Blender

Rail cameras are similar to a follow camera in that they follow the movement of a specific object. Unlike follow cameras, however, rail cameras follow the tracked object by sliding along a "rail" defined in Blender. You can observe this effect in Figure 9. The rail is defined by keyframes on the camera object as shown in Figure 10. Only position keyframes are valid for this purpose--rotation keyframes are discarded on rail cameras. Uru interpolates the camera position among these keyframes in response to the movement of the tracked object.

Rail cameras can optionally define where the camera orients itself on the rail with relation to the tracked object. This can be either the point on the rail closest to the object or the point on the rail farthest from the object. These options are shown in Figure 11.

Figure 11: Rail camera settings

For more rail camera samples, see the cyan and orange camera regions in the camera sample Age.

Circle Camera

Figure 12 A circle camera in Uru
Figure 13 A circle camera and its center object in Blender
Figure 14 Circle camera settings

Circle cameras are similar to follow cameras in that they follow a specific tracked object in the Age. However, circle cameras follow that object by moving about the circumference of a circle defined in Blender. You can observe this effect in Figure 12. The circle center can be specified as an object explicit object, in which case the circle's radius is defined as the distance between the camera object and the center object. This is shown in Figure 13. Otherwise, the camera object's position is used as the center position and the radius must be set on the camera object. Additionally, just as in rail cameras, you can set where the camera orients itself on the circle: the closest point or the farthest point. These options are shown in Figure 14.

For more examples of circle cameras, see the yellow and green camera regions in the camera sample Age.

Camera Options Detail

Default Options

These are settings that can be modified for any camera object (or an Auto Follow Camera region).

KorCam02.jpg

Camera Type

  • Circle: A camera that will circle around a point of attention.
  • Follow: A camera that moves to follow the avatar or an object.
  • Fixed: A camera placed in a fixed position from which to focus on an avatar or object (or nothing).
  • Rail: A camera that uses keyframes to situate itself on a "rail", focused on the point of attention.

Camera Tracking

  • Camera Mode: Options are Track Local Player (follows the avatar), Track Object, or Don't track (camera stays stationary).
    • The field below this drop down menu is used to select the object to track. Only available if Track Object is selected.
  • Primary Camera: Click this if this will be your Age's default camera.

Tracking Settings

Check any of these that you'd like to apply to your camera:

  • Maintain LOS: LOS = line of sight. This tells the camera to avoid colliders that block line of sight. Use this to prevent cameras from "going through" walls.
  • Fall Camera: The camera will align vertically with the avatar when they fall.
    • Example: Bahro caves.
  • Faster When Falling: The camera's velocity will have a floor when the avatar is falling.
    • Example: The Great Shaft(???)
  • Ignore Subworld Movement: Use this if you don't want the camera tied to any subworld activity.

Point of Attention Tracking

  • Default Tracking Transition: The options here...Acceleration, Deceleration, and Maximum Velocity...tell the camera how fast or slow to slide into place (assuming the transition isn't set to cut).
  • Point of Attention Offset: This is the settings that can offset the camera from a tracked object's origin. For instance, if used to follow an avatar, if you entered the settings of 0, 0, 6, top to bottom, the camera focuses on the head, while 0, 0, 0 would focus on its feet. Use the settings that look best when the camera follows what it's tracking.

The first field offsets the camera to one side or the other. The second field offsets it towards or away from the object, while the third field offsets the camera up and down.

KorCam04.jpg

Camera Lens

  • Limit Panning: This controls how far a user can move the camera side to side and up and down while right clicking the mouse. Set both of these to 0 if you don't want the camera to move at all.
  • Field of View: Adjusts how much the camera shows vertically. Using these values, you can limit how much the user can zoom in and out using the mouse wheel.

Transitions

This panel is used to further set up a camera's transitional behavior. By default, this panel is empty.

Start by pressing the + to add a Default Transition. New options will appear.

  • Transition From: Use this option to choose another camera from which to use this particular transition. Leave it empty if you'd like the transition to apply to all other cameras.
  • Transition Mode: You can use Auto to let the two cameras' properties decide how to transition, you can use Manual to tweak the transitions yourself, or use Ignore Camera to omit that particular camera from this transition.
  • Tracking Transition (Manual Only): Adjust the rate of speed the camera slides into place when entering the region.
  • Position Transition: For animated cameras, how quickly the camera itself slides into place (???)
  • The Cut Transition boxes should be checked if you'd prefer the camera cut directly to the default position with no "sliding into place" at all.

Camera-Specific Options

Some cameras will have extra options appear in the panel after you select them.

KorCam03.jpg

Position Tracking

  • Default Position Transition: (Fixed and Follow Cameras) Determines how fast the camera itself slides into position.
  • Position Offset: (Follow Camera only): Position of the camera relative to the avatar as it follows. The first value moves the camera to the avatar's right or left. The second value moves the camera in front of or behind the avatar. The third value moves the camera up and down.
    • Some examples: Values of 0, 10, 6, top to bottom, will place the camera closely behind the avatar. Values of 0, -2, 6 will place the camera directly in front of the avatar's face (not IN it), giving a first person perspective.

Circle Camera Settings

The next panel will only appear if you create a Circle camera.

KorCam05.jpg

  • Center: The object to which the camera will focus on and distance itself from its center/origin.
  • Position on Circle: Here, you can choose if you'd like the camera to be on the Closest or Farthest point on the circle from the object of attention.
  • Velocity: How fast the camera circles around in degrees (per second).
  • Radius: How far out from the center the camera should be situated in blender units (1 unit = 1 foot in URU)

Animated Camera Settings

This panel will only be usable if your camera's location and/or rotation have been animated or if it's on a rail.

KorCam06.jpg

  • Animation
    • Start On Push: Starts the animation as soon as the camera has been activated.
    • Pause On Pop: Stops the camera at that point in the animation. Resumed at that point when the avvie re-activates the camera.
    • Reset On Pop: Puts the camera back to the beginning of the animation after exiting.
  • Rail: Choose which point on the rail, Closest or Farthest, the camera should be in relation to the object of attention.