A constructor defined in BBMOD_Camera.gml
Extends BBMOD_BaseCamera
new BBMOD_Camera()
A camera driven by angles and an object to follor, rather than raw vectors. Supports mouselook and both first-person and third-person views.
Name | Description |
---|---|
Direction | The camera's horizontal direction. Defaults to 0 . |
DirectionUp | The camera's vertical direction. Automatically clamped between BBMOD_Camera.DirectionUpMin and BBMOD_Camera.DirectionUpMax. Defaults to 0 . |
DirectionUpMax | Maximum angle that BBMOD_Camrea.DirectionUp can be. Use undefined to remove the limit. Default value is 89 . |
DirectionUpMin | Minimum angle that BBMOD_Camrea.DirectionUp can be. Use undefined to remove the limit. Default value is -89 . |
FollowCurve | A function which remaps value in range 0..1 to a different 0..1 value. This is used to control the follow curve. If undefined then lerp is used. Defaults to undefined . |
FollowFactor | Controls lerp factor between the previous camera position and the object it follows. Defaults to 1 , which means the camera is immediately moved to its target position. BBMOD_Camera.FollowObject must not be undefined for this to have any effect. |
FollowObject | An ID of an instance to follow or undefined . The object must have a z variable (position on the z axis) defined! Defaults to undefined . |
MouseLook | If true then mouselook is enabled. Defaults to false . |
MouseSensitivity | Controls the mouselook sensitivity. Defaults to 1 . |
Offset | The camera's offset from its target. Defaults to (0, 0, 0) . |
Roll | The angle of camera's rotation from side to side. Default value is 0 . |
Zoom | The camera's distance from its target. Use 0 for a first-person camera. Defaults to 0 . |
Name | Description |
---|---|
AspectRatio | The camera's aspect ratio. Defaults to window_get_width() / window_get_height() . |
AudioListener | If true then the camera updates position and orientation of the 3D audio listener in the BBMOD_BaseCamera.update_matrices method. Defaults to true . |
Exposure | The camera's exposure value. Defaults to 1 . |
Fov | The camera's field of view. Defaults to 60 . |
Height | The height of the orthographic projection. If undefined , then it is computed from BBMOD_BaseCamera.Width using BBMOD_BaseCamera.AspectRatio. Defaults to undefined . |
Orthographic | Use true to enable orthographic projection. Defaults to false (perspective projection). |
Position | The camera's positon. Defaults to (0, 0, 0) . |
Raw | An underlying GameMaker camera. |
Target | A position where the camera is looking at. |
Up | The up vector. |
ViewProjectionMatrix | The view * projection matrix. |
Width | The width of the orthographic projection. If undefined , then it is computed from BBMOD_BaseCamera.Height using BBMOD_BaseCamera.AspectRatio. Defaults to the window's width. |
ZFar | Distance to the far clipping plane. Anything farther from the camera than this will not be visible. Defaults to 32768 . |
ZNear | Distance to the near clipping plane. Anything closer to the camera than this will not be visible. Defaults to 0.1 . |
Name | Description |
---|---|
set_mouselook | Enable/disable mouselook. This locks the mouse cursor at its current position when enabled. |
update | Handles mouselook, updates camera's position, matrices etc. |
Name | Description |
---|---|
apply | Applies the camera. |
destroy | Frees memory used by the struct. |
get_forward | Retrieves a vector pointing forward in the camera's direction. |
get_proj_mat | Retrieves camera's projection matrix. |
get_right | Retrieves a vector pointing right relative to the camera's direction. |
get_up | Retrieves a vector pointing up relative to the camera's direction. |
get_view_mat | Retrieves camera's view matrix. |
screen_point_to_vec3 | Unprojects a position on the screen into a direction in world-space. |
update | Updates camera's matrices. |
update_matrices | Recomputes camera's view and projection matrices. |
world_to_screen | Computes screen-space position from a vector in world-space. |
/// @desc Create event
camera = new BBMOD_Camera();
camera.FollowObject = OPlayer;
camera.Zoom = 0.0; // Use 0.0 for FPS, > 0.0 for TPS
/// @desc End-Step event
camera.set_mouselook(true);
camera.update(delta_time);
/// @desc Draw event
camera.apply();
// Render scene here...
Copyright © 2025, BlueBurn. Built on January 04, 2025 using GMDoc.