SolCam

SolCam 1.2.1

What permissions do you give others to modify and/or maintain your submission?
Modify: YES - Maintain: YES - I give permission for my entire submission to be modified by others or used in their own work. I give permission for my entire submission to be maintained by others as well.
I made sure my file(s) follow the Submissions Guidelines
  1. Yes
I named my file(s) correctly (see Filename Conventions)
  1. Yes
SolCamLogo-01.png
SolCamText.png


Important Disclaimer:
There may be confusion over permissions so let me clarify them immediately. You are free to repackage this in any way, but if you wish to add features to this, please get in contact with me so we can ensure there aren't any breaking changes, and implement new features for all to use! If anyone chooses to edit this library and cause a breaking change in other maps please do not contact me for it.

In short, feel free to use, but please refrain from editing without either talking to me, or submitting a merge request on GitHub.​


An all new library to make any level more dynamic! Add custom cameras to any stage, allowing for more dynamic setpieces! This mod still has more features planned, so please look to give feedback on the project's GitHub page (its also the easiest way to send me bug reports)

Features​

  • An all new camera system entirely controlled by the mapper!
  • Two new camera modes to make more dynamic levels!
  • Compatibility with Goldenshine's Rails
  • Partial compatibility with Axis2D
  • Full Lua support! Call it to make more engaging levels or bosses!
srb20503.gif
srb20504.gif
srb20505.gif
srb20507.gif
srb20509.gif

All the gifs above were provided by the beta tester Limo, huge shoutouts for messing with this camera and showcasing its power to the world

How to use (Mapping):​

  1. Add lua.solcam = on to your levelheader to enable the camera
  2. Create a control sector
  3. Set up a linedef trigger
  4. Set a line on the sector to type 443, Call Lua Function
  5. Input the desired SolCam function in the "Function Name" field to select a mode

How to use (Lua):​

  1. Add `lua.solcam = on` to your levelheader to enable the camera (yes this means sol cam only works in supported maps, even via lua to prevent camera issues)
  2. Call the functions below to transition the camera

Important Notes:​

  • BINARY MAPPING IS NOT RECOMMENDED FOR THIS TOOL
  • Using any autocancel condition may have some jank, be aware that the transitions may not be perfect

Default mode​

This is the "OFF" mode of SolCam, where other cameras can take over, or where the player camera has input.

Function Name: SOLCAMDF​

Lua Function: SC_SetDefaultMode(player, transitiontime, XYangle)​

UDMF Arguments:​

  • Argument 1: Camera Transition Time [ticks]
  • Argument 2: Angle for Exiting Camera [degrees]

Binary Arguments:​

  • Linedef Angle: Angle for Exiting Camera [degrees]

Lua Arguments:​

  • player: The Player this function is being called for [player_t]
  • transitiontime: the time for the camera transition [ticks]
  • XYangle: The angle to transition the camera to before giving control back to the player [angle_t]


DFArgs.png



Orbital mode​

Set a fixed camera that follows the player.

Function Name: SOLCAMOR​

Lua Function: SC_SetOrbitalMode(player, transitiontime, radius, XYangle, Zheight[[, canceltics], cancelflag])​

UDMF Arguments:​

  • Argument 1: Camera Transition Time [ticks]
  • Argument 2: Camera Distance from Player [fracunits]
  • Argument 3: Angle from Player [degrees]
  • Argument 4: Camera Height Offset relative to Player [fracunits]
  • Argument 5: Autocancel after [ticks]
  • String Argument 2: Extra Autocancel Condition

Binary Arguments:​

  • Front Side X Offset: Camera Distance from Player [fracunits]
  • Linedef Angle: Angle from Player [degrees]
  • Front Side Y Offset: Camera Height Offset relative to Player [fracunits]

Lua Arguments:​

  • player: The Player this function is being called for [player_t]
  • transitiontime: Camera Transition Time [ticks]
  • radius: Camera Distance from Player [fixed_t]
  • XYangle: Angle from Player [angle_t]
  • Zheight: Camera Height Offset relative to Player [fixed_t]
  • canceltics: Autocancel after [ticks] (set to zero to not cancel)
  • cancelflag: Extra Autocancel Condition [string]

Autocancel Conditions​

  • jump: SolCam cancels upon a jump
  • spring: SolCam cancels when sprung
  • grounded: SolCam cancels when you hit the ground
  • carry: SolCam cancels when you get carried by something
ORArgs.png



Static Point mode​

Like the original Alternate Viewpoint, except upgraded! Note, this requires you to place an Alternate Viewpoint Thing to use this mode, and either tag it directly to the linedef (UDMF) or tag the sector its in to the linedef (Binary)

Function Name: SOLCAMSP​

Lua Function: SC_SetStaticPointMode(player, transitiontime, pointX, pointY, pointZ[[, canceltics], cancelflag])​

UDMF Arguments:​

  • Argument 1: Camera Transition Time [ticks]
  • Argument 2: Tag of Alternate Viewpoint Mapthing [number]
  • Argument 5: Autocancel after [ticks]
  • String Argument 2: Extra Autocancel Condition

Binary Arguments:​

  • Front Side X Offset: Camera Transition Time [ticks]
  • Tag: Sector tag where the Alternate Viewpoint Mapthing resides [number]

Lua Arguments:​

  • player: The Player this function is being called for [player_t]
  • transitiontime: Camera Transition Time [ticks]
  • pointX: X position of the camera [fixed_t]
  • pointY: Y position of the camera [fixed_t]
  • pointZ: Z position of the camera [fixed_t]
  • cancelticks: Autocancel after [ticks] (set to zero to not cancel)
  • cancelflag: Extra Autocancel Condition [string]

Autocancel Conditions​

  • jump: SolCam cancels upon a jump
  • spring: SolCam cancels when sprung
  • grounded: SolCam cancels when you hit the ground
  • carry: SolCam cancels when you get carried by something
SPArgs.png



Static Point Fixed mode​

This literally is the original Static Point Mode! Note, this requires you to place an Alternate Viewpoint Thing to use this mode, and either tag it directly to the linedef (UDMF) or tag the sector its in to the linedef (Binary)

Function Name: SOLCAMSF​

Lua Function: SC_SetStaticPointMode(player, transitiontime, pointX, pointY, pointZ[[, canceltics], cancelflag])​

UDMF Arguments:​

  • Argument 1: Camera Transition Time [ticks]
  • Argument 2: Tag of Alternate Viewpoint Mapthing [number]
  • Argument 5: Autocancel after [ticks]
  • Angle of mapthing: Direction to Point the Camera in [angle]
  • Tilt of mapthing: The vertical tilt angle of the Camera [angle]
  • String Argument 2: Extra Autocancel Condition

Binary Arguments:​

  • Front Side X Offset: Camera Transition Time [ticks]
  • Tag: Sector tag where the Alternate Viewpoint Mapthing resides [number]
  • Angle of mapthing: Direction to Point the Camera in [angle]

Lua Arguments:​

  • player: The Player this function is being called for [player_t]
  • transitiontime: Camera Transition Time [ticks]
  • pointX: X position of the camera [fixed_t]
  • pointY: Y position of the camera [fixed_t]
  • pointZ: Z position of the camera [fixed_t]
  • angle: angle for where the camera should look [angle_t]
  • tilt: the tilt angle for where the camera should look [angle_t]
  • cancelticks: Autocancel after [ticks] (set to zero to not cancel)
  • cancelflag: Extra Autocancel Condition [string]

Autocancel Conditions​

  • jump: SolCam cancels upon a jump
  • spring: SolCam cancels when sprung
  • grounded: SolCam cancels when you hit the ground
  • carry: SolCam cancels when you get carried by something
SPArgs.png
Author
JanaSol
Downloads
898
Views
5,649
Extension type
lua
File size
40.9 KB
MD5 Hash
99c4a8a152b7504ec4f84b2e17e537ef
First release
Last update

More resources from JanaSol

Share this resource

Latest updates

  1. Minor Patch 1.2.1

    Hey! This is a quick patch for 1.2 to fix a few things related to the new Static Point Fixed...
  2. Update 1.2

    Oh wow, a lot has been changed this update! Lets go over it! Added support for Lua function...
  3. Major Patch 1.1

    Heya! So I started work on a refactor for version 2.0 of SolCam only to find out the "Live...
Back
Top