Skip to content

v0.16.0 - Viewfinder

Latest

Choose a tag to compare

@kvvasuu kvvasuu released this 23 Oct 22:26
· 1 commit to main since this release
844b85e

This release adds four extensions that fine-tune a shot: CameraOffset, Recomposer, FollowZoom and Confiner.

It also adds orthographic cameras: Klipp drives them like perspective ones, and every piece that frames on screen works with them.
And a SequencerCamera can now be stepped through like a slideshow.

✨ New Features

  • CameraOffset - moves the camera in its own space after the Body and Aim, for off-center shots like an over-the-shoulder view.
  • Recomposer - turns, rolls and zooms the finished shot, on top of what the Body and Aim do.
  • FollowZoom - changes the field of view to keep a target the same size on screen, for a dolly zoom.
  • Confiner - keeps the camera inside a box or a sphere.
  • Orthographic cameras - KlippThree and <Klipp> drive an OrthographicCamera too. Each virtual camera has its own orthographicSize, set with Lens and blended like fov, and every piece that frames on screen works with it.
  • Navigation in SequencerCamera - next(), previous() and goTo(index) jump to another step and restart() cuts back to the first one. paused keeps holding the current step.
  • targetOffset in PositionComposer - frames a point offset from the target in its own space, like a head instead of the feet, the same way as in RotationComposer.
  • applyAfter on an Extension picks when it runs: 'start' before the Body, for the lens the Body and Aim frame with, or 'body' right after the Body, for what depends on where the Body put the camera, like a limit on where it can go.

🐛 Bug Fixes

  • Extensions and Noise no longer build up in a damped Body or Aim. With damping on HardLockToTarget, PositionComposer or RotationComposer, the shake from BasicMultiChannelPerlin and the kicks from ImpulseListener fed back into the damping on the next frame and grew many times over. They now stay the size you set.
  • RotationComposer and PositionComposer frame with the field of view from Lens in the same frame, instead of the last frame's.
  • Removing an Extension or Noise removes its effect: removing Lens, for example, takes the camera back to its own field of view instead of keeping the last one.
  • Swapping the camera KlippThree or <Klipp> drives, for example with drei's makeDefault, gives the new camera the shot on the next frame. It used to wait until the shot changed, so a still shot never reached it.
  • PositionComposer, RotationComposer and GroupFraming skip a frame whose lens has no view instead of breaking for good.
  • SequencerCamera finishes the blend into a step with a hold of 0 before moving on. It used to jump to the next step every few frames, so the camera never reached any of them.

What's Changed

  • chore: update version to 0.16.0 by @kvvasuu in #126
  • feat: CameraOffset, Recomposer, FollowZoom and Confiner extensions by @kvvasuu in #127
  • Feat/position composer target offset by @kvvasuu in #128
  • feat: support orthographic cameras by @kvvasuu in #129
  • feat: add next, previous, goTo, restart and paused to SequencerCamera by @kvvasuu in #130
  • feat: SequencerCamera navigation and a car showcase by @kvvasuu in #131
  • docs: serve the showcase at the site root and the examples at /examples/ by @kvvasuu in #132

Full Changelog: v0.15.0...v0.16.0